nios2: exceptions: remove remaining muldiv references
We are not going to handle unimplemented math instruction exceptions at runtime. Remove remaining comments and exports related to this. We don't need to leave a gap in the exception stack frame for it either. Change-Id: I4f1f3980a0e43bbf6f2f7488a9182f7acb06be05 Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
This commit is contained in:
parent
e7041e98f8
commit
7511a4f606
2 changed files with 4 additions and 9 deletions
|
@ -21,8 +21,6 @@
|
||||||
|
|
||||||
/* exports */
|
/* exports */
|
||||||
GTEXT(_exception)
|
GTEXT(_exception)
|
||||||
GTEXT(_exception_exit)
|
|
||||||
GTEXT(_exception_enter_fault)
|
|
||||||
|
|
||||||
/* import */
|
/* import */
|
||||||
GTEXT(_Fault)
|
GTEXT(_Fault)
|
||||||
|
@ -52,7 +50,6 @@ SECTION_FUNC(exception.entry, _exception)
|
||||||
|
|
||||||
/* Preserve all caller-saved registers onto the thread's stack */
|
/* Preserve all caller-saved registers onto the thread's stack */
|
||||||
stw ra, __NANO_ESF_ra_OFFSET(sp)
|
stw ra, __NANO_ESF_ra_OFFSET(sp)
|
||||||
/* Gap here for muldiv handler to store zero register */
|
|
||||||
stw r1, __NANO_ESF_r1_OFFSET(sp)
|
stw r1, __NANO_ESF_r1_OFFSET(sp)
|
||||||
stw r2, __NANO_ESF_r2_OFFSET(sp)
|
stw r2, __NANO_ESF_r2_OFFSET(sp)
|
||||||
stw r3, __NANO_ESF_r3_OFFSET(sp)
|
stw r3, __NANO_ESF_r3_OFFSET(sp)
|
||||||
|
@ -172,8 +169,7 @@ BRANCH_LABEL(on_irq_stack)
|
||||||
BRANCH_LABEL(not_interrupt)
|
BRANCH_LABEL(not_interrupt)
|
||||||
|
|
||||||
/* Since this wasn't an interrupt we're not going to restart the
|
/* Since this wasn't an interrupt we're not going to restart the
|
||||||
* faulting instruction. If it's an unimplemented math instruction,
|
* faulting instruction.
|
||||||
* the muldiv code will handle it, else we just give up and _Fault.
|
|
||||||
*
|
*
|
||||||
* We earlier put ea - 4 in the stack frame, replace it with just ea
|
* We earlier put ea - 4 in the stack frame, replace it with just ea
|
||||||
*/
|
*/
|
||||||
|
@ -189,9 +185,9 @@ BRANCH_LABEL(not_interrupt)
|
||||||
bne r11, zero, is_interrupt
|
bne r11, zero, is_interrupt
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
SECTION_FUNC(exception.entry, _exception_enter_fault)
|
BRANCH_LABEL(_exception_enter_fault)
|
||||||
/* If we get here, the exception wasn't in interrupt or an
|
/* If we get here, the exception wasn't in interrupt or an
|
||||||
* unimplemented math instruction. Let _Fault() handle it in
|
* invocation of irq_oflload(). Let _Fault() handle it in
|
||||||
* C domain
|
* C domain
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -208,7 +204,7 @@ BRANCH_LABEL(no_reschedule)
|
||||||
|
|
||||||
/* Fall through */
|
/* Fall through */
|
||||||
|
|
||||||
SECTION_FUNC(exception.entry, _exception_exit)
|
BRANCH_LABEL(_exception_exit)
|
||||||
/* We are on the thread stack. Restore all saved registers
|
/* We are on the thread stack. Restore all saved registers
|
||||||
* and return to the interrupted context */
|
* and return to the interrupted context */
|
||||||
|
|
||||||
|
|
|
@ -137,7 +137,6 @@ void _arch_irq_disable(unsigned int irq);
|
||||||
|
|
||||||
struct __esf {
|
struct __esf {
|
||||||
uint32_t ra; /* return address r31 */
|
uint32_t ra; /* return address r31 */
|
||||||
uint32_t r0; /* zero register */
|
|
||||||
uint32_t r1; /* at */
|
uint32_t r1; /* at */
|
||||||
uint32_t r2; /* return value */
|
uint32_t r2; /* return value */
|
||||||
uint32_t r3; /* return value */
|
uint32_t r3; /* return value */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue