Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c318d483 authored by Michal Simek's avatar Michal Simek
Browse files

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: default avatarMichal Simek <monstr@monstr.eu>
parent b318067e
Loading
Loading
Loading
Loading
+6 −16
Original line number Diff line number Diff line
@@ -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):