alpha.c (alpha_initialize_trampoline): Add covert_memory_address calls as needed.
authorDonn Terry <donn@interix.com>
Fri, 23 Apr 1999 15:04:07 +0000 (15:04 +0000)
committerRichard Henderson <rth@gcc.gnu.org>
Fri, 23 Apr 1999 15:04:07 +0000 (08:04 -0700)
        * alpha.c (alpha_initialize_trampoline): Add covert_memory_address
        calls as needed.

From-SVN: r26604

gcc/ChangeLog
gcc/config/alpha/alpha.c

index 5a264d4ab79479de885c9ca9c6743630a30d9dc8..eeeab3c5a1027217a7f22c56631f53e8bc787b16 100644 (file)
@@ -2,6 +2,9 @@ Fri Apr 23 14:57:33 1999  Donn Terry  <donn@interix.com>
 
        * 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  <rth@cygnus.com>
 
        * alpha.c (alpha_expand_prologue): Don't negate frame size
index 5c8564dcfe32742c612a9d1eeeabbe1975d14963..9ccdb914ccf9e7241875eb9d29685e647cc9d1d6 100644 (file)
@@ -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);