summaryrefslogtreecommitdiffstats
path: root/lib.h
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2015-12-16 04:21:55 -0800
committerKaz Kylheku <kaz@kylheku.com>2015-12-16 04:21:55 -0800
commitb860fe2ea8450109c4bcc0de755bccac40f377ef (patch)
tree38bcf0e084502ff2a676a3441d57d753f360f425 /lib.h
parent9bd8fabc9f45dbdb7c66c44f255904ab62df4ee3 (diff)
downloadtxr-b860fe2ea8450109c4bcc0de755bccac40f377ef.tar.gz
txr-b860fe2ea8450109c4bcc0de755bccac40f377ef.tar.bz2
txr-b860fe2ea8450109c4bcc0de755bccac40f377ef.zip
Support eight-argument intrinsic functions.
* lib.h (enum functype): New member, N8. (struct func): New members n8 and n8v in embedded f struct. (func_n8, func_n8v, func_n70, func_n8o): Declared. * lib.c (equal): Handle N8 in switch. (func_n8, func_n8v, func_n70, func_n8o): New functions. (generic_funcall): Handle N8 in two switches.
Diffstat (limited to 'lib.h')
-rw-r--r--lib.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/lib.h b/lib.h
index 80412c29..76274535 100644
--- a/lib.h
+++ b/lib.h
@@ -69,7 +69,7 @@ typedef enum functype
{
FINTERP, /* Interpreted function. */
F0, F1, F2, F3, F4, /* Intrinsic functions with env. */
- N0, N1, N2, N3, N4, N5, N6, N7 /* No-env intrinsics. */
+ N0, N1, N2, N3, N4, N5, N6, N7, N8 /* No-env intrinsics. */
} functype_t;
typedef union obj obj_t;
@@ -152,6 +152,7 @@ struct func {
val (*n5)(val, val, val, val, val);
val (*n6)(val, val, val, val, val, val);
val (*n7)(val, val, val, val, val, val, val);
+ val (*n8)(val, val, val, val, val, val, val, val);
val (*f0v)(val, varg);
val (*f1v)(val, val, varg);
val (*f2v)(val, val, val, varg);
@@ -165,6 +166,7 @@ struct func {
val (*n5v)(val, val, val, val, val, varg);
val (*n6v)(val, val, val, val, val, val, varg);
val (*n7v)(val, val, val, val, val, val, val, varg);
+ val (*n8v)(val, val, val, val, val, val, val, val, varg);
} f;
};
@@ -764,6 +766,7 @@ val func_n4(val (*fun)(val, val, val, val));
val func_n5(val (*fun)(val, val, val, val, val));
val func_n6(val (*fun)(val, val, val, val, val, val));
val func_n7(val (*fun)(val, val, val, val, val, val, val));
+val func_n8(val (*fun)(val, val, val, val, val, val, val, val));
val func_f0v(val, val (*fun)(val env, varg));
val func_f1v(val, val (*fun)(val env, val, varg));
val func_f2v(val, val (*fun)(val env, val, val, varg));
@@ -777,12 +780,15 @@ val func_n4v(val (*fun)(val, val, val, val, varg));
val func_n5v(val (*fun)(val, val, val, val, val, varg));
val func_n6v(val (*fun)(val, val, val, val, val, val, varg));
val func_n7v(val (*fun)(val, val, val, val, val, val, val, varg));
+val func_n8v(val (*fun)(val, val, val, val, val, val, val, val, varg));
val func_n1o(val (*fun)(val), int reqargs);
val func_n2o(val (*fun)(val, val), int reqargs);
val func_n3o(val (*fun)(val, val, val), int reqargs);
val func_n4o(val (*fun)(val, val, val, val), int reqargs);
val func_n5o(val (*fun)(val, val, val, val, val), int reqargs);
val func_n6o(val (*fun)(val, val, val, val, val, val), int reqargs);
+val func_n7o(val (*fun)(val, val, val, val, val, val, val), int reqargs);
+val func_n8o(val (*fun)(val, val, val, val, val, val, val, val), int reqargs);
val func_n1ov(val (*fun)(val, varg), int reqargs);
val func_n2ov(val (*fun)(val, val, varg), int reqargs);
val func_n3ov(val (*fun)(val, val, val, varg), int reqargs);