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: Michal Simek <monstr@monstr.eu>
This commit is contained in:
Michal Simek 2010-06-22 16:25:31 +02:00
parent b318067e2c
commit c318d483b3
1 changed files with 6 additions and 16 deletions

View File

@ -562,10 +562,8 @@ C_ENTRY(full_exception_trap):
nop
mts rfsr, r0; /* Clear sticky fsr */
nop
addik r12, r0, full_exception
set_vms;
rted r12, 0;
nop;
rted r0, full_exception
nop
/*
* Unaligned data trap.
@ -599,11 +597,8 @@ C_ENTRY(unaligned_data_trap):
nop
mfs r4, rear /* EAR */
nop
rtbd r0, _unaligned_data_exception
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.
@ -635,10 +630,8 @@ C_ENTRY(page_fault_data_trap):
nop
mfs r7, resr /* parameter unsigned long error_code */
nop
addik r12, r0, do_page_fault
set_vms;
rted r12, 0; /* interrupts enabled */
nop;
rted r0, do_page_fault
nop
C_ENTRY(page_fault_instr_trap):
SAVE_STATE /* Save registers.*/
@ -650,11 +643,8 @@ C_ENTRY(page_fault_instr_trap):
addik r5, r1, PTO /* parameter struct pt_regs * regs */
mfs r6, rear /* parameter unsigned long address */
nop
rted r0, do_page_fault
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. */
C_ENTRY(ret_from_exc):