Message ID | 000001cc16d6$9b6ac560$d2405020$@Yorsh@arm.com |
---|---|
State | New |
Headers | show |
On 05/20/11 11:13, Greta Yorsh wrote: > This patch replaces a hardcoded "." of local label prefix with > LOCAL_LABEL_PREFIX macro in the ARM backend (generating a "trampoline" in > thumb mode). > > The patch also contains a new test to make sure that the local label > ".Ltrampoline_start:" is generated correctly. > > No regressions on arm-none-eabi. > > > > -- Greta > > > > gcc/Changelog: > > 2011-05-13 Greta Yorsh<greta.yorsh@arm.com> > > * config/arm/arm.c: Replace hardcoded "." of local label prefix > with LOCAL_LABEL_PREFIX macro. > > gcc/testsuite/ChangeLog: > > 2011-05-13 Greta Yorsh<greta.yorsh@arm.com> > > * gcc.target/arm/trampoline-1.c: New test, to make sure > the local label ".Ltrampoline" is generated correctly. > OK. R.
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 4f9c2aa..6216b49 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -2066,7 +2066,7 @@ arm_asm_trampoline_template (FILE *f) { ASM_OUTPUT_ALIGN (f, 2); fprintf (f, "\t.code\t16\n"); - fprintf (f, ".Ltrampoline_start:\n"); + fprintf (f, "%sLtrampoline_start:\n", LOCAL_LABEL_PREFIX); asm_fprintf (f, "\tpush\t{r0, r1}\n"); asm_fprintf (f, "\tldr\tr0, [%r, #8]\n", PC_REGNUM); asm_fprintf (f, "\tmov\t%r, r0\n", STATIC_CHAIN_REGNUM); diff --git a/gcc/testsuite/gcc.target/arm/trampoline-1.c b/gcc/testsuite/gcc.target/arm/trampoline-1.c new file mode 100644 index 0000000..212e7ee --- /dev/null +++ b/gcc/testsuite/gcc.target/arm/trampoline-1.c @@ -0,0 +1,19 @@ +/* { dg-options "-mcpu=arm7tdmi -mthumb" } */ +/* { dg-do compile } */ +/* { dg-require-effective-target arm_eabi } */ +/* { dg-require-effective-target arm_thumb1_ok } */ + +void +foo(int a) +{ + int + gee(void) + { + return a; + } + extern int bar(int (*)(void)); + bar(&gee); + +} + +/* { dg-final { scan-assembler ".Ltrampoline_start:" } } */