This is the mail archive of the
mailing list for the GCC project.
- From: "Jan Hoogerbrugge" <jan dot hoogerbrugge at gmail dot com>
- To: gcc at gcc dot gnu dot org
- Date: Tue, 25 Mar 2008 15:19:15 +0100
- Subject: subreg question
My target architecture has 32 bit registers and uses register pairs
for 64 bit values. What makes it special is that whenever a register
pair is written by a 64 bit operation, the individual registers should
not be read by 32 bit operations. The reverse is also true: whenever a
register pair is used as 64 bit operand, the value should not be
produced by 32 bit operations.
In order to connect 64 to 32 operations, the target architecture
provides high and low, which select a register from a register pair,
and combine, which combines two registers into a register pair.
How to tell gcc to insert high, low, and combine operations, when 32
and 64 bit operations are exchanging values?