[llvm-commits] [llvm-gcc-4.2] r76501 - /llvm-gcc-4.2/trunk/gcc/c-common.c
Dale Johannesen
dalej at apple.com
Mon Jul 20 16:26:06 PDT 2009
Author: johannes
Date: Mon Jul 20 18:26:06 2009
New Revision: 76501
URL: http://llvm.org/viewvc/llvm-project?rev=76501&view=rev
Log:
asm blocks used the P modifier for FUNCTION_DECLs,
whether we want the function's address or are calling it.
After struggling with this in the X86 BE for a while I
decided it shouldn't have to handle this; changing
FE to emit P only in the call context.
Modified:
llvm-gcc-4.2/trunk/gcc/c-common.c
Modified: llvm-gcc-4.2/trunk/gcc/c-common.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/c-common.c?rev=76501&r1=76500&r2=76501&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/c-common.c (original)
+++ llvm-gcc-4.2/trunk/gcc/c-common.c Mon Jul 20 18:26:06 2009
@@ -8001,6 +8001,12 @@
{
if (TARGET_64BIT)
e.modifier = "l";
+ /* LLVM LOCAL begin apply this only within calls */
+#ifdef ENABLE_LLVM
+ else
+ e.modifier = "P";
+#endif
+ /* LLVM LOCAL end */
iasm_force_constraint ("X", &e);
}
}
@@ -8492,6 +8498,16 @@
e->modifier = 0;
strcat (buf, "*");
}
+/* LLVM LOCAL begin apply P modifier only within calls. */
+#ifdef ENABLE_LLVM
+ else
+ {
+ modifier = "";
+ if (e->modifier && strcmp (e->modifier, "P") == 0)
+ modifier = "P";
+ }
+#endif
+/* LLVM LOCAL end */
#endif
iasm_get_register_var (arg, modifier, buf, argnum, must_be_reg, e);
break;
More information about the llvm-commits
mailing list