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