summaryrefslogtreecommitdiff
path: root/src/buildvm_x86.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildvm_x86.h')
-rw-r--r--src/buildvm_x86.h64
1 files changed, 33 insertions, 31 deletions
diff --git a/src/buildvm_x86.h b/src/buildvm_x86.h
index 5bf7e60c..8a421ec8 100644
--- a/src/buildvm_x86.h
+++ b/src/buildvm_x86.h
@@ -12,7 +12,7 @@
12#define DASM_SECTION_CODE_OP 0 12#define DASM_SECTION_CODE_OP 0
13#define DASM_SECTION_CODE_SUB 1 13#define DASM_SECTION_CODE_SUB 1
14#define DASM_MAXSECTION 2 14#define DASM_MAXSECTION 2
15static const unsigned char build_actionlist[15177] = { 15static const unsigned char build_actionlist[15198] = {
16 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,141, 16 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,141,
17 76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36, 17 76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36,
18 20,252,247,198,237,15,132,244,13,248,14,252,247,198,237,15,132,244,10,199, 18 20,252,247,198,237,15,132,244,13,248,14,252,247,198,237,15,132,244,10,199,
@@ -730,21 +730,22 @@ static const unsigned char build_actionlist[15177] = {
730 255,141,180,253,134,233,139,1,137,105,252,252,137,65,252,248,255,139,139, 730 255,141,180,253,134,233,139,1,137,105,252,252,137,65,252,248,255,139,139,
731 233,139,4,129,139,128,233,139,108,36,48,137,147,233,137,171,233,252,255,224, 731 233,139,4,129,139,128,233,139,108,36,48,137,147,233,137,171,233,252,255,224,
732 255,141,180,253,134,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16, 732 255,141,180,253,134,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,
733 252,255,36,171,255,139,190,233,139,108,36,48,141,12,202,59,141,233,15,135, 733 252,255,36,171,255,137,252,245,209,252,237,129,229,239,102,131,172,253,43,
734 244,23,15,182,142,233,57,200,15,134,244,249,248,2,255,15,183,70,252,254,252, 734 233,1,15,132,244,142,255,139,190,233,139,108,36,48,141,12,202,59,141,233,
735 233,245,255,248,3,199,68,194,252,252,237,131,192,1,57,200,15,134,244,3,252, 735 15,135,244,23,15,182,142,233,57,200,15,134,244,249,248,2,255,15,183,70,252,
736 233,244,2,255,141,44,197,237,141,4,194,139,122,252,248,137,104,252,252,137, 736 254,252,233,245,255,248,3,199,68,194,252,252,237,131,192,1,57,200,15,134,
737 120,252,248,139,108,36,48,141,12,200,59,141,233,15,135,244,22,137,209,137, 737 244,3,252,233,244,2,255,141,44,197,237,141,4,194,139,122,252,248,137,104,
738 194,15,182,174,233,133,252,237,15,132,244,248,248,1,131,193,8,57,209,15,131, 738 252,252,137,120,252,248,139,108,36,48,141,12,200,59,141,233,15,135,244,22,
739 244,249,139,121,252,248,137,56,139,121,252,252,137,120,4,131,192,8,199,65, 739 137,209,137,194,15,182,174,233,133,252,237,15,132,244,248,248,1,131,193,8,
740 252,252,237,131,252,237,1,15,133,244,1,248,2,255,139,190,233,139,6,15,182, 740 57,209,15,131,244,249,139,121,252,248,137,56,139,121,252,252,137,120,4,131,
741 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,248,3,199,64,4,237, 741 192,8,199,65,252,252,237,131,252,237,1,15,133,244,1,248,2,255,139,190,233,
742 131,192,8,131,252,237,1,15,133,244,3,252,233,244,2,255,139,106,252,248,139, 742 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,248,3,
743 189,233,139,108,36,48,141,68,194,252,248,137,149,233,141,136,233,59,141,233, 743 199,64,4,237,131,192,8,131,252,237,1,15,133,244,3,252,233,244,2,255,139,106,
744 137,133,233,255,137,44,36,255,137,124,36,4,137,44,36,255,15,135,244,21,199, 744 252,248,139,189,233,139,108,36,48,141,68,194,252,248,137,149,233,141,136,
745 131,233,237,255,252,255,215,255,252,255,147,233,255,199,131,233,237,139,149, 745 233,59,141,233,137,133,233,255,137,44,36,255,137,124,36,4,137,44,36,255,15,
746 233,141,12,194,252,247,217,3,141,233,139,114,252,252,252,233,244,12,255,254, 746 135,244,21,199,131,233,237,255,252,255,215,255,252,255,147,233,255,199,131,
747 0 747 233,237,139,149,233,141,12,194,252,247,217,3,141,233,139,114,252,252,252,
748 233,244,12,255,254,0
748}; 749};
749 750
750enum { 751enum {
@@ -2278,6 +2279,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2278 2279
2279 case BC_FUNCF: 2280 case BC_FUNCF:
2280#if LJ_HASJIT 2281#if LJ_HASJIT
2282 dasm_put(Dst, 14895, HOTCOUNT_PCMASK, GG_DISP2HOT);
2281#endif 2283#endif
2282 case BC_FUNCV: /* NYI: compiled vararg functions. */ 2284 case BC_FUNCV: /* NYI: compiled vararg functions. */
2283 break; 2285 break;
@@ -2287,13 +2289,13 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2287 break; 2289 break;
2288#endif 2290#endif
2289 case BC_IFUNCF: 2291 case BC_IFUNCF:
2290 dasm_put(Dst, 14895, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 2292 dasm_put(Dst, 14916, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2291 if (op == BC_JFUNCF) { 2293 if (op == BC_JFUNCF) {
2292 dasm_put(Dst, 14925, BC_JLOOP); 2294 dasm_put(Dst, 14946, BC_JLOOP);
2293 } else { 2295 } else {
2294 dasm_put(Dst, 10814); 2296 dasm_put(Dst, 10814);
2295 } 2297 }
2296 dasm_put(Dst, 14934, LJ_TNIL); 2298 dasm_put(Dst, 14955, LJ_TNIL);
2297 break; 2299 break;
2298 2300
2299 case BC_JFUNCV: 2301 case BC_JFUNCV:
@@ -2304,30 +2306,30 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2304 break; /* NYI: compiled vararg functions. */ 2306 break; /* NYI: compiled vararg functions. */
2305 2307
2306 case BC_IFUNCV: 2308 case BC_IFUNCV:
2307 dasm_put(Dst, 14956, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 2309 dasm_put(Dst, 14977, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2308 if (op == BC_JFUNCV) { 2310 if (op == BC_JFUNCV) {
2309 dasm_put(Dst, 14925, BC_JLOOP); 2311 dasm_put(Dst, 14946, BC_JLOOP);
2310 } else { 2312 } else {
2311 dasm_put(Dst, 15047, -4+PC2PROTO(k)); 2313 dasm_put(Dst, 15068, -4+PC2PROTO(k));
2312 } 2314 }
2313 dasm_put(Dst, 15069, LJ_TNIL); 2315 dasm_put(Dst, 15090, LJ_TNIL);
2314 break; 2316 break;
2315 2317
2316 case BC_FUNCC: 2318 case BC_FUNCC:
2317 case BC_FUNCCW: 2319 case BC_FUNCCW:
2318 dasm_put(Dst, 15091, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 2320 dasm_put(Dst, 15112, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2319 if (op == BC_FUNCC) { 2321 if (op == BC_FUNCC) {
2320 dasm_put(Dst, 15120); 2322 dasm_put(Dst, 15141);
2321 } else { 2323 } else {
2322 dasm_put(Dst, 15124); 2324 dasm_put(Dst, 15145);
2323 } 2325 }
2324 dasm_put(Dst, 15132, DISPATCH_GL(vmstate), ~LJ_VMST_C); 2326 dasm_put(Dst, 15153, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2325 if (op == BC_FUNCC) { 2327 if (op == BC_FUNCC) {
2326 dasm_put(Dst, 15141); 2328 dasm_put(Dst, 15162);
2327 } else { 2329 } else {
2328 dasm_put(Dst, 15145, DISPATCH_GL(wrapf)); 2330 dasm_put(Dst, 15166, DISPATCH_GL(wrapf));
2329 } 2331 }
2330 dasm_put(Dst, 15150, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 2332 dasm_put(Dst, 15171, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2331 break; 2333 break;
2332 2334
2333 /* ---------------------------------------------------------------------- */ 2335 /* ---------------------------------------------------------------------- */
@@ -2355,7 +2357,7 @@ static int build_backend(BuildCtx *ctx)
2355 2357
2356 build_subroutines(ctx, cmov, sse); 2358 build_subroutines(ctx, cmov, sse);
2357 2359
2358 dasm_put(Dst, 15175); 2360 dasm_put(Dst, 15196);
2359 for (op = 0; op < BC__MAX; op++) 2361 for (op = 0; op < BC__MAX; op++)
2360 build_ins(ctx, (BCOp)op, op, cmov, sse); 2362 build_ins(ctx, (BCOp)op, op, cmov, sse);
2361 2363