From c318d483b3d9cf68d791b4024760cb171dae1215 Mon Sep 17 00:00:00 2001 From: Michal Simek Date: Tue, 22 Jun 2010 16:25:31 +0200 Subject: 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 --- arch/microblaze/kernel/entry.S | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) (limited to 'arch/microblaze') diff --git a/arch/microblaze/kernel/entry.S b/arch/microblaze/kernel/entry.S index 5529f64e97e..ff8d9872c77 100644 --- a/arch/microblaze/kernel/entry.S +++ b/arch/microblaze/kernel/entry.S @@ -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): -- cgit v1.2.3