Skip to content

Commit

Permalink
microblaze: Optimize hw exception rutine
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Michal Simek committed Aug 4, 2010
1 parent b318067 commit c318d48
Showing 1 changed file with 6 additions and 16 deletions.
22 changes: 6 additions & 16 deletions arch/microblaze/kernel/entry.S
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -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.
Expand Down Expand Up @@ -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.*/
Expand All @@ -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):
Expand Down

0 comments on commit c318d48

Please sign in to comment.