+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.
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");
}
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.
#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