best approach to move around registers bigger than word width?
Jonah B Graham
ws@mars.drw.net
Tue Mar 26 05:26:00 GMT 2002
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
More information about the Gcc
mailing list