]> git.karo-electronics.de Git - linux-beck.git/commitdiff
microblaze: Optimize hw exception rutine
authorMichal Simek <monstr@monstr.eu>
Tue, 22 Jun 2010 14:25:31 +0000 (16:25 +0200)
committerMichal Simek <monstr@monstr.eu>
Wed, 4 Aug 2010 08:30:06 +0000 (10:30 +0200)
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>
arch/microblaze/kernel/entry.S

index 5529f64e97e898bdc36318b4589512b02c84a57b..ff8d9872c7742c66263c1885c11de3a1d1ef3b24 100644 (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):