[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