daniel tian wrote: > here are some information from the libgcc2.c.176r.greg. (BTY: the > error happened when cc1 build the libgcc2.c) > > Reloads for insn # 147 > Reload 0: reload_out (SI) = (reg/v:SI 99 [ __d0 ]) > GENERAL_REGS, RELOAD_FOR_OUTPUT (opnum = 0) > reload_out_reg: (reg/v:SI 99 [ __d0 ]) > reload_reg_rtx: (reg:SI 5 R5) > Reload 1: reload_in (HI) = (subreg:HI (reg/v:SI 94 [ d0 ]) 0) > GENERAL_REGS, RELOAD_FOR_INPUT (opnum = 1) > reload_in_reg: (subreg:HI (reg/v:SI 94 [ d0 ]) 0) > reload_reg_rtx: (reg:HI 5 R5) > > So does it mean when the pseduo register 94 allocated fail, the memory > location will be substitute ?
Yes, when the register allocator can't find a spare register for a variable, it makes use of a stack slot instead. > (insn 749 156 147 22 (set (reg:HI 5 R5) > (subreg:HI (mem/c:SI (plus:SI (reg/f:SI 15 R15) > (const_int 108 [0x6c])) [19 d0+0 S4 A32]) 0)) -1 (nil)) So, does your CPU support HImode sized load and store operations? cheers, DaveK