aboutsummaryrefslogtreecommitdiff
path: root/deps/lightning/check/alu_rsb.tst
diff options
context:
space:
mode:
authorTwinaphex2020-02-08 16:24:22 +0100
committerGitHub2020-02-08 16:24:22 +0100
commit0adc619b5a5705d16cc6caea64951776ababbb96 (patch)
treefbae9b1d18d04d8e7908aa1c3446782ebf6e8785 /deps/lightning/check/alu_rsb.tst
parent0204c39a68a1fd4bf667aa8ece5a769f2983b7d0 (diff)
parent6f1edc3c7fd1f7f58155107d0c99d0ac7d22443b (diff)
downloadpcsx_rearmed-0adc619b5a5705d16cc6caea64951776ababbb96.tar.gz
pcsx_rearmed-0adc619b5a5705d16cc6caea64951776ababbb96.tar.bz2
pcsx_rearmed-0adc619b5a5705d16cc6caea64951776ababbb96.zip
Merge pull request #377 from pcercuei/libretro
Lightrec dynarec
Diffstat (limited to 'deps/lightning/check/alu_rsb.tst')
-rw-r--r--deps/lightning/check/alu_rsb.tst49
1 files changed, 49 insertions, 0 deletions
diff --git a/deps/lightning/check/alu_rsb.tst b/deps/lightning/check/alu_rsb.tst
new file mode 100644
index 0000000..00e08c2
--- /dev/null
+++ b/deps/lightning/check/alu_rsb.tst
@@ -0,0 +1,49 @@
+#include "alu.inc"
+
+.code
+ prolog
+
+#define RSB(N, I0, I1, V) ALU(N, , rsb, I0, I1, V)
+
+ RSB(0, 1, 0x7fffffff, 0x7ffffffe)
+ RSB(2, 1, 0x80000000, 0x7fffffff)
+ RSB(3, 0x7fffffff, 0x80000000, 1)
+ RSB(4, 0xffffffff, 0xffffffff, 0)
+ RSB(5, 0x7fffffff, 0xffffffff, 0x80000000)
+ RSB(6, 0, 0x7fffffff, 0x7fffffff)
+#if __WORDSIZE == 32
+ RSB(7, 0x7fffffff, 1, 0x80000002)
+ RSB(8, 0x80000000, 1, 0x80000001)
+ RSB(9, 0x80000000, 0x7fffffff, 0xffffffff)
+ RSB(10, 0xffffffff, 0x7fffffff, 0x80000000)
+ RSB(11, 0x7fffffff, 0, 0x80000001)
+#else
+ RSB(7, 0x7fffffff, 1, 0xffffffff80000002)
+ RSB(8, 0xffffffff80000000, 1, 0x80000001)
+ RSB(9, 0xffffffff80000000, 0x7fffffff, 0xffffffff)
+ RSB(10, 0xffffffffffffffff, 0xffffffff7fffffff, 0xffffffff80000000)
+ RSB(11, 0x7fffffff, 0, 0xffffffff80000001)
+ RSB(12, 1, 0x7fffffffffffffff, 0x7ffffffffffffffe)
+ RSB(13, 0x7fffffffffffffff, 1, 0x8000000000000002)
+ RSB(14, 1, 0x8000000000000000, 0x7fffffffffffffff)
+ RSB(15, 0x8000000000000000, 1, 0x8000000000000001)
+ RSB(16, 0x8000000000000000, 0x7fffffffffffffff, 0xffffffffffffffff)
+ RSB(17, 0x7fffffffffffffff, 0x8000000000000000, 1)
+ RSB(18, 0xffffffffffffffff, 0x7fffffffffffffff, 0x8000000000000000)
+ RSB(19, 0x7fffffffffffffff, 0xffffffffffffffff, 0x8000000000000000)
+ RSB(20, 0xffffffffffffffff, 0xffffffffffffffff, 0)
+#endif
+
+#undef RSB
+#define RSB(N, T, I0, I1, V) FOP(N, T, rsb, I0, I1, V)
+ RSB(0, _f, 0.5, -0.5, -1.0)
+ RSB(1, _f, 0.75, 0.25, -0.5)
+ RSB(0, _d, 0.5, -0.5, -1.0)
+ RSB(1, _d, 0.75, 0.25, -0.5)
+
+ prepare
+ pushargi ok
+ ellipsis
+ finishi @printf
+ ret
+ epilog