OSDN Git Service

config/m32r.c (m32r_legitimize_pic_address): Changed to support GOTOFF
[pf3gnuchains/gcc-fork.git] / gcc / config / m32r / m32r.md
index f1236d4..37f94e4 100644 (file)
@@ -31,7 +31,9 @@
   [(UNSPEC_LOAD_SDA_BASE       2)
    (UNSPEC_SET_CBIT            3)
    (UNSPEC_PIC_LOAD_ADDR       4)
-   (UNSPEC_GET_PC              5)])
+   (UNSPEC_GET_PC              5)
+   (UNSPEC_GOTOFF              6)
+   ])
 
 ;; Insn type.  Used to default other attribute values.
 (define_attr "type"
   "ld24 %0,%#%1"
   [(set_attr "type" "int4")])
 
+(define_insn "gotoff_load_addr"
+  [(set (match_operand:SI 0 "register_operand" "=r")
+        (unspec:SI [(match_operand 1 "" "")] UNSPEC_GOTOFF))]
+  "flag_pic"
+  "seth %0, %#shigh(%1@GOTOFF)\;add3 %0, %0, low(%1@GOTOFF)"
+  [(set_attr "type"    "int4")
+   (set_attr "length"  "8")])
+
 ;; Load program counter insns.
 
 (define_insn "get_pc"