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

Commit 06b28640 authored by Michal Simek's avatar Michal Simek
Browse files

microblaze: Simplify _debug_exception function



Keep together all arguments for send_sig function.
Move returning address to delay slot which is executed.
Remove additional send_sig loading. I am using IMM part of
rtbd instruction with r0.

old solution:
addik r11, r0, send_sig
rtbd r11, 0
nop

new solution:
rtbd r0, send_sig
nop

There is one instruction saving.

Signed-off-by: default avatarMichal Simek <monstr@monstr.eu>
parent 8b110d15
Loading
Loading
Loading
Loading
+2 −5
Original line number Diff line number Diff line
@@ -895,15 +895,12 @@ C_ENTRY(_debug_exception):
	swi	r0, r1, PTO+PT_R0;
	tovirt(r1,r1)

	set_vms;
	addi	r5, r0, SIGTRAP		     /* send the trap signal */
	add	r6, r0, CURRENT_TASK; /* Get current task ptr into r11 */
	addk	r7, r0, r0		     /* 3rd param zero */

	set_vms;
	addik	r11, r0, send_sig;
dbtrap_call:	rtbd	r0, send_sig;
	addik	r15, r0, dbtrap_call;
dbtrap_call:	rtbd	r11, 0;
	nop;

	set_bip;			/*  Ints masked for state restore*/
	lwi	r11, r1, PTO+PT_MODE;