1 2009-09-08 Alan Modra <amodra@bigpond.net.au>
3 * ppc-opc.c (powerpc_macros <extrdi>): Allow n+b of 64.
5 2009-09-07 Alan Modra <amodra@bigpond.net.au>
7 * z8kgen.c (func): Fix thinko last patch.
9 2009-09-07 Alan Modra <amodra@bigpond.net.au>
11 * z8kgen.c (func): Stabilize qsort of identically named entries.
12 * z8k-opc.h: Regenerate.
14 2009-09-07 Tristan Gingold <gingold@adacore.com>
16 * po/opcodes.pot: Regenerate.
18 2009-09-07 Alan Modra <amodra@bigpond.net.au>
20 * configure.in (BUILD_LIBS, BUILD_LIB_DEPS): Define and subst.
21 * configure: Regenerate.
22 * Makefile.am (LIBIBERTY, BUILD_LIBIBERTY, BUILD_LIBINTL): Delete.
23 (BUILD_LIBS, BUILD_LIB_DEPS): Define. Use..
24 (i386-gen, ia64-gen, z8kgen): ..here.
25 * Makefile.in: Regenerate.
27 2009-09-07 Tristan Gingold <gingold@adacore.com>
29 * z8k-opc.h: Regenerate.
31 2009-09-05 Martin Thuresson <martin@mtme.org>
33 * ia64-dis.c (print_insn_ia64): Update code to use renamed member.
34 * m88k-dis.c (m88kdis): Rename variable class to in_class.
35 * tic80-opc.c (tic80_symbol_to_value, tic80_value_to_symbol):
36 Rename argument class to symbol_class.
38 2009-09-04 Jie Zhang <jie.zhang@analog.com>
40 * bfin-dis.c (decode_pseudodbg_assert_0): Change according
41 to the new encoding of DBGA, DBGAH, and DBGAL.
42 (_print_insn_bfin): Likewise.
44 2009-09-03 Jie Zhang <jie.zhang@analog.com>
46 * bfin-dis.c (_print_insn_bfin): Don't declare.
47 (print_insn_bfin): Don't declare.
49 (ignore_bits): Remove.
52 2009-09-03 Jie Zhang <jie.zhang@analog.com>
54 * bfin-dis.c (IS_DREG): Define.
60 (decode_REGMV_0): Check illegal register move instructions.
62 2009-09-03 Dave Korn <dave.korn.cygwin@gmail.com>
64 * Makefile.am (BUILD_LIBINTL): New variable.
65 (i386-gen$(EXEEXT_FOR_BUILD)): Use it.
66 (ia64-gen$(EXEEXT_FOR_BUILD)): And here.
67 (z8kgen$(EXEEXT_FOR_BUILD)): And here.
68 * Makefile.in: Regenerate.
70 2009-09-01 DJ Delorie <dj@redhat.com>
72 * mep-asm.c: Regenerate.
73 * mep-desc.c: Regenerate.
74 * mep-opc.c: Regenerate.
76 2009-09-01 Tristan Gingold <gingold@adacore.com>
78 * makefile.vms: Ported to Itanium VMS. Remove useless targets and
79 dependencies. Remove unused FORMAT variable.
80 * configure.com: New file to create build.com DCL script for
81 Itanium VMS or Alpha VMS.
83 2009-08-29 Martin Thuresson <martin@mtme.org>
85 * cris-dis.c (bytes_to_skip): Update code to use new name.
86 * i386-dis.c (putop): Update code to use new name.
87 * i386-gen.c (process_i386_opcodes): Update code to use
89 * i386-opc.h (struct template): Rename struct template to
90 insn_template. Update code accordingly.
91 * i386-tbl.h (i386_optab): Update type to use new name.
92 * ia64-dis.c (print_insn_ia64): Rename variable template
94 * tic30-dis.c (struct instruction, get_tic30_instruction):
95 Update code to use new name.
96 * tic54x-dis.c (has_lkaddr, get_insn_size)
97 (print_parallel_instruction, print_insn_tic54x, tic54x_get_insn):
98 Update code to use new name.
99 * tic54x-opc.c (tic54x_unknown_opcode, tic54x_optab):
100 Update type to new name.
101 * z8kgen.c (internal, gas): Rename variable new to new_op.
103 2009-08-28 H.J. Lu <hongjiu.lu@intel.com>
105 * Makefile.am (COMPILE_FOR_BUILD): Remove BUILD_CPPFLAGS.
106 Replace BUILD_CFLAGS with CFLAGS_FOR_BUILD.
107 (LINK_FOR_BUILD): Replace BUILD_CFLAGS/BUILD_LDFLAGS with
108 CFLAGS_FOR_BUILD/LDFLAGS_FOR_BUILD.
109 * Makefile.in: Regenerated.
111 2009-08-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
113 * Makefile.am (bfdlibdir, bfdincludedir): Move definition ...
114 [INSTALL_LIBBFD]: ... here, ...
115 [INSTALL_LIBBFD]: ... and empty overrides here.
116 [!INSTALL_LIBBFD]: (rpath_bfdlibdir): New variable.
117 [!INSTALL_LIBBFD] (libbfd_la_LDFLAGS): Use it.
118 * Makefile.in: Regenerate.
119 * configure: Regenerate.
121 2009-08-26 Philippe De Muyter <phdm@macqel.be>
123 * m68k-dis.c (print_insn_arg): Add movecr register names for
124 coldfire v4e families.
126 2009-08-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
128 * Makefile.am (SUBDIRS): Build '.' before 'po'.
129 (COMPILE_FOR_BUILD, LINK_FOR_BUILD, BUILD_LIBIBERTY)
130 (MOSTLYCLEANFILES, MAINTAINERCLEANFILES): New variables.
131 (i386-gen$(EXEEXT_FOR_BUILD)): Renamed from i386-gen, rewrite
132 using *BUILD variables, depend upon $(BUILD_LIBIBERTY).
133 (i386-gen.o): New rule.
134 ($(srcdir)/i386-init.h): Adjust.
135 (i386-opc.lo): Depend on $(srcdir)/i386-tbl.h.
136 (ia64-gen$(EXEEXT_FOR_BUILD)): Rename from ia64-gen, adjust likewise.
137 (ia64-gen.o): New rule.
138 (ia64_asmtab_deps): New variable.
139 ($(srcdir)/ia64-asmtab.c): Use it; adjust likewise.
140 (ia64-opc.lo): Depend on $(srcdir)/ia64-asmtab.c.
141 (s390-mkopc$(EXEEXT_FOR_BUILD)): Rename from s390-mkopc, adjust
143 (s390-opc.tab): Adjust.
144 (z8kgen$(EXEEXT_FOR_BUILD), z8kgen.o, $(srcdir)/z8k-opc.h): New
146 (z8k-dis.lo): Depend on $(srcdir)/z8k-opc.h.
147 * Makefile.in: Regenerate.
148 * z8kgen.c (gas): Avoid '/*' in comment.
149 * z8k-opc.h (func): Regenerate.
151 2009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
153 * Makefile.am (TARGET_LIBOPCODES_CFILES): New variable, taken
154 from $(CFILES), sorted, with dis-buf.c, dis-init.c, disassemble.c,
155 i386-gen.c, ia64-opc-a.c, ia64-opc-b.c, ia64-opc-f.c, ia64-opc-i.c,
156 ia64-opc-m.c, ia64-opc-d.c, ia64-gen.c, ia64-asmtab.c removed, and
158 (LIBOPCODES_CFILES): New variable, adding to
159 TARGET_LIBOPCODES_CFILES also non-target library sources.
160 (CFILES): Factorize based on $(LIBOPCODES_CFILES), adding generator
162 (ALL_MACHINES): Factorize based on $(TARGET_LIBOPCODES_CFILES).
163 (EXTRA_libopcodes_la_SOURCES): Use $(LIBOPCODES_CFILES).
164 * Makefile.in: Regenerate.
165 * po/POTFILES.in: Regenerate.
167 2009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
169 * Makefile.am (libopcodes_la_LDFLAGS): Initialize early.
170 [INSTALL_LIBBFD] (bfdlib_LTLIBRARIES): Set only in this condition.
171 [INSTALL_LIBBFD] (bfdinclude_DATA): New.
172 [!INSTALL_LIBBFD] (noinst_LTLIBRARIES): New.
173 [!INSTALL_LIBBFD] (libopcodes_la_LDFLAGS): Ensure libopcodes.la
174 is built shared even if it is not to be installed.
175 (install-bfdlibLTLIBRARIES,uninstall-bfdlibLTLIBRARIES)
176 (install_libopcodes, uninstall_libopcodes): Remove.
177 (AM_CPPFLAGS): Renamed from ...
178 (INCLUDES): ... this.
179 * Makefile.in: Regenerate.
181 * Makefile.am (AUTOMAKE_OPTIONS): Remove 1.9 and cygnus, add
182 1.11, foreign, no-dist.
183 (MKDEP, m32c_opc_h): Remove variables.
184 (disassemble.lo): Rewrite using automake-style dependency
185 tracking rules; only list the dependency upon the primary source
186 file, but no included headers.
187 (m32c-asm.lo, m32c-desc.lo, m32c-dis.lo, m32c-ibld.lo, m32c-opc.lo)
188 (i386-gen.o, ia64-gen.o): Remove dependency statements.
189 (EXTRA_libopcodes_la_SOURCES): New variable, list $(CFILES) to
190 ensure all dependency fragments are included in the Makefile.
191 (s390-opc.lo): Depend on s390-opc.tab.
192 (DEP, DEP1, dep.sed, dep, dep-in, dep-am): Remove rules.
193 (mkdep section): Remove.
194 * Makefile.in: Regenerate.
195 * po/POTFILES.in: Regenerate.
197 * Makefile.am (install-pdf, install-html): Remove.
198 * Makefile.in: Regenerate.
200 * Makefile.in: Regenerate.
201 * aclocal.m4: Likewise.
202 * config.in: Likewise.
203 * configure: Likewise.
205 2009-08-06 Michael Eager <eager@eagercon.com>
207 * Makefile.am: Add microblaze-opc.h to HFILES, microblaze-dis.c to
208 CFILES, microblaze-dis.lo to ALL_MACHINES, targets.
209 * Makefile.in: Regenerate.
210 * configure.in: Add bfd_microblaze_arch target.
211 * configure: Regenerate.
212 * disassemble.c: Define ARCH_microblaze, return
213 print_insn_microblaze().
214 * microblaze-dis.c: New MicroBlaze disassembler.
215 * microblaze-opc.h: New MicroBlaze opcode definitions.
216 * microblaze-opcm.h: New MicroBlaze opcode types.
218 2009-07-25 H.J. Lu <hongjiu.lu@intel.com>
220 * configure.in: Handle bfd_l1om_arch.
221 * disassemble.c (disassembler): Likewise.
223 * configure: Regenerated.
225 * i386-dis.c (print_insn): Handle bfd_mach_l1om and
226 bfd_mach_l1om_intel_syntax. Use 8 bytes per line for Intel L1OM.
228 * i386-gen.c (cpu_flag_init): Set CPU_UNKNOWN_FLAGS to ~CpuL1OM.
230 (cpu_flags): Add CpuL1OM.
231 (set_bitfield): Take an argument to set the value field.
232 (process_i386_cpu_flag): Support ~CpuXXX and ~(CpuXXX|CpuYYY).
233 (process_i386_opcode_modifier): Updated.
234 (process_i386_operand_type): Likewise.
235 * i386-init.h: Regenerated.
236 * i386-tbl.h: Likewise.
238 * i386-opc.h (CpuL1OM): New.
240 (i386_cpu_flags): Add cpul1om.
242 2009-07-24 Jan Beulich <jbeulich@novell.com>
244 * i386-dis.c (fgrps): Correct annotation for feni/fdisi. Add
246 * i386-gen.c (cpu_flag_init): Add FP enabling flags where needed.
247 (cpu_flags): Add Cpu8087, Cpu287, Cpu387, Cpu687, and CpuFISTTP.
248 (set_bitfield): Expand CpuFP to Cpu8087|Cpu287|Cpu387.
249 * i386-opc.h (Cpu8087, Cpu287, Cpu387, Cpu687, CpuFISTTP):
251 (union i386_cpu_flags): Add cpu8087, cpu287, cpu387, cpu687,
253 * i386-opc.tbl: Qualify floating point instructions by their
254 respective CpuXXX flag. Fix fucom{,p,pp}, fprem1, fsin, fcos,
255 and fsincos to be avilable only on 387. Fix fstsw ax to be
256 available only on 287+. Add f{,n}eni, f{,n}disi, f{,n}setpm,
258 * i386-init.h, i386-tbl.h: Regenerate.
260 2009-07-20 Nick Clifton <nickc@redhat.com>
263 * arm-dis.c (arm_opcodes): Catch non-zero bits 8-11 in register
264 offset or indexed based addressing mode 3.
266 2009-07-14 Nick Clifton <nickc@redhat.com>
269 * arm-dis.c (arm_opcodes): Catch illegal Addressing Mode 1
271 (arm_decode_shift): Catch illegal register based shifts.
272 (print_insn_arm): Properly handle negative register r0
273 post-indexed addressing.
275 2009-07-10 Doug Kwan <dougkwan@google.com>
277 * arm-disc.c (print_insn_coprocessor, print_insn_arm): Print only
278 lower 32 bits of long types to make hexadecimal output consistent
279 on both 32-bit and 64-bit hosts.
281 2009-07-10 Alan Modra <amodra@bigpond.net.au>
283 * fr30-desc.c, * fr30-desc.h, * fr30-opc.c, * fr30-opc.h,
284 * frv-desc.c, * frv-desc.h, * frv-opc.c, * frv-opc.h,
285 * ip2k-desc.c, * ip2k-desc.h, * ip2k-opc.c, * ip2k-opc.h,
286 * iq2000-desc.c, * iq2000-desc.h, * iq2000-opc.c, * iq2000-opc.h,
287 * lm32-desc.c, * lm32-desc.h, * lm32-opc.c, * lm32-opc.h,
288 * lm32-opinst.c, * m32c-desc.c, * m32c-desc.h, * m32c-opc.c,
289 * m32c-opc.h, * m32r-desc.c, * m32r-desc.h, * m32r-opc.c,
290 * m32r-opc.h, * m32r-opinst.c, * mt-desc.c, * mt-desc.h,
291 * mt-opc.c, * mt-opc.h, * openrisc-desc.c, * openrisc-desc.h,
292 * openrisc-opc.c, * openrisc-opc.h, * xc16x-desc.c, * xc16x-desc.h,
293 * xc16x-opc.c, * xc16x-opc.h, * xstormy16-desc.c, * xstormy16-desc.h,
294 * xstormy16-opc.c, * xstormy16-opc.h: Regenerate.
296 2009-07-07 Chung-Lin Tang <cltang@pllab.cs.nthu.edu.tw>
298 * arm-dis.c (coprocessor_opcodes): Fix mask for waddbhus.
300 2009-07-07 Nick Clifton <nickc@redhat.com>
303 * arm-dis.c (arm_opcodes): Be more strict about decoding scaled
306 2009-07-06 DJ Delorie <dj@redhat.com>
308 * mep-desc.c: Regenerate.
309 * mep-desc.h: Regenerate.
310 * mep-opc.c: Regenerate.
311 * mep-opc.h: Regenerate.
313 2009-07-06 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
315 * i386-opc.h (CpuFMA4): Add CpuFMA4.
316 (i386_cpu_flags): New.
317 * i386-gen.c: Add CPU_FMA4_FLAGS.
318 * i386-opc.tbl: Add FMA4 instructions.
319 * i386-tbl.h: Regenerate.
320 * i386-init.h: Regenerate.
321 * i386-dis.c (OP_VEX_FMA): New. Handle FMA4.
322 (OP_XMM_VexW): Ditto.
324 (VEXI4_Fixup): Ditto.
325 (VexI4, VexFMA, Vex128FMA, EXVexW, EXdVexW, XMVexW): New Macros.
326 (PREFIX_VEX_3A5C, PREFIX_VEX_3A5D, PREFIX_VEX_3A5E): New.
327 (PREFIX_VEX_3A5F, PREFIX_VEX_3A60): New.
328 (PREFIX_VEX_3A68, PREFIX_VEX_3A69, PREFIX_VEX_3A6A): New.
329 (PREFIX_VEX_3A6B, PREFIX_VEX_3A6C, PREFIX_VEX_3A6D): New.
330 (PREFIX_VEX_3A6E, PREFIX_VEX_3A6F, PREFIX_VEX_3A7A): New.
331 (PREFIX_VEX_3A7B, PREFIX_VEX_3A7C, PREFIX_VEX_3A7D): New.
332 (PREFIX_VEX_3A7E, PREFIX_VEX_3A7F): New.
333 (VEX_LEN_3A6A_P_2,VEX_LEN_3A6B_P_2, VEX_LEN_3A6E_P_2): New.
334 (VEX_LEN_3A6F_P_2,VEX_LEN_3A7A_P_2, VEX_LEN_3A7B_P_2): New.
335 (VEX_LEN_3A7E_P_2,VEX_LEN_3A7F_P_2): New.
336 (get_vex_imm8): New. handle FMA4.
337 (OP_EX_VexReg): Ditto.
339 2009-06-30 Nick Clifton <nickc@redhat.com>
342 * arm-dis.c (coprocessor): Print the LDC and STC versions of the
343 LFM and SFM instructions as comments,.
344 Improve consistency of formatting for instructions displayed as
345 comments and decimal values displayed with their hexadecimal
349 2009-06-29 Nick Clifton <nickc@redhat.com>
352 * arm-dis.c (enum opcode_sentinels): New: Used to mark the
353 boundary between variaant and generic coprocessor instuctions.
354 (coprocessor): Use it.
355 Fix architecture version of MCRR and MRRC instructions.
356 (arm_opcdes): Fix patterns for STRB and STRH instructions.
357 (print_insn_coprocessor): Check architecture and extension masks.
358 Print a hexadecimal version of any decimal constant that is
359 outside of the range of -16 to +32.
360 (print_arm_address): Add a return value of the offset used in the
361 adress, if it is worth printing a hexadecimal version of it.
362 (print_insn_neon): Print a hexadecimal version of any decimal
363 constant that is outside of the range of -16 to +32.
364 (print_insn_arm): Likewise.
365 (print_insn_thumb16): Likewise.
366 (print_insn_thumb32): Likewise.
369 * arm-dis.c (UNDEFINED_INSTRUCTION): New macro for a description
370 of an undefined instruction.
371 (arm_opcodes): Use it.
372 (thumb_opcod): Use it.
373 (thumb32_opc): Use it.
375 2009-06-23 DJ Delorie <dj@redhat.com>
377 * mep-desc.c: Regenerate.
378 * mep-desc.h: Regenerate.
379 * mep-dis.c: Regenerate.
380 * mep-ibld.c: Regenerate.
381 * mep-opc.c: Regenerate.
383 * mep-asm.c: Regenerate.
384 * mep-opc.c: Regenerate.
385 * mep-opc.h: Regenerate.
387 2009-06-22 Nick Clifton <nickc@redhat.com>
389 * po/fi.po: Updated Finish translation.
391 2009-06-22 Alan Modra <amodra@bigpond.net.au>
393 * m32c-asm.c: Regenerate.
395 2009-06-22 Alan Modra <amodra@bigpond.net.au>
397 * score-dis.c (print_insn_score48, print_insn_score32): Move default
398 case label to proper lexical block.
399 * score7-dis.c (print_insn_score32): Likewise.
401 2009-06-19 Martin Schwidefsky <sschwidefsky@de.ibm.com>
403 * s390-opc.c (INSTR_RR_0R_OPT, INSTR_RX_0RRD_OPT, MASK_RR_0R_OPT,
404 MASK_RX_0RRD_OPT): New instruction formats with optional arguments.
405 * s390-opc.txt (nopr, nop): Use new instruction format.
407 2009-06-18 Nick Clifton <nickc@redhat.com>
410 * arm-dis.c (print_insn_coprocessor): Check that a user specified
411 ARM architecture supports the matched instruction.
412 (print_insn_arm): Likewise.
413 (select_arm_features): New function. Fills in the fields of an
414 arm_feature_set structure based on a given arm machine number.
415 (print_insn): Initialise an arm_feature_set structure.
417 2009-06-16 Maciej W. Rozycki <macro@linux-mips.org>
419 * vax-dis.c (is_function_entry): Return success for synthetic
421 (is_plt_tail): New function.
422 (print_insn_vax): Decode PLT entry offset longword.
424 2009-06-15 Nick Clifton <nickc@redhat.com>
427 * arm-dis.c (thumb32_opcodes): Fix binary value of SEV.W
431 * cr16-dis.c (print_arg): Avoid printing the 0x prefix twice.
433 2009-06-15 Nick Clifton <nickc@redhat.com>
436 * arm-dis.c (print_insn): Ignore is_data if the user has requested
437 the disassembly of data as well as instructions.
439 2009-06-11 Doug Evans <dje@sebabeach.org>
441 * cgen.sh: Handle multiple simultaneous runs for parallel makes.
443 2009-06-11 Anthony Green <green@moxielogic.com>
445 * moxie-opc.c (moxie_form1_opc_info): Remove branch instructions.
446 (moxie_form3_opc_info): Add branch instructions.
447 * moxie-dis.c (print_insn_moxie): Disassemble MOXIE_F3_PCREL
448 encoded instructions.
450 2009-06-06 Anthony Green <green@moxielogic.com>
452 * moxie-opc.c: Recode some MOXIE_F1_4 opcodes as MOXIE_F1_M.
453 * moxie-dis.c (print_insn_moxie): Handle MOXIE_F1_M case.
455 2009-06-04 Alan Modra <amodra@bigpond.net.au>
457 * dep-in.sed: Don't use \n in replacement part of s command.
458 * Makefile.am (DEP1): LC_ALL for uniq.
459 * Makefile.in: Regenerate.
461 2009-06-02 Nick Clifton <nickc@redhat.com>
463 * po/nl.po: Updated Dutch translation.
465 2009-06-02 Tristan Gingold <gingold@adacore.com>
467 * ia64-gen.c (parse_resource_users, print_dependency_table,
468 add_dis_table_ent, finish_distable, insert_bit_table_ent,
469 add_dis_entry, compact_distree, gen_dis_table, completer_entries_eq,
470 get_prefix_len, compute_completer_bits, insert_opcode_dependencies,
471 insert_completer_entry, print_completer_entry, print_completer_table,
472 opcodes_eq, add_opcode_entry, shrink): Use ISO C syntax for functions.
474 2009-05-28 DJ Delorie <dj@redhat.com>
476 * mep-asm.c: Regenerate.
477 * mep-desc.c: Regenerate.
479 2009-05-26 DJ Delorie <dj@redhat.com>
481 * mep-asm.c: Regenerate.
482 * mep-desc.c: Regenerate.
483 * mep-desc.h: Regenerate.
484 * mep-dis.c: Regenerate.
485 * mep-ibld.c: Regenerate.
486 * mep-opc.c: Regenerate.
487 * mep-opc.h: Regenerate.
489 2009-05-26 Nick Clifton <nickc@redhat.com>
491 * po/id.po: Updated Indonesian translation.
492 * po/opcodes.pot: Updated template file.
494 2009-05-26 Alan Modra <amodra@bigpond.net.au>
496 * dep-in.sed: Don't modify .o to .lo here. Output one filename
497 per line with all lines having continuation backslash. Prefix
498 first line with "A", following lines with "B".
499 * Makefile.am (DEP): Don't use dep.sed here.
500 (DEP1): Run $MKDEP on single files, modify .o to .lo here. Use
501 dep.sed here on dependencies, sort and uniq.
502 * Makefile.in: Regenerate.
504 2009-05-25 Tristan Gingold <gingold@adacore.com>
506 * makefile.vms (OPT): New variable.
507 (CFLAGS): Update compilation flags.
509 2009-05-22 DJ Delorie <dj@redhat.com>
511 * mep-asm.c: Regenerate.
512 * mep-desc.c: Regenerate.
513 * mep-desc.h: Regenerate.
514 * mep-dis.c: Regenerate.
515 * mep-ibld.c: Regenerate.
516 * mep-opc.c: Regenerate.
517 * mep-opc.h: Regenerate.
519 2009-05-22 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
521 * i386-opc.h (Cpusse5): Delete.
522 (i386_cpu_flags): Delete.
523 * i386-gen.c: Remove CpuSSE5, Drex, Drexv and Drexc.
524 * i386-opc.tbl: Remove SSE5 instructions.
525 * i386-tbl.h: Regenerate.
526 * i386-init.h: Regenerate.
527 * i386-dis.c (OP_E_memeory, OP_E_extended): Remove drex handling.
528 (print_drex_arg): Delete.
531 (OP_DREX_ICMP): Delete.
532 (OP_DREX_FCMP): Delete.
534 (THREE_BYTE_0F24, THREE_BYTE_0F25, THREE_BYTE_0f7B): Delete.
536 2009-05-22 Alan Modra <amodra@bigpond.net.au>
538 * Makefile.am: Run "make dep-am".
539 * Makefile.in: Regenerate.
540 * po/POTFILES.in: Regenerate.
542 2009-05-19 DJ Delorie <dj@redhat.com>
544 * mep-asm.c: Regenerate.
545 * mep-opc.c: Regenerate.
547 2009-04-30 DJ Delorie <dj@redhat.com>
549 * mep-asm.c: Regenerate.
550 * mep-desc.c: Regenerate.
551 * mep-desc.h: Regenerate.
552 * mep-dis.c: Regenerate.
553 * mep-ibld.c: Regenerate.
554 * mep-opc.c: Regenerate.
555 * mep-opc.h: Regenerate.
557 2009-04-17 DJ Delorie <dj@redhat.com
559 * mep-desc.c: Regenerate.
560 * mep-ibld.c: Regenerate.
561 * mep-opc.c: Regenerate.
562 * mep-opc.h: Regenerate.
564 2009-04-15 Anthony Green <green@moxielogic.com>
566 * moxie-opc.c, moxie-dis.c: Created.
567 * Makefile.am: Build the moxie source files.
568 * configure.in: Add moxie support.
569 * Makefile.in, configure: Rebuilt.
570 * disassemble.c (disassembler): Add moxie support.
571 (ARCH_moxie): Define.
573 2009-04-15 Jan Beulich <jbeulich@novell.com>
575 * i386-opc.tbl (protb, protw, protd, protq): Set opcode
577 (pshab, pshaw, pshad, pshaq): Likewise.
578 * i386-tbl.h: Re-generate.
580 2009-04-08 DJ Delorie <dj@redhat.com
582 * mep-asm.c: Regenerate.
583 * mep-desc.c: Regenerate.
584 * mep-desc.h: Regenerate.
585 * mep-dis.c: Regenerate.
586 * mep-ibld.c: Regenerate.
587 * mep-opc.c: Regenerate.
588 * mep-opc.h: Regenerate.
590 2009-04-07 Peter Bergner <bergner@vnet.ibm.com>
592 * ppc-opc.c (powerpc_opcodes) <"tlbilxlpid", "tlbilxpid", "tlbilxva",
593 "tlbilx">: Use secondary opcode "18" as per the ISA 2.06 documentation.
594 Reorder entries so the extended mnemonics are listed before tlbilx.
596 2009-04-02 Peter Bergner <bergner@vnet.ibm.com>
598 * ppc-dis.c (powerpc_init_dialect): Do not choose a default dialect
600 (print_insn_powerpc): Make sure we only deprecate instructions using
601 the original dialect and not a modified dialect due to -Many handling.
602 Move the handling of the condition register and default operands to
603 the end of the if/else if/else chain.
604 * ppc-opc.c (powerpc_opcodes): Reorder the opcode table so that
605 instructions from newer processors are listed before older ones.
606 <"icblce", "sync", "eieio", "tlbld">: Deprecate for processors
607 that have instructions with conflicting opcodes.
609 2009-04-01 Peter Bergner <bergner@vnet.ibm.com>
611 * ppc-opc.c (powerpc_opcodes) <"dcbzl">: Merge the POWER4 and
614 2009-04-01 Christophe Lyon <christophe.lyon@st.com>
616 * arm-dis.c (print_insn): Print BE8 opcodes in little endianness.
618 2009-03-30 Joseph Myers <joseph@codesourcery.com>
620 * arm-dis.c (print_insn): Also check section matches in backwards
621 search for mapping symbol.
623 2009-03-26 H.J. Lu <hongjiu.lu@intel.com>
625 * i386-dis.c (get_valid_dis386): Abort on unhandled table.
627 2009-03-18 Alan Modra <amodra@bigpond.net.au>
629 * cgen-opc.c: Include alloca-conf.h rather than alloca.h.
630 * Makefile.am: Run "make dep-am".
631 * Makefile.in: Regenerate.
632 * openrisc-opc.c: Regenerate.
634 2009-03-10 Nick Clifton <nickc@redhat.com>
636 * po/id.po: Updated Indonesian translation.
638 2009-03-10 Alan Modra <amodra@bigpond.net.au>
640 * ppc-dis.c: Include "opintl.h".
641 (struct ppc_mopt, ppc_opts): New.
642 (ppc_parse_cpu): New function.
643 (powerpc_init_dialect): Use it.
644 (print_ppc_disassembler_options): Dump options from ppc_opts.
645 Internationalize message.
647 2009-03-06 Nick Clifton <nickc@redhat.com>
649 * po/es.po: Updated Spanish translation.
651 2009-03-04 Alan Modra <amodra@bigpond.net.au>
654 * configure.in: Test for ld --as-needed support. Link shared
655 libopcodes against libm.
656 * configure: Regenerate.
658 2009-03-03 Peter Bergner <bergner@vnet.ibm.com>
660 * ppc-opc.c (powerpc_opcodes): Reorder the opcode table so that
661 instructions from newer processors are listed before older ones.
663 2009-03-03 Alan Modra <amodra@bigpond.net.au>
665 * Makefile.am: Run "make dep-am".
666 (HFILES): Move lm32-desc.h and lm32-opc.h from..
668 * Makefile.in: Regenerate.
670 2009-03-02 Qinwei <qinwei@sunnorth.com.cn>
672 * score7-dis.c: New file.
673 * Makefile.am: Add dependencies for score7-dis.c.
674 * Makefile.in: Regenerate.
675 * configure.in: Add score7-dis to score files.
676 * configure: Regenerate.
677 * score-dis.c: Add support for score7 architecture.
678 * score-opc.h: Likewise.
680 2009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
682 * configure: Regenerate.
684 2009-02-27 H.J. Lu <hongjiu.lu@intel.com>
686 * i386-dis.c (OP_EX): Call OP_E_memory instead of OP_E.
688 2009-02-26 Peter Bergner <bergner@vnet.ibm.com>
690 * ppc-dis.c (powerpc_init_dialect): Extend -Mpower7 to disassemble
691 the power7 and the isel instructions.
692 * ppc-opc.c (insert_xc6, extract_xc6): New static functions.
693 (insert_dm, extract_dm): Likewise.
694 (XB6): Update comment to include XX2 form.
695 (WC, XC6, SHW, DMEX, UIM, XX2, XX3RC, XX4, XX2_MASK, XX2UIM_MASK,
696 XX2BF_MASK, XX3BF_MASK, XX3SHW_MASK, XX4_MASK, XWC_MASK, POWER7): New.
697 (RemoveXX3DM): Delete.
698 (powerpc_opcodes): <"lfdp", "lfdpx", "mcrxr", "mftb", "mffgpr",
699 "mftgpr">: Deprecate for POWER7.
700 <"fres", "fres.", "frsqrtes", "frsqrtes.", "fre", "fre.", "frsqrte",
701 "frsqrte.">: Deprecate the three operand form and enable the two
702 operand form for POWER7 and later.
703 <"wait">: Extend to accept optional parameter. Enable for POWER7.
704 <"waitsrv", "waitimpl">: Add extended opcodes.
705 <"ldbrx", "stdbrx">: Enable for POWER7.
706 <"cdtbcd", "cbcdtd", "addg6s">: Add POWER6 opcodes.
707 <"bpermd", "dcbtstt", "dcbtt", "dcffix.", "dcffix", "divde.", "divde",
708 "divdeo.", "divdeo", "divdeu.", "divdeu", "divdeuo.", "divdeuo",
709 "divwe.", "divwe", "divweo.", "divweo", "divweu.", "divweu", "divweuo.",
710 "divweuo", "fcfids.", "fcfids", "fcfidu.", "fcfidu", "fcfidus.",
711 "fcfidus", "fctidu.", "fctidu", "fctiduz.", "fctiduz", "fctiwu.",
712 "fctiwu", "fctiwuz.", "fctiwuz", "ftdiv", "ftsqrt", "lbarx", "lfiwzx",
713 "lharx", "popcntd", "popcntw", "stbcx.", "sthcx.">: Add POWER7 opcodes.
714 <"lxsdux", "lxsdx", "lxvdsx", "lxvw4ux", "lxvw4x", "stxsdux", "stxsdx",
715 "stxvw4ux", "stxvw4x", "xsabsdp", "xsadddp", "xscmpodp", "xscmpudp",
716 "xscpsgndp", "xscvdpsp", "xscvdpsxds", "xscvdpsxws", "xscvdpuxds",
717 "xscvdpuxws", "xscvspdp", "xscvsxddp", "xscvuxddp", "xsdivdp",
718 "xsmaddadp", "xsmaddmdp", "xsmaxdp", "xsmindp", "xsmsubadp",
719 "xsmsubmdp", "xsmuldp", "xsnabsdp", "xsnegdp", "xsnmaddadp",
720 "xsnmaddmdp", "xsnmsubadp", "xsnmsubmdp", "xsrdpi", "xsrdpic",
721 "xsrdpim", "xsrdpip", "xsrdpiz", "xsredp", "xsrsqrtedp", "xssqrtdp",
722 "xssubdp", "xstdivdp", "xstsqrtdp", "xvabsdp", "xvabssp", "xvadddp",
723 "xvaddsp", "xvcmpeqdp.", "xvcmpeqdp", "xvcmpeqsp.", "xvcmpeqsp",
724 "xvcmpgedp.", "xvcmpgedp", "xvcmpgesp.", "xvcmpgesp", "xvcmpgtdp.",
725 "xvcmpgtdp", "xvcmpgtsp.", "xvcmpgtsp", "xvcpsgnsp", "xvcvdpsp",
726 "xvcvdpsxds", "xvcvdpsxws", "xvcvdpuxds", "xvcvdpuxws", "xvcvspdp",
727 "xvcvspsxds", "xvcvspsxws", "xvcvspuxds", "xvcvspuxws", "xvcvsxddp",
728 "xvcvsxdsp", "xvcvsxwdp", "xvcvsxwsp", "xvcvuxddp", "xvcvuxdsp",
729 "xvcvuxwdp", "xvcvuxwsp", "xvdivdp", "xvdivsp", "xvmaddadp",
730 "xvmaddasp", "xvmaddmdp", "xvmaddmsp", "xvmaxdp", "xvmaxsp",
731 "xvmindp", "xvminsp", "xvmovsp", "xvmsubadp", "xvmsubasp", "xvmsubmdp",
732 "xvmsubmsp", "xvmuldp", "xvmulsp", "xvnabsdp", "xvnabssp", "xvnegdp",
733 "xvnegsp", "xvnmaddadp", "xvnmaddasp", "xvnmaddmdp", "xvnmaddmsp",
734 "xvnmsubadp", "xvnmsubasp", "xvnmsubmdp", "xvnmsubmsp", "xvrdpi",
735 "xvrdpic", "xvrdpim", "xvrdpip", "xvrdpiz", "xvredp", "xvresp",
736 "xvrspi", "xvrspic", "xvrspim", "xvrspip", "xvrspiz", "xvrsqrtedp",
737 "xvrsqrtesp", "xvsqrtdp", "xvsqrtsp", "xvsubdp", "xvsubsp", "xvtdivdp",
738 "xvtdivsp", "xvtsqrtdp", "xvtsqrtsp", "xxland", "xxlandc", "xxlnor",
739 "xxlor", "xxlxor", "xxmrghw", "xxmrglw", "xxsel", "xxsldwi", "xxspltd",
740 "xxspltw", "xxswapd">: Add VSX opcodes.
742 2009-02-23 H.J. Lu <hongjiu.lu@intel.com>
744 * i386-gen.c (operand_type_init): Remove OPERAND_TYPE_VEX_IMM4.
745 (operand_types): Remove Vex_Imm4.
747 * i386-opc.h (Vex_Imm4): Removed.
749 (i386_operand_type): Remove vex_imm4.
751 * i386-opc.tbl: Remove Vex_Imm4 comments.
752 * i386-init.h: Regenerated.
753 * i386-tbl.h: Likewise.
755 2009-02-23 Richard Earnshaw <rearnsha@arm.com>
757 * arm-dis.c (neon_opcodes): Correct bit-mask and patterns for
758 vq{r}shr{u}n.s64 insnstructions.
760 2009-02-19 Peter Bergner <bergner@vnet.ibm.com>
762 * ppc-opc.c (powerpc_opcodes) <"lfdepx", "stfdepx">: Fix the first
763 operand to be a float point register (FRT/FRS).
765 2009-02-18 Adam Nemet <anemet@caviumnetworks.com>
767 * mips-opc.c (mips_builtin_opcodes): Move the Octeon-specific
768 dmfc2 and dmtc2 before the architecture-level variants.
770 2009-02-18 Pierre Muller <muller@ics.u-strasbg.fr>
772 * fr30-opc.c: Regenerate.
773 * frv-opc.c: Regenerate.
774 * ip2k-opc.c: Regenerate.
775 * iq2000-opc.c: Regenerate.
776 * lm32-opc.c: Regenerate.
777 * m32c-opc.c: Regenerate.
778 * m32r-opc.c: Regenerate.
779 * mep-opc.c: Regenerate.
780 * mt-opc.c: Regenerate.
781 * xc16x-opc.c: Regenerate.
782 * xstormy16-opc.c: Regenerate.
783 * tic54x-dis.c (print_instruction): Avoid compiler warning on
786 2009-02-12 Nathan Sidwell <nathan@codesourcery.com>
788 * m68k-opc.c (m68k_opcodes): Add stldsr instruction.
790 2009-02-05 Peter Bergner <bergner@vnet.ibm.com>
792 * ppc-opc.c: Update copyright year.
793 (powerpc_opcodes) <"dcbt", "dcbtst">: Deprecate the Embedded operand
794 ordering for POWER4 and later and use the correct Server ordering.
796 2009-02-04 H.J. Lu <hongjiu.lu@intel.com>
798 AVX Programming Reference (January, 2009)
799 * i386-dis.c (PREFIX_VEX_3A44): New.
800 (VEX_LEN_3A44_P_2): Likewise.
801 (PREFIX_VEX_3A48): Updated.
802 (VEX_LEN_3A4C_P_2): Likewise.
803 (prefix_table): Add PREFIX_VEX_3A44.
804 (vex_table): Likewise.
805 (vex_len_table): Add VEX_LEN_3A44_P_2.
807 * i386-opc.tbl: Add PCLMUL + AVX instructions.
808 * i386-tbl.h: Regenerated.
810 2009-02-03 Sandip Matte <sandip@rmicorp.com>
812 * mips-dis.c (mips_cp0_names_xlr, mips_cp0sel_names_xlr): Define.
813 (mips_arch_choices): Add XLR entry.
814 * mips-opc.c (XLR): Define.
815 (mips_builtin_opcodes): Add XLR instructions.
817 2009-02-03 Carlos O'Donell <carlos@codesourcery.com>
819 * Makefile.am: Add install-pdf target.
820 * po/Make-in: Add install-pdf target.
821 * Makefile.in: Regenerate.
823 2009-02-02 DJ Delorie <dj@redhat.com>
825 * mep-asm.c: Regenerate.
826 * mep-desc.c: Regenerate.
827 * mep-desc.h: Regenerate.
828 * mep-dis.c: Regenerate.
829 * mep-ibld.c: Regenerate.
830 * mep-opc.c: Regenerate.
831 * mep-opc.h: Regenerate.
833 2009-01-29 Mark Mitchell <mark@codesourcery.com>
835 * arm-dis.c (thumb32_opcodes): Correct decoding for qadd, qdadd,
838 2009-01-28 Chao-ying Fu <fu@mips.com>
840 * mips-opc.c (suxc1): Add the flag of FP_D.
842 2009-01-20 Alan Modra <amodra@bigpond.net.au>
844 * fr30-asm.c, fr30-dis.c, fr30-ibld.c, frv-asm.c, frv-dis.c,
845 * frv-ibld.c, ip2k-asm.c, ip2k-dis.c, ip2k-ibld.c,
846 * iq2000-asm.c, iq2000-dis.c, iq2000-ibld.c, m32c-asm.c,
847 * m32c-dis.c, m32c-ibld.c, m32r-asm.c, m32r-dis.c,
848 * m32r-ibld.c, mep-asm.c, mep-dis.c, mep-ibld.c, mt-asm.c,
849 * mt-dis.c, mt-ibld.c, openrisc-asm.c, openrisc-dis.c,
850 * openrisc-ibld.c, xc16x-asm.c, xc16x-dis.c, xc16x-ibld.c,
851 * xstormy16-asm.c, xstormy16-dis.c, xstormy16-ibld.c: Regenerate.
853 2009-01-16 Alan Modra <amodra@bigpond.net.au>
855 * configure.in (commonbfdlib): Delete.
856 (SHARED_LIBADD): Add pic libiberty if such is available.
857 * configure: Regenerate.
858 * po/POTFILES.in: Regenerate.
860 2009-01-14 Peter Bergner <bergner@vnet.ibm.com>
862 * ppc-dis.c (print_insn_powerpc): Skip insn if it is deprecated.
863 * ppc-opc.c (powerpc_opcodes) <mtfsf, mtfsf.>: Deprecate the two
864 operand form and enable the four operand form for POWER6 and later.
865 <mtfsfi, mtfsfi.>: Deprecate the two operand form and enable the
866 three operand form for POWER6 and later.
868 2009-01-14 Mike Frysinger <vapier@gentoo.org>
870 * bfin-dis.c (OUTS): Use "%s" as format string.
872 2009-01-13 H.J. Lu <hongjiu.lu@intel.com>
874 * i386-gen.c (cpu_flag_init): Remove a white space.
875 (operand_type_init): Likewise.
877 2009-01-12 H.J. Lu <hongjiu.lu@intel.com>
879 * i386-opc.tbl: Add NoAVX to movnti, lfence and mfence.
880 * i386-tbl.h: Regenerated.
882 2009-01-12 H.J. Lu <hongjiu.lu@intel.com>
884 * i386-dis.c (dis386): Use EbS on addB, orB, adcB, sbbB, andB,
885 subB, xorB and cmpB. Use EvS on addS, orS, adcS, sbbS, andS,
888 2009-01-10 H.J. Lu <hongjiu.lu@intel.com>
890 * i386-gen.c (cpu_flag_init): Replace CpuP4 and CpuK6 with
891 CpuClflush and CpuSYSCALL, respectively. Remove CpuK8. Add
892 CPU_COREI7_FLAGS, CPU_CLFLUSH_FLAGS and CPU_SYSCALL_FLAGS.
893 (cpu_flags): Remove CpuP4, CpuK6 and CpuK8. Add CpuClflush
896 (set_bitfield): Take an argument, lineno. Don't report lineno
897 on error if it is -1.
898 (process_i386_cpu_flag): Take an argument, lineno.
899 (process_i386_opcode_modifier): Likewise.
900 (process_i386_operand_type): Likewise.
901 (output_i386_opcode): Likewise.
902 (opcode_hash_entry): Add lineno.
903 (process_i386_opcodes): Updated.
904 (process_i386_registers): Likewise.
905 (process_i386_initializers): Likewise.
907 * i386-opc.h (CpuP4): Removed.
911 (CpuSYSCALL): Likewise.
913 (i386_cpu_flags): Remove cpup4, cpuk6 and cpuk8. Add
914 cpuclflush and cpusyscall.
916 * i386-opc.tbl: Update movnti, clflush, lfence, mfence, pause,
918 * i386-init.h: Regenerated.
919 * i386-tbl.h: Likewise.
921 2009-01-09 H.J. Lu <hongjiu.lu@intel.com>
923 * i386-gen.c (cpu_flag_init): Add CpuRdtscp to CPU_K8_FLAGS
924 and CPU_AMDFAM10_FLAGS. Add CPU_RDTSCP_FLAGS.
925 (cpu_flags): Add CpuRdtscp.
926 (set_bitfield): Remove CpuSledgehammer check.
928 * i386-opc.h (CpuRdtscp): New.
930 (i386_cpu_flags): Add cpurdtscp.
932 * i386-opc.tbl: Replace CpuSledgehammer with CpuRdtscp.
933 * i386-init.h: Regenerated.
934 * i386-tbl.h: Likewise.
936 2009-01-09 Peter Bergner <bergner@vnet.ibm.com>
938 * ppc-opc.c (PPCNONE): Define.
940 (powerpc_opcodes): Initialize the new "deprecated" field.
942 2009-01-06 H.J. Lu <hongjiu.lu@intel.com>
944 AVX Programming Reference (December, 2008)
945 * i386-dis.c (VEX_LEN_2B_M_0): Removed.
946 (VEX_LEN_E7_P_2_M_0): Likewise.
947 (VEX_LEN_2C_P_1): Updated.
948 (VEX_LEN_E8_P_2): Likewise.
949 (vex_len_table): Remove VEX_LEN_2B_M_0 and VEX_LEN_E7_P_2_M_0.
950 (mod_table): Likewise.
952 * i386-opc.tbl: Add 256bit vmovntdq, vmovntpd and vmovntps.
953 * i386-tbl.h: Regenerated.
955 2009-01-05 H.J. Lu <hongjiu.lu@intel.com>
957 * i386-gen.c (process_copyright): Update for 2009.
959 * i386-init.h: Regenerated.
960 * i386-tbl.h: Likewise.
962 2009-01-05 H.J. Lu <hongjiu.lu@intel.com>
964 AVX Programming Reference (December, 2008)
965 * i386-dis.c (OP_VEX_FMA): Removed.
966 (OP_EX_VexW): Likewise.
967 (OP_EX_VexImmW): Likewise.
968 (OP_XMM_VexW): Likewise.
969 (VEXI4_Fixup): Likewise.
970 (VPERMIL2_Fixup): Likewise.
973 (Vex128FMA): Likewise.
977 (EXVexImmW): Likewise.
979 (VPERMIL2): Likewise.
980 (PREFIX_VEX_3A48...PREFIX_VEX_3A4A): Likewise.
981 (PREFIX_VEX_3A5C...PREFIX_VEX_3A5F): Likewise.
982 (PREFIX_VEX_3A68...PREFIX_VEX_3A6F): Likewise.
983 (PREFIX_VEX_3A78...PREFIX_VEX_3A7F): Likewise.
984 (VEX_LEN_3A6A_P_2...VEX_LEN_3A6F_P_2): Likewise.
985 (VEX_LEN_3A7A_P_2...VEX_LEN_3A7F_P_2): Likewise.
986 (get_vex_imm8): Likewise.
987 (OP_EX_VexReg): Likewise.
988 vpermil2_op): Likewise.
990 (vex_w_dq_mode): Likewise.
991 (PREFIX_VEX_3896...PREFIX_VEX_389F): Likewise.
992 (PREFIX_VEX_38A6...PREFIX_VEX_38AF): Likewise.
993 (PREFIX_VEX_38B6...PREFIX_VEX_38BF): Likewise.
995 (PREFIX_VEX_38DB): Likewise.
996 (PREFIX_VEX_3A4A): Likewise.
997 (PREFIX_VEX_3A60): Likewise.
998 (PREFIX_VEX_3ADF): Likewise.
999 (VEX_LEN_3ADF_P_2): Likewise.
1000 (prefix_table): Remove PREFIX_VEX_3A48...PREFIX_VEX_3A4A,
1001 PREFIX_VEX_3A5C...PREFIX_VEX_3A5F,
1002 PREFIX_VEX_3A68...PREFIX_VEX_3A6F and
1003 PREFIX_VEX_3A78...PREFIX_VEX_3A7F. Add
1004 PREFIX_VEX_3896...PREFIX_VEX_389F,
1005 PREFIX_VEX_38A6...PREFIX_VEX_38AF and
1006 PREFIX_VEX_38B6...PREFIX_VEX_38BF.
1007 (vex_table): Likewise.
1008 (vex_len_table): Remove VEX_LEN_3A6A_P_2...VEX_LEN_3A6F_P_2
1009 and VEX_LEN_3A7A_P_2...VEX_LEN_3A7F_P_2.
1010 (putop): Support "%XW".
1011 (intel_operand_size): Handle vex_w_dq_mode.
1013 * i386-opc.h (VexNDS): Add a comment for VEX NDS and VEX DDS.
1015 * i386-opc.tbl: Remove vpermil2pd/vpermil2ps and old FMA
1016 instructions. Add new FMA instructions.
1017 * i386-tbl.h: Regenerated.
1019 2009-01-02 Matthias Klose <doko@ubuntu.com>
1021 * or32-opc.c (or32_print_register, or32_print_immediate,
1022 disassemble_insn): Don't rely on undefined sprintf behaviour.
1024 For older changes see ChangeLog-2008
1030 version-control: never