diff options
author | Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com> | 2004-12-15 12:13:07 +0000 |
---|---|---|
committer | Nick Clifton <nickc@gcc.gnu.org> | 2004-12-15 12:13:07 +0000 |
commit | c331bf080274e520ae3ac9238c73625c9981dedc (patch) | |
tree | 60b06fc1a57f4dd134488d9304dfdcff69417786 /gcc/config/m32r/m32r.md | |
parent | 2594119414795e798aa0ed29617f12d0f629c56b (diff) | |
download | gcc-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.md | 12 |
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" |