Skip to content

Commit

Permalink
microblaze: Simplify _debug_exception function
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Michal Simek committed Aug 4, 2010
1 parent 8b110d1 commit 06b2864
Showing 1 changed file with 2 additions and 5 deletions.
7 changes: 2 additions & 5 deletions arch/microblaze/kernel/entry.S
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit 06b2864

Please sign in to comment.