Skip to content

Commit

Permalink
xtensa: fix fast_syscall_spill_registers
Browse files Browse the repository at this point in the history
The original implementation could clobber registers under certain conditions.

The Xtensa processor architecture uses windowed registers and the original
implementation was using a4 as a temporary register, which under certain
conditions could be register a0 of the oldest window frame, and didn't always
restore the content correctly.

By moving the _spill_registers routine inside the fast system call, it frees
up one more register (the return address is not required anymore) for the
spill routine.

Signed-off-by: Chris Zankel <chris@zankel.net>
  • Loading branch information
Chris Zankel committed Jan 29, 2014
1 parent 3251f1e commit 6b5a1f7
Showing 1 changed file with 174 additions and 209 deletions.
Loading

0 comments on commit 6b5a1f7

Please sign in to comment.