This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
best approach to move around registers bigger than word width?
- From: Jonah B Graham <ws at mars dot drw dot net>
- To: gcc at gcc dot gnu dot org
- Date: Tue, 26 Mar 2002 07:01:12 -0500 (EST)
- Subject: best approach to move around registers bigger than word width?
Hi.
I am working on porting GCC to a processor that has 16-bit data registers and 32-bit address registers. The address registers can only be saved and restored through the data registers. ALU operations can be performed on any 16-bit register.
To load an address register, you assign it a pair of data registers, and to save an address register, you save into a pair of data registers.
The overall question is, how do I explain that to GCC?
What I have tried is in (define_expand "movhi" ...) is to split the moves into lower and upper halves of the move, and then output two qi moves. The problem is that I cannot split somethings (like SYMBOL_REFS) into subregs (or rather I don't know how, gen_lowpart aborts when passed SYMBOL_REFS).
Any help would be highly appreciated.
Jonah
ws@mars.drw.net