Commit 693ee8cf by Anthony Green Committed by Anthony Green

Fix moxie tramponline alignment problem

From-SVN: r156465
parent bf8e3b77
2010-02-03 Anthony Green <green@moxielogic.com>
* config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
nop padding in order to maintain alignment of storage location of
target function address.
(moxie_trampoline_init): Store target function address at newly
aligned location.
* config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
to 32.
(TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
2010-02-03 Richard Guenther <rguenther@suse.de>
PR middle-end/42927
......
/* Target Code for moxie
Copyright (C) 2008, 2009 Free Software Foundation
Copyright (C) 2008, 2009, 2010 Free Software Foundation
Contributed by Anthony Green.
This file is part of GCC.
......@@ -483,6 +483,7 @@ moxie_asm_trampoline_template (FILE *f)
fprintf (f, "\tldi.l $r0, 0x0\n");
fprintf (f, "\tsto.l 0x8($fp), $r0\n");
fprintf (f, "\tpop $sp, $r0\n");
fprintf (f, "\tnop\n");
fprintf (f, "\tjmpa 0x0\n");
}
......@@ -498,7 +499,7 @@ moxie_trampoline_init (rtx m_tramp, tree fndecl, rtx chain_value)
mem = adjust_address (m_tramp, SImode, 4);
emit_move_insn (mem, chain_value);
mem = adjust_address (m_tramp, SImode, 18);
mem = adjust_address (m_tramp, SImode, 20);
emit_move_insn (mem, fnaddr);
}
......
/* Target Definitions for moxie.
Copyright (C) 2008, 2009 Free Software Foundation, Inc.
Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
Contributed by Anthony Green.
This file is part of GCC.
......@@ -386,10 +386,10 @@ enum reg_class
#define FUNCTION_PROFILER(FILE,LABELNO) (abort (), 0)
/* Trampolines for Nested Functions. */
#define TRAMPOLINE_SIZE (2 + 6 + 6 + 2 + 6)
#define TRAMPOLINE_SIZE (2 + 6 + 6 + 2 + 2 + 6)
/* Alignment required for trampolines, in bits. */
#define TRAMPOLINE_ALIGNMENT 16
#define TRAMPOLINE_ALIGNMENT 32
/* An alias for the machine mode for pointers. */
#define Pmode SImode
......
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