summaryrefslogtreecommitdiff
path: root/lib9/setfcr-NetBSD-power.S
diff options
context:
space:
mode:
authorValery Ushakov <uwe@stderr.spb.ru>2019-03-10 03:44:16 +0200
committerValery Ushakov <uwe@stderr.spb.ru>2019-03-10 03:44:16 +0200
commit594bd56378a3a707845dd8813881c427a3a8d16e (patch)
tree5f18116b77d615f40c50d449a332dafd21347c05 /lib9/setfcr-NetBSD-power.S
parent9b7850d511c2c910abfb42ece20650b97fba5a72 (diff)
parent55520626f59983d296c98c008af92f7c5c27bf5f (diff)
Merged default into NetBSD/pthreads
Diffstat (limited to 'lib9/setfcr-NetBSD-power.S')
-rw-r--r--lib9/setfcr-NetBSD-power.S33
1 files changed, 33 insertions, 0 deletions
diff --git a/lib9/setfcr-NetBSD-power.S b/lib9/setfcr-NetBSD-power.S
new file mode 100644
index 00000000..820fb29f
--- /dev/null
+++ b/lib9/setfcr-NetBSD-power.S
@@ -0,0 +1,33 @@
+#include <machine/asm.h>
+
+ENTRY_NOPROFILE(getfcr)
+ mffs %f0
+ stfd %f0,-16(%r1)
+ lwz %r3,-12(%r1)
+ blr
+ END(getfcr)
+
+ENTRY_NOPROFILE(getfsr)
+ mffs %f0
+ stfd %f0,-16(%r1)
+ lwz %r3,-12(%r1)
+ blr
+ END(getfsr)
+
+ENTRY_NOPROFILE(setfsr)
+ sync
+ stw %r3,-12(%r1)
+ lfd %f0,-16(%r1)
+ mtfsf 0xff, %f0
+ isync
+ blr
+ END(setfsr)
+
+ENTRY_NOPROFILE(setfcr)
+ sync
+ stw %r3,-12(%r1)
+ lfd %f0,-16(%r1)
+ mtfsf 0xff, %f0
+ isync
+ blr
+ END(setfcr)