aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDonn Terry <donn@interix.com>1999-04-23 15:04:07 +0000
committerRichard Henderson <rth@gcc.gnu.org>1999-04-23 08:04:07 -0700
commitd2692ef86e8ea0191975319469e8b1b3b2a846d4 (patch)
tree0a5ad276cd21176cc03e38b8d9c821ef2afd689a
parent98283b420840f82d9b2bf6c22c49c720d24b4e81 (diff)
downloadgcc-d2692ef86e8ea0191975319469e8b1b3b2a846d4.zip
gcc-d2692ef86e8ea0191975319469e8b1b3b2a846d4.tar.gz
gcc-d2692ef86e8ea0191975319469e8b1b3b2a846d4.tar.bz2
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
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/config/alpha/alpha.c8
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5a264d4..eeeab3c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c
index 5c8564d..9ccdb91 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);