aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/m32r/m32r.md
diff options
context:
space:
mode:
authorKazuhiro Inaoka <inaoka.kazuhiro@renesas.com>2004-12-15 12:13:07 +0000
committerNick Clifton <nickc@gcc.gnu.org>2004-12-15 12:13:07 +0000
commitc331bf080274e520ae3ac9238c73625c9981dedc (patch)
tree60b06fc1a57f4dd134488d9304dfdcff69417786 /gcc/config/m32r/m32r.md
parent2594119414795e798aa0ed29617f12d0f629c56b (diff)
downloadgcc-c331bf080274e520ae3ac9238c73625c9981dedc.zip
gcc-c331bf080274e520ae3ac9238c73625c9981dedc.tar.gz
gcc-c331bf080274e520ae3ac9238c73625c9981dedc.tar.bz2
config/m32r.c (m32r_legitimize_pic_address): Changed to support GOTOFF relocation.
config/m32r.c (m32r_legitimize_pic_address): Changed to support GOTOFF relocation. config/m32r.md (UNSPEC_GOTOFF): New. (gotoff_load_addr): New. From-SVN: r92186
Diffstat (limited to 'gcc/config/m32r/m32r.md')
-rw-r--r--gcc/config/m32r/m32r.md12
1 files changed, 11 insertions, 1 deletions
diff --git a/gcc/config/m32r/m32r.md b/gcc/config/m32r/m32r.md
index f1236d4..37f94e4 100644
--- a/gcc/config/m32r/m32r.md
+++ b/gcc/config/m32r/m32r.md
@@ -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"
@@ -2570,6 +2572,14 @@
"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"