2005-09-06 Saurabh Verma <saurabh.verma@codito.com>
+ PR target/8973
+ * config/arc/arc.c (arc_output_function_epilogue): Update flags while
+ returning from an interrupt handler.
+
+2005-09-06 Saurabh Verma <saurabh.verma@codito.com>
+
PR target/8972
* config/arc/arc.c (output_shift): Add check for loop count when
optimizing.
static const int regs[4] = {
0, RETURN_ADDR_REGNUM, ILINK1_REGNUM, ILINK2_REGNUM
};
- fprintf (file, "\tj.d %s\n", reg_names[regs[fn_type]]);
- }
+
+ /* Update the flags, if returning from an interrupt handler. */
+ if (ARC_INTERRUPT_P (fn_type))
+ fprintf (file, "\tj.d.f %s\n", reg_names[regs[fn_type]]);
+ else
+ fprintf (file, "\tj.d %s\n", reg_names[regs[fn_type]]);
+ }
/* If the only register saved is the return address, we need a
nop, unless we have an instruction to put into it. Otherwise