This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Host/Target confusion in Dwarf output


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	 eager@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306  650-325-8077


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]