From b2c9c37eb6f820606fee9228ef061cfa755a2219 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Thu, 18 Oct 2001 22:04:54 -0700 Subject: [PATCH] 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 --- gcc/ChangeLog | 6 ++++++ gcc/config/alpha/alpha.md | 9 +++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index dd5331c63c8..08e0d5beab4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2001-10-18 Richard Henderson + + * 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 * 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 4eecb1d939f..039efdd1edd 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")])