re PR target/63534 (Bootstrap failure on x86_64/i686-linux)
PR target/63534 gcc/ * config/i386/i386.md (builtin_setjmp_receiver): Use pic_offset_table_rtx for PIC register. (nonlocal_goto_receiver): Delete. From-SVN: r217237
This commit is contained in:
parent
82910dd63a
commit
64df297158
|
@ -1,3 +1,10 @@
|
|||
2014-11-07 Evgeny Stupachenko <evstupac@gmail.com>
|
||||
|
||||
PR target/63534
|
||||
* config/i386/i386.md (builtin_setjmp_receiver): Use
|
||||
pic_offset_table_rtx for PIC register.
|
||||
(nonlocal_goto_receiver): Delete.
|
||||
|
||||
2014-11-07 Daniel Hellstrom <daniel@gaisler.com>
|
||||
|
||||
* config.gcc (sparc-*-rtems*): Clean away unused t-elf.
|
||||
|
|
|
@ -17005,10 +17005,9 @@
|
|||
if (TARGET_MACHO)
|
||||
{
|
||||
rtx xops[3];
|
||||
rtx picreg = gen_rtx_REG (Pmode, PIC_OFFSET_TABLE_REGNUM);
|
||||
rtx_code_label *label_rtx = gen_label_rtx ();
|
||||
emit_insn (gen_set_got_labelled (pic_offset_table_rtx, label_rtx));
|
||||
xops[0] = xops[1] = picreg;
|
||||
xops[0] = xops[1] = pic_offset_table_rtx;
|
||||
xops[2] = machopic_gen_offset (gen_rtx_LABEL_REF (SImode, label_rtx));
|
||||
ix86_expand_binary_operator (MINUS, SImode, xops);
|
||||
}
|
||||
|
@ -17018,36 +17017,6 @@
|
|||
DONE;
|
||||
})
|
||||
|
||||
(define_insn_and_split "nonlocal_goto_receiver"
|
||||
[(unspec_volatile [(const_int 0)] UNSPECV_NLGR)]
|
||||
"TARGET_MACHO && !TARGET_64BIT && flag_pic"
|
||||
"#"
|
||||
"&& reload_completed"
|
||||
[(const_int 0)]
|
||||
{
|
||||
if (crtl->uses_pic_offset_table)
|
||||
{
|
||||
rtx xops[3];
|
||||
rtx label_rtx = gen_label_rtx ();
|
||||
rtx tmp;
|
||||
|
||||
/* Get a new pic base. */
|
||||
emit_insn (gen_set_got_labelled (pic_offset_table_rtx, label_rtx));
|
||||
/* Correct this with the offset from the new to the old. */
|
||||
xops[0] = xops[1] = pic_offset_table_rtx;
|
||||
label_rtx = gen_rtx_LABEL_REF (SImode, label_rtx);
|
||||
tmp = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, label_rtx),
|
||||
UNSPEC_MACHOPIC_OFFSET);
|
||||
xops[2] = gen_rtx_CONST (Pmode, tmp);
|
||||
ix86_expand_binary_operator (MINUS, SImode, xops);
|
||||
}
|
||||
else
|
||||
/* No pic reg restore needed. */
|
||||
emit_note (NOTE_INSN_DELETED);
|
||||
|
||||
DONE;
|
||||
})
|
||||
|
||||
;; Avoid redundant prefixes by splitting HImode arithmetic to SImode.
|
||||
;; Do not split instructions with mask registers.
|
||||
(define_split
|
||||
|
|
Loading…
Reference in New Issue