diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 70c69e3a565..c6ec1d5323f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,8 @@ 2011-01-12 Richard Henderson + * 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 1cea6c291d9..f9be6ea6c58 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;