12008-12-31  Ulrich Drepper  <drepper@redhat.com>
2
3	* i386_disasm.c (i386_disasm): Correct resizing of buffer.
4
5	* i386_parse.y (struct argstring): Add off element.
6	(off_op_str): New global variable.
7	(print_op_str): Print strings as concatenated strings.  Keep track
8	of index and length.  Update ->off element.
9	(print_op_str_idx): New function.
10	(instrtable_out): Mark op%d_fct as const.
11	Emit two tables for the strings: the string itself (op%d_str) and the
12	index table (op%d_str_idx).
13	* i386_disasm.c (i386_disasm): Adjust for new op%d_str definition.
14
15	* i386_disasm.c [X86_64] (i386_disasm): Handle rex prefix when
16	printing only prefix.
17
18	* i386_disasm.c (i386_disasm): Minor optimizations.
19
20	* i386_parse.y (instrtable_out): No need to emit index, the reader can
21	keep track.
22	* i386_disasm.c (i386_disasm): The index is not emitted anymore, no
23	need to skip it.
24
25	* i386_disasm.c (amd3dnow): Mark as const.
26
27	* defs/i386: Add blendvpd and blendvps opcodes.
28
292008-12-30  Ulrich Drepper  <drepper@redhat.com>
30
31	* defs/i386: Add blendpd and blendps opcodes.
32
332008-12-19  Ulrich Drepper  <drepper@redhat.com>
34
35	* defs/i386: Add entry for AMD 3DNOW.
36	* i386_disasm.c: Implement AMD 3DNOW disassembly.
37
382008-12-17  Ulrich Drepper  <drepper@redhat.com>
39
40	* i386_disasm.c (i386_disasm): If instruction matches prefix,
41	undoing the prefix match finishes the instruction.
42
432008-01-21  Roland McGrath  <roland@redhat.com>
44
45	* defs/i386: Fix typo in comment.
46	* i386_disasm.c (i386_disasm): Handle cltq, cqto.
47
48	* i386_parse.y: Add sanity check for NMNES macro value.
49	* Makefile.am (i386_parse.o): Fix target in dependency rule.
50	(i386_parse.h): New target with empty commands.
51	(i386_lex.o): Depend on it in place of i386_parse.c.
52
532008-01-21  Ulrich Drepper  <drepper@redhat.com>
54
55	* Makefile.am (EXTRA_DIST): Remove defs/x86_64.
56
572008-01-14  Ulrich Drepper  <drepper@redhat.com>
58
59	* defs/i386: Add fixes for opcodes with register number in opcode,
60	64-bit immediate forms, nop with rex.B.
61	* i386_data.h [X86_64] (FCT_imm64$w): New function.
62	(FCT_oreg): New function.
63	(FCT_oreg$w): New function.
64	* i386_disasm.c (i386_disasm): Reinitialize fmt always before
65	starting the loop to process the string.  Handle 0x90 special for
66	x86-64.
67	* i386_parse.y (fillin_arg): Expand synonyms before concatening to
68	form the function name.
69
702008-01-11  Ulrich Drepper  <drepper@redhat.com>
71
72	* i386_disasm.c (struct output_buffer): Remove symcb and symcbarg.
73	(i386_disasm): Remove appropriate initializers.
74	Use symcb to lookup symbol strings.
75
76	* i386_disasm.c (struct output_buffer): Add labelbuf, labelbufsize,
77	symaddr_use, and symaddr fields.
78	(i386_disasm): Remove labelbuf and labelbufsize variables.
79	Add back %e format.  Implement %a and %l formats.
80
81	* i386_data.h (general_mod$r_m): Set symaddr_use and symaddr for %rip
82	base addressing.
83
84	* i386_disasm.c (i386_disasm): Resize output buffer if necessary.
85	Optimize output_data initialization.  Free buffers before return.
86	(struct output_data): Remove op1str field.  Adjust code.
87	(i386_disasm): Store final NUL btye at end of functions.
88
892008-01-10  Ulrich Drepper  <drepper@redhat.com>
90
91	* i386_data.h (FCT_crdb): New function.
92	(FCT_ccc): Use FCT_crdb.
93	(FCT_ddd): Likewise.
94
95	* defs/i386: Fix a few instructions with immediate arguments.
96
97	* i386_disasm.c: Rewrite interface to callback functions for operands
98	to take a single pointer to a structure.
99	* i386_data.h: Adjust all functions.
100
1012008-01-08  Ulrich Drepper  <drepper@redhat.com>
102
103	* Makefile.am: Enable x86-64 again.
104	* defs/i386: Lots of changes for x86-64.
105	* i386_data.h: Add support for use in x86-64 disassembler.
106	* i386_disasm.c: Likewise.
107	* i386_parse.y: Likewise.
108	* defs/x86_64: Removed.
109
1102008-01-04  Ulrich Drepper  <drepper@redhat.com>
111
112	* defs/i386: Cleanups, remove masks which are not needed.
113	Add remaining Intel opcodes.
114	* i386_data.h (FCT_imm8): Check for input buffer overrun.
115	* i386_disasm.c (i386_disasm): Likewise.
116	* i386_parse.y: Remove suffixes which are not needed anymore.
117
1182008-01-03  Ulrich Drepper  <drepper@redhat.com>
119
120	* defs/i386: Add yet more SSE instructions.
121
1222008-01-02  Ulrich Drepper  <drepper@redhat.com>
123
124	* i386_disasm.c (i386_disasm): Extend matcher to allow tables to
125	contain instructions with prefixes.
126	* defs/i386: Use for many SSE operations.
127	* i386_data.h (FCT_mmxreg2): Removed.
128
1292008-01-01  Ulrich Drepper  <drepper@redhat.com>
130
131	* defs/i386: More 0f prefix support.
132	* i386_data.h (FCT_mmxreg): Implement.
133	(FCT_mmxreg2): Implement.
134	(FCT_mmreg): Remove.
135	* i386_disasm.c (i386_disasm): More special instructions.
136	Fix tttn suffix for cmov.
137	* i386_parse.y: Simplify test for mod/r_m mode.
138
1392007-12-31  Ulrich Drepper  <drepper@redhat.com>
140
141	* defs/i386: Fix order or arguments for mov of control/debug registers.
142	* i386_data.h (FCT_ccc): Implement
143	(FCT_ddd): Implement
144
1452007-12-30  Ulrich Drepper  <drepper@redhat.com>
146
147	* defs/i386: Fix 0f groups 6 and 7.
148	* i386_data.c (FCT_mod$16r_m): Implement.
149	* i386_disasm.c (i386_disasm): Third parameter can also have string.
150
1512007-12-29  Ulrich Drepper  <drepper@redhat.com>
152
153	* defs/i386: Add lots of floating point ops.
154	* i386_data.h (FCT_fmod$fr_m): Removed.
155	(FCT_freg): Implement.
156	* i386_disasm.c (i386_disasm): Implement suffix_D.
157	* i386_parse.y: Emit suffix_D.
158
159	* defs/i386: Use rel instead of dispA.
160	Fix lcall, dec, div, idiv, imul, inc, jmp, ljmp, mul, neg, not, push,
161	test.
162
163	* i386_data.h (FCT_dispA): Removed.
164	(FCT_ds_xx): Add test for end of input buffer.
165	* i386_disasm.c (ABORT_ENTRY): Removed.
166	(i386_disasm): Fix handling of SIB.  Pass correct address value to
167	operand callbacks.
168
169	* Makefile.am (*.mnemonics): Filter out INVALID entry.
170	* defs/i386: Define imms8 and use in appropriate places.
171	Add INVALID entries for special opcodes with special mnemonics.
172	Fix int3.  Fix typo in shl.  Correct xlat.
173	* i386_data.h (FCT_ds_xx): New function.
174	(FCT_ds_si): Use it.
175	(FCT_ds_bx): New function.
176	(FCT_imms8): New function.
177	* i386_disasm.c (MNE_INVALID): Define.
178	(i386_disasm): Handle invalid opcodes in mnemonics printing, not
179	separately.  Fix address value passed to operand handlers.
180	* i386_parse.y (bx_reg): Define.
181	(instrtable_out): Handle INVALID entries differently, just use
182	MNE_INVALID value for .mnemonic.
183
1842007-12-28  Ulrich Drepper  <drepper@redhat.com>
185
186	* defs/i386: Fix shift and mov immediate instructions.
187	* i386_data.h (FCT_imm16): Implement.
188
189	* defs/i386: Use absval instead of abs of lcall and ljmp.
190	Add parameters for cmps.  Fix test and mov immediate.
191	* i386_data.h: Implement FCT_absval.
192	* i386_disasm.c: Handle data16 for suffix_w  and FCT_imm.
193
194	* defs/i386: Move entries with 0x9b prefix together.
195	* i386_disasm.c (i386_disasm): Fix recognizing insufficient bytes in
196	input.  Handle data16 with suffix_W.
197
198	* i386_data.h (FCT_*): Add end parameter to all functions.  Check
199	before using more bytes.
200	(FCT_sel): Implement.
201	* i386_disasm.c (i386_disasm): Better handle end of input buffer.
202	Specal opcode 0x99.
203
204	* Makefile.am: Use m4 to preprocess defs/* files.
205	* defs/i386: Adjust appropriately.
206	* i386_data.c (FCT_ax): Implement.
207	(FCT_ax$w): Use FCT_ax.
208	* i386_disasm.c (ADD_STRING): Use _len instead of len.
209	(i386_disasm): If no instruction can be matched because of lack of
210	input and prefixes have been matched, print prefixes.
211	Recognize abort entries.
212	Handle special cases.
213	* i386_gendis.c: Recognize - input file name.
214	* i386_lex.c: Recognize INVALID token.
215	* i386_parse.y: Handle INVALID token input.
216
217	* defs/i386: Fix mov, pop.
218	* i386_data.h (FCT_sreg3): Implement.
219
2202007-12-27  Ulrich Drepper  <drepper@redhat.com>
221
222	* defs/i386: Fix adc, add, cmp, or, sbb, sub, xchg, xor.
223	* i386_data.h (FCT_imms): New function.
224	(FCT_imm$s): Use FCT_imms for handling of signed values.
225	(FCT_imm8): Sign extend values.
226	* i386_disasm.c (i386_disasm): Implement suffix_w0.
227	* i386_parse.y: Emit suffix w0.
228
229	* i386_data.h (FCT_disp8): Add 0x prefix.
230	(FCT_ds_si): Implement.
231	* i386_disasm.c (i386_disasm): Increment addr for invalid prefixes.
232	Implement tttn suffix.
233	* i386_parse.y: Emit tttn suffix definition.
234
2352007-12-26  Ulrich Drepper  <drepper@redhat.com>
236
237	* i386_data.h (struct instr_enc): Use suffix field.
238	(FCT_dx): Fill in body.
239	(FCT_es_di): Likewise.
240	(FCT_imm$s): Sign-extended byte values.
241	* i386_disasm.c: Protect ADD_CHAR and ADD_STRING macros.  Adjust uses.
242	(i386_disasm): Handle suffix.
243	* i386_parse.y: Emit suffix information.
244	* defs/i386: Remove unnecessary suffixes.
245
246	* Makefile.am: Disable building x86-64 version for now.
247
248	* defs/i386: Fix and, bound, cmp, or, pop, sbb, sub, xor.
249	* i386_data.h: Pass pointer to prefix to functions.  If not prefixes
250	are consumed this means invalid input.
251	* i386_disasm.c: Fix prefix printing.  Adjust function calls for
252	parameter change.
253	* i386_parse.y: Recognize moda prefix.
254
2552007-12-21  Ulrich Drepper  <drepper@redhat.com>
256
257	* i386_data.h: Fix SIB handling.
258	* i386_disasm.c: Likewise.
259
2602007-12-19  Ulrich Drepper  <drepper@redhat.com>
261
262	* defs/i386: Fix up 'and' opcode.
263
2642007-10-31  Ulrich Drepper  <drepper@redhat.com>
265
266	* Makefile.am: Add dependencies of the generated files on the source
267	files.
268	(i386_lex_CFLAGS): Add -Wno-sign-compare.
269
270	* defs/i386: A lot more data.
271	* defs/x86_64: Likewise.
272	* i386_data.h (struct instr_enc): Add off1_3, off2_3, and off3_3
273	fields.
274	(opfct_t): Add parameter for third operand.
275	(FCT_*): Likewise.
276	(data_prefix): New function.
277	(FCT_abs): Implement.
278	(FCT_ax): Renamed to FCT_ax$w amd implement.
279	(FCT_disp8): Implement.
280	(FCT_dispA): Implement.
281	(FCT_imm): Implement.
282	(FCT_imm$w): Implement.
283	(FCT_imm$s): Don't zero-pad numbers.
284	(FCT_imm8): Likewise.
285	(FCT_rel): Likewise.
286	(general_mod$r_m): New function.
287	(FCT_mod$r_m): Use it.
288	(FCT_mod$r_m$w): New function.
289	(FCT_mod$8r_m): New function.
290	(FCT_reg): Correctly handle 16-bit registers.
291	(FCT_reg$w): New function.
292	* i386_disasm.c (i386_disasm): Handle prefixes better.
293	Pass third parameter to operand functions.
294	* i386_parse.y (struct instruction): Add off3 field.
295	Handle third operand throughout.
296
2972007-02-05  Ulrich Drepper  <drepper@redhat.com>
298
299	* i386_disasm.c: New file.
300	* i386_data.h: New file.
301	* i386_gendis.c: New file.
302	* i386_lex.l: New file.
303	* i386_parse.y: New file.
304	* memory-access.h: New file.
305	* x86_64_disasm.c: New file.
306	* defs/i386: New file.
307	* defs/i386.doc: New file.
308	* defs/x86_64: New file.
309
3102005-02-15  Ulrich Drepper  <drepper@redhat.com>
311
312	* Makefile (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2.
313
3142005-02-05  Ulrich Drepper  <drepper@redhat.com>
315
316	* Makefile.am (AM_CFLAGS): Define, instead of adding things to DEFS.
317
3182003-08-11  Ulrich Drepper  <drepper@redhat.com>
319
320	* Moved to CVS archive.
321