Commit c318d483 authored by Michal Simek's avatar Michal Simek

microblaze: Optimize hw exception rutine

Remove set_vms because UMS is cleared and VMS is already setup.
Optimize function calling which save one additional instruction.
Signed-off-by: default avatarMichal Simek <monstr@monstr.eu>
parent b318067e
...@@ -562,10 +562,8 @@ C_ENTRY(full_exception_trap): ...@@ -562,10 +562,8 @@ C_ENTRY(full_exception_trap):
nop nop
mts rfsr, r0; /* Clear sticky fsr */ mts rfsr, r0; /* Clear sticky fsr */
nop nop
addik r12, r0, full_exception rted r0, full_exception
set_vms; nop
rted r12, 0;
nop;
/* /*
* Unaligned data trap. * Unaligned data trap.
...@@ -599,11 +597,8 @@ C_ENTRY(unaligned_data_trap): ...@@ -599,11 +597,8 @@ C_ENTRY(unaligned_data_trap):
nop nop
mfs r4, rear /* EAR */ mfs r4, rear /* EAR */
nop nop
rtbd r0, _unaligned_data_exception
addik r7, r1, PTO /* parameter struct pt_regs * regs */ addik r7, r1, PTO /* parameter struct pt_regs * regs */
addik r12, r0, _unaligned_data_exception
set_vms;
rtbd r12, 0; /* interrupts enabled */
nop;
/* /*
* Page fault traps. * Page fault traps.
...@@ -635,10 +630,8 @@ C_ENTRY(page_fault_data_trap): ...@@ -635,10 +630,8 @@ C_ENTRY(page_fault_data_trap):
nop nop
mfs r7, resr /* parameter unsigned long error_code */ mfs r7, resr /* parameter unsigned long error_code */
nop nop
addik r12, r0, do_page_fault rted r0, do_page_fault
set_vms; nop
rted r12, 0; /* interrupts enabled */
nop;
C_ENTRY(page_fault_instr_trap): C_ENTRY(page_fault_instr_trap):
SAVE_STATE /* Save registers.*/ SAVE_STATE /* Save registers.*/
...@@ -650,11 +643,8 @@ C_ENTRY(page_fault_instr_trap): ...@@ -650,11 +643,8 @@ C_ENTRY(page_fault_instr_trap):
addik r5, r1, PTO /* parameter struct pt_regs * regs */ addik r5, r1, PTO /* parameter struct pt_regs * regs */
mfs r6, rear /* parameter unsigned long address */ mfs r6, rear /* parameter unsigned long address */
nop nop
rted r0, do_page_fault
ori r7, r0, 0 /* parameter unsigned long error_code */ ori r7, r0, 0 /* parameter unsigned long error_code */
addik r12, r0, do_page_fault
set_vms;
rted r12, 0; /* interrupts enabled */
nop;
/* Entry point used to return from an exception. */ /* Entry point used to return from an exception. */
C_ENTRY(ret_from_exc): C_ENTRY(ret_from_exc):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment