aboutsummaryrefslogtreecommitdiffstats
path: root/arch/xtensa
diff options
context:
space:
mode:
authorChris Zankel <chris@zankel.net>2007-11-14 16:47:02 -0500
committerChris Zankel <chris@zankel.net>2008-02-13 20:21:27 -0500
commit50c0716aa2f49a9d34589e380fad73402464c088 (patch)
tree714e50f1c391bbed2034b361ac2be66773b1cb2c /arch/xtensa
parented3174d93c342b8b2eeba6bbd124707d55304a7b (diff)
[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 <chris@zankel.net>
Diffstat (limited to 'arch/xtensa')
-rw-r--r--arch/xtensa/kernel/entry.S8
1 files changed, 5 insertions, 3 deletions
diff --git a/arch/xtensa/kernel/entry.S b/arch/xtensa/kernel/entry.S
index 91a689eca43d..401b33bfd9c0 100644
--- a/arch/xtensa/kernel/entry.S
+++ b/arch/xtensa/kernel/entry.S
@@ -1344,7 +1344,7 @@ ENTRY(_spill_registers)
1344 1344
1345 /* We are done if there are no more than the current register frame. */ 1345 /* We are done if there are no more than the current register frame. */
1346 1346
1347 extui a3, a3, 1, WSBITS-2 # a3 = 0yyxxxwww 1347 extui a3, a3, 1, WSBITS-1 # a3 = 0yyxxxwww
1348 movi a2, (1 << (WSBITS-1)) 1348 movi a2, (1 << (WSBITS-1))
1349 _beqz a3, .Lnospill # only one active frame? jump 1349 _beqz a3, .Lnospill # only one active frame? jump
1350 1350
@@ -1394,6 +1394,10 @@ ENTRY(_spill_registers)
1394 l32e a4, a1, -16 1394 l32e a4, a1, -16
1395 j .Lc12c 1395 j .Lc12c
1396 1396
1397.Lnospill:
1398 rsr a2, DEPC # restore a2 and 'return'
1399 jx a0
1400
1397.Lloop: _bbsi.l a3, 1, .Lc4 1401.Lloop: _bbsi.l a3, 1, .Lc4
1398 _bbci.l a3, 2, .Lc12 1402 _bbci.l a3, 2, .Lc12
1399 1403
@@ -1419,8 +1423,6 @@ ENTRY(_spill_registers)
1419 movi a3, 1 1423 movi a3, 1
1420 sll a3, a3 1424 sll a3, a3
1421 wsr a3, WINDOWSTART 1425 wsr a3, WINDOWSTART
1422
1423.Lnospill:
1424 jx a0 1426 jx a0
1425 1427
1426.Lc4: s32e a4, a9, -16 1428.Lc4: s32e a4, a9, -16