You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi,
There might be a minor issue related to prologue and epilogue GP registers saving:
Context
I was trying to remove the limitation related to the ISRs regarding functions calls, that is to say allowing such calls at my own risk. I reasoned that I should save all caller-saved regs instead on simply the ones used by the ISR. I managed to do so but was a bit puzzled as t6 (x31) did not appear as part of the regs saved to the stack during my ISR prologue (and respectively retrieved from it during the epilogue).
Issue
I found at lines 4233 (riscv_for_each_saved_reg), 4365 (riscv_adjust_lib_call_cfi_prologue) and 4506 (riscv_adjust_lib_call_cfi_epilogue) a "for" loop that might contain a typo: for (int regno = GP_REG_FIRST; regno <= GP_REG_LAST-1; regno++)
Trial
I did not know if it was done purposefully but anyway made the following modification: for (int regno = GP_REG_FIRST; regno <= GP_REG_LAST; regno++)
This time t6 was saved on the stack.
Thank you !
The text was updated successfully, but these errors were encountered:
Hi,
There might be a minor issue related to prologue and epilogue GP registers saving:
Context
I was trying to remove the limitation related to the ISRs regarding functions calls, that is to say allowing such calls at my own risk. I reasoned that I should save all caller-saved regs instead on simply the ones used by the ISR. I managed to do so but was a bit puzzled as t6 (x31) did not appear as part of the regs saved to the stack during my ISR prologue (and respectively retrieved from it during the epilogue).
Issue
I found at lines 4233 (riscv_for_each_saved_reg), 4365 (riscv_adjust_lib_call_cfi_prologue) and 4506 (riscv_adjust_lib_call_cfi_epilogue) a "for" loop that might contain a typo:
for (int regno = GP_REG_FIRST; regno <= GP_REG_LAST-1; regno++)
Trial
I did not know if it was done purposefully but anyway made the following modification:
for (int regno = GP_REG_FIRST; regno <= GP_REG_LAST; regno++)
This time t6 was saved on the stack.
Thank you !
The text was updated successfully, but these errors were encountered: