-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathHISTORY.txt
165 lines (136 loc) · 5.43 KB
/
HISTORY.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
HISTORY.txt -- libdasm release history
(c) 2004 - 2007 jt / nologin.org
======================================
1.5 12/27/2006
- Fixed typo "loopn" -> "loopne" (thanks Otto!)
- Added implied operand masks in instruction struct
- New instructions types
- Added "rbdasm", ruby interface for libdasm (thanks skape)
- New attributes in instructions structure:
eflags_affected and eflags_used. Defines if instruction affects
cpu eflags (thanks skape!).
1.4 01/06/2006
- Fixed jecxz/jcxz bug
- Fixed push/pop operand size issues
- Typo: punockldq -> punpckldq
1.3.1 10/03/2005
- Fixed a bug with word displacement addressing.
(thanks Arnaud Pilon)
1.3 10/01/2005
- Added additional flags in instruction type for
catching prefixed 2-byte instructions like 16-bit MOVZX
Thanks to Arnaud Pilon for finding out the bug.
(very nasty bug introduced with 1.2)
- Changed Jcc names to simpler ones (jnle -> jg etc.)
- Added branch hint prefixes for Jcc instructions
- Created Makefiles for gcc/msvc, updated LIB.txt
- Moved address/operand size override checks as separate
(inline) functions for better readability
- Removed useless mode check when printing immediate operand
- Added some stuff in README.txt
- ATT printing now looks prettier: no empty addressing
brackets and asterisk in front of operand if needed
- Made some room for additional operand flags
- Added new operand attribute: permission
(read/write/execute) Thanks thief!
- Moved opcode extensions to separate tables
- Added missing instructions monitor and mwait
- Renamed tables.h -> opcode_tables.h
- Some cosmetic changes (hex numbers lower case)
- Minor modifications in das.c
1.2 05/11/2005
- Fixed the mess with SSE instruction operand types
- Added new opcode tables for 3-byte opcodes
- Made major organization changes in libdasm.c/libdasm.h and
moved opcode tables in new file "tables.h"
- Added "pydasm", python interface for libdasm (thanks Ero)
- Fixed big endianess issues (thanks Ero)
- Replaced some casts with memcpy for better 64-bit support
(hope they don't affect performance too much..)
- Example "das" now prints libdasm version
- Added some macros for determining libdasm version
- Removed VERSION.txt file
- Updated examples/README.txt
1.1 04/13/2005
- Fixed some stupidness in AM_R & AM_M modrm checking
(debug/test register movs now work...)
- Added OT_d in print_operand_string,
case OPERAND_TYPE_REGISTER
- Removed example "emu" (too screwed up code...)
- Added generic MMX/SSE instruction types
- Fixed extension groups 10-15
- Print XMM reg instead of MMX if operand size is overridden
- Renamed mmx -> mm1
- Renamed fxstor -> fxrstor
- Added lot of general purpose instuction types
(type member in INSTRUCTION structure something else than
INSTRUCTION_TYPE_OTHER)
- Cleared some terminology, SIMD -> XMM
- Added fpuindex member in INSTRUCTION
- Added FPU instruction types and corrected addressing
modes of memory FPU instructions
- Negative displacements also in 32 -and 16 bit displacements
- Added displacement and immediate offset members
in OPERAND structure
- Added libdasm.def and precompiled dll
- Fixed bug in 2-byte opcode 0x7f (wrong addressing mode)
1.0 02/10/2005
- Major changes in API:
* get_instrument arguments simplified
* removed printf_instruction, use new function
get_instruction_string instead
* lots of new helper functions
* renamed parse_operand -> get_operand
- Do not use '$' in relative immediate when printing ATT
- Fixed MMX register name mmx -> mm7
- Fixed register in opcode 0x0e (es -> cs)
- Fixed operand size of opcode 0xe5 (w -> v)
- Fixed operand size of opcode 0xe7 (w -> v)
- Added segment overrides also for instructions
containing non-memory operands
- Fixed bugs in 2-byte opcodes 0x12 and 0x013
- Removed opcode member from struct INST
- Added example EMU
- Moved examples to "examples" dir
- Moved some of the stuff from .c to .h
- Initialize operand basereg as REGISTER_NOP
- Added instruction type member for most common instructions
- Fill op->reg correctly when op->type is register and
addressing mode E.
- Added extension table offset to instruction struct
- Renamed movsw -> movsd, cmpsw -> cmpsd
0.9 12/17/2004
- Initialize operand registers to REGISTER_NONE before
parsing
- Fixed opcodes 0x48-0x4f (single reg dec) opcode number
- Fixed operand flags of opcode 0x82
- New helper function get_register_type
- Removed new line printing from printf_instruction()
- Added some general information README.txt
- Fill operand.type with some sane values
- Added operand.flags
- Simplified code for non-general purpose reg decoding
- Rewrote addressing override code
- Fixed addressing mode of opcode 0x8d (E -> M)
- Changed das.c to do some buffer sanity checking
- Created simple.c
0.6 12/06/2004
- Updated instruction set to IA-32 2004
- Finally fixed operand addressing override (hopefully)
- Fixed bug with addressing mode S
0.5 12/05/2004
- Clarified licensing issues
- Fixed addressing mode M
- Support for SIMD instructions
- Changed SIMD/MMX register naming -> xmmN/mmN
- Added missing 2-byte opcodes
- Fixed opcodes 0xbe and 0xbf (esi <-> edi)
- Added couple of undocumented opcodes
0.2 12/01/2004
- Fixed address size override (opcode 0x67)
- Fixed operands for instructions "aam" and "aad"
- Added missing opcode "sysenter"
- Fill opcode byte in struct INSTRUCTION
- Fixed couple of typos in opcode names
0.1 10/06/2004
- First public release