I was looking through dwarf2out.c, tracking down the cause for different assembly code being generated when gcc was run on 32-bit and 64-bit hosts.
In dwarf2out.c, there are several places where decisions about what to generate in the .s file are based on HOST_BITS_PER_WIDE_INT or HOST_BITS_PER_WIDE_LONG or similar. For example, when generating a long long value, on a 32-bit host, the *target* assembly code will contain two .4byte ops, while on a 64-bit host, a single .8byte op is generated. There are a number of other differences. The assembler for a 32-bit target might not have a .8byte operator. So, when run on a 32-bit host, everything is OK. On a 64-bit host, the assembly fails. It seems to me that the same assembly code should be generated independent of whether gcc is run on a 32-bit or 64-bit host and all of these HOST_* tests should actually be target domain parameters, like BITS_PER_WORD. Comments? -- Michael Eager [EMAIL PROTECTED] 1960 Park Blvd., Palo Alto, CA 94306 650-325-8077