Gitweb:
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=50c0716aa2f49a9d34589e380fad73402464c088
Commit: 50c0716aa2f49a9d34589e380fad73402464c088
Parent: ed3174d93c342b8b2eeba6bbd124707d55304a7b
Author: Chris Zankel <[EMAIL PROTECTED]>
AuthorDate: Wed Nov 14 13:47:02 2007 -0800
Committer: Chris Zankel <[EMAIL PROTECTED]>
CommitDate: Wed Feb 13 17:21:27 2008 -0800
[XTENSA] Add missing a2 register restore in register spill routine
Register a2 is saved in depc but wasn't getting restored before
returning from _spill_registers when there weren't any registers
to spill. The mask to cut the top bit from the rotated WINDOWMASK
register was also one bit short.
Signed-off-by: CHris Zankel <[EMAIL PROTECTED]>
---
arch/xtensa/kernel/entry.S | 8 +++++---
1 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/arch/xtensa/kernel/entry.S b/arch/xtensa/kernel/entry.S
index 91a689e..401b33b 100644
--- a/arch/xtensa/kernel/entry.S
+++ b/arch/xtensa/kernel/entry.S
@@ -1344,7 +1344,7 @@ ENTRY(_spill_registers)
/* We are done if there are no more than the current register frame. */
- extui a3, a3, 1, WSBITS-2 # a3 = 0yyxxxwww
+ extui a3, a3, 1, WSBITS-1 # a3 = 0yyxxxwww
movi a2, (1 << (WSBITS-1))
_beqz a3, .Lnospill # only one active frame? jump
@@ -1394,6 +1394,10 @@ ENTRY(_spill_registers)
l32e a4, a1, -16
j .Lc12c
+.Lnospill:
+ rsr a2, DEPC # restore a2 and 'return'
+ jx a0
+
.Lloop: _bbsi.l a3, 1, .Lc4
_bbci.l a3, 2, .Lc12
@@ -1419,8 +1423,6 @@ ENTRY(_spill_registers)
movi a3, 1
sll a3, a3
wsr a3, WINDOWSTART
-
-.Lnospill:
jx a0
.Lc4: s32e a4, a9, -16
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html