aboutsummaryrefslogtreecommitdiffstats
path: root/arch/microblaze/kernel
diff options
context:
space:
mode:
authorMichal Simek <monstr@monstr.eu>2010-01-22 08:28:36 -0500
committerMichal Simek <monstr@monstr.eu>2010-03-11 08:26:13 -0500
commit841d6e8c4e969b2cdd80f7216af34d932c41b1a6 (patch)
tree162e09999c78dd6a98f83a5a2ee562315ed8b272 /arch/microblaze/kernel
parent8633bebc63ba5752254925f8b49a19102df1a0ff (diff)
microblaze: entry.S use delay slot for return handlers
Signed-off-by: Michal Simek <monstr@monstr.eu>
Diffstat (limited to 'arch/microblaze/kernel')
-rw-r--r--arch/microblaze/kernel/entry.S9
1 files changed, 3 insertions, 6 deletions
diff --git a/arch/microblaze/kernel/entry.S b/arch/microblaze/kernel/entry.S
index cc9885d441d5..c0ede25c5b99 100644
--- a/arch/microblaze/kernel/entry.S
+++ b/arch/microblaze/kernel/entry.S
@@ -414,10 +414,9 @@ C_ENTRY(ret_from_trap):
414 beqi r11, 1f; /* Signals to handle, handle them */ 414 beqi r11, 1f; /* Signals to handle, handle them */
415 415
416 la r5, r1, PTO; /* Arg 1: struct pt_regs *regs */ 416 la r5, r1, PTO; /* Arg 1: struct pt_regs *regs */
417 add r6, r0, r0; /* Arg 2: sigset_t *oldset */
418 addi r7, r0, 1; /* Arg 3: int in_syscall */ 417 addi r7, r0, 1; /* Arg 3: int in_syscall */
419 bralid r15, do_signal; /* Handle any signals */ 418 bralid r15, do_signal; /* Handle any signals */
420 nop; 419 add r6, r0, r0; /* Arg 2: sigset_t *oldset */
421 420
422/* Finally, return to user state. */ 421/* Finally, return to user state. */
4231: 4221:
@@ -692,10 +691,9 @@ C_ENTRY(ret_from_exc):
692 * store return registers separately because this macros is use 691 * store return registers separately because this macros is use
693 * for others exceptions */ 692 * for others exceptions */
694 la r5, r1, PTO; /* Arg 1: struct pt_regs *regs */ 693 la r5, r1, PTO; /* Arg 1: struct pt_regs *regs */
695 add r6, r0, r0; /* Arg 2: sigset_t *oldset */
696 addi r7, r0, 0; /* Arg 3: int in_syscall */ 694 addi r7, r0, 0; /* Arg 3: int in_syscall */
697 bralid r15, do_signal; /* Handle any signals */ 695 bralid r15, do_signal; /* Handle any signals */
698 nop; 696 add r6, r0, r0; /* Arg 2: sigset_t *oldset */
699 697
700/* Finally, return to user state. */ 698/* Finally, return to user state. */
7011: swi r0, r0, PER_CPU(KM); /* Now officially in user state. */ 6991: swi r0, r0, PER_CPU(KM); /* Now officially in user state. */
@@ -968,10 +966,9 @@ dbtrap_call: rtbd r11, 0;
968 (in a possibly modified form) after do_signal returns. */ 966 (in a possibly modified form) after do_signal returns. */
969 967
970 la r5, r1, PTO; /* Arg 1: struct pt_regs *regs */ 968 la r5, r1, PTO; /* Arg 1: struct pt_regs *regs */
971 add r6, r0, r0; /* Arg 2: sigset_t *oldset */
972 addi r7, r0, 0; /* Arg 3: int in_syscall */ 969 addi r7, r0, 0; /* Arg 3: int in_syscall */
973 bralid r15, do_signal; /* Handle any signals */ 970 bralid r15, do_signal; /* Handle any signals */
974 nop; 971 add r6, r0, r0; /* Arg 2: sigset_t *oldset */
975 972
976 973
977/* Finally, return to user state. */ 974/* Finally, return to user state. */