summaryrefslogtreecommitdiff
path: root/c/src/lib/libcpu/sparc/reg_win/window.S
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libcpu/sparc/reg_win/window.S')
-rw-r--r--c/src/lib/libcpu/sparc/reg_win/window.S10
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