From d2692ef86e8ea0191975319469e8b1b3b2a846d4 Mon Sep 17 00:00:00 2001 From: Donn Terry Date: Fri, 23 Apr 1999 15:04:07 +0000 Subject: [PATCH] alpha.c (alpha_initialize_trampoline): Add covert_memory_address calls as needed. * alpha.c (alpha_initialize_trampoline): Add covert_memory_address calls as needed. From-SVN: r26604 --- gcc/ChangeLog | 3 +++ gcc/config/alpha/alpha.c | 8 ++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5a264d4ab79..eeeab3c5a10 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -2,6 +2,9 @@ Fri Apr 23 14:57:33 1999 Donn Terry * alpha32.h (INITIALIZE_TRAMPOLINE): Get offsets right. + * alpha.c (alpha_initialize_trampoline): Add covert_memory_address + calls as needed. + Fri Apr 23 14:36:47 1999 Richard Henderson * alpha.c (alpha_expand_prologue): Don't negate frame size diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c index 5c8564dcfe3..9ccdb914ccf 100644 --- a/gcc/config/alpha/alpha.c +++ b/gcc/config/alpha/alpha.c @@ -2949,10 +2949,14 @@ alpha_initialize_trampoline (tramp, fnaddr, cxt, fnofs, cxtofs, jmpofs) int fnofs, cxtofs, jmpofs; { rtx temp, temp1, addr; - /* ??? Something is wrong with VMS codegen in that we get aborts when - using ptr_mode. Hack around it for now. */ + /* VMS really uses DImode pointers in memory at this point. */ enum machine_mode mode = TARGET_OPEN_VMS ? Pmode : ptr_mode; +#ifdef POINTERS_EXTEND_UNSIGNED + fnaddr = convert_memory_address (mode, fnaddr); + cxt = convert_memory_address (mode, cxt); +#endif + /* Store function address and CXT. */ addr = memory_address (mode, plus_constant (tramp, fnofs)); emit_move_insn (gen_rtx (MEM, mode, addr), fnaddr); -- 2.30.2