summaryrefslogtreecommitdiff
path: root/js/src/lirasm/tests/cond_eqi.in
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/lirasm/tests/cond_eqi.in')
-rw-r--r--js/src/lirasm/tests/cond_eqi.in53
1 files changed, 53 insertions, 0 deletions
diff --git a/js/src/lirasm/tests/cond_eqi.in b/js/src/lirasm/tests/cond_eqi.in
new file mode 100644
index 0000000..74ff521
--- /dev/null
+++ b/js/src/lirasm/tests/cond_eqi.in
@@ -0,0 +1,53 @@
+; A few utility constants .
+sh0 = immi 0
+sh1 = immi 1
+sh2 = immi 2
+sh3 = immi 3
+sh4 = immi 4
+sh5 = immi 5
+sh6 = immi 6
+sh7 = immi 7
+sh8 = immi 8
+
+i0 = immi 0
+i1 = immi 1
+i2 = immi -1
+
+; ----------------------------------------------------------------------------
+; Combinations of 'eqi'.
+eq0 = eqi i0 i0 ; 1
+eq1 = eqi i0 i1 ; 0
+eq2 = eqi i0 i2 ; 0
+eq3 = eqi i1 i0 ; 0
+eq4 = eqi i1 i1 ; 1
+eq5 = eqi i1 i2 ; 0
+eq6 = eqi i2 i0 ; 0
+eq7 = eqi i2 i1 ; 0
+eq8 = eqi i2 i2 ; 1
+
+; Aggregate the results.
+eq0sh = lshi eq0 sh0
+eq1sh = lshi eq1 sh1
+eq2sh = lshi eq2 sh2
+eq3sh = lshi eq3 sh3
+eq4sh = lshi eq4 sh4
+eq5sh = lshi eq5 sh5
+eq6sh = lshi eq6 sh6
+eq7sh = lshi eq7 sh7
+eq8sh = lshi eq8 sh8
+
+eq0_1 = ori eq0sh eq1sh
+eq2_3 = ori eq2sh eq3sh
+eq4_5 = ori eq4sh eq5sh
+eq6_7 = ori eq6sh eq7sh
+
+eq0_3 = ori eq0_1 eq2_3
+eq4_7 = ori eq4_5 eq6_7
+
+eq0_7 = ori eq0_3 eq4_7
+
+eq = ori eq0_7 eq8sh
+
+; The result should be {0001,0001,0001}, 0x111, or 273.
+
+reti eq