alpha.md (sibcall_osf_1_er): New.

* config/alpha/alpha.md (sibcall_osf_1_er): New.
        (sibcall_value_osf_1_er): New.

From-SVN: r48061
This commit is contained in:
Richard Henderson 2001-12-15 21:40:26 -08:00 committed by Richard Henderson
parent b6434700a8
commit 97feffc243
2 changed files with 31 additions and 3 deletions

View File

@ -1,3 +1,8 @@
2001-12-15 Richard Henderson <rth@redhat.com>
* config/alpha/alpha.md (sibcall_osf_1_er): New.
(sibcall_value_osf_1_er): New.
2001-12-15 Dan Nicolaescu <dann@ics.uci.edu> 2001-12-15 Dan Nicolaescu <dann@ics.uci.edu>
* config/sparc/sparc.c (mems_ok_for_ldd_peep): Rename from * config/sparc/sparc.c (mems_ok_for_ldd_peep): Rename from

View File

@ -4820,7 +4820,7 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi"
"@ "@
jsr $26,(%0),0\;ldah $29,0($26)\t\t!gpdisp!%*\;lda $29,0($29)\t\t!gpdisp!%* jsr $26,(%0),0\;ldah $29,0($26)\t\t!gpdisp!%*\;lda $29,0($29)\t\t!gpdisp!%*
bsr $26,$%0..ng bsr $26,$%0..ng
ldq $27,%0($29)\t\t!literal!%#\;jsr $26,($27),0\t\t!lituse_jsr!%#\;ldah $29,0($26)\t\t!gpdisp!%*\;lda $29,0($29)\t\t!gpdisp!%*" ldq $27,%0($29)\t\t!literal!%#\;jsr $26,($27),%0\t\t!lituse_jsr!%#\;ldah $29,0($26)\t\t!gpdisp!%*\;lda $29,0($29)\t\t!gpdisp!%*"
[(set_attr "type" "jsr") [(set_attr "type" "jsr")
(set_attr "length" "12,*,16")]) (set_attr "length" "12,*,16")])
@ -4925,11 +4925,22 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi"
;; Note that the DEC assembler expands "jmp foo" with $at, which ;; Note that the DEC assembler expands "jmp foo" with $at, which
;; doesn't do what we want. ;; 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" (define_insn "*sibcall_osf_1"
[(call (mem:DI (match_operand:DI 0 "symbolic_operand" "R,s")) [(call (mem:DI (match_operand:DI 0 "symbolic_operand" "R,s"))
(match_operand 1 "" "")) (match_operand 1 "" ""))
(use (reg:DI 29))] (use (reg:DI 29))]
"TARGET_ABI_OSF" "! TARGET_EXPLICIT_RELOCS && TARGET_ABI_OSF"
"@ "@
br $31,$%0..ng br $31,$%0..ng
lda $27,%0\;jmp $31,($27),%0" lda $27,%0\;jmp $31,($27),%0"
@ -6920,12 +6931,24 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi"
[(set_attr "type" "jsr") [(set_attr "type" "jsr")
(set_attr "length" "12,*,16")]) (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" (define_insn "*sibcall_value_osf_1"
[(set (match_operand 0 "" "") [(set (match_operand 0 "" "")
(call (mem:DI (match_operand:DI 1 "symbolic_operand" "R,s")) (call (mem:DI (match_operand:DI 1 "symbolic_operand" "R,s"))
(match_operand 2 "" ""))) (match_operand 2 "" "")))
(use (reg:DI 29))] (use (reg:DI 29))]
"TARGET_ABI_OSF" "! TARGET_EXPLICIT_RELOCS && TARGET_ABI_OSF"
"@ "@
br $31,$%1..ng br $31,$%1..ng
lda $27,%1\;jmp $31,($27),%1" lda $27,%1\;jmp $31,($27),%1"