aboutsummaryrefslogtreecommitdiff
path: root/src/lj_ir.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lj_ir.h')
-rw-r--r--src/lj_ir.h17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/lj_ir.h b/src/lj_ir.h
index a9824325..841153d8 100644
--- a/src/lj_ir.h
+++ b/src/lj_ir.h
@@ -120,6 +120,11 @@
120 _(CNEW, AW, ref, ref) \ 120 _(CNEW, AW, ref, ref) \
121 _(CNEWI, NW, ref, ref) /* CSE is ok, not marked as A. */ \ 121 _(CNEWI, NW, ref, ref) /* CSE is ok, not marked as A. */ \
122 \ 122 \
123 /* Buffer operations. */ \
124 _(BUFHDR, L , ref, lit) \
125 _(BUFPUT, L , ref, ref) \
126 _(BUFSTR, A , ref, ref) \
127 \
123 /* Barriers. */ \ 128 /* Barriers. */ \
124 _(TBAR, S , ref, ___) \ 129 _(TBAR, S , ref, ___) \
125 _(OBAR, S , ref, ref) \ 130 _(OBAR, S , ref, ref) \
@@ -128,7 +133,7 @@
128 /* Type conversions. */ \ 133 /* Type conversions. */ \
129 _(CONV, NW, ref, lit) \ 134 _(CONV, NW, ref, lit) \
130 _(TOBIT, N , ref, ref) \ 135 _(TOBIT, N , ref, ref) \
131 _(TOSTR, N , ref, ___) \ 136 _(TOSTR, N , ref, lit) \
132 _(STRTO, N , ref, ___) \ 137 _(STRTO, N , ref, ___) \
133 \ 138 \
134 /* Calls. */ \ 139 /* Calls. */ \
@@ -221,13 +226,16 @@ IRFLDEF(FLENUM)
221#define IRXLOAD_VOLATILE 2 /* Load from volatile data. */ 226#define IRXLOAD_VOLATILE 2 /* Load from volatile data. */
222#define IRXLOAD_UNALIGNED 4 /* Unaligned load. */ 227#define IRXLOAD_UNALIGNED 4 /* Unaligned load. */
223 228
229/* BUFHDR mode, stored in op2. */
230#define IRBUFHDR_RESET 0 /* Reset buffer. */
231#define IRBUFHDR_APPEND 1 /* Append to buffer. */
232
224/* CONV mode, stored in op2. */ 233/* CONV mode, stored in op2. */
225#define IRCONV_SRCMASK 0x001f /* Source IRType. */ 234#define IRCONV_SRCMASK 0x001f /* Source IRType. */
226#define IRCONV_DSTMASK 0x03e0 /* Dest. IRType (also in ir->t). */ 235#define IRCONV_DSTMASK 0x03e0 /* Dest. IRType (also in ir->t). */
227#define IRCONV_DSH 5 236#define IRCONV_DSH 5
228#define IRCONV_NUM_INT ((IRT_NUM<<IRCONV_DSH)|IRT_INT) 237#define IRCONV_NUM_INT ((IRT_NUM<<IRCONV_DSH)|IRT_INT)
229#define IRCONV_INT_NUM ((IRT_INT<<IRCONV_DSH)|IRT_NUM) 238#define IRCONV_INT_NUM ((IRT_INT<<IRCONV_DSH)|IRT_NUM)
230#define IRCONV_TRUNC 0x0400 /* Truncate number to integer. */
231#define IRCONV_SEXT 0x0800 /* Sign-extend integer to integer. */ 239#define IRCONV_SEXT 0x0800 /* Sign-extend integer to integer. */
232#define IRCONV_MODEMASK 0x0fff 240#define IRCONV_MODEMASK 0x0fff
233#define IRCONV_CONVMASK 0xf000 241#define IRCONV_CONVMASK 0xf000
@@ -238,6 +246,11 @@ IRFLDEF(FLENUM)
238#define IRCONV_INDEX (2<<IRCONV_CSH) /* Check + special backprop rules. */ 246#define IRCONV_INDEX (2<<IRCONV_CSH) /* Check + special backprop rules. */
239#define IRCONV_CHECK (3<<IRCONV_CSH) /* Number checked for integerness. */ 247#define IRCONV_CHECK (3<<IRCONV_CSH) /* Number checked for integerness. */
240 248
249/* TOSTR mode, stored in op2. */
250#define IRTOSTR_INT 0 /* Convert integer to string. */
251#define IRTOSTR_NUM 1 /* Convert number to string. */
252#define IRTOSTR_CHAR 2 /* Convert char value to string. */
253
241/* -- IR operands --------------------------------------------------------- */ 254/* -- IR operands --------------------------------------------------------- */
242 255
243/* IR operand mode (2 bit). */ 256/* IR operand mode (2 bit). */