aboutsummaryrefslogtreecommitdiff
path: root/deps/lightning/check/qalu.inc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/lightning/check/qalu.inc')
-rw-r--r--deps/lightning/check/qalu.inc122
1 files changed, 122 insertions, 0 deletions
diff --git a/deps/lightning/check/qalu.inc b/deps/lightning/check/qalu.inc
new file mode 100644
index 0000000..9daca82
--- /dev/null
+++ b/deps/lightning/check/qalu.inc
@@ -0,0 +1,122 @@
+.data 8
+ok:
+.c "ok\n"
+
+/* r0,r1 = r2 op r3 */
+#define QALUR(N, T, OP, I0, I1, LO, HI, R0, R1, R2, R3) \
+ movi %R2 I0 \
+ movi %R3 I1 \
+ OP##r##T %R0 %R1 %R2 %R3 \
+ bnei OP##T##N##rlo##R0##R1##R2##R3 %R0 LO \
+ bnei OP##T##N##rlo##R0##R1##R2##R3 %R1 HI \
+ bnei OP##T##N##rlo##R0##R1##R2##R3 %R2 I0 \
+ beqi OP##T##N##rhi##R0##R1##R2##R3 %R3 I1 \
+OP##T##N##rlo##R0##R1##R2##R3: \
+ calli @abort \
+OP##T##N##rhi##R0##R1##R2##R3:
+
+/* r0,r1 = r2 op i0 */
+#define QALUI(N, T, OP, I0, I1, LO, HI, R0, R1, R2, R3) \
+ movi %R2 I0 \
+ movi %R3 HI \
+ OP##i##T %R0 %R1 %R2 I1 \
+ bnei OP##T##N##ilo##R0##R1##R2##R3 %R0 LO \
+ bner OP##T##N##ilo##R0##R1##R2##R3 %R1 %R3 \
+ beqi OP##T##N##ihi##R0##R1##R2##R3 %R2 I0 \
+OP##T##N##ilo##R0##R1##R2##R3: \
+ calli @abort \
+OP##T##N##ihi##R0##R1##R2##R3:
+
+/* r0,r1 = r0 op r1 */
+#define QALUX(N, T, OP, I0, I1, LO, HI, R0, R1, R2, R3) \
+ movi %R0 I0 \
+ movi %R1 I1 \
+ movi %R2 LO \
+ movi %R3 HI \
+ OP##r##T %R0 %R1 %R0 %R1 \
+ bner OP##T##N##0lo##R0##R1##R2##R3 %R0 %R2 \
+ beqr OP##T##N##0hi##R0##R1##R2##R3 %R1 %R3 \
+OP##T##N##0lo##R0##R1##R2##R3: \
+ calli @abort \
+OP##T##N##0hi##R0##R1##R2##R3:
+
+/* r0,r1 = r1 op r0 */
+#define QALUY(N, T, OP, I0, I1, LO, HI, R0, R1, R2, R3) \
+ movi %R1 I0 \
+ movi %R0 I1 \
+ movi %R2 LO \
+ movi %R3 HI \
+ OP##r##T %R0 %R1 %R1 %R0 \
+ bner OP##T##N##1lo##R0##R1##R2##R3 %R0 %R2 \
+ beqr OP##T##N##1hi##R0##R1##R2##R3 %R1 %R3 \
+OP##T##N##1lo##R0##R1##R2##R3: \
+ calli @abort \
+OP##T##N##1hi##R0##R1##R2##R3:
+
+/* r0,r1 = r0 op r3 */
+#define QALUZ(N, T, OP, I0, I1, LO, HI, R0, R1, R2, R3) \
+ movi %R0 I0 \
+ movi %R3 I1 \
+ movi %R2 LO \
+ OP##r##T %R0 %R1 %R0 %R3 \
+ bner OP##T##N##2lo##R0##R1##R2##R3 %R0 %R2 \
+ bnei OP##T##N##2lo##R0##R1##R2##R3 %R1 HI \
+ beqi OP##T##N##2hi##R0##R1##R2##R3 %R3 I1 \
+OP##T##N##2lo##R0##R1##R2##R3: \
+ calli @abort \
+OP##T##N##2hi##R0##R1##R2##R3:
+
+/* r0,r1 = r2 op r1 */
+#define QALUW(N, T, OP, I0, I1, LO, HI, R0, R1, R2, R3) \
+ movi %R2 I0 \
+ movi %R1 I1 \
+ movi %R3 LO \
+ OP##r##T %R0 %R1 %R2 %R1 \
+ bner OP##T##N##3lo##R0##R1##R2##R3 %R0 %R3 \
+ bnei OP##T##N##3lo##R0##R1##R2##R3 %R1 HI \
+ beqi OP##T##N##3hi##R0##R1##R2##R3 %R2 I0 \
+OP##T##N##3lo##R0##R1##R2##R3: \
+ calli @abort \
+OP##T##N##3hi##R0##R1##R2##R3:
+
+#define QALU2(N, T, OP, I0, I1, LO, HI, R0, R1, R2, R3) \
+ QALUR(N, T, OP, I0, I1, LO, HI, R0, R1, R2, R3) \
+ QALUI(N, T, OP, I0, I1, LO, HI, R0, R1, R2, R3) \
+ QALUX(N, T, OP, I0, I1, LO, HI, R0, R1, R2, R3) \
+ QALUY(N, T, OP, I0, I1, LO, HI, R0, R1, R2, R3) \
+ QALUZ(N, T, OP, I0, I1, LO, HI, R0, R1, R2, R3) \
+ QALUW(N, T, OP, I0, I1, LO, HI, R0, R1, R2, R3)
+
+#define QALU1(N, T, OP, I0, I1, LO, HI, R0, R1, R2, R3) \
+ QALU2(N, T, OP, I0, I1, LO, HI, R0, R1, R2, R3) \
+ QALU2(N, T, OP, I0, I1, LO, HI, R0, R1, R3, R2) \
+ QALU2(N, T, OP, I0, I1, LO, HI, R0, R2, R1, R3) \
+ QALU2(N, T, OP, I0, I1, LO, HI, R0, R2, R3, R1) \
+ QALU2(N, T, OP, I0, I1, LO, HI, R0, R3, R1, R2) \
+ QALU2(N, T, OP, I0, I1, LO, HI, R0, R3, R2, R1) \
+ QALU2(N, T, OP, I0, I1, LO, HI, R1, R0, R2, R3) \
+ QALU2(N, T, OP, I0, I1, LO, HI, R1, R0, R3, R2) \
+ QALU2(N, T, OP, I0, I1, LO, HI, R1, R2, R0, R3) \
+ QALU2(N, T, OP, I0, I1, LO, HI, R1, R2, R3, R0) \
+ QALU2(N, T, OP, I0, I1, LO, HI, R1, R3, R0, R2) \
+ QALU2(N, T, OP, I0, I1, LO, HI, R1, R3, R2, R0) \
+ QALU2(N, T, OP, I0, I1, LO, HI, R2, R1, R0, R3) \
+ QALU2(N, T, OP, I0, I1, LO, HI, R2, R1, R3, R0) \
+ QALU2(N, T, OP, I0, I1, LO, HI, R2, R0, R1, R3) \
+ QALU2(N, T, OP, I0, I1, LO, HI, R2, R0, R3, R1) \
+ QALU2(N, T, OP, I0, I1, LO, HI, R2, R3, R1, R0) \
+ QALU2(N, T, OP, I0, I1, LO, HI, R2, R3, R0, R1) \
+ QALU2(N, T, OP, I0, I1, LO, HI, R3, R1, R2, R0) \
+ QALU2(N, T, OP, I0, I1, LO, HI, R3, R1, R0, R2) \
+ QALU2(N, T, OP, I0, I1, LO, HI, R3, R2, R1, R0) \
+ QALU2(N, T, OP, I0, I1, LO, HI, R3, R2, R0, R1) \
+ QALU2(N, T, OP, I0, I1, LO, HI, R3, R0, R1, R2) \
+ QALU2(N, T, OP, I0, I1, LO, HI, R3, R0, R2, R1)
+
+#define QALU(N, T, OP, I0, I1, LO, HI) \
+ QALU1(N, T, OP, I0, I1, LO, HI, v0, v1, v2, r0) \
+ QALU1(N, T, OP, I0, I1, LO, HI, v0, v1, v2, r1) \
+ QALU1(N, T, OP, I0, I1, LO, HI, v0, v1, v2, r2) \
+ QALU1(N, T, OP, I0, I1, LO, HI, v1, v2, r0, r1) \
+ QALU1(N, T, OP, I0, I1, LO, HI, v1, v2, r0, r2) \
+ QALU1(N, T, OP, I0, I1, LO, HI, v2, r0, r1, r2)