809
[darwin-xtools.git] / cctools / otool / notes
blobdbd8f5ecf318ade94542cd6d2a16d5bd07c7fbea
1 TODO:
2 - Change pad in PPC_THREAD_STATE to vrsave.  Print the altivec state.
3 - HPPA, bring the private version of mach/hppa/thread_status.h in sync with
4   the kernel header and change ofile_print.c to recognize new thread states.
6 Changes for the 5.29 release (the cctools-803 release):
7 - Added printing archive member offsets when -aV is specified.  Radar bug
8   #9354605.
10 Changes for the 5.29 release (the cctools-800.3 release):
11 - Added support for armv7[fk] to print_arch() and print_cputype() in
12   ofile_print.c and to print_text() in main.c . Radar bug #8987684.
14 Changes for the 5.29 release (the cctools-800 release):
15 - Fixed the arm VCVT (between half-precision and single-precision) instructions
16   encodings.  Had the op bit inverted in the table.  It should have been:
17     VCVT<c><q>.F32.F16 <Qd>, <Dm> Encoded as op = 1 (aka fcvtshp)
18     VCVT<c><q>.F16.F32 <Dd>, <Qm> Encoded as op = 0 (aka fcvthps)
19   Radar bug #8951023.
21 Changes for the 5.28 release (the cctools-798 release):
22 - Changed arm_disasm.c to use the arm assembly comment character '@' instead of
23   the intel comment character ';' so the output of otool(1) can be assembled.
25 Changes for the 5.28 release (the cctools-797 release):
26 - Added support for LC_DYLD_ENVIRONMENT in ofile_print.c . Radar bug #8653976.
28 Changes for the 5.28 release (the cctools-796 release):
29 - Fixed the arm disassembly of vq{r}shr{u}n instructions.  The masks should have
30   not included the 0x00300000 as those were part of the imm6 feild and not part
31   of the opcode.  Radar bug# 8597212.
32 - Fixed the i386 (32-bit) disassembly of displacement to not have more than
33   32-bits.  Radar bug #8454529.
34 - Fixed the movabs disassembly to print the correct suffix.
36 Changes for the 5.28 release (the cctools-795 release):
37 - Fixed the disassemble of the first operand in the specific case for i386 of
38   the "move doubleword to quadword with sign-extension" that was broken with
39   the fix to Radar bug #8017633.  Where it needed to only clear the rex byte
40   when the opcode was not 0x63.  Radar bug #8325388.
42 Changes for the 5.28 release (the cctools-794 release):
43 - Updated ofile_print.c to print the MH_NO_HEAP_EXECUTION flag. Radar bug
44   #8457105.
46 Changes for the 5.28 release (the cctools-790 release):
47 - Added moves for the arm Media and VFP Feature Registers 1 and 0 to
48   arm_disasm.c .  Radar bug #8246341.
50 Changes for the 5.27 release (the cctools-784 release):
51 - Changed the handling of printing the Objective-C section to deal with iOS
52   simulator binaries being 32-bit intel and in the Objective-C 2 ABI.  The
53   change was to have print_objc_segment() now return a bool if the binary does
54   not have the __OBJC segment and is an I386 binrary.  Then the code in main()
55   sets up and calls print_objc2_32bit().  Radar bug #7912209.
56 - Added print_version_min_command() to ofile_print.[ch] and support for
57   printing the LC_FUNCTION_STARTS load command.  Radar bug #7902277.
58 - Fixed the disassembly of first operand of a movzw{l,q} in i386_disassemble()
59   in i386_disasm.c for the case MOVZ by setting rex to 0 after calling
60   get_reg_name() to get the second argument.  Radar bug #8017633.
61 - Fixed the disassembly of j*cxz instructions in i386_disassemble() in
62   i386_disasm.c for the case BD to look at if the target is 64-bit and look for
63   the Address-size override prefix byte to print the correct form of the
64   mnemonic.  Also fixed the constants in displacement() in i386_disasm.c
65   when sign extending a byte and a word to be unsigned long long values.
66   Radar bug #8061602.
68 Changes for the 5.27 release (the cctools-783 release):
69 - Added the -llvm_mc option to disassemble so llvm-mc will assemble.
70 - Added printing the section types to support thread local variables,
71   added printing the X86_64_RELOC_TLV and GENERIC_RELOC_TLV relocation types,
72   and added printing the indirect table entries for sections of type
73   S_THREAD_LOCAL_VARIABLE_POINTERS to ofile_print.c . Radar bug #7796734.
75 Changes for the 5.28 release (the cctools-782 release):
76 - Fixed a bug with disassembling crc32b in 64-bit when a register greater than
77   8 is used.  In i386_disasm.c the array REG64_BYTE[] was extended to include
78   the other 8 register names and the code that uses it had (REX_B(rex) << 3)
79   or'ed into the index with the existing r_m bits.  
80 - Added support for disassembling the Intel aes instructions.  Radar bug
81   #7709572.
83 Changes for the 5.28 release (the cctools-781 release):
84 - Added support for LC_LOAD_UPWARD_DYLIB to print_loadcmds(), print_libraries(),
85   print_dylib_command() and print_hints() in ofile_print.c . Radar bug #7659206.
86 - Fixed a problem with 64-bit disassembly of call instructions getting the
87   incorrect target.  Radar bug #7615109.
89 Changes for the 5.28 release (the cctools-777 release):
90 - Removed -fno-builtin-round from the Makefile.  Radar bug #7475139.
91 - Changed the Makefile to use -Os for OFLAG.  Radar bug #7475093.
93 Changes for the 5.27 release (the cctools-775 release):
94 - Added the print_immediate_func() to arm_disasm.c to print out the movw and
95   movt instruction immediates with the new arm HALF relocation entries.
96   Updated print_relocs() in ofile_print.c to print out the new arm HALF 
97   relocation entries.  Radar bug #7421496.
98 - Fixed a bug in the print_address_func() in arm_disasm.c where it needed the
99   pc also passed to it be able to match that up with the r_address of a
100   relocation entry.
102 Changes for the 5.27 release (the cctools-774 release):
103 - Fixed the intel disassembly in i386_disasm.c so that make a386_test and make
104   ax86_64_test targets in the cctools as directory will work.  Radar bug 7414888
105 - Added the disassembly of the invvpid and invept instructions to
106   i386_disasm.c .  Radar bug #7383743.
108 Changes for the 5.27 release (the cctools-772 release):
109 - Fixed the disassembly of vshll where the table entry on line 751 had the first
110   and second register operands switched.  Radar bug 7308888.
112 Changes for the 5.27 release (the cctools-764 release):
113 - Changed the license on all otool source files.  Radar bug #6538662.
115 Changes for the 5.27 release (the cctools-763 release):
116 - Added the disassembly for the rrx instructions to arm_disasm.c .  Radar bug
117   #7098328.
119 Changes for the 5.27 release (the cctools-762 release):
120 - Changed the Makefile to set CC when when SDKROOT is set.  Radar bug #7078805.
122 Changes for the 5.27 release (the cctools-760 release):
123 - Fixed a problem with the leading address for raw text bytes of x86_64 not
124   being printed as a 64-bit hex value.  The fix was in print_text() in main.c .
125   Radar bug #7012357,
127 Changes for the 5.27 release (the cctools-759 release):
128 - Added the disassembly for the pldw, vcvt.f32.f16, vcvt.f16.f32, vcvtt and
129   vcvtb instructions to arm_disasm.c .  Radar bug #6959129.
130 - Added printing the memory barrior options ish, ishst, osh and oshst and
131   changed un to nsh and unst to nshst in arm_disasm.c . Radar bug #6982242.
132 - Changed the Makefile to add -isysroot $(SDKROOT) to compile and link lines
133   when SDKROOT is set.  Radar bug #6965029.
135 Changes for the 5.27 release (the cctools-757 release):
136 - Fixed a problem with 64-bit call (near) instructions not showing 64-bit
137   register names.  This is a special case where in a 64-bit object the
138   FF /2 opcode results in a 64-bit operand even without a rex prefix byte.
139   So added logic for this in the case of indirect to memory or register operand
140   to set the REX.W bit to indicate 64-bit operand size.  Radar bug #6907058.
142 Changes for the 5.27 release (the cctools-755 release):
143 - Fixed a problem with 64-bit intel binaries not having their addresses correct
144   for call targets when some of the high 32-bits are set.  Changed the type of
145   the parameter value of displacement() in i386_disasm.c from uint32_t to
146   uint64_t.  And change the two uses to use the variable imm0 instead of value0
147   in i386_disassemble() in i386_disasm.c . Radar bug #6740004.
149 Changes for the 5.27 release (the cctools-754 release):
150 - Changed the Objective C data printers to account for the LC_ENCRYPTION_INFO
151   load command causing some of the sections to be encrypted.  Code and fields
152   were added to print_objc.c, print_objc2_32bit.c and print_objc2_64bit.c to
153   set the protected field of the sections structure based on the range of the
154   LC_ENCRYPTION_INFO load command if present.  Radar bug #6784286.
156 Changes for the 5.27 release (the cctools-753 release):
157 - Change the #ifdef around the print_x86_thread_state32 lable in ofile_print.c
158   to removed a warning when compiled on Tiger.
160 Changes for the 5.27 release (the cctools-752 release):
161 - Ported to build with clang.
162   - Changed Makefile to work around bugs 6761248 and 6756912.
163   - Added cast to int in ofile_print.c (two places) in switch statements.
164   - Removed an extra '%' in a printf() statement in "%movsldup\t" on line 2152
165     in i386_disasm.c.
166 - Fixed typos in the usage line for "symbolically".  Radar bug #6700325.
167 - Changed the printing of the uuid in print_uuid_command in ofile_print.c so it
168   matches how dwarfdump(1) prints it.  Radar bug #6723850.
170 Changes for the 5.27 release (the cctools-751 release):
171 - Changed the printing of Objective-C data so that strings from protected
172   sections are printed as "some string from a protected section" instead of
173   what looks like junk when the protected string is printed as characters.
174   Radar bug #5578032.
176 Changes for the 5.26 release (the cctools-750 release):
177 - Changed so that armv7 defaults to printing in thumb mode.  Moved in_thumb
178   boolean to a global in arm_disasm.[ch] and set it to TRUE in main.c if the
179   binary is armv7.  Radar bug 6651124.
180 - Fixed a problem with print_objc_segment() in print_objc.c that was incorrectly
181   using sizeof(void *) when it should have been using sizeof(uint32_t).
182   Radar bug #6652270.
183 - Updated ofile_print.c for the places it was missing code for
184   S_16BYTE_LITERALS.  Radar bug #5947957.
185 - Fixed the x86_64 disassembly of with and SIB byte when mode is 0 and base is 5
186   and ss is not zero so that it does not print a base register.  Radar bug
187   #6533811
189 Changes for the 5.26 release (the cctools-749 release):
190 - Fixed the printing of Objective-C meta data from 64-bit object files.  So that
191   every "dereference" of a pointer looks for a relocation entry.  Also added
192   the -V option to print the symbol names from the relocation entries.
193   Radar bug #6549235.
195 Changes for the 5.26 release (the cctools-737 release):
196 - Changed arm_r_types[] for entry 7 to T_BR32 in ofile_print.c for the new
197   ARM_THUMB_32BIT_BRANCH relocation type.  Radar bug #6511482.
198 - In print_insn() in arm_disasm.c removed the code at the end to check for
199   status of running into the end of the section's memory and returning a -1
200   for the size of bytes it disassembled (as that caused it to loop).  Radar
201   bug #6504790.
203 Changes for the 5.26 release (the cctools-733 release):
204 - In arm_dis.c, updated thumb ldmia instruction to handle the case where Rn is
205   in the register list and thus shouldn't be updated. Radar bug #6394340.
207 Changes for the 5.26 release (the cctools-725 release):
208 - Changed print_library_toc() in ofile_print.c to set toc_byte_sex to the
209   host_byte_sex if it is passed as UNKNOWN_BYTE_SEX as a better guess.
210   Radar bug #6303685.
211 - Added support for new compressed LINKEDIT information. Radar bug #6232822.
212   - Changed otool -lv to print out dyld_info command in ofile_print.[ch] .
214 Changes for the 5.26 release (the cctools-724 release):
215 - Updated print_mach_header() in ofile_print.c to print the MH_KEXT_BUNDLE
216   file type and the MH_DEAD_STRIPPABLE_DYLIB flag.  Radar bug #6272534.
218 Changes for the 5.26 release (the cctools-722 release):
219 - Changed print_ivar_list_t() in both print_objc2_32bit.c and
220   print_objc2_64bit.c to print the pointer value for ivar offsets in hex and
221   dereference that pointer and print the real offset as well.  Radar bug
222   #5733291.
224 Changes for the 5.26 release (the cctools-715 release):
225 - Fixed problems with the printing of the Objective-C meta data in print_objc.c
226   where if an object file has a non-zero sized section from the __OBJC segment
227   at address zero it will think NULL pointer feilds point to valid data.
228   The fixes were to the get_* routines to check the addr parameter to see it it
229   has the value of zero and if so return FALSE.  Also a few checks for lists
230   like ivars being past the end of a section needed a break not a continue to
231   terminate the loop.  Radar bug #6164922.
233 Changes for the 5.26 release (the cctools-714 release):
234 - Added the missing stuff for arm in print_arch() and print_cputype() in
235   ofile_print.c. Radar bug #6155212.
237 Changes for the 5.26 release (the cctools-712 release):
238 - Picked up fix to otool(1) -Lv when running on 64-bit hosts and calling
239   ctime() in print_libraries().  Radar bug #6107717.
240 - Picked up fix to otool(1) -ov when running on 64-bit hosts in
241   print_objc_segment() in print_objc.c when trying to print the Category
242   Definition count where it was using sizeof(void *) which should have been
243   sizeof(uint32_t).  Radar bug #6107717.
244 - Fixed another integer overflow problems in print_reloc() in ofile_print.c
245   Radar bug #5796857.
247 Changes for the 5.26 release (the cctools-708 release):
248 - Fixed integer overflows problems in ofile_print.c . Radar bug #5796857.
250 Changes for the 5.26 release (the cctools-705 release):
251 - Ported to work on 64-bit hosts.  Radar bug #6022298.
253 Changes for the 5.26 release (the cctools-701 release):
254 - Added printing the meta class for Objective-C 2 to both 32bit and 64bit
255   printing. Radar bug #5909952.
257 Changes for the 5.26 release (the cctools-700 release):
258 - Fix section printf format strings in print_objc2_64bit.c to limit segment
259   and section string lengths at 16 characters.  Radar bug #5912294.
261 Changes for the 5.26 release (the cctools-699 release):
262 - Added support for armv7 disassembly.  Radar bug #5874064.
263   - Removed the old arm-opc.h header and from the Makefile.
264   - Ported the GNU binutils version of src/opcodes/arm-dis.c into arm_disasm.c
265     that supports armv7.
267 Changes for the 5.25 release (the cctools-693 release):
268 - Added support for printing the objc 2.0 metadata in 32-bit Mach-O files.
269   Radar bug #5739542.
270   - Moved print_objc2.c to print_objc2_64bit.c and changed print_objc2() to
271     print_objc2_64bit()
272   - Copied print_objc2_64bit.c to print_objc2_32bit.c and changed every where
273     a 64-bit, pointer, name or value was used to used a 32-bit version.
274   - In print_objc2_32bit.c removed the reserved field from the class_ro_t
275     as it is a 64-bit only padding field.
276 - Made a change in print_indirect_symbols() in ofile_print.c so it does not get
277   spurious error about a load command extending past the end of the load
278   commands.  Radar bug #5728302.
279 - Made a change in print_indirect_symbols() in ofile_print.c to print ABSOLUTE
280   for cputype CPU_TYPE_I386 and S_SYMBOL_STUBS sections marked with just
281   INDIRECT_SYMBOL_ABS.  Radar bug #5829053.
283 Changes for the 5.25 release (the cctools-691 release):
284 - Added support for the LC_ENCRYPTION_INFO load command.  Radar bug #5811994.
285   - Added print_encryption_info_command() in ofile_print.[ch] .
286   - Added code in print_loadcmds() in ofile_print.c for LC_ENCRYPTION_INFO.
288 Changes for the 5.25 release (the cctools-690 release):
289 - Changed the Makefile to added -DEFI_SUPPORT if EFITOOLS is not via the top
290   level Makefile.  And #ifdef'ed EFI_SUPPORT the call to
291   print_coff_reloc_section() in main.c .Radar bug #5826370.
293 Changes for the 5.25 release (the cctools-688 release):
294 - Maded changes for the new LC_LAZY_LOAD_DYLIB load command. Radar bug #5760930.
295   - Added an test for the S_LAZY_DYLIB_SYMBOL_POINTERS section type in
296     processor() in main.c .
297   - In ofile_print.c these changes were made:
298     - print_loadcmds() had a case for LC_LAZY_LOAD_DYLIB added.
299     - print_loadcmds() had a case for LC_LAZY_LOAD_DYLIB added and a test of
300       LC_LAZY_LOAD_DYLIB to print the string "LC_LAZY_LOAD_DYLIB".
301     - print_section() had a test for S_LAZY_DYLIB_SYMBOL_POINTERS to print that
302       as a string and a test for printing "(index into indirect symbol table)"
303       after the reserved1 field.
304     - print_dylib_command() had a test for LC_LAZY_LOAD_DYLIB to print that as
305       a string.
306     - print_indirect_symbols() had a test for the S_NON_LAZY_SYMBOL_POINTERS
307       section type added.
308     - print_hints() had a case for LC_LAZY_LOAD_DYLIB added.
309     - guess_indirect_symbol() had a test for the S_NON_LAZY_SYMBOL_POINTERS
310       section type added in two places.
312 Changes for the 5.25 release (the cctools-683 release):
313 - Changed the Makefile to use OBJC_ABI for -fobjc-abi-version=1 since this is
314   not supported on Tiger.
316 Changes for the 5.25 release (the cctools-682 release):
317 - Added -fobjc-abi-version=1 to the Makefile rule for building print_objc.o
318   Since we're trying to get the objective-C 1.0 definitions and not the 2.0
319   definitions, this avoids problems with platforms where 2.0 is the default.
320   Radar bug #5725807.
322 Changes for the 5.25 release (the cctools-681 release):
323 - Removed all __OPEN_SOURCE__ references in Makefile, notes, arm_disasm.c,
324   main.c, ofile_print.c and otool.h .
325 - Fixed a bug in disassembly for the i386 SSE4.1 instruction insertps
326   where it had the second parameter as a general register not a xmm register.
327   The change was in i386_disam.c in the table entry for insertps to use
328   SSE4i not SSE4ifm.  Radar bug #5650346.
330 Changes for the 5.25 release (the cctools-677 release):
331 - Changed the Makefile to not use -Wno-long-double and -no-cpp-precomp .
332   Radar bug #5563553.
334 Changes for the 5.25 release (the cctools-676 release):
335 - Added printing S_DTRACE_DOF section type to print_section() in ofile_print.c.
336 - Fixed a problem with not all the i386 bad opcode bytes being printed.  The
337   fix was at the end of i386_disassemble() in i386_disasm.c for printing the
338   bad opcode byte to loop through all the length bytes it tried to disassemble
339   before it ran into the bad opcode.  Radar bug #4760658.
340 - Fixed a problem with warning message being printed for zero length sections
341   appearing at the end of object files that should have not been printed.  The
342   test in get_sect_info() in main.c was testing for >= and not > against the
343   object size.  Radar bug #4455994.
344 - Fixed the problems with x86_64 disassembly in printing the displacements or
345   their target symbols.  The problem was the code in displacement() in
346   i386_disasm.c did not take into account that instructions with and without
347   relocation entries are assembled differently than all other Mach-O files.
348   For x86_64 if it has a relocation entry the then displacement is an offset
349   even if the symbol is defined.  If not the displacement plus the pc is the
350   target address.  As part of the fix for this the addr and sect_addr needed
351   to be passed as 64-bit value to i386_disassemble() and displacement().  Then
352   the fix in displacement() was to construct a 64-bit target guess_addr if there
353   was no relocation entry found for the x86_64 case.  Radar bug #5122861.
354 - Added support to print the PECOFF base relocation table. Radar bug #5218665.
355   - The new routine print_coff_reloc_section() was added to the files
356     coff_print.[ch].
357   - Added code in main.c to test for the (__RELOC,__reloc) section being
358     passed as the -s arguments and call print_coff_reloc_section().
359   - The routine get_sect_info() was made extern in main.c and added to
360     ofile_print.h so it could be called by print_coff_reloc_section().
361 - Fixed a bug in print_label() where the addr argument was a unsigned long not
362   a uint64_t.  Changes in ofile_print.[ch] and print_objc.c. Radar bug #5186450.
364 Changes for the 5.25 release (the cctools-675 release):
365 - Changed print_indirect_symbols() so it would not crash if given a malformed
366   object file that had a segment command with a very large number of sections.
367   The fix was to add some size checking calculating the expected size in a
368   64 bit value compare that to see if it too large.  Radar bug #5405675.
370 Changes for the 5.25 release (the cctools-673 release):
371 - Changed the sources so the arm stuff is not in the open source version.
372   Radar bug #5326431.
373   - Changed the Makefile to #ifndef __OPEN_SOURCE__ out the arm files
374   - Added #ifndef __OPEN_SOURCE__ to the following files to bracket arm code:
375     main.c, ofile_print.c, otool.h and arm_disasm.c .
377 Changes for the 5.24 release (the cctools-665 release):
378 - Added the SSE4 instructions to the i386 disassembler.  The changes are in
379   i386_disasm.c . Radar bug #4943015.
381 Changes for the 5.24 release (the cctools-659 release):
382 - Fixed a bug in the i386 disassembler to correctly assume 64-bit immediates
383   for 64-bit object files with the MOV accumulator from memory operand (the to
384   memory operand was already fixed in cctools-646 for this radar).
385   The fix was for the OA case in i386_disassemble() in i386_disasm.c to
386   test if it was a 64-bit object and pass the last argument to OPSIZE as 1 in
387   that case.  Also changed for both the OA and AO case was to change the 
388   mnemonic to "movabsl".  Radar bug 4693534.
389 - Changed print_objc2() in print_objc2.c to handle the move all metadata for
390   objc-abi-version=2 out of segments __OBJC and __OBJC into the __DATA segment.
391   The section mappings that applied were as follows:
392     __DATA,__objc_classlist  was __OBJC2,__class_list
393     __DATA,__objc_catlist  was __OBJC2,__category_list
394     __DATA,__objc_protolist  was __OBJC2,__protocol_list
395     __DATA,__objc_msgrefs  was __OBJC2,__message_refs
396     __DATA,__objc_classrefs  was __OBJC2,__class_refs
397     __DATA,__objc_superrefs  was __OBJC2,__super_refs
398     __DATA,__objc_imageinfo  was __OBJC,__image_info
399   otool -ov for LP64 examines the sections named above, and looks for both names
400   (to avoid compiler revision lock).  Radar bug #5066149.
402 Changes for the 5.24 release (the cctools-656 release):
403 - Updated ofile_print.c to print the MH_PIE and MH_NO_REEXPORTED_DYLIBS flags.
404   Radar bug #5041291.
406 Changes for the 5.24 release (the cctools-653 release):
407 - Updated ofile_print.c to handle the LC_REEXPORT_DYLIB load command.  Radar
408   bug #4986624.
409 - Added printing the (__OBJC,__image_info) section info for 32-bit Mach-O files.
410   Radar bug #4983418.
412 Changes for the 5.24 release (the cctools-649 release):
413 - Added support for printing the objc 2.0 metadata in 64-bit Mach-O files.
414   Radar bug #4560930. 
416 Changes for the 5.24 release (the cctools-648 release):
417 - Added the print_init_term_pointer_section() routine to ofile_print.[ch] and
418   code to call in process() in main.c.  This is called when the section
419   specified with -s is a of the type S_MOD_{INIT,TERM}_FUNC_POINTERS. Radar bug
420   #4880624.
421 - Changed the check in get_symbol_table_info() in main.c to for the size of
422   the symbol table extending past the end of the file so the check does not
423   overflow and later cause problems.   Also changed the check in get_toc_info()
424   get_indirect_symbol_table_info(), get_module_table_info(), get_ref_info() and
425   get_hints_table_info in main.c so it does not have the same problems.
426   Radar bug #4868234.
427 - Changed the check in print_fat_headers() in ofile_print.c for the nfat_arch
428   being too large so the check does not overflow and later cause a crash.
429   Then changed the loop printing the fat_arch structs to break out if it gets
430   past the size of the file.  Radar bug #4860769.
432 Changes for the 5.24 release (the cctools-646 release):
433 - Fixed a bug in the i386 disassembler to correctly assume 64-bit immediates
434   for 64-bit object files with the MOV accumulator to memory operand.
435   The fix was for the AO case in i386_disassemble() in i386_disasm.c to
436   test if it was a 64-bit object and pass the last argument to OPSIZE as 1 in
437   that case.  Radar bug 4693534.
438 - Fixed a bug in the i386 disassembler to print the prefix rep not repz with the
439   ins, outs, movs, lods, and stos instructions.  The change was to check the
440   delayed prefix being printed to see if it was repz and the opcode was for
441   one of the instruction then print rep instead.  The change was in in
442   i386_disassemble() in i386_disasm.c . Radar bug #4467453.
443 - Fixed a bug in the i386 disassembler for opcodes with an SIB byte and with
444   mod = 0 which means disp32 with no base.  Also changed the 32-bit disassembly
445   to not print the scale if ss = 0.  These changes were in get_operand() in
446   i386_disasm.c .  Also changed print_text() in main.c to print the raw bytes
447   for CPU_TYPE_X86_64 objects as bytes not 32-bit values.  Radar bug #4523901.
449 Changes for the 5.24 release (the cctools-645 release):
450 - Added code in print_loadcmds() in ofile_print.[ch] to parse and print
451   an LC_RPATH load command.  Radar bug #4822880.
453 Changes for the 5.24 release (the cctools-644 release):
454 - Changed print_argstrings() in main.c to work with 64-bit Mach-O core files.
455   Radar bug #4458775.
457 Changes for the 5.24 release (the cctools-642 release):
458 - Changed i386_disassemble() in i386_disasm.c to understand x86 branch
459   prediction.  Radar bug #4474395.
461 Changes for the 5.24 release (the cctools-640 release):
462 - Changed the code in ofile_print.c use CPU_SUBTYPE_MASK to mask out the
463   capability bits from the cpusubtype on comparisons.  Also added printing the
464   capability bits. Radar bug #4754462.
466 Changes for the 5.24 release (the cctools-634 release):
467 - Changed print_loadcmds() and print_linkedit_data_command() in ofile_print.c to
468   handle LC_SEGMENT_SPLIT_INFO the same as LC_CODE_SIGNATURE.  Radar bug
469   #4695477.
471 Changes for the 5.24 release (the cctools-633 release):
472 - Changed main.c, i386_disasm.[ch], ppc_disasm.[ch], m68k_disasm.[ch],
473   sparc_disasm.[ch] and ofile_print.[ch] to deal with the change of type for
474   indirect symbols to uint32_t * when ported to 64-bit. Radar bug #4407440.
476 Changes for the 5.24 release (the cctools-630 release):
477 - Picked up a change that got dropped from the cctools-622.5 release which was:
478   - Support the new x86-64 relocation entry types for signed relocations
479     with offsets.  Radar bug #4664658.
480   Radar bug #4678307.
482 Changes for the 5.24 release (the cctools-629 release):
483 - Changed print_mach_header() to print MH_DSYM symbolically. Radar bug #4511760.
484 - Added the i386 memory nop to the i386 disassembler.  Radar bug #4096964.
486 Changes for the 5.24 release (the cctools-627 release):
487 - Ported the code to unify otool(1) and otool64(1).  Radar bug #3903136.
488   - Eliminated the #include "stuff/target_arch.h" and all the *_t typedefs that
489     were used from the header, the *_VALUE and *_NAME from the source files.
490   - Eliminated the use of #ifdefs and ARCH64 from the source files.
491   - Made many many changes passing extra parameters and adding test of the
492     CPU_ARCH_ABI64 bit in the cputype to determine if it is 64-bit ofile.
493   - Changed the Makefile to only build otool(1).
495 Changes for the 5.24 release (the cctools-626 release):
496 - Added code in print_loadcmds() in ofile_print.[ch] to parse and print
497   an LC_CODE_SIGNATURE load command.  Radar bug #4588023.
498 - Changed the Makefile to not build otool(1) -static.  Radar bug #4624240 and
499   fix to that in Radar bug #4633942.
501 Changes for the 5.23 release (the cctools-620 release):
502 - Added code in print_thread_states() in ofile_print.c to print the new and
503   missing x86 thread states.  Radar bug #4491230.
504 - Changed main.c to use target_addr_t instead of unsigned long for section
505   addresses, which causes 64-bit section addresses to be displayed correctly.
506   Radar bug #4591066.
508 Changes for the 5.23 release (the cctools-619 release):
509 - Changed displacement() in i386_disasm.c and #ifdef'ed out for ARCH64 so to
510   not add the addr and lenght.  Also changed get_symbol() in i386_disasm.c and
511   #ifdef'ed out for ARCH64 then handling of scattered_relocation_info .
512   Radar bug #4483416.
514 Changes for the 5.23 release (the cctools-618 release):
515 - Added support for displaying S_16BYTE_LITERALS sections.  Radar bug #4555162.
517 Changes for the 5.23 release (the cctools-617 release):
518 - Don't display a suffix when diassembling setCC instructions for i386.  Radar
519   bug #3873844.
520 - Disassemble x86-64 MOV instructions which take 8, 16, and 32-bit immediates
521   properly.  Radar bug #4555277.
522 - Changed i386_disasm.c to allow us to mark various instructions as being
523   implicitly pointer-sized and marked those instructions like that.  Radar bug
524   #4563547.
526 Changes for the 5.23 release (the cctools-614 release):
527 - Changed ofile_print.c to add macros that rename structure members of the 
528   ppc and i386 thread states for Unix conformance.  Radar bug #4508798.
530 Changes for the 5.23 release (the cctools-610 release):
531 - Added a few ifdef x86_THREAD_STATE64 to a few places to ofile_print.c
532   to allow it to build on Tiger.  Radar bug #4535019.
534 Changes for the 5.23 release taken from cctools-590.43 (the cctools-610
535 release):
536 - Added support for disassembling the Vanderpool instructions to the i386
537   disassembler.  Was radar bug #4427573 in cctools-590.43. Radar bug #4534436.
539 Changes for the 5.22 release (the cctools-590.37.3 release):
540 - Add back support for the E9 form of the jmp instruction for x86-64
541   disassembly. Radar bug #4489937.
542 - Use a 'q' suffix rather than an 'l' suffix when disassembling call and jmp
543   instructions for x86-64. Radar bug #4483621.
545 Changes for the 5.22 release (the cctools-590.36.3 release):
546 - Add support for the new relocation entry types for x86-64. Radar bug
547   #4475165.
548 - Print %cs, %fs, and %gs as 64-bit values in x86_64 thread states in otool.
549   Radar bug #4468148.
550 - Disassemble pushq instructions with extended x86_64 registers correctly.
551   Radar bug #4476218.
553 Changes for the 5.22 release (the cctools-590.36.1 release):
554 - Fix suffixes in x86-64 disassembly for push, pop, and moves to and from
555   control and debug registers, as well as disassembly of short jumps. Radar
556   bug #4467441.
558 Changes for the 5.22 release (the cctools-590.34.1 release):
559 - Disassemble x86-64 instructions with SIB bytes correctly. Radar bug
560   #4436608.
561 - Disassemble x86-64-specific instructions properly and don't recognize
562   i386-specific instructions when disassembling x86-64 code. Radar bug
563   #4437391.
564 - Disassemble the movslq instruction correctly for x86-64. Radar bug #4437197.
565 - Eliminated extraneous suffixes from disassembly of some i386 and
566   x86-64 instructions. Radar bug #4441526.
567 - Fixed x86-64 disassembly for moves to and from control and debug registers.
568   Radar bug #4439907.
570 Changes for the 5.22 release (the cctools-590.31.2 release):
571 - Added printing x86_THREAD_STATE64 in otool64.  Radar bug #4424303.
573 Changes for the 5.22 release (the cctools-590.31.1 release):
574 - Added support for the x86_64 architecture.  Radar bug #4345090.
575 - Added support for the Merom New Instructions.  Radar bug #4407298.
576 - Improved otool's output for a number of i386 instructions.
578 Changes for the 5.20 release (the cctools-590.25 release):
579 - Changed print_uuid_command() in ofile_print.c to use two line for the uuid[]
580   values.  Radar bug #3415593.
582 Changes for the 5.20 release (the cctools-590.24 release):
583 - Added support for DWARF.  Radar bug #4367423.
584   - Added printing S_ATTR_DEBUG to print_section() in ofile_print.c.
585   - Added print_uuid_command() to ofile_print.[ch]
587 Changes for the 5.20 release (the cctools-590.23 release):
588 - Changed print_thread_states() in ofile_print.c for the current i386 thread
589   states (#if i386_THREAD_STATE == 1 case) so that it does use the fields
590   of the i386_float_state struct when i386_EXCEPTION_STATE_COUNT is defined.
591   Radar bug #4350771.
593 Changes for the 5.20 release (the cctools-590.20 release):
594 - Removed the warnings when building. Radar bug #4340147.
595   - Added -fno-builtin-round to the Makefile.
597 Changes for the 5.19 release (the cctools-590.15 release):
598 - Adding printing SG_PROTECTED_VERSION_1 in print_segment_command() in
599   ofile_print.c .  Radar bug #4298526.
601 Changes for the 5.19 release (the cctools-590.14 release):
602 - Changed print_thread_states() in ofile_print.c for the current i386 thread
603   states (#if i386_THREAD_STATE == 1 case) so that it does not use the fields
604   of the i386_float_state struct.  Radar bug #4303606.
606 Changes for the 5.19 release (the cctools-590.12 release):
607 - Added printing MH_ALLOW_STACK_EXECUTION print_mach_header() in ofile_print.c .
608   Radar bug #4281171.
610 Changes for the 5.19 release (the cctools-590.11 release):
611 - Changed print_thread_states() in ofile_print.c for the current i386 thread
612   states (#if i386_THREAD_STATE == 1 case) so that it does not print the
613   obsolete1, obsolete2 or obsolete3 fields (or the same fields with the names
614   fpkind, initialized, exc_status via the #defines).  Removed the three added
615   #defined's from the change below now that they are no longer needed.  Radar
616   bug #4282026.
618 Changes for the 5.19 release (the cctools-590.10 release):
619 - Added three #defined's to ofile_print.c:
620     #define obsolete1 fpkind
621     #define obsolete2 initialized
622     #define obsolete3 exc_status
623   allow the source to build on Leopard with different fields in the struct
624   i386_float_state in <mach-o/i386/thread_status.h> . Radar bug #4279472.
625 - Added printing S_ATTR_SELF_MODIFYING_CODE to print_section() in ofile_print.c.
626   Radar bug #4202415.
628 Changes for the 5.19 release (the cctools-590.8 release):
629 - Changed print_thread_states() in ofile_print.c adding a #if for the new and
630   old i386 thread states.  And added code to print the new thread states.
631   Radar bug #4200908.
633 Changes for the 5.18 release (the cctools-589 release):
634 - Changed the Makefile and added a LEGACY macro with two defines to allow
635   the code to use the old field name "environ" from the i386 structs.
636   Radar bug #4113580.
638 Changes for the 5.18 release (the cctools-583 release):
639 - Changed the Makefile so that when RC_XBS is set to YES then the compiler
640   options -MD and -dependency-file as well as the md(1) program are not used.
641   Radar bug #4029936.
643 Changes for the 5.18 release (the cctools-580 release):
644 - Fixed the i386 opcode for the ud2 instruction.  It was disassembled from
645   0x0f 0xff. And should be disassembled from 0x0f 0x0b according to the Intel
646   manual.  The change was in i386_disasm.c . Radar bug #4085845.
647 - Changed the PowerPC disassembler to use "mtocrf" instead of "mtcrf" when bit
648   11 is set and likewise "mfocrf" instead "mfcr" in ppc_disasm.c.  Radar bug #
649   4034280.
650 - Changed the i386 disassembler to print constants so they would assemble
651   with the same width as they were in the object file.  The change was in
652   print_operand() in i386_disasm.c. To see if the the value_size is smaller
653   than 32-bits and signed, then sign extend it and force the size to be 32-bits.
654   Radar bug #4079507.
656 Changes for the 5.18 release (the cctools-578 release):
657 - Added support for sse3 instructions.  Changes were in i386_disasm.c .
658   Radar bug #4014327.
660 Changes for the 5.17 release (the cctools-571 release):
661 - Changed the Makefile to treat SUPanWheat the same as Panther to build for
662   a Mac OS X 10.3 (Panther) system.  Radar bug #3979451.
664 Changes for the 5.17 release (the cctools-568 release):
665 - Changed print_section() in ofile_print.c to print the section type
666   S_INTERPOSING.  Radar bug #3965794.
668 Changes for the 5.17 release (the cctools-563 release):
669 - Changed print_mach_header() in ofile_print.c to print the new flags
670   MH_WEAK_DEFINES and MH_BINDS_TO_WEAK.  Radar bug #3799069.
672 Changes for the 5.17 release (the cctools-562 release):
673 - Changed print_thread_states() in ofile_print.c to use cpu.vrsave instead of
674   cpu.pad.  Radar bug #3930480.
676 Changes for the 5.17 release (the cctools-558 release):
677 - Fixed a problem in print_hints() in ofile_print.c that would always cause the
678   check about Inconsistent mh_sizeofcmds to be printed if the verbose option
679   was not used.  Radar bug #3902811.
681 Changes for the 5.17 release (the cctools-557 release):
682 - Removed support for the INTERIM_PPC64.  The changes were to remove the
683   #ifdef INTERIM_PPC64 source changes in main.c and ofile_print.c . Radar bug 
684   #3600419.
686 Changes for the 5.17 release (the cctools-554 release):
687 - Fixed a problem with the sorted_symbols not being correctly sorted causing
688   symbol names not to be printed.   The problem was the sym_compare() routine
689   in main() used for the qsort() routine did not have its parameters updated
690   to struct symbol * from nlist_t * for the 64-bit port work.  Radar bug
691   #3889188.
693 Changes for the 5.17 release (the cctools-551 release):
694 - Changed print_thread_states() in ofile_print.c to handle printing a
695   PPC_THREAD_STATE64.  Radar bug #3866755.
697 Changes for the 5.17 release (the cctools-546 release):
698 - Fixed a bug in print_mach_header() in ofile_print.c that was missing a case
699   statement for CPU_SUBTYPE_POWERPC_970 and printing "ppc970".  Radar bug
700   #3825281.
702 Changes for the 5.17 release (the cctools-533 release):
703 - Changes to support 32-bit & 64-bit tools in the same binary.  Radar bug
704   #3793394.
705   - Changed the code in main.c, ofile_print.c and objc_print.c to use the
706     swap_*_t new macros from "stuff/target_arch.h".
707   - In process() in main.c added a new ofile_mh local variable and added a few
708     ifdef ARCH64 to set it to ofile->mh64 or ofile->mh.  And changed places
709     where it used ofile->mh to ofile_mh.
711 Changes for the 5.17 release (the cctools-531 release):
712 - Changed print_segment_command() in ofile_print.c to print the fileoff and
713   filesize fields with the correct format depending on the field with for
714   ARCH64.  Radar bug #3781406.
716 Changes for the 5.17 release (the cctools-529 release):
717 - Made changes to support 64-bit tools. Radar bug #3600431.
718   - Changed the Makefile to build otool in a sub-directory and building of
719     otool64 in a different sub-directory.  Things are no longer built with
720     -DINTERIM_PPC64 and otool64 is built with -DARCH64 and linked with
721     libstuff64 .
722   - Added the include "stuff/target_arch.h" to the following files:
723       i386_disasm.c
724       m68k_disasm.c
725       main.c
726       ofile_print.c
727       ppc_disasm.c
728       print_objc.c
729       sparc_disasm.c
730       i386_disasm.h
731       m68k_disasm.h
732       ofile_print.h
733       ppc_disasm.h
734       sparc_disasm.h
735       hppa_disasm.c
736       i860_disasm.c
737       m88k_disasm.c
738       hppa_disasm.h
739       i860_disasm.h
740       m88k_disasm.h
741     and changed the uses of structs, constants and names that are different for
742     64-bit files to the typedefs in "stuff/target_arch.h".
743   - In all places that used sorted_symbols this was changed to the new type
744     in "stuff/symbol.h" to struct symbol.  Which contains a name and an nlist_t.
745   - Changed the places in main.c and ofile_print.c with #ifdef DINTERIM_PPC64
746     to have code for 64-bit architectures.
748 Changes for the 5.16 release (the cctools-528.5 release):
749 - Changed the Makefile to treat MuonSeed the same as MuonPrime to build for
750   a Mac OS X 10.3 (Panther) system.
752 Changes for the 5.16 release (the cctools-528 release):
753 - Print the new GENERIC_RELOC_LOCAL_SECTDIFF reloc, handle it in
754   i386_disasm.c.
756 Changes for the 5.16 release (the cctools-527 release):
757 - Print the new PPC_RELOC_LOCAL_SECTDIFF reloc.
759 Changes for the 5.16 release (the cctools-526 release):
760 - Fixed warnings for the changes in mach-o headers for types changing from
761   unsigned long to uint32_t and from long to int32_t.  Radar bug #3744082.
762   - Changed a number of uses of "%lu" to "%u" and "%ld to "%d" in ofile_print.c.
763 - Added support for 3DNow! instructions.  Changes were in i386_disasm.c .
764   Radar bug #3737535.
766 Changes for the 5.16 release (the cctools-524 release):
767 - Fixed a bug in print_fat_headers() in ofile_print.c in the loop that was
768   looking for illegal duplicate architectures.  The loop was using unsigned
769   indexes and testing for j < i - 1 without checkin that i could be zero.
770   Radar bug #3709358.
772 Changes for the 5.16 release (the cctools-522 release):
773 - Fixed the problem with the changes to libc in Radar bug #3535291 causing the
774   symbols ___fegetfltrounds and ___fpclassifyd to be undefined.
775   Changed the Makefile to cause -lm_static to be used for releases after
776   Panther.  And changed main.c to remove the ifdef's around the stubs
777   __fpclassifyd() and __fpclassify(). Radar bug #3685865.
779 Changes for the 5.16 release (the cctools-520 release):
780 - Fixed a bug in the disassembly of the i386 movdq2q instruction.  Radar bug
781   #3488840.
782 - Fixed a bug in the disassembly of the i386 move word to accumulator
783   instructions.  It was incorrectly using the data-size attribute to determines
784   the size of the offset.  For move to accumulator instructions the
785   address-size attribute of the instruction determines the size of the offset.
786   Radar bug #3515794.
788 Changes for the 5.16 release (the cctools-509 release):
789 - Added #ifdef INTERIM_PPC64 to the source changes to support the interim ppc64
790   file format.  And added -DINTERIM_PPC64 to the Makefile.
791 - Changed print_thread_states() in ofile_print.c to treat CPU_TYPE_POWERPC64 the
792   same as CPU_TYPE_POWERPC and CPU_TYPE_VEO.
794 Changes for the 5.16 release (the cctools-501 release):
795 - Added the printing of MH_SUBSECTIONS_VIA_SYMBOLS to print_mach_header() in
796   ofile_print.c .  Radar bug #2284500.
798 Changes for the 5.16 release (the cctools-500 release):
799 - Added printing S_ATTR_LIVE_SUPPORT and S_ATTR_NO_DEAD_STRIP to print_section()
800   in ofile_print.c .  Radar bug #2284500.
802 Changes for the 5.16 release (the cctools-499.1 release):
803 - Made changes to support the interim ppc64 file format.  Radar bug #3562133
804   and #3562232.
805   - Changed print_text() in main.c to treat CPU_TYPE_POWERPC64 the same as
806     CPU_TYPE_POWERPC and CPU_TYPE_VEO.
807   - Changed print_relocs() in ofile_print.c to print "quad" for an
808     r_length == 3 and cputype == CPU_TYPE_POWERPC64 and r_type ==
809     PPC_RELOC_VANILLA in 2 places.
810   - Changed print_indirect_symbols() and guess_indirect_symbol() in
811     ofile_print.c to set the stride to 8 for CPU_TYPE_POWERPC64 otherwise 4.
812   - Updated print_arch(), print_cputype(), print_mach_header(), print_relocs()
813     and print_r_type() in ofile_print.c for CPU_TYPE_POWERPC64 to be the same
814     as CPU_TYPE_POWERPC.
816 Changes for the 5.14 release (the cctools-498 release):
817 - Added code to disassemble the PowerPC pseudo-instruction 'jmp' as the
818  non-linking form of 'jbsr' in ppc_disasm.c .  Radar bug #3458928.
820 Changes for the 5.13.2 release (the cctools-495.3 release):
821 - Updated print_mach_header() in ofile_print.c to print the new mach_header
822   flags MH_PREBINDABLE, MH_ALLMODSBOUND and MH_CANONICAL.  Radar bug #3176679.
824 Changes for the 5.12 release (the cctools-489 release):
825 - Added stub functions for the notify API in the new file notify.c and picked
826   up notify.h to allow otool to build on Panther7B40.  Radar bug #3378781.
828 Changes for the 5.12 release (the cctools-477 release):
829 - Added stub functions for __fpclassifyd(), for ppc, and __fpclassify() for i386
830   to the end of main.c to allow otool to link with just libc.a given the new
831   code in __ldtoa().  Radar bug #3271830.
833 Changes for the 5.12 release (the cctools-476 release):
834 - Fixed a bug in the i386 disassembly of movd instructions with the 0x7e sub
835   opcode.  Radar bug #3268255.
837 Changes for the 5.12 release (the cctools-472 release):
838 - Fixed a bug in disassembling the movq SSE2 instruction opcodes.  The operands
839   for register to memory and memory to register were switch.
840   Radar bug #3250086.
842 Changes for the 5.12 release (the cctools-468 release):
843 - Added support for the new use of the previously unused value 3 for r_length
844   to mean that the conditional branch was predicted using the Y-bit and the
845   sign of the displacement and opcode.  Radar bug #3223045.
846   - Changed in print_r_type() in ofile_print.c to take a new boolean parameter
847     predicted to tell it to print "+/-" after the r_type.
848   - Changed print_relocs() in ofile_print.c to set a local boolean predicted
849     to TRUE when r_length is 3 and pass it to print_r_type().
850   - Added the new routine get_reloc_r_length() to ppc_disasm.c .
851   - Changed the routine get_reloc() to get_reloc_r_type() in ppc_disasm.c .
852   - Change bc() in ppc_disasm.c to take 3 new parameters sect_offset, relocs and
853     nrelos so it can look for a relocation entry with a r_length value of 3 to
854     know to always print the prediction in this case.
856 Changes for the 5.12 release (the cctools-467 release):
857 - Added support for the PPC_RELOC_LO14_SECTDIFF relocation type used with
858   double word load/store instructions. Radar bug #3218027.
859   - Changed print_relocs() and in ofile_print.c to expect and print a pair
860     relocation entry for PPC_RELOC_LO14_SECTDIFF relocation type.
861   - Changed the 14th entry in ppc_r_types[] from " 14 (?) " to "LO14DIF " in
862     ofile_print.c that print_r_type() uses.
863   - Changed print_immediate() in ppc_disasm.c to handle PPC_RELOC_LO14_SECTDIFF.
865 Changes for the 5.12 release (the cctools-466 release):
866 - Fixed the incorrect cast on the comparison of the nlist struct's n_strx field
867   where the value being compared to was casted to a long.  The correct fix was
868   to cast n_strx to an unsigned long.  This is because the test is:
870         if(something.n_un.n_strx >= string_size)
871             error(...)
873   And the incorrect cast like this:
875         if(something.n_un.n_strx >= (long)string_size)
876             error(...)
878   will not catch the case when n_strx is negative.  So the correct cast is:
880         if((unsigned long)something.n_un.n_strx >= string_size)
881             error(...)
883   which was made in print_indirect_symbols() in ofile_print.c and a number of
884   other places.
886 Changes for the 5.12 release (the cctools-465 release):
887 - Fixed the disassembly of "movd -12(%ebp),%mm0" which incorrectly disassembled
888   without the displacement.  Radar bug #3206331.
890 Changes for the 5.12 release (the cctools-464 release):
891 - Made changes to build cleanly with gcc3.3
892   - Removed -Wno-precomp from the Makefile
893   - Fixed warnings for "comparison between signed and unsigned" in main.c,
894     ofile_print.c, m68k_disasm.c, i860_disasm.c, m88k_disasm.c, i386_disasm.c,
895     ppc_disasm.c, hppa_disasm.c, sparc_disasm.c, and print_objc.c .
897 Changes for the 5.11 release (the cctools-463 release):
898 - Added support for the MH_DYLIB_STUB filetype. Radar bug #3193744.
899   - Changed processor() in main.c when printing the section contents from
900     an MH_DYLIB_STUB that has indirect symbol table entries to force the section
901     size to zero and not try to print the contents that were stripped.
902   - Added the printing of the MH_DYLIB_STUB filetype to print_mach_header() in
903     ofile_print.c .
905 Changes for the 5.11 release (the cctools-450 release):
906 - Fixed the disassembly of movd instructions that used GPR registers so things
907   like:
908         movd %edx, %xmm0
909         movd %xmm0, %edx
910   disassembled correctly.  Radar bug #3117176.
912 Changes for the 5.11 release (the cctools-454 release):
913 - Fixed a bug in disassembling a bad i386 instruction that had a value for a
914   segment register greater than 6.  The array SEGREG[] was changed to add two
915   more entries to cover all 8 possible values with the last two values being
916   "%?6" and "%?7" for the illegal values.  Radar bug #3144846.
918 Changes for the 5.11 release (the cctools-439 release):
919 - Made the needed changes to main.c and ofile_print.c for VEO support.  Radar
920   bug #3068161.
921 - Added the disassembly of the SSE2 instructions.  Radar bug #2972491.
922 - Changed the disassembly of i386 opcode "fildl" and "fistpl" to not use the
923   'l' suffix because of the added i386 opcode "fildll" to be the same as "fildq"
924   and "fistpll" to be the same as "fistpq" (done for Radar bug #2909568).
926 Changes for the 5.11 release (the cctools-437 release):
927 - Fixed the disassembly of jbsr ppc instruction's (those with JBSR relocation
928   entries) so the "true target address" is correctly printed.  This fix is in
929   print_immediate() in ppc_disasm.c where the value should just be other_half
930   not "other_half + value".  Radar bug #3046962.
931 - Fixed the printing of the pair JBSR relocation when it is a scattered
932   relocation to point at the r_value as the other half "<- other_half".  This
933   fix is in print_relocs() in ofile_print.c.  Radar bug #3046962.
934 - Added the disassembly of the fxsave instruction in i386_disasm.c. Radar bug
935   #2972491.
937 Changes for the 5.10 release (the cctools-422 release):
938 - Added the disassembly of some pentium pro instructions in i386_disasm.c.
939   Radar bug #2928507.
940 - Added printing S_ATTR_STRIP_STATIC_SYMS to print_section() in ofile_print.c .
941   Radar bug #2945659.
943 Changes for the 5.10 release (the cctools-421 release):
944 - Added printing MH_NOFIXPREBINDING in print_mach_header() in ofile_print.c .
945   Radar bug #2941669.
947 Changes for the 5.10 release (the cctools-416 release):
948 - Removed the printing S_ATTR_WEAK_DEFS to print_section() in ofile_print.c.
949   Radar bug #2919646.
950 - Added the -m option to not use the archive(member_syntax) for file names.
951   Radar bug #2904708.
953 Changes for the 5.10 release (the cctools-414 release):
954 - Added printing S_ATTR_WEAK_DEFS to print_section() in ofile_print.c.
955   Radar bug #2898558.
957 Changes for the 5.10 release (the cctools-409.1 release):
958 - Changed print_literal8() in ofile_print.c to use:
959         /* l0 is the high word, so this is equivalent to if(isfinite(d)) */
960         if((l0 & 0x7ff00000) != 0x7ff00000)
961   instead of:
962         if(finite(d))
963   so otool will not have to link with libm.  The Makefile was also changed.
965 Changes for the 5.10 release (the cctools-403 release):
966 - Removed the hack in the Makefile to use cc when $(CC) is gcc3 when linking
967   to work that was working around Radar bug #2814731 now that gcc-1009 fixes it.
969 Changes for the 5.10 release (the cctools-400 release):
970 - Changed the Makefile back to again use the -dependency-file with gcc.
971 - Changed the hack in the Makefile to use cc when $(CC) is gcc3 when linking
972   to work around Radar bug #2814731.
974 Changes for the 5.10 release (the cctools-396 release):
975 - Added a hack in the Makefile to use cc when $(CC) is gcc when linking
976   to work around Radar bug #2814731.
977 - Changed the Makefile to not use the -dependency-file with gcc as well as
978   mwccppc.
979 - Added an include <string.h> to m68k_disasm.c, i860_disasm.c, m88k_disasm.c,
980   and ppc_disasm.c to pick up the prototype for memcpy().
982 Changes for the 5.10 release (the cctools-393 release):
983 - Added code to ofile_print.c to deal with the new LC_LOAD_WEAK_DYLIB command.
985 Changes for the 5.10 release (the cctools-392 release):
986 - Changed the call to ofile_process() in main.c to pass TRUE for the new
987   use_member_syntax parameter.  Radar bug #2730127.
989 Changes for the 5.10 release (the cctools-389 release):
990 - Added the -D option to print just the LC_ID_DYLIB name.
992 Changes for the 5.10 release (the cctools-388 release):
993 - Fixed the spelling of Inconsistant to be Inconsistent in main.c and
994   ofile_print.c.  Radar bug #2783706.
996 Changes for the 5.10 release (the cctools-386 release):
997 - Added code in print_loadcmds() in ofile_print.c to parse and print
998   LC_PREBIND_CKSUM load commands.
1000 Changes for the 5.9 release (the cctools-370 release):
1001 - Added printing MH_NOMULTIDEFS in print_mach_header() in ofile_print.c .
1002 - Added code in main() in main.c and the routine print_hints() to ofile_print.c
1003   to print the two-level namespace hints.
1005 Changes for the 5.9 release (the cctools-367 release):
1006 - Added code in print_loadcmds() in ofile_print.c to parse and print
1007   LC_SUB_LIBRARY load commands.  Radar bug #2697458
1008 - Added code in print_loadcmds() in ofile_print.c to parse and print
1009   LC_TWOLEVEL_HINTS load commands.  Radar bug #2558069.
1011 Changes for the 5.9 release (the cctools-360 release):
1012 - Picked up the changes to print_objc.c from Radar bug #2660421 (open source
1013   submittion).
1015 Changes for the 5.9 release (the cctools-359 release):
1016 - Added -Wno-long-double to shutup the compiler for
1017   <architecture/m88k/fp_regs.h>.
1019 Changes for the 5.8 release (the cctools-357 release):
1020 - Added support for the CPU_SUBTYPE_POWERPC_7450 in ofile_print.c . Radar bug
1021   #2599869.
1023 Changes for the 5.8 release (the cctools-355 release):
1024 - Changed the printing of sections marked with S_ATTR_SOME_INSTRUCTIONS so that
1025   they are disassembled.  This is to aid coalesced sections created by the
1026   compiler that are not marked with S_ATTR_PURE_INSTRUCTIONS as they contain
1027   jump tables (Radar bug #2580311).
1029 Changes for the 5.8 release (the cctools-342 release):
1030 - Added a print_sub_client_command() to ofile_print.c . Radar bug #2533649.
1031 - Added printing MH_TWOLEVEL and MH_FORCE_FLAT to print_mach_header() in
1032   ofile_print.c. Radar bug #2534043.
1034 Changes for the 5.8 release (the cctools-341 release):
1035 - Changed print_immediate() in ppc_disasm.c to also check for PPC_RELOC_SECTDIFF
1036   as it is incorrectly printing out "Stray PPC_RELOC_PAIR relocation entry".
1037   This is happening because switch tables for (__TEXT,__coalesced_text) sections
1038   are placed in line.  This is done because ld(1) complains about illegal
1039   references to coalesced symbols being used with section difference relocation
1040   entries.
1042 Changes for the 5.7 release (the cctools-336 release):
1043 - Added printing NO_TOC to print_section(). Radar bug #2494286.
1045 Changes for the 5.7 release (the cctools-334 release):
1046 - Added printing LAZY_INIT to print_mach_header() in ofile_print.c.  Radar bug
1047   #2490396.
1049 Changes for the 5.7 release (the cctools-329 release):
1050 - Changed iinit and ninit fields of the struct dylib_module in
1051   print_module_table() in ofile_print.c to iinit_iterm and ninit_nterm and
1052   printed them as 2 numbers each.  Radar bug #2469527.
1054 Changes for the 5.7 release (the cctools-328 release):
1055 - Changed the Makefile so that it would use -L/usr/local/lib/system
1056   moving forward and -L/Local/Developer/System when RC_RELEASE is Gonzo, Bunsen
1057   or Beaker.
1059 Changes for the 5.7 release (the cctools-327 release):
1060 - Changed the Makefile so that it would use -L/AppleInternal/Developer/System
1061   moving forward and -L/Local/Developer/System when RC_RELEASE is Gonzo, Bunsen
1062   or Beaker.
1064 Changes the 5.6 release (the cctools-320 release):
1065 - Added support for the new LC_SUB_FRAMEWORK load command to support "Guarding
1066   against direct linking of non-umbrella frameworks".  The files ofile_print.c
1067   and ofile_print.h were updated. Radar bug 2443212.
1069 Changes the 5.6 release (the cctools-316 release):
1070 - Added printing the mach header flag MH_SPLIT_SEGS to ofile_print.c.
1072 Changes the 5.5 release (the cctools-307 release):
1073 - Fixed some bugs in print_relocs() in ofile_print.c for ppc section difference
1074   relocations.  It was incorrectly printing "half = 0x????\n" some times which
1075   lead to an extra "\n" and difficulty in determining which relocation entry an
1076   error message was refering to due to the extra lines in the output.
1077 - Added support for the CPU_SUBTYPE_POWERPC_7400 in ofile_print.c .
1078   Radar bug #2397523.
1079 - Fixed a bug in get_sect_info() where it was not comparing the segment name
1080   in an object file.  This caused it to pick the first section if their were
1081   segments with the same section names.
1083 Changes the 5.4 release (the cctools-300 release):
1084 - Added printing the new LC_ROUTINES load command.
1085 - Added the S_COALESCED section type in section structures.
1087 Changes the 5.3 release (the cctools-292 release):
1088 - Added some braces to get rid of the warning message from the egcs compiler
1089   "warning: suggest explicit braces to avoid ambiguous `else'".  This was done
1090   to m68k_disasm.c, i860_disasm.c and sparc_disasm.c .
1091 - Changed the return type of main() in main.c from void to int to remove a
1092   warning from the egcs compiler.  Also changed the exit()'s calls at the end to
1093   return()'s.
1095 Changes for the 5.3 release, (the cctools-286 release):
1096 - Added support for printing S_MOD_TERM_FUNC_POINTERS in print_section() in
1097   ofile_print.c .
1099 Changes for the 5.3 release, (the cctools-285 release):
1100 - Fixed the i386 opcode of cmpxchg from 0x0fa6 (as it is in the i486 manual) to
1101   0x0fb0 which is correct (as it is in the Pentium manual).
1103 Changes for the 5.3 release, MacOS X bring up (the cctools-282 release):
1104 - Changed the printing of the ppc_thread_state to not use bit fields for srr1,
1105   cr and exr to match the ppc_thread_state for Rhapsody/MacOS X.
1106 - Changed the Makefile to allow for RC_OS=macos for MacOS X builds.
1107 - Added a few casts in places to get it to compile with the MetroWerks compiler
1108   without -relax_pointers.
1109 - To get around the problem with the MetroWerks compiler using -framework
1110   System when -static is used the Makefile was changed to if out the -static
1111   flag and -static link for mwcc.
1113 Changes for the 5.2 release (the cctools-274 release):
1114 - Removed the uses of CPU_SUBTYPE_586SX in ofile_print.c and added support for
1115   new intel subtypes. Radar bug #2231830.
1117 Changes for the 5.2 release (the cctools-272 release):
1118 - Removed the reference to the header file "objc/NXString.h" in print_objc.c as
1119   this file is going away.  print_objc.c now just defines the layout of struct
1120   objc_string_object directly.  Radar bug #2231010.
1122 Changes for the 5.2 release (the cctools-267 release):
1123 - Added all the suport needed for the 4.4BSD extended format #1 for long names.
1124   Radar bug #1670513.
1126 Changes for the 5.1 release (the cctools-261 release):
1127 - Added disassembling dcba to ppc_disasm.c.
1128 - Updated print_special_register_name() in ppc_disasm.c to add the special
1129   register names to match the assembler.
1130 - Changed otool's use of CPU_SUBTYPE_POWERPC_740 to CPU_SUBTYPE_POWERPC_750.
1131 - Fixed a bug that in processor() in main.c where indirect_symbols and
1132   nindirect_symbols were not initialized.  This caused printing of symbol
1133   stub sections to to call guess_indirect_symbol() with bad results (print
1134   incorrect stuff or crash).
1135 - Fixed a bug in the ppc disasembler where it was printing the prediction of
1136   branch conditionals which had the BO 1z1zz (20 decimal) encoding.  See page
1137   4-53 of the PowerPC green book.
1139 Changes for the 5.1 release (the cctools-260 release):
1140 - Added -c to all the install commands in the Makefile.
1142 Changes for the 5.1 release (the cctools-255 release):
1143 - Added disassembling the VMX opcodes.  Radar bug 2004760.
1145 Changes for the 5.1 release (the cctools-253 release):
1146 - Changed the Makefile to only create the needed dst directories.
1148 Changes for the 5.1 release (the cctools-252 release):
1149 - Changed the ppc dissassembly of "addis rX,0,immed" to "lis rX,immed" and
1150   "addi rX,0,immed" to "li rX,immed".
1151 - Added guess_indirect_symbol() to be used by the disassemblers to print as a
1152   comment the stub name.  Changed the ppc, i386, m68k and sparc disassemblers
1153   to use this.
1155 Changes for the 5.1 release (the cctools-247 release):
1156 - Added MKDIRS if code to the Makefile to build native on Rhapsody.
1157 - Changed the Makefile to use gnutar instead of tar because it works on Rhapsody
1158   where tar does not.
1159 - Changed the Makefile to install otool in /usr/bin for RC_OS
1160   teflon and in /bin for RC_OS nextstep (Radar 1673496).
1162 Changes for the 5.0 release (the cctools-242 release):
1163 - Removed the non-existant instructions "stmd", "mtpmr" and "mfpmr".
1165 Changes for the 5.0 release (the cctools-240 release):
1166 - Changed printing the first agrument of fcmpo and fcmpu to crX not just a
1167   number.
1168 - Changed ldu, lfdu, lfsu, lhau, lwzu, stbu, stdu, stfdu, stfsu, sthu and stwu
1169   to print the RA parameter r0 not 0 when it is zero.  Note these are an invalid
1170   forms.
1171 - Changed lbzx, ldx, lfdx, lfsx, lhax, lhbrx, lhzx, lwax, lwbrx, lwzx, stbx,
1172   stdx, stfdx, stfiwx, stfsx, sthbrx, sthx, stwbrx, stwx, dcbi, eciwx, ecowx,
1173   icbi to print the RA parameter as 0 not r0 when it is zero.
1174 - Removed the non-existant instruction "lmd".
1176 Changes for the 5.0 release (the cctools-236 release):
1177 - Added disassembling mulld[o][.] .
1178 - Changed printing the first operand of mcrfs and mcrxr to print it as a cr
1179   register name not just a number.
1180 - Changed printing the operands of mcrf to print them as cr register names not
1181   just numbers.
1182 - Added the -Z to don't use simplified ppc mnemonics in disassembly.  Code was
1183   added for "cmp", "bc", "cmpi", "cmpl" and "cmpli".
1184 - Added disassembling the "mttbl rS" for "mtspr 284,rS" and "mttbu rS" for
1185   "mtspr 285,rS".
1186 - Removed the incorrect PowerPC disassembly of mttb and mttbu.
1188 Changes for the 5.0 release (the cctools-235 release):
1189 - Added printing the PPC_RELOC_JBSR and disassembling with it.
1190 - Removed the #if 0 code that was replaced by print_relocs().
1191 - Fixed a bug with otool -s __TEXT __text core dumping.  Line 365 in main.c
1192   needs an else (bug #79050).
1193 - Added the PowerPC disassembly of the eciwx, ecowx, fres[.], fsqrts[.],
1194   frsqrte[.], fsel[.], fsqrt[.], stfiwx and tlbsync instructions.
1196 Changes for the 5.0 release (the cctools-227 release):
1197 - Changed print_argstrings() used for -c to use get_stack_addr_from_flag()
1198   from libstuff and removed all the *_usrstack.c files.
1199 - Made otool -c work for PowerPC core files.
1201 Changes for the 5.0 release (the cctools-224 release):
1202 - Changed including <ranlib.h> to <mach-o/ranlib.h> which uses unsigned long
1203   instead of off_t (64 bits on Teflon).
1204 - Added printing of the ppc_float_state_t and ppc_exception_states.
1205 - Updated ofile_print.c with the updated PowerPC subtypes.
1207 Changes for the 5.0 release (the cctools-221 release):
1208 - Picked up the changes for the correct Rhapsody thread state changes into
1209   ofile_print.c.
1211 Changes for the 5.0 release (the cctools-215 release):
1212 - Fixed disassembly for the PowerPC instructions mftb and mftbu.
1214 Changes for the 5.0 release (the cctools-214 release):
1215 - Added support for PowerPC disassembly using SECTDIFF relocation types.
1216 - Added support for printing PPC_RELOC_HI16_SECTDIFF, PPC_RELOC_LO16_SECTDIFF,
1217   and PPC_RELOC_HA16_SECTDIFF relocation types.
1219 Changes for the 5.0 release (the cctools-212 release):
1220 - Changed tlbiex to tlbie and slbiex to slbie (also corrected the opcodes).
1221 - Added the ppc specific cpu subtypes to be printed.
1223 Changes for the 5.0 release (the cctools-210 release):
1224 - Changed mulwd to mulhw .
1225 - Changed mull to mullw and mullo to mullwo .
1226 - Changed m98k to ppc.
1228 Changes for the 4.0 release (the cctools-189 release):
1229 - Updated objc_print.c to reflect changes in Objc-C runtime structures.
1231 Changes for the 4.0 release (the cctools-188 release):
1232 - Added printing the __cstring_object section like the __string_object section
1233   (bug #61840).
1235 Changes for the 4.0 release (the cctools-185 release):
1236 - Printed the time stamp for -Lv for dynamic libraries.
1238 Changes for the 4.0 release (the cctools-173 release):
1239 - Added printing the LC_PREBOUND_DYLIB load command.
1241 Changes for the 4.0 release (the cctools-170 release):
1242 - Added printing MH_PREBOUND.
1244 Changes for the 4.0 release (the cctools-168 release):
1245 - Picked up the sparc changes to sparc_disasm.c .
1246 - Picked up the sparc changes to sparc_r_types[] in ofile_print.c .
1247 - Change the version numbers of dynamic library to the form X[.Y[.Z]] to match
1248   how next does versioning of it's projects.  This effected libtool(1), ld(1),
1249   otool(1), dyld, libstuff(version_number.c) and man pages for ld and libtool
1250   bug #55627).  In here the changes were in ofile_print.c .
1251 - Added -T, -M, -R and -I to the usage print out.
1253 Changes for the 4.0 release (the cctools-156 release):
1254 - Fixed a that caused sections with S_ATTR_PURE_INSTRUCTIONS set not to be
1255   disassembled.  This was casued by S_ATTR_SOME_INSTRUCTIONS also being set and
1256   the code in main.c checking the SECTION_ATTRIBUTES equal to 
1257   S_ATTR_PURE_INSTRUCTIONS and not just checking for that bit.
1259 Changes for the 4.0 release (the cctools-158 release):
1260 - Fixed a bug that caused printing of shlib and dyld names to be wrong.  Basicly
1261   the part of the structure that needed to be swapped was copied but the
1262   original pointer needed to be passed to the routine to print the name part of
1263   the structure.  This was introduced with the change for cctools-150 below.
1265 Changes for the 4.0 release (the cctools-154 release):
1266 - Added support for printing indirect symbol table entries for stripped defined
1267   externals.  Strip uses the values INDIRECT_SYMBOL_LOCAL and
1268   INDIRECT_SYMBOL_ABS to represent the symbols that are defined that were
1269   stripped otool prints these as LOCAL and ABSOLUTE.
1271 Changes for the 4.0 release (the cctools-150 release):
1272 - Fixed a bug in printing load commands that caused the thread commands on
1273   hppa to be printed swapped.  This was the same bug as the otool -L bug
1274   below where the wrong size to memcpy was used to copy the load command.
1276 Changes for the 4.0 release (the cctools-149 release):
1277 - Added printing the section attribute SOME_INSTRUCTIONS.
1278 - Removed printing the section attribute RELOC_AT_LAUNCH.
1279 - Added printing the mach header flag BINDATLOAD.
1280 - Fixed a bug in print_libraries for otool -L with dynamic libraries that
1281   memcpy'ed the wrong size into the dylib_command (bug #50440).
1283 Changes for the 4.0 release (the cctools-148 release):
1284 - Changed how otool gets built.  It how gets built with -static.
1286 Changes for the 4.0 release (the cctools-140 release):
1287 - Picked up sparc changes to sparc_disasm.c.
1288 - Added printing MH_BUNDLE filetype.
1290 Changes for the 4.0 release (the cctools-138 release):
1291 - Picked up a change to sparc_disass.c.  It was getting the targets for
1292   branches with negative displacements wrong.
1294 Changes for the 4.0 release (the cctools-135 release):
1295 - Fixed a bug in otool for sparc disassembly in the routine print_symbolic()
1296   which printed the wrong value for branch instructions when relocation entries
1297   were not present.  The problem was it was adding in the pc to the target
1298   value which already had the pc added to it.
1299 - Fix for Tracker 41317 [as(hppa) : does not support cache control hints.]
1300   otool/hppa-dissasm.c changed to disassemble the new parsing rule changes.
1302 Changes for the 4.0 release (the cctools-133 release):
1303 - Picked up the sparc changes to sparc_disasm.c.
1304 - Picked up the sparc changes for printing the floating-point sparc thread.
1306 Changes for the 4.0 release (the cctools-132 release):
1307 - Picked up the sparc changes for sparc_disasm.c and m88k_disasm.c.
1308 - Picked up the sparc changes for printing the sparc thread.
1310 Changes for the 3.3 release (the cctools-128 release):
1311 - Fixed otool -c for the hppa.  Had to add special code in print_argstrings()
1312   in main.c to deal with the different stack layout (bug #40373).
1313 - Removed the spaces printed before the register names for the hppa disassembler
1314   in 4 places.
1316 Changes for the 3.3 release (the cctools-127 release):
1317 - Fixed a bug when the a zero fill section was attempted to be printed without
1318   -v which caused otool to core dump (bug #42127).
1320 Changes for the 3.3 release (the cctools-122 release):
1321 - Fixed a bug in printed byte swapped tocs for a dylib.  The code in main.c
1322   had some copy and paste errors in it's allocate() and memcpy() before the
1323   call to swap_dylib_table_of_contents().
1325 Changes for the 3.3 release (the cctools-119 release):
1326 - Picked up first round of changes for the sparc target.  This work is
1327   incomplete.
1328 - HPPA, changed main.c, otool.h, ofile_print.c and Makefile to fix bug # 39398
1329   (otool does not understand certain thread states for hppa). Added
1330   hppa_usrstack.c for the same.
1332 Changes for the 3.3 release (the cctools-115 release):
1333 - Changed print_symbol() in ofile_print.c to take an extra parameter, dot_value,
1334   the value of the address being dissassembled which is only used for the value
1335   of the -symbol in a SECTDIFF relocation entry if their is no symbol that
1336   matches that value.
1338 Changes for the 3.3 release (the cctools-104 release):
1339 - Made a quick but incorrect fix for jbsr disassembly in hppa_disasm.c by
1340   passing the sect_addr as the first parameter to print_immediate() in the
1341   jbsr case '@' this will not work if a jbsr to a different section is used.
1343 Changes for the 3.3 release (the cctools-103 release):
1344 - Fixed a bug in hppa_r_types[] array which has only 15 (not 16 enties).
1346 Changes for the 3.3 release (the cctools-102 release):
1347 - Integrated in the hppa support.
1348 different otool/Makefile (integrated for cctools-102)
1349      Using cctoolshppa-37.  New hppa files. Changed to remove hppa-opcode.h.
1350 different otool/i386_usrstack.c (no changes for cctools-102)
1351      Using cctools-29. Late 3.2 fixes the hppa base did not have.
1352 different otool/m68k_usrstack.c (no changes for cctools-102)
1353      Using cctools-29. Late 3.2 fixes the hppa base did not have.
1354 different otool/main.c (integrated for cctools-102)
1355      Using cctoolshppa-37.  Call to hppa_disassemble() added.
1356 different otool/ofile_print.c (integrated for cctools-102)
1357      Using cctoolshppa-37.  Printing hppa cputypes and relocs added.
1358      Fixed some print space problems in the master clone ~comp/cctools-29.
1359 Only in cctoolshppa-37/otool: hppa_disasm.c (integrated for cctools-102)
1360      Pickup cctoolshppa-37/otool/hppa_disasm.c from cctoolshppa-37 and
1361      Changed line 9 from:
1362         #include "hppa-opcode.h"
1363      to
1364         #include "../as/hppa-opcode.h"
1365      Changed line 412 from:
1366         struct scattered_relocation_info *srp, *spairp;
1367      to
1368         struct scattered_relocation_info *srp;
1369      to remove a warning.
1370      Changed line 630 from:
1371         return HPPA_RELOC_NORELOC;
1372      to
1373         return 0xffffffff;
1374      since HPPA_RELOC_NORELOC was removed from mach-o/hppa/reloc.h
1375    Changes for cctools-102:
1376      moved some functions into libstuff/hppa.c as suggested by the comments.
1377 Only in cctoolshppa-37/otool: hppa_disasm.h (integrated for cctools-102)
1378      Pickup cctoolshppa-37/otool/hppa_disasm.h from cctoolshppa-37.
1379 Only in cctoolshppa-37/otool: hppa-opcode.h (also NOT pick up for cctools-102)
1380      This is simmilar but different to hppa-opcode.h in ../as .  This was not
1381      picked up but hppa_disasm.c was changed to include ../as/hppa-opcode.h
1383 Changes for the 3.3 release (the cctools-101 release):
1384 - Made sections with the attribute S_ATTR_PURE_INSTRUCTIONS disassemble with
1385   the -v flag.  Also had to fix the disassemblers to add sect_addr parameter to
1386   subract from the address when looking for relocation entries.
1387 - Added -I to print the indirect symbol tables.
1388 - Added code to print the dysymtab.
1390 Changes for the 3.3 release (the cctools-100 release):
1391 - First major round of changes for the new shlib stuff.
1392   1) In otool's disassemblers (m68k and i386) support for possition-independent 
1393      code through the SECTDIFF relocataion type.
1394 - Fixed a bug in the m68k disassembler for mulsl where the 2 register form did
1395   not disassemble the Dl register correctly (bug #38530).
1396 - Fixed a bug in the m68k disassembler for bcc branches of 16-bit and 8-bit
1397   displacements not getting their target calculated correctly (bug #38531).
1398 - Fixed a bug in the m68k disassembler for dbcc instructions where the 16-bit
1399   displacements were not getting their target calculated correctly.
1401 Changes for the 3.2 release (the cctools-24 release):
1402 - Fixed a bug in print_argstrings() which was using printf(%s) and that could
1403   not correctly deal with a string that did not end in a '\0' before the memory
1404   that contained the string ended (bug #33672).
1406 Changes for the 3.1 release (the cctools-22 release):
1407 - Added printing for these  (bug #32553):
1408     { "any",    CPU_TYPE_ANY,     CPU_SUBTYPE_MULTIPLE },
1409     { "little", CPU_TYPE_ANY,     CPU_SUBTYPE_LITTLE_ENDIAN },
1410     { "big",    CPU_TYPE_ANY,     CPU_SUBTYPE_BIG_ENDIAN },
1412 Changes for the 3.1 release (the cctools-21 release):
1413 - Fixed a few bugs in print_objc.c the had arguments reversed so things got
1414   swapped when they shouldn't have.
1416 Changes for the 3.1 release (the cctools-15 release):
1417 - Flushed out the swap_* stubs in print_objc.c.
1418 - Updated the printing of the m98k cpu flavor to use it's correct definition.
1420 Changes for the 3.1 release (the cctools-14 release):
1421 - Added the opcodes for tlbiex (31,338) and tlbia (31,370).
1422 - Changed the m98k instructions: lwarx, ldarx, stwcx. and stdcx. second arg from
1423   just a greg to 0 or a greg (r1-r31).
1424 - For the m98k disassembler removed "mr" for "ori Rx,Ry,0" because the 0 could
1425   have a relocation entry and it really could be an "ori" not a "mr" (move
1426   register).
1428 Changes for the 3.1 release (the cctools-13 release):
1429 - Added the m98k (PowerPC) architecture.  This includes a kludged
1430   mach/m98k/thread_status.h with only an entry point.
1432 Changes for the 3.1 release (the cctools-10 release):
1433 - Fixed two bugs in the i386 disassembler.  First the displacement routine
1434   needed to sign extend it's value if it was a byte or short before doing the
1435   addition.  Second for the 8-bit jumps the operand size needs to be printed
1436   as a long not a byte (bug #29789).
1438 Changes for the 3.1 release (the cctools-9 release):
1439 - Fixed otool -c for the m88k and i386 architectures (bug #29639).  This
1440   required a file for each arch that included <bsd/XXXX/vmparam.h> so the value
1441   of USRSTACK could be returned.
1443 Changes for the 3.1 release (the cctools-8 release):
1444 - Added symbolic disassembly for the i386 arch.  This involved a major clean up
1445   of i386_disasm.c .
1447 Changes for the 3.1 release (the cctools-7 release):
1448 - Added the i485 and i586 instructions to the dissembler for the i386 arch.
1449 - Added a comment character '#' before in the sprintf lines
1450   "#***** Error - bad opcode" in _bits.c for disassembling the i386.
1452 Changes for the 3.1 release (the cctools-5 release):
1453 - Picked up the lono team's mods to ofile_print.c for changes to the i386
1454   thread_status.h.
1456 Changes for the 3.1 release (the cctools-4 release):
1457 - Changed the arch name from ix86 to i386.
1458 - Changed CPU_TYPE_I80x86 to CPU_TYPE_I386 in main.c that was missed.
1460 Changes for the 3.1 release (the cctools-3 release):
1461 - Changed CPU_TYPE_I80x86 to CPU_TYPE_I386 and removed CPU_SUBTYPE_AT386
1462   CPU_SUBTYPE_EXL .
1464 Changes for the 3.1 release (the cctools-1 release)
1465 - Created the otool directory with the 3.1 otool.