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: Michal Simek <monstr@monstr.eu>
This commit is contained in:
Родитель
8b110d157c
Коммит
06b2864038
|
@ -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;
|
||||
|
|
Загрузка…
Ссылка в новой задаче