Commit d420e567 by Richard Henderson Committed by Richard Henderson

alpha.c (alpha_initialize_trampoline): Hack around Pmode/ptr_mode lossage on VMS.

        * alpha.c (alpha_initialize_trampoline): Hack around Pmode/ptr_mode
        lossage on VMS.  Reported by kkaempf@rmi.de.
        * alpha/vms.h (TRAMPOLINE_TEMPLATE): Add missing 0.

From-SVN: r20916
parent c3b9a038
Fri Jul 3 02:28:05 1998 Richard Henderson <rth@cygnus.com>
* alpha.c (alpha_initialize_trampoline): Hack around Pmode/ptr_mode
lossage on VMS. Reported by kkaempf@rmi.de.
* alpha/vms.h (TRAMPOLINE_TEMPLATE): Add missing 0.
Thu Jul 2 17:41:14 1998 Nick Clifton <nickc@cygnus.com>
* config/m32r/m32r.h (MUST_PASS_IN_STACK): Override default
......
......@@ -2841,12 +2841,15 @@ 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. */
enum machine_mode mode = TARGET_OPEN_VMS ? Pmode : ptr_mode;
/* Store function address and CXT. */
addr = memory_address (ptr_mode, plus_constant (tramp, fnofs));
emit_move_insn (gen_rtx (MEM, ptr_mode, addr), fnaddr);
addr = memory_address (ptr_mode, plus_constant (tramp, cxtofs));
emit_move_insn (gen_rtx (MEM, ptr_mode, addr), cxt);
addr = memory_address (mode, plus_constant (tramp, fnofs));
emit_move_insn (gen_rtx (MEM, mode, addr), fnaddr);
addr = memory_address (mode, plus_constant (tramp, cxtofs));
emit_move_insn (gen_rtx (MEM, mode, addr), cxt);
/* This has been disabled since the hint only has a 32k range, and in
no existing OS is the stack within 32k of the text segment. */
......
......@@ -392,7 +392,7 @@ do { \
{ \
fprintf (FILE, "\t.quad 0\n"); \
fprintf (FILE, "\t.linkage __tramp\n"); \
fprintf (FILE, "\t.quad 0\n"); \
fprintf (FILE, "\t.quad 0,0\n"); \
}
/* Length in units of the trampoline for entering a nested function. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment