This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
alpha explicit relocs tweek
- From: Richard Henderson <rth at redhat dot com>
- To: gcc-patches at gcc dot gnu dot org
- Date: Sat, 15 Dec 2001 21:41:48 -0800
- Subject: alpha explicit relocs tweek
Missed these when converting the call patterns.
r~
* config/alpha/alpha.md (sibcall_osf_1_er): New.
(sibcall_value_osf_1_er): New.
Index: config/alpha/alpha.md
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/alpha/alpha.md,v
retrieving revision 1.166
diff -c -p -d -r1.166 alpha.md
*** alpha.md 2001/12/12 06:40:27 1.166
--- alpha.md 2001/12/16 05:38:30
*************** fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi
*** 4925,4935 ****
;; Note that the DEC assembler expands "jmp foo" with $at, which
;; doesn't do what we want.
(define_insn "*sibcall_osf_1"
[(call (mem:DI (match_operand:DI 0 "symbolic_operand" "R,s"))
(match_operand 1 "" ""))
(use (reg:DI 29))]
! "TARGET_ABI_OSF"
"@
br $31,$%0..ng
lda $27,%0\;jmp $31,($27),%0"
--- 4925,4946 ----
;; Note that the DEC assembler expands "jmp foo" with $at, which
;; doesn't do what we want.
+ (define_insn "*sibcall_osf_1_er"
+ [(call (mem:DI (match_operand:DI 0 "symbolic_operand" "R,s"))
+ (match_operand 1 "" ""))
+ (use (reg:DI 29))]
+ "TARGET_EXPLICIT_RELOCS && TARGET_ABI_OSF"
+ "@
+ br $31,$%0..ng
+ ldq $27,%0($29)\t\t!literal!%#\;jmp $31,($27),%0\t\t!lituse_jsr!%#"
+ [(set_attr "type" "jsr")
+ (set_attr "length" "*,8")])
+
(define_insn "*sibcall_osf_1"
[(call (mem:DI (match_operand:DI 0 "symbolic_operand" "R,s"))
(match_operand 1 "" ""))
(use (reg:DI 29))]
! "! TARGET_EXPLICIT_RELOCS && TARGET_ABI_OSF"
"@
br $31,$%0..ng
lda $27,%0\;jmp $31,($27),%0"
*************** fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi
*** 6920,6931 ****
[(set_attr "type" "jsr")
(set_attr "length" "12,*,16")])
(define_insn "*sibcall_value_osf_1"
[(set (match_operand 0 "" "")
(call (mem:DI (match_operand:DI 1 "symbolic_operand" "R,s"))
(match_operand 2 "" "")))
(use (reg:DI 29))]
! "TARGET_ABI_OSF"
"@
br $31,$%1..ng
lda $27,%1\;jmp $31,($27),%1"
--- 6931,6954 ----
[(set_attr "type" "jsr")
(set_attr "length" "12,*,16")])
+ (define_insn "*sibcall_value_osf_1_er"
+ [(set (match_operand 0 "" "")
+ (call (mem:DI (match_operand:DI 1 "symbolic_operand" "R,s"))
+ (match_operand 2 "" "")))
+ (use (reg:DI 29))]
+ "TARGET_EXPLICIT_RELOCS && TARGET_ABI_OSF"
+ "@
+ br $31,$%1..ng
+ ldq $27,%1($29)\t\t!literal!%#\;jmp $31,($27),%1\t\t!lituse_jsr!%#"
+ [(set_attr "type" "jsr")
+ (set_attr "length" "*,8")])
+
(define_insn "*sibcall_value_osf_1"
[(set (match_operand 0 "" "")
(call (mem:DI (match_operand:DI 1 "symbolic_operand" "R,s"))
(match_operand 2 "" "")))
(use (reg:DI 29))]
! "! TARGET_EXPLICIT_RELOCS && TARGET_ABI_OSF"
"@
br $31,$%1..ng
lda $27,%1\;jmp $31,($27),%1"