diff options
Diffstat (limited to 'c/src/lib/libcpu/sparc/reg_win/window.S')
-rw-r--r-- | c/src/lib/libcpu/sparc/reg_win/window.S | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/c/src/lib/libcpu/sparc/reg_win/window.S b/c/src/lib/libcpu/sparc/reg_win/window.S index fa327ec28a..3c3443f850 100644 --- a/c/src/lib/libcpu/sparc/reg_win/window.S +++ b/c/src/lib/libcpu/sparc/reg_win/window.S @@ -24,6 +24,8 @@ */ #include <rtems/asm.h> +#include <rtems/score/grlib-tn-0018.h> + .seg "text" /* @@ -254,12 +256,18 @@ done_flushing: * Restore the global registers we used */ - mov %l3, %g1 mov %l4, %g2 mov %l5, %g3 + + TN0018_WAIT_IFLUSH %l4,%l5 + TN0018_WRITE_PSR %g1 + + mov %l3, %g1 mov %l6, %g4 mov %l7, %g5 + TN0018_FIX %l4,%l5 + jmpl %l2, %g0 rett %l2 + 4 |