summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTharo <17233964+Thar0@users.noreply.github.com>2025-08-05 17:13:47 +0100
committerGitHub <noreply@github.com>2025-08-05 12:13:47 -0400
commitce93b71b95df82182c5772b7ba6ee7e1f7949c48 (patch)
tree8162ba746f23196d25efe017cac66cf310cd8f17 /src
parent43a3ad88dc7a6ab566c72c2421e2dafcc687e05a (diff)
Handwritten asm: Register getter/setter functions (#1815)
* Handwritten asm: Register getter/setter functions * Formatting fix
Diffstat (limited to 'src')
-rw-r--r--src/libultra/os/getcause.s10
-rw-r--r--src/libultra/os/getcompare.s10
-rw-r--r--src/libultra/os/getconfig.s10
-rw-r--r--src/libultra/os/getcount.s10
-rw-r--r--src/libultra/os/getfpccsr.s10
-rw-r--r--src/libultra/os/getsr.s10
-rw-r--r--src/libultra/os/getwatchlo.s10
-rw-r--r--src/libultra/os/setcause.s10
-rw-r--r--src/libultra/os/setcompare.s10
-rw-r--r--src/libultra/os/setconfig.s10
-rw-r--r--src/libultra/os/setfpccsr.s11
-rw-r--r--src/libultra/os/setsr.s11
-rw-r--r--src/libultra/os/setwatchlo.s11
13 files changed, 133 insertions, 0 deletions
diff --git a/src/libultra/os/getcause.s b/src/libultra/os/getcause.s
new file mode 100644
index 000000000..c709443b5
--- /dev/null
+++ b/src/libultra/os/getcause.s
@@ -0,0 +1,10 @@
+#include "PR/asm.h"
+#include "PR/regdef.h"
+#include "PR/R4300.h"
+
+.text
+
+LEAF(__osGetCause)
+ MFC0( v0, C0_CAUSE)
+ jr ra
+END(__osGetCause)
diff --git a/src/libultra/os/getcompare.s b/src/libultra/os/getcompare.s
new file mode 100644
index 000000000..a75df38c9
--- /dev/null
+++ b/src/libultra/os/getcompare.s
@@ -0,0 +1,10 @@
+#include "PR/asm.h"
+#include "PR/regdef.h"
+#include "PR/R4300.h"
+
+.text
+
+LEAF(__osGetCompare)
+ MFC0( v0, C0_COMPARE)
+ jr ra
+END(__osGetCompare)
diff --git a/src/libultra/os/getconfig.s b/src/libultra/os/getconfig.s
new file mode 100644
index 000000000..09d4b02e1
--- /dev/null
+++ b/src/libultra/os/getconfig.s
@@ -0,0 +1,10 @@
+#include "PR/asm.h"
+#include "PR/regdef.h"
+#include "PR/R4300.h"
+
+.text
+
+LEAF(__osGetConfig)
+ MFC0( v0, C0_CONFIG)
+ jr ra
+END(__osGetConfig)
diff --git a/src/libultra/os/getcount.s b/src/libultra/os/getcount.s
new file mode 100644
index 000000000..fb061f277
--- /dev/null
+++ b/src/libultra/os/getcount.s
@@ -0,0 +1,10 @@
+#include "PR/asm.h"
+#include "PR/regdef.h"
+#include "PR/R4300.h"
+
+.text
+
+LEAF(osGetCount)
+ MFC0( v0, C0_COUNT)
+ jr ra
+END(osGetCount)
diff --git a/src/libultra/os/getfpccsr.s b/src/libultra/os/getfpccsr.s
new file mode 100644
index 000000000..976651a37
--- /dev/null
+++ b/src/libultra/os/getfpccsr.s
@@ -0,0 +1,10 @@
+#include "PR/asm.h"
+#include "PR/regdef.h"
+#include "PR/R4300.h"
+
+.text
+
+LEAF(__osGetFpcCsr)
+ CFC1( v0, C1_FPCSR)
+ jr ra
+END(__osGetFpcCsr)
diff --git a/src/libultra/os/getsr.s b/src/libultra/os/getsr.s
new file mode 100644
index 000000000..c4382e28f
--- /dev/null
+++ b/src/libultra/os/getsr.s
@@ -0,0 +1,10 @@
+#include "PR/asm.h"
+#include "PR/regdef.h"
+#include "PR/R4300.h"
+
+.text
+
+LEAF(__osGetSR)
+ MFC0( v0, C0_SR)
+ jr ra
+END(__osGetSR)
diff --git a/src/libultra/os/getwatchlo.s b/src/libultra/os/getwatchlo.s
new file mode 100644
index 000000000..1cc71a755
--- /dev/null
+++ b/src/libultra/os/getwatchlo.s
@@ -0,0 +1,10 @@
+#include "PR/asm.h"
+#include "PR/regdef.h"
+#include "PR/R4300.h"
+
+.text
+
+LEAF(__osGetWatchLo)
+ MFC0( v0, C0_WATCHLO)
+ jr ra
+END(__osGetWatchLo)
diff --git a/src/libultra/os/setcause.s b/src/libultra/os/setcause.s
new file mode 100644
index 000000000..522fbecf0
--- /dev/null
+++ b/src/libultra/os/setcause.s
@@ -0,0 +1,10 @@
+#include "PR/asm.h"
+#include "PR/regdef.h"
+#include "PR/R4300.h"
+
+.text
+
+LEAF(__osSetCause)
+ MTC0( a0, C0_CAUSE)
+ jr ra
+END(__osSetCause)
diff --git a/src/libultra/os/setcompare.s b/src/libultra/os/setcompare.s
new file mode 100644
index 000000000..33f764cf9
--- /dev/null
+++ b/src/libultra/os/setcompare.s
@@ -0,0 +1,10 @@
+#include "PR/asm.h"
+#include "PR/regdef.h"
+#include "PR/R4300.h"
+
+.text
+
+LEAF(__osSetCompare)
+ MTC0( a0, C0_COMPARE)
+ jr ra
+END(__osSetCompare)
diff --git a/src/libultra/os/setconfig.s b/src/libultra/os/setconfig.s
new file mode 100644
index 000000000..6d13f96ce
--- /dev/null
+++ b/src/libultra/os/setconfig.s
@@ -0,0 +1,10 @@
+#include "PR/asm.h"
+#include "PR/regdef.h"
+#include "PR/R4300.h"
+
+.text
+
+LEAF(__osSetConfig)
+ MTC0( a0, C0_CONFIG)
+ jr ra
+END(__osSetConfig)
diff --git a/src/libultra/os/setfpccsr.s b/src/libultra/os/setfpccsr.s
new file mode 100644
index 000000000..ee7a959e0
--- /dev/null
+++ b/src/libultra/os/setfpccsr.s
@@ -0,0 +1,11 @@
+#include "PR/asm.h"
+#include "PR/regdef.h"
+#include "PR/R4300.h"
+
+.text
+
+LEAF(__osSetFpcCsr)
+ CFC1( v0, fcr31)
+ CTC1( a0, fcr31)
+ jr ra
+END(__osSetFpcCsr)
diff --git a/src/libultra/os/setsr.s b/src/libultra/os/setsr.s
new file mode 100644
index 000000000..ae59c4367
--- /dev/null
+++ b/src/libultra/os/setsr.s
@@ -0,0 +1,11 @@
+#include "PR/asm.h"
+#include "PR/regdef.h"
+#include "PR/R4300.h"
+
+.text
+
+LEAF(__osSetSR)
+ MTC0( a0, C0_SR)
+ NOP
+ jr ra
+END(__osSetSR)
diff --git a/src/libultra/os/setwatchlo.s b/src/libultra/os/setwatchlo.s
new file mode 100644
index 000000000..0923203d3
--- /dev/null
+++ b/src/libultra/os/setwatchlo.s
@@ -0,0 +1,11 @@
+#include "PR/asm.h"
+#include "PR/regdef.h"
+#include "PR/R4300.h"
+
+.text
+
+LEAF(__osSetWatchLo)
+ MTC0( a0, C0_WATCHLO)
+ NOP
+ jr ra
+END(__osSetWatchLo)