However, if the fast_interrupt function called a function that used
r18, the register would not be saved, and thus be mangled
upon returning from the interrupt.
* config/microblaze/microblaze.c (microblaze_must_save_register): Check
for fast_interrupt.
2020-04-05 Nagaraju Mekala <nmekala@xilix.com>
-
- * gcc/config/microblaze/microblaze.md (trap): Update output pattern.
- * gcc/testsuite/gcc.target/microblaze/others/builtin-trap.c
- (dg-final): update in the scan-assembler instruction
+ * config/microblaze/microblaze.c (microblaze_must_save_register): Check
+ for fast_interrupt.
+
+ * config/microblaze/microblaze.md (trap): Update output pattern.
2020-04-04 Hannes Domani <ssbssa@yahoo.de>
Jakub Jelinek <jakub@redhat.com>
{
if (df_regs_ever_live_p (regno)
|| regno == MB_ABI_MSR_SAVE_REG
- || (interrupt_handler
+ || ((interrupt_handler || fast_interrupt)
&& (regno == MB_ABI_ASM_TEMP_REGNUM
|| regno == MB_ABI_EXCEPTION_RETURN_ADDR_REGNUM)))
return 1;