blob: 86d294782247abee851e2595a3ea3a8528ac6c64 [file] [log] [blame]
Brian Silverman86497922018-02-10 19:28:39 -050012018-02-09 Joshua Watt <JPEWhacker@gmail.com>
2
3 * i386_disasm.c (i386_disasm): Use FALLTHOUGH macro instead of
4 comment.
5
62017-08-18 Ulf Hermann <ulf.hermann@qt.io>
7
8 * memory-access.h: Use attribute_packed.
9
102017-02-27 Ulf Hermann <ulf.hermann@qt.io>
11
12 * Makefile.am: Use fpic_CFLAGS.
13
142017-07-18 Mark Wielaard <mark@klomp.org>
15
16 * Makefile.am: Don't check HAVE_LINUX_BPF_H, just define libcpu_bpf.
17 * bpf_disasm.c: Include bpf.h instead of linux/bpf.h. Don't define
18 BPF_PSEUDO_MAP_FD.
19
202017-04-20 Ulf Hermann <ulf.hermann@qt.io>
21
22 * Makefile.am: Add EXEEXT to gendis.
23
242017-04-20 Ulf Hermann <ulf.hermann@qt.io>
25
26 * i386_parse.y: Eliminate comparison_fn_t.
27
282016-11-02 Mark Wielaard <mjw@redhat.com>
29
30 * i386_disasm.c (i386_disasm): Add fallthrough comment.
31
322016-10-11 Akihiko Odaki <akihiko.odaki.4i@stu.hosei.ac.jp>
33
34 * i386_lex.l: Remove system.h include, add libeu.h include.
35 * i386_parse.y: Remove sys/param.h include, add libeu.h include.
36 * i386_disasm.c: Remove sys/param.h.
37
382016-09-05 Mark Wielaard <mjw@redhat.com>
39
40 * bpf_disasm.c: Define BPF_PSEUDO_MAP_FD if undefined.
41
422016-08-10 Richard Henderson <rth@redhat.com>
43
44 * bpf_disasm.c (bpf_disasm): Rearrange the printing of instructions
45 to use exactly the operands required.
46
472016-06-28 Richard Henderson <rth@redhat.com>
48
49 * Makefile.am (noinst_LIBRARIES): Add libcpu_bpf.a.
50 (libcpu_bpf_a_SOURCES, libcpu_bpf_a_CFLAGS): New.
51 * bpf_disasm.c: New file.
52 * i386_disasm.c (i386_disasm): Add ebl parameter.
53
542015-10-05 Josh Stone <jistone@redhat.com>
55
56 * Makefile.am (%_defs): Add AM_V_GEN and AM_V_at silencers.
57 ($(srcdir)/%_dis.h): Ditto.
58 (%.mnemonics): Add AM_V_GEN silencer.
59
602014-10-29 Jose E. Marchesi <jose.marchesi@oracle.com>
61
62 * Makefile.am (AM_CFLAGS): Use -fPIC instead of -fpic to avoid
63 relocation overflows in some platforms.
64
652014-04-13 Mark Wielaard <mjw@redhat.com>
66
67 * Makefile.am (i386_gendis_LDADD): Remove libmudflap.
68
692013-04-24 Mark Wielaard <mjw@redhat.com>
70
71 * Makefile.am: Use AM_CPPFLAGS instead of INCLUDES.
72
732012-10-10 Roland McGrath <roland@hack.frob.com>
74
75 * Makefile.am (%_defs, $(srcdir)/%_dis.h): Redirect to temp file,
76 mv into place with separate command.
77
782012-06-26 Roland McGrath <roland@hack.frob.com>
79
80 * Makefile.am [!MAINTAINER_MODE] ($(srcdir)/%_dis.h): New rule.
81
822012-02-24 Mark Wielaard <mjw@redhat.com>
83
84 * Makefile.am (CLEANFILES): Move %_dis.h to...
85 (MAINTAINERCLEANFILES): here.
86
872012-01-21 Ulrich Drepper <drepper@gmail.com>
88
89 * i386_disasm.c (ADD_NSTRING): Define.
90 (i386_disasm): Print color codes in the appropriate places.
91
922011-10-16 Roland McGrath <roland@hack.frob.com>
93
94 * Makefile.am (libcpu_i386_a_SOURCES): Add i386_dis.h.
95 (libcpu_x86_64_a_SOURCES): Add x86_64_dis.h.
96 (i386_disasm.o, x86_64_disasm.o): Depend on those in $(srcdir).
97 (%_dis.h): Renamed target pattern to ...
98 ($(srcdir)/%_dis.h): ... this.
99 (noinst_HEADERS, noinst_PROGRAMS): Put under [MAINTAINER_MODE].
100
1012010-08-16 Roland McGrath <roland@redhat.com>
102
103 * Makefile.am (%_defs): New pattern rule.
104 (%_dis.h, %.mnemonics): Define as pattern rules using %_defs input.
105 (CLEANFILES): Include all those files.
106
1072010-02-15 Roland McGrath <roland@redhat.com>
108
109 * Makefile.am: Use config/eu.am for common stuff.
110
1112009-04-14 Roland McGrath <roland@redhat.com>
112
113 * Makefile.am (AM_CFLAGS): Add -fdollars-in-identifiers; it is not the
114 default on every machine.
115
1162009-01-23 Roland McGrath <roland@redhat.com>
117
118 * Makefile.am (i386_parse_CFLAGS): Use quotes around command
119 substitution that can produce leading whitespace.
120
1212009-01-01 Ulrich Drepper <drepper@redhat.com>
122
123 * i386_parse.y (instrtable_out): Optimize match_data table by not
124 emitting 0xff masks for leading bytes.
125 * i386_disasm.c (i386_disasm): Adjust reader of match_data.
126
127 * i386_disasm.c (i386_disasm): Reset bufcnt when not matched. We
128 don't expect snprintf to fail.
129
1302008-12-31 Ulrich Drepper <drepper@redhat.com>
131
132 * defs/i386: Add dppd, dpps, insertps, movntdqa, mpsadbw, packusdw,
133 pblendvb, pblendw, pcmpeqq, pcmpestri, pcmpestrm, pcmpistri, pcmpistrm,
134 pcmpgtq, phminposuw, pinsrb, pinsrd, pmaxsb, pmaxsd, pmaxud, pmaxuw,
135 pminsb, pminsd, pminud, pminuw, pmovsxbw, pmovsxbd, pmovsxbq, pmovsxwd,
136 pmovsxwq, pmovsxdq, pmovzxbw, pmovzxbd, pmovzxbq, pmovzxwd, pmovzxwq,
137 pmovzxdq, pmuldq, pmulld, popcnt, ptest, roundss, roundps, roundpd,
138 and roundsd opcodes.
139
140 * i386_disasm.c (i386_disasm): Correct resizing of buffer.
141
142 * i386_parse.y (struct argstring): Add off element.
143 (off_op_str): New global variable.
144 (print_op_str): Print strings as concatenated strings. Keep track
145 of index and length. Update ->off element.
146 (print_op_str_idx): New function.
147 (instrtable_out): Mark op%d_fct as const.
148 Emit two tables for the strings: the string itself (op%d_str) and the
149 index table (op%d_str_idx).
150 * i386_disasm.c (i386_disasm): Adjust for new op%d_str definition.
151
152 * i386_disasm.c [X86_64] (i386_disasm): Handle rex prefix when
153 printing only prefix.
154
155 * i386_disasm.c (i386_disasm): Minor optimizations.
156
157 * i386_parse.y (instrtable_out): No need to emit index, the reader can
158 keep track.
159 * i386_disasm.c (i386_disasm): The index is not emitted anymore, no
160 need to skip it.
161
162 * i386_disasm.c (amd3dnow): Mark as const.
163
164 * defs/i386: Add blendvpd and blendvps opcodes.
165
1662008-12-30 Ulrich Drepper <drepper@redhat.com>
167
168 * defs/i386: Add blendpd and blendps opcodes.
169
1702008-12-19 Ulrich Drepper <drepper@redhat.com>
171
172 * defs/i386: Add entry for AMD 3DNOW.
173 * i386_disasm.c: Implement AMD 3DNOW disassembly.
174
1752008-12-17 Ulrich Drepper <drepper@redhat.com>
176
177 * i386_disasm.c (i386_disasm): If instruction matches prefix,
178 undoing the prefix match finishes the instruction.
179
1802008-01-21 Roland McGrath <roland@redhat.com>
181
182 * defs/i386: Fix typo in comment.
183 * i386_disasm.c (i386_disasm): Handle cltq, cqto.
184
185 * i386_parse.y: Add sanity check for NMNES macro value.
186 * Makefile.am (i386_parse.o): Fix target in dependency rule.
187 (i386_parse.h): New target with empty commands.
188 (i386_lex.o): Depend on it in place of i386_parse.c.
189
1902008-01-21 Ulrich Drepper <drepper@redhat.com>
191
192 * Makefile.am (EXTRA_DIST): Remove defs/x86_64.
193
1942008-01-14 Ulrich Drepper <drepper@redhat.com>
195
196 * defs/i386: Add fixes for opcodes with register number in opcode,
197 64-bit immediate forms, nop with rex.B.
198 * i386_data.h [X86_64] (FCT_imm64$w): New function.
199 (FCT_oreg): New function.
200 (FCT_oreg$w): New function.
201 * i386_disasm.c (i386_disasm): Reinitialize fmt always before
202 starting the loop to process the string. Handle 0x90 special for
203 x86-64.
204 * i386_parse.y (fillin_arg): Expand synonyms before concatening to
205 form the function name.
206
2072008-01-11 Ulrich Drepper <drepper@redhat.com>
208
209 * i386_disasm.c (struct output_buffer): Remove symcb and symcbarg.
210 (i386_disasm): Remove appropriate initializers.
211 Use symcb to lookup symbol strings.
212
213 * i386_disasm.c (struct output_buffer): Add labelbuf, labelbufsize,
214 symaddr_use, and symaddr fields.
215 (i386_disasm): Remove labelbuf and labelbufsize variables.
216 Add back %e format. Implement %a and %l formats.
217
218 * i386_data.h (general_mod$r_m): Set symaddr_use and symaddr for %rip
219 base addressing.
220
221 * i386_disasm.c (i386_disasm): Resize output buffer if necessary.
222 Optimize output_data initialization. Free buffers before return.
223 (struct output_data): Remove op1str field. Adjust code.
224 (i386_disasm): Store final NUL btye at end of functions.
225
2262008-01-10 Ulrich Drepper <drepper@redhat.com>
227
228 * i386_data.h (FCT_crdb): New function.
229 (FCT_ccc): Use FCT_crdb.
230 (FCT_ddd): Likewise.
231
232 * defs/i386: Fix a few instructions with immediate arguments.
233
234 * i386_disasm.c: Rewrite interface to callback functions for operands
235 to take a single pointer to a structure.
236 * i386_data.h: Adjust all functions.
237
2382008-01-08 Ulrich Drepper <drepper@redhat.com>
239
240 * Makefile.am: Enable x86-64 again.
241 * defs/i386: Lots of changes for x86-64.
242 * i386_data.h: Add support for use in x86-64 disassembler.
243 * i386_disasm.c: Likewise.
244 * i386_parse.y: Likewise.
245 * defs/x86_64: Removed.
246
2472008-01-04 Ulrich Drepper <drepper@redhat.com>
248
249 * defs/i386: Cleanups, remove masks which are not needed.
250 Add remaining Intel opcodes.
251 * i386_data.h (FCT_imm8): Check for input buffer overrun.
252 * i386_disasm.c (i386_disasm): Likewise.
253 * i386_parse.y: Remove suffixes which are not needed anymore.
254
2552008-01-03 Ulrich Drepper <drepper@redhat.com>
256
257 * defs/i386: Add yet more SSE instructions.
258
2592008-01-02 Ulrich Drepper <drepper@redhat.com>
260
261 * i386_disasm.c (i386_disasm): Extend matcher to allow tables to
262 contain instructions with prefixes.
263 * defs/i386: Use for many SSE operations.
264 * i386_data.h (FCT_mmxreg2): Removed.
265
2662008-01-01 Ulrich Drepper <drepper@redhat.com>
267
268 * defs/i386: More 0f prefix support.
269 * i386_data.h (FCT_mmxreg): Implement.
270 (FCT_mmxreg2): Implement.
271 (FCT_mmreg): Remove.
272 * i386_disasm.c (i386_disasm): More special instructions.
273 Fix tttn suffix for cmov.
274 * i386_parse.y: Simplify test for mod/r_m mode.
275
2762007-12-31 Ulrich Drepper <drepper@redhat.com>
277
278 * defs/i386: Fix order or arguments for mov of control/debug registers.
279 * i386_data.h (FCT_ccc): Implement
280 (FCT_ddd): Implement
281
2822007-12-30 Ulrich Drepper <drepper@redhat.com>
283
284 * defs/i386: Fix 0f groups 6 and 7.
285 * i386_data.c (FCT_mod$16r_m): Implement.
286 * i386_disasm.c (i386_disasm): Third parameter can also have string.
287
2882007-12-29 Ulrich Drepper <drepper@redhat.com>
289
290 * defs/i386: Add lots of floating point ops.
291 * i386_data.h (FCT_fmod$fr_m): Removed.
292 (FCT_freg): Implement.
293 * i386_disasm.c (i386_disasm): Implement suffix_D.
294 * i386_parse.y: Emit suffix_D.
295
296 * defs/i386: Use rel instead of dispA.
297 Fix lcall, dec, div, idiv, imul, inc, jmp, ljmp, mul, neg, not, push,
298 test.
299
300 * i386_data.h (FCT_dispA): Removed.
301 (FCT_ds_xx): Add test for end of input buffer.
302 * i386_disasm.c (ABORT_ENTRY): Removed.
303 (i386_disasm): Fix handling of SIB. Pass correct address value to
304 operand callbacks.
305
306 * Makefile.am (*.mnemonics): Filter out INVALID entry.
307 * defs/i386: Define imms8 and use in appropriate places.
308 Add INVALID entries for special opcodes with special mnemonics.
309 Fix int3. Fix typo in shl. Correct xlat.
310 * i386_data.h (FCT_ds_xx): New function.
311 (FCT_ds_si): Use it.
312 (FCT_ds_bx): New function.
313 (FCT_imms8): New function.
314 * i386_disasm.c (MNE_INVALID): Define.
315 (i386_disasm): Handle invalid opcodes in mnemonics printing, not
316 separately. Fix address value passed to operand handlers.
317 * i386_parse.y (bx_reg): Define.
318 (instrtable_out): Handle INVALID entries differently, just use
319 MNE_INVALID value for .mnemonic.
320
3212007-12-28 Ulrich Drepper <drepper@redhat.com>
322
323 * defs/i386: Fix shift and mov immediate instructions.
324 * i386_data.h (FCT_imm16): Implement.
325
326 * defs/i386: Use absval instead of abs of lcall and ljmp.
327 Add parameters for cmps. Fix test and mov immediate.
328 * i386_data.h: Implement FCT_absval.
329 * i386_disasm.c: Handle data16 for suffix_w and FCT_imm.
330
331 * defs/i386: Move entries with 0x9b prefix together.
332 * i386_disasm.c (i386_disasm): Fix recognizing insufficient bytes in
333 input. Handle data16 with suffix_W.
334
335 * i386_data.h (FCT_*): Add end parameter to all functions. Check
336 before using more bytes.
337 (FCT_sel): Implement.
338 * i386_disasm.c (i386_disasm): Better handle end of input buffer.
339 Specal opcode 0x99.
340
341 * Makefile.am: Use m4 to preprocess defs/* files.
342 * defs/i386: Adjust appropriately.
343 * i386_data.c (FCT_ax): Implement.
344 (FCT_ax$w): Use FCT_ax.
345 * i386_disasm.c (ADD_STRING): Use _len instead of len.
346 (i386_disasm): If no instruction can be matched because of lack of
347 input and prefixes have been matched, print prefixes.
348 Recognize abort entries.
349 Handle special cases.
350 * i386_gendis.c: Recognize - input file name.
351 * i386_lex.c: Recognize INVALID token.
352 * i386_parse.y: Handle INVALID token input.
353
354 * defs/i386: Fix mov, pop.
355 * i386_data.h (FCT_sreg3): Implement.
356
3572007-12-27 Ulrich Drepper <drepper@redhat.com>
358
359 * defs/i386: Fix adc, add, cmp, or, sbb, sub, xchg, xor.
360 * i386_data.h (FCT_imms): New function.
361 (FCT_imm$s): Use FCT_imms for handling of signed values.
362 (FCT_imm8): Sign extend values.
363 * i386_disasm.c (i386_disasm): Implement suffix_w0.
364 * i386_parse.y: Emit suffix w0.
365
366 * i386_data.h (FCT_disp8): Add 0x prefix.
367 (FCT_ds_si): Implement.
368 * i386_disasm.c (i386_disasm): Increment addr for invalid prefixes.
369 Implement tttn suffix.
370 * i386_parse.y: Emit tttn suffix definition.
371
3722007-12-26 Ulrich Drepper <drepper@redhat.com>
373
374 * i386_data.h (struct instr_enc): Use suffix field.
375 (FCT_dx): Fill in body.
376 (FCT_es_di): Likewise.
377 (FCT_imm$s): Sign-extended byte values.
378 * i386_disasm.c: Protect ADD_CHAR and ADD_STRING macros. Adjust uses.
379 (i386_disasm): Handle suffix.
380 * i386_parse.y: Emit suffix information.
381 * defs/i386: Remove unnecessary suffixes.
382
383 * Makefile.am: Disable building x86-64 version for now.
384
385 * defs/i386: Fix and, bound, cmp, or, pop, sbb, sub, xor.
386 * i386_data.h: Pass pointer to prefix to functions. If not prefixes
387 are consumed this means invalid input.
388 * i386_disasm.c: Fix prefix printing. Adjust function calls for
389 parameter change.
390 * i386_parse.y: Recognize moda prefix.
391
3922007-12-21 Ulrich Drepper <drepper@redhat.com>
393
394 * i386_data.h: Fix SIB handling.
395 * i386_disasm.c: Likewise.
396
3972007-12-19 Ulrich Drepper <drepper@redhat.com>
398
399 * defs/i386: Fix up 'and' opcode.
400
4012007-10-31 Ulrich Drepper <drepper@redhat.com>
402
403 * Makefile.am: Add dependencies of the generated files on the source
404 files.
405 (i386_lex_CFLAGS): Add -Wno-sign-compare.
406
407 * defs/i386: A lot more data.
408 * defs/x86_64: Likewise.
409 * i386_data.h (struct instr_enc): Add off1_3, off2_3, and off3_3
410 fields.
411 (opfct_t): Add parameter for third operand.
412 (FCT_*): Likewise.
413 (data_prefix): New function.
414 (FCT_abs): Implement.
415 (FCT_ax): Renamed to FCT_ax$w amd implement.
416 (FCT_disp8): Implement.
417 (FCT_dispA): Implement.
418 (FCT_imm): Implement.
419 (FCT_imm$w): Implement.
420 (FCT_imm$s): Don't zero-pad numbers.
421 (FCT_imm8): Likewise.
422 (FCT_rel): Likewise.
423 (general_mod$r_m): New function.
424 (FCT_mod$r_m): Use it.
425 (FCT_mod$r_m$w): New function.
426 (FCT_mod$8r_m): New function.
427 (FCT_reg): Correctly handle 16-bit registers.
428 (FCT_reg$w): New function.
429 * i386_disasm.c (i386_disasm): Handle prefixes better.
430 Pass third parameter to operand functions.
431 * i386_parse.y (struct instruction): Add off3 field.
432 Handle third operand throughout.
433
4342007-02-05 Ulrich Drepper <drepper@redhat.com>
435
436 * i386_disasm.c: New file.
437 * i386_data.h: New file.
438 * i386_gendis.c: New file.
439 * i386_lex.l: New file.
440 * i386_parse.y: New file.
441 * memory-access.h: New file.
442 * x86_64_disasm.c: New file.
443 * defs/i386: New file.
444 * defs/i386.doc: New file.
445 * defs/x86_64: New file.
446
4472005-02-15 Ulrich Drepper <drepper@redhat.com>
448
449 * Makefile (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2.
450
4512005-02-05 Ulrich Drepper <drepper@redhat.com>
452
453 * Makefile.am (AM_CFLAGS): Define, instead of adding things to DEFS.
454
4552003-08-11 Ulrich Drepper <drepper@redhat.com>
456
457 * Moved to CVS archive.