machine description porting question.
Hans-Peter Nilsson
hp@bitrange.com
Sat Oct 19 00:42:00 GMT 2002
On Fri, 18 Oct 2002, Spundun Bhatt wrote:
> Hi,
> I am porting gcc to a new platform and it seems this mailing list is the
> closest match. My apologies if this is not the correct place.
gcc@ is better.
> The machine that I am porting to has an instruction set similar to IBM
> rs6000, so we have taken rs6000 config files as the tmplate and are
> trying to make modifications to it.
> My question is mainly regarding adding a temporary register in any insn
> definition in the machine description file.
It's not really "mainly", but a special case. (Getting a
temporary register is done by other solutions in other
contexts.)
> the scenario:
> my machine doesnt have a compare instruction so I want to use subc
> instruction (subtract and modify cc).
> The compare instruction on powerpc looks similar to cmp RA,RB while
> subtract instruction on my architecture looks like SUBC rD,rA,rB.
> So gcc has to allocate a temporary register for rD, and I dont know how
> to go about that.
You make the compare instruction pattern a define_expand which
expands to the subtract insn. Or, since you say your machine is
rs6000-like, you use the same expand-compare-insn-in-the-cc-user
method used there, and expand to a *subtraction* (e.g.
gen_subsi3) in your equivalent to rs6000_generate_compare. You
get the temporary result register from gen_reg_rtx (mode).
brgds, H-P
More information about the Gcc-bugs
mailing list