mn10300: Auto-clobber the flags in asms.
authorRichard Henderson <rth@redhat.com>
Wed, 12 Jan 2011 17:59:31 +0000 (09:59 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Wed, 12 Jan 2011 17:59:31 +0000 (09:59 -0800)
From-SVN: r168725

gcc/ChangeLog
gcc/config/mn10300/mn10300.c

index 70c69e3a565730a3b9b2ee8230f70da5764c24f3..c6ec1d5323f2177f97c347d796c1decc029ac431 100644 (file)
@@ -1,5 +1,8 @@
 2011-01-12  Richard Henderson  <rth@redhat.com>
 
+       * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
+       (TARGET_MD_ASM_CLOBBERS): New.
+
        * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
        (TARGET_DELEGITIMIZE_ADDRESS): New.
 
index 1cea6c291d9aaf2f331ac52f6beda147685b9003..f9be6ea6c5857171dba242818d8e3487daf2d04b 100644 (file)
@@ -2716,6 +2716,20 @@ mn10300_conditional_register_usage (void)
     fixed_regs[PIC_OFFSET_TABLE_REGNUM] =
     call_used_regs[PIC_OFFSET_TABLE_REGNUM] = 1;
 }
+
+/* Worker function for TARGET_MD_ASM_CLOBBERS.
+   We do this in the mn10300 backend to maintain source compatibility
+   with the old cc0-based compiler.  */
+
+static tree
+mn10300_md_asm_clobbers (tree outputs ATTRIBUTE_UNUSED,
+                         tree inputs ATTRIBUTE_UNUSED,
+                         tree clobbers)
+{
+  clobbers = tree_cons (NULL_TREE, build_string (5, "EPSW"),
+                        clobbers);
+  return clobbers;
+}
 \f
 /* Initialize the GCC target structure.  */
 
@@ -2809,4 +2823,7 @@ mn10300_conditional_register_usage (void)
 #undef  TARGET_CONDITIONAL_REGISTER_USAGE
 #define TARGET_CONDITIONAL_REGISTER_USAGE mn10300_conditional_register_usage
 
+#undef TARGET_MD_ASM_CLOBBERS
+#define TARGET_MD_ASM_CLOBBERS  mn10300_md_asm_clobbers
+
 struct gcc_target targetm = TARGET_INITIALIZER;