RE: [PATCH]Microblaze: Fixed missing save of r18 in fast_interrupt.
> -Original Message- > From: Jeff Law > Sent: Sunday, April 5, 2020 9:45 PM > To: Michael Eager ; Nagaraju Mekala > ; gcc-patches@gcc.gnu.org > Cc: Sadanand Mutyala ; klauspeter...@gmail.com > Subject: Re: [PATCH]Microblaze: Fixed missing save of r18 in fast_interrupt. > > On Sat, 2020-04-04 at 11:16 -0700, Michael Eager wrote: > > OK to apply. Thank you. > > On 4/4/20 2:18 AM, Nagaraju Mekala wrote: > > > Hello All, > > > > > > Fixed missing save of r18 in fast_interrupt. > > > Register 18 is used as a clobber register, and must be stored when > > > entering a fast_interrupt. Before this fix, register 18 was only > > > saved if it was used directly in the interrupt function. > > > > > > 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. > > > > > > Changelog > > > 2020-04-04 Klaus Petersen > > > * gcc/config/microblaze/microblaze.c: Check for fast_interrupt > > > in > > > microblaze_must_save_register. > > > > > > Signed-off-by: Klaus Petersen > > > Signed-off-by :Nagaraju Mekala > Fixed up the ChangeLog and trailing whitespace nits and pushed to the trunk. Thank you. I will take care of it from next time. - Nagaraju > THanks, > jeff >
Re: [PATCH]Microblaze: Fixed missing save of r18 in fast_interrupt.
On Sat, 2020-04-04 at 11:16 -0700, Michael Eager wrote: > OK to apply. > > On 4/4/20 2:18 AM, Nagaraju Mekala wrote: > > Hello All, > > > > Fixed missing save of r18 in fast_interrupt. > > Register 18 is used as a clobber register, and must be stored when entering > > a > > fast_interrupt. Before this fix, register 18 was only saved if it was used > > directly in the interrupt function. > > > > 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. > > > > Changelog > > 2020-04-04 Klaus Petersen > > * gcc/config/microblaze/microblaze.c: Check for fast_interrupt in > > microblaze_must_save_register. > > > > Signed-off-by: Klaus Petersen > > Signed-off-by :Nagaraju Mekala Fixed up the ChangeLog and trailing whitespace nits and pushed to the trunk. THanks, jeff
Re: [PATCH]Microblaze: Fixed missing save of r18 in fast_interrupt.
OK to apply. On 4/4/20 2:18 AM, Nagaraju Mekala wrote: Hello All, Fixed missing save of r18 in fast_interrupt. Register 18 is used as a clobber register, and must be stored when entering a fast_interrupt. Before this fix, register 18 was only saved if it was used directly in the interrupt function. 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. Changelog 2020-04-04 Klaus Petersen * gcc/config/microblaze/microblaze.c: Check for fast_interrupt in microblaze_must_save_register. Signed-off-by: Klaus Petersen Signed-off-by :Nagaraju Mekala diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c index b4754b1..67e393d 100644 --- a/gcc/config/microblaze/microblaze.c +++ b/gcc/config/microblaze/microblaze.c @@ -2035,7 +2035,7 @@ microblaze_must_save_register (int regno) { 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; Attached is the patch. Thanks Nagaraju -- Michael Eagerea...@eagercon.com 1960 Park Blvd., Palo Alto, CA 94306
[PATCH]Microblaze: Fixed missing save of r18 in fast_interrupt.
Hello All, Fixed missing save of r18 in fast_interrupt. Register 18 is used as a clobber register, and must be stored when entering a fast_interrupt. Before this fix, register 18 was only saved if it was used directly in the interrupt function. 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. Changelog 2020-04-04 Klaus Petersen * gcc/config/microblaze/microblaze.c: Check for fast_interrupt in microblaze_must_save_register. Signed-off-by: Klaus Petersen Signed-off-by :Nagaraju Mekala diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c index b4754b1..67e393d 100644 --- a/gcc/config/microblaze/microblaze.c +++ b/gcc/config/microblaze/microblaze.c @@ -2035,7 +2035,7 @@ microblaze_must_save_register (int regno) { 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; Attached is the patch. Thanks Nagaraju 0001-Patch-microblaze-Fixed-missing-save-of-r18-in-fast_i.patch Description: 0001-Patch-microblaze-Fixed-missing-save-of-r18-in-fast_i.patch