On Wed, Mar 23, 2011 at 12:06 PM, Richard Henderson <r...@redhat.com> wrote: > On 03/19/2011 08:46 AM, H.J. Lu wrote: >> Operations on stack and frame pointers, like push/pop, require stack >> and frame pointers in DImode. Even if I use word_mode in gen_push >> and gen_pop, I got > > No they don't. Not really. Assuming the stack and frame pointer are > properly zero extended, and no one tries to place a stack frame across > null, then you can also represent it by an SImode operation. > >> x.i:10:1: error: unrecognizable insn: >> (insn/f 22 5 23 2 (set (mem:SI (pre_dec:DI (reg/f:SI 7 sp)) [0 S4 A8]) >> (reg/f:SI 6 bp)) x.i:6 -1 >> (nil)) > > Well, gee, that merely means a pattern needs to be adjusted. > >
Are you suggesting that we should say that SP and BP are 32bits so that x32 has 16 integer registers, 14 are 64 bites and 2 are 32 bits? How will it work with RA? Can I use BP for integer operations? -- H.J.