aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2011-01-12 09:59:31 -0800
committerRichard Henderson <rth@gcc.gnu.org>2011-01-12 09:59:31 -0800
commita49b692a27b8e388bbbf7ea6e0f883505b9b65ff (patch)
tree34dabd1bccf43a95f0d916368f0a8bb0f1f7ac54 /gcc
parent126b1483704fa2a2c1db26878467130b149e3fb8 (diff)
downloadgcc-a49b692a27b8e388bbbf7ea6e0f883505b9b65ff.zip
gcc-a49b692a27b8e388bbbf7ea6e0f883505b9b65ff.tar.gz
gcc-a49b692a27b8e388bbbf7ea6e0f883505b9b65ff.tar.bz2
mn10300: Auto-clobber the flags in asms.
From-SVN: r168725
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/config/mn10300/mn10300.c17
2 files changed, 20 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 70c69e3..c6ec1d5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/config/mn10300/mn10300.c b/gcc/config/mn10300/mn10300.c
index 1cea6c2..f9be6ea 100644
--- a/gcc/config/mn10300/mn10300.c
+++ b/gcc/config/mn10300/mn10300.c
@@ -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;
+}
/* 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;