On Thu, Jun 14, 2001 at 12:05:43PM -0700, Richard Henderson wrote: > + > + (define_insn "exception_receiver" > + [(unspec_volatile [(const_int 0)] 4)] > + "TARGET_ABICALLS && (mips_abi == ABI_32 || mips_abi == ABI_O64)" > + "* > + { > + rtx loc; > + > + operands[0] = gen_rtx_REG (Pmode, PIC_FUNCTION_ADDR_REGNUM); > + > + if (frame_pointer_needed) > + loc = hard_frame_pointer_rtx; > + else > + loc = stack_pointer_rtx; > + loc = plus_constant (loc, current_frame_info.args_size); > + operands[1] = gen_rtx_MEM (Pmode, loc); > + > + return mips_move_1word (operands, insn, 0); > + }" > + [(set_attr "type" "load") > + (set_attr "length" "8")]) > I have 3 questions: 1. I see PIC_FUNCTION_ADDR_REGNUM be $25. gp is $28. How does your patch restore $28? 2. I assum you set length to 8 for o64. Has anyone checked if the instruction is 8 byte on o64? 2. Did you remove (set_attr "mode" "SI") for o64? Thanks. H.J.