Patchwork cleanup: local label prefix

login
register
mail settings
Submitter Greta Yorsh
Date May 20, 2011, 10:13 a.m.
Message ID <000001cc16d6$9b6ac560$d2405020$@Yorsh@arm.com>
Download mbox | patch
Permalink /patch/96578/
State New
Headers show

Comments

Greta Yorsh - May 20, 2011, 10:13 a.m.
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.
Richard Earnshaw - June 6, 2011, 5:02 p.m.
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.

Patch

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:" } } */