This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: DWARF2 exception doesn't work with gcc and gas on MIPS.
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.