Commit 55eec660 by Alexandre Oliva Committed by Alexandre Oliva

sh.c (nonpic_symbol_mentioned_p): Check LABEL_REFs.

* config/sh/sh.c (nonpic_symbol_mentioned_p): Check LABEL_REFs.
* config/sh/sh.md (sym_label2reg, symPLT_label2reg): Protect
LABEL_REFs with a PIC-safe unspec.

From-SVN: r36495
parent 7bf2bde1
2000-09-18 Alexandre Oliva <aoliva@redhat.com>
* config/sh/sh.c (nonpic_symbol_mentioned_p): Check LABEL_REFs.
* config/sh/sh.md (sym_label2reg, symPLT_label2reg): Protect
LABEL_REFs with a PIC-safe unspec.
2000-09-18 Will Cohen <wcohen@redhat.com>
* extend.texi (Zero Length): State that static initializers for
......
......@@ -5277,8 +5277,8 @@ sh_insn_length_adjustment (insn)
return 0;
}
/* Return TRUE if X references a SYMBOL_REF whose symbol doesn't have
@GOT or @GOTOFF. */
/* Return TRUE if X references a SYMBOL_REF or LABEL_REF whose symbol
isn't protected by a PIC unspec. */
int
nonpic_symbol_mentioned_p (x)
rtx x;
......@@ -5286,7 +5286,7 @@ nonpic_symbol_mentioned_p (x)
register const char *fmt;
register int i;
if (GET_CODE (x) == SYMBOL_REF)
if (GET_CODE (x) == SYMBOL_REF || GET_CODE (x) == LABEL_REF)
return 1;
if (GET_CODE (x) == UNSPEC
......
......@@ -3482,8 +3482,9 @@ else
[(set (match_operand:SI 0 "" "")
(const (minus:SI
(unspec [(match_operand:SI 1 "" "")] 6)
(const (plus:SI (label_ref (match_operand:SI 2 "" ""))
(const_int 2))))))]
(const (plus:SI
(unspec [(label_ref (match_operand:SI 2 "" ""))] 6)
(const_int 2))))))]
"" "")
(define_expand "symGOT2reg"
......@@ -3514,8 +3515,10 @@ else
(const (minus:SI
(plus:SI (pc)
(unspec [(match_operand:SI 1 "" "")] 9))
(const (plus:SI (label_ref (match_operand:SI 2 "" ""))
(const_int 2))))))
(const
(plus:SI
(unspec [(label_ref (match_operand:SI 2 "" ""))] 6)
(const_int 2))))))
(use (match_dup 3))]
;; Even though the PIC register is not really used by the call
;; sequence in which this is expanded, the PLT code assumes the PIC
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment