aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2001-10-18 22:04:54 -0700
committerRichard Henderson <rth@gcc.gnu.org>2001-10-18 22:04:54 -0700
commitb2c9c37eb6f820606fee9228ef061cfa755a2219 (patch)
treecd33f2d935c53337e74c72c8e6aaadb2770ac908 /gcc
parent616051acab4700e1d08ca6b713e7c4dfd74e2d5c (diff)
downloadgcc-b2c9c37eb6f820606fee9228ef061cfa755a2219.zip
gcc-b2c9c37eb6f820606fee9228ef061cfa755a2219.tar.gz
gcc-b2c9c37eb6f820606fee9228ef061cfa755a2219.tar.bz2
alpha.md (sibcall_osf_1): Load destination address into $27 explicitly.
* config/alpha/alpha.md (sibcall_osf_1): Load destination address into $27 explicitly. (sibcall_value_osf_1): Likewise. From-SVN: r46340
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/alpha/alpha.md9
2 files changed, 11 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index dd5331c..08e0d5b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2001-10-18 Richard Henderson <rth@redhat.com>
+
+ * config/alpha/alpha.md (sibcall_osf_1): Load destination
+ address into $27 explicitly.
+ (sibcall_value_osf_1): Likewise.
+
Thu Oct 18 16:07:39 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* emit-rtl.c (gen_reg_rtx): Also reallocate reg_decl array.
diff --git a/gcc/config/alpha/alpha.md b/gcc/config/alpha/alpha.md
index 4eecb1d..039efdd 100644
--- a/gcc/config/alpha/alpha.md
+++ b/gcc/config/alpha/alpha.md
@@ -4848,8 +4848,9 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi"
[(set_attr "type" "jsr")
(set_attr "length" "12,*,16")])
-;; Need 's' alternative for OSF/1, which implements profiling
-;; via linker tricks.
+;; Need 's' alternative for OSF/1, which implements profiling via linker
+;; tricks. 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 "current_file_function_operand" "R,s"))
(match_operand 1 "" ""))
@@ -4857,7 +4858,7 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi"
"TARGET_ABI_OSF"
"@
br $31,$%0..ng
- jmp $31,%0"
+ lda $27,%0\;jmp $31,($27),%0"
[(set_attr "type" "jsr")
(set_attr "length" "*,8")])
@@ -6817,7 +6818,7 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi"
"TARGET_ABI_OSF"
"@
br $31,$%1..ng
- jmp $31,%1"
+ lda $27,%1\;jmp $31,($27),%1"
[(set_attr "type" "jsr")
(set_attr "length" "*,8")])