提交 c318d483 编写于 作者: M 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: NMichal Simek <monstr@monstr.eu>
上级 b318067e
......@@ -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):
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册