From 858b728c999c4197c08c82e00c4098546c7bc635 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Wed, 16 Dec 1992 19:23:52 -0500 Subject: [PATCH] (INITIALIZE_TRAMPOLINE): Get function address and toc pointer from correct place relative to FNADDR. From-SVN: r2890 --- gcc/config/rs6000/rs6000.h | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h index ae8275f817d..e6ecd4c29f4 100644 --- a/gcc/config/rs6000/rs6000.h +++ b/gcc/config/rs6000/rs6000.h @@ -851,14 +851,20 @@ struct rs6000_args {int words, fregno, nargs_prototype; }; #define INITIALIZE_TRAMPOLINE(ADDR, FNADDR, CXT) \ { \ - emit_move_insn (gen_rtx (MEM, SImode, memory_address (SImode, ADDR)), \ - force_reg (SImode, FNADDR)); \ emit_move_insn (gen_rtx (MEM, SImode, \ - memory_address (SImode, plus_constant (ADDR, 4))), \ - gen_rtx (REG, SImode, 2)); \ + memory_address (SImode, (ADDR))), \ + gen_rtx (MEM, SImode, \ + memory_address (SImode, (FNADDR)))); \ emit_move_insn (gen_rtx (MEM, SImode, \ - memory_address (SImode, plus_constant (ADDR, 8))), \ - force_reg (SImode, CXT)); \ + memory_address (SImode, \ + plus_constant ((ADDR), 4))), \ + gen_rtx (MEM, SImode, \ + memory_address (SImode, \ + plus_constant ((FNADDR), 4)))); \ + emit_move_insn (gen_rtx (MEM, SImode, \ + memory_address (SImode, \ + plus_constant ((ADDR), 8))), \ + force_reg (SImode, (CXT))); \ } /* Definitions for register eliminations. -- 2.30.2