diff options
| author | Mike Pall <mike> | 2011-09-05 18:34:38 +0200 |
|---|---|---|
| committer | Mike Pall <mike> | 2011-09-05 20:22:55 +0200 |
| commit | ae3317b186f8782aa282a78e8a57c2130ddeb3f7 (patch) | |
| tree | 84bc0d888755f54415f03287c9701fe1b47b0485 | |
| parent | bab2f0efaec441599837e82a9311b63831673faf (diff) | |
| download | luajit-ae3317b186f8782aa282a78e8a57c2130ddeb3f7.tar.gz luajit-ae3317b186f8782aa282a78e8a57c2130ddeb3f7.tar.bz2 luajit-ae3317b186f8782aa282a78e8a57c2130ddeb3f7.zip | |
PPC: Interpreter/JIT integration.
| -rw-r--r-- | src/buildvm_ppc.dasc | 186 | ||||
| -rw-r--r-- | src/buildvm_ppc.h | 1262 |
2 files changed, 955 insertions, 493 deletions
diff --git a/src/buildvm_ppc.dasc b/src/buildvm_ppc.dasc index bbe5c741..bc2382ac 100644 --- a/src/buildvm_ppc.dasc +++ b/src/buildvm_ppc.dasc | |||
| @@ -16,7 +16,7 @@ | |||
| 16 | |//----------------------------------------------------------------------- | 16 | |//----------------------------------------------------------------------- |
| 17 | | | 17 | | |
| 18 | |// Fixed register assignments for the interpreter. | 18 | |// Fixed register assignments for the interpreter. |
| 19 | |// Don't use: r1 = sp, r2 and r13 = reserved and/or small data area ptr | 19 | |// Don't use: r1 = sp, r2 and r13 = reserved (TOC, TLS or SDATA) |
| 20 | | | 20 | | |
| 21 | |// The following must be C callee-save (but BASE is often refetched). | 21 | |// The following must be C callee-save (but BASE is often refetched). |
| 22 | |.define BASE, r14 // Base of current Lua stack frame. | 22 | |.define BASE, r14 // Base of current Lua stack frame. |
| @@ -25,6 +25,8 @@ | |||
| 25 | |.define DISPATCH, r17 // Opcode dispatch table. | 25 | |.define DISPATCH, r17 // Opcode dispatch table. |
| 26 | |.define LREG, r18 // Register holding lua_State (also in SAVE_L). | 26 | |.define LREG, r18 // Register holding lua_State (also in SAVE_L). |
| 27 | |.define MULTRES, r19 // Size of multi-result: (nresults+1)*8. | 27 | |.define MULTRES, r19 // Size of multi-result: (nresults+1)*8. |
| 28 | |.define JGL, r30 // On-trace: global_State + 32768. | ||
| 29 | |.define JTR, r31 // On-trace: trace number. | ||
| 28 | | | 30 | | |
| 29 | |// Constants for type-comparisons, stores and conversions. C callee-save. | 31 | |// Constants for type-comparisons, stores and conversions. C callee-save. |
| 30 | |.define TISNUM, r22 | 32 | |.define TISNUM, r22 |
| @@ -267,12 +269,21 @@ | |||
| 267 | | | 269 | | |
| 268 | #define PC2PROTO(field) ((int)offsetof(GCproto, field)-(int)sizeof(GCproto)) | 270 | #define PC2PROTO(field) ((int)offsetof(GCproto, field)-(int)sizeof(GCproto)) |
| 269 | | | 271 | | |
| 272 | |.macro hotcheck, delta, target | ||
| 273 | | rlwinm TMP1, PC, 31, 25, 30 | ||
| 274 | | addi TMP1, TMP1, GG_DISP2HOT | ||
| 275 | | lhzx TMP2, DISPATCH, TMP1 | ||
| 276 | | addic. TMP2, TMP2, -delta | ||
| 277 | | sthx TMP2, DISPATCH, TMP1 | ||
| 278 | | blt target | ||
| 279 | |.endmacro | ||
| 280 | | | ||
| 270 | |.macro hotloop | 281 | |.macro hotloop |
| 271 | | NYI | 282 | | hotcheck HOTCOUNT_LOOP, ->vm_hotloop |
| 272 | |.endmacro | 283 | |.endmacro |
| 273 | | | 284 | | |
| 274 | |.macro hotcall | 285 | |.macro hotcall |
| 275 | | NYI | 286 | | hotcheck HOTCOUNT_CALL, ->vm_hotcall |
| 276 | |.endmacro | 287 | |.endmacro |
| 277 | | | 288 | | |
| 278 | |// Set current VM state. Uses TMP0. | 289 | |// Set current VM state. Uses TMP0. |
| @@ -2202,7 +2213,18 @@ static void build_subroutines(BuildCtx *ctx) | |||
| 2202 | | | 2213 | | |
| 2203 | |->vm_record: // Dispatch target for recording phase. | 2214 | |->vm_record: // Dispatch target for recording phase. |
| 2204 | #if LJ_HASJIT | 2215 | #if LJ_HASJIT |
| 2205 | | NYI | 2216 | | lbz TMP3, DISPATCH_GL(hookmask)(DISPATCH) |
| 2217 | | andi. TMP0, TMP3, HOOK_VMEVENT // No recording while in vmevent. | ||
| 2218 | | bne >5 | ||
| 2219 | | // Decrement the hookcount for consistency, but always do the call. | ||
| 2220 | | lwz TMP2, DISPATCH_GL(hookcount)(DISPATCH) | ||
| 2221 | | andi. TMP0, TMP3, HOOK_ACTIVE | ||
| 2222 | | bne >1 | ||
| 2223 | | subi TMP2, TMP2, 1 | ||
| 2224 | | andi. TMP0, TMP3, LUA_MASKLINE|LUA_MASKCOUNT | ||
| 2225 | | beqy >1 | ||
| 2226 | | stw TMP2, DISPATCH_GL(hookcount)(DISPATCH) | ||
| 2227 | | b >1 | ||
| 2206 | #endif | 2228 | #endif |
| 2207 | | | 2229 | | |
| 2208 | |->vm_rethook: // Dispatch target for return hooks. | 2230 | |->vm_rethook: // Dispatch target for return hooks. |
| @@ -2256,7 +2278,19 @@ static void build_subroutines(BuildCtx *ctx) | |||
| 2256 | | | 2278 | | |
| 2257 | |->vm_hotloop: // Hot loop counter underflow. | 2279 | |->vm_hotloop: // Hot loop counter underflow. |
| 2258 | #if LJ_HASJIT | 2280 | #if LJ_HASJIT |
| 2259 | | NYI | 2281 | | lwz LFUNC:TMP1, FRAME_FUNC(BASE) |
| 2282 | | addi CARG1, DISPATCH, GG_DISP2J | ||
| 2283 | | stw PC, SAVE_PC | ||
| 2284 | | lwz TMP1, LFUNC:TMP1->pc | ||
| 2285 | | mr CARG2, PC | ||
| 2286 | | stw L, DISPATCH_J(L)(DISPATCH) | ||
| 2287 | | lbz TMP1, PC2PROTO(framesize)(TMP1) | ||
| 2288 | | stw BASE, L->base | ||
| 2289 | | slwi TMP1, TMP1, 3 | ||
| 2290 | | add TMP1, BASE, TMP1 | ||
| 2291 | | stw TMP1, L->top | ||
| 2292 | | bl extern lj_trace_hot // (jit_State *J, const BCIns *pc) | ||
| 2293 | | b <3 | ||
| 2260 | #endif | 2294 | #endif |
| 2261 | | | 2295 | | |
| 2262 | |->vm_callhook: // Dispatch target for call hooks. | 2296 | |->vm_callhook: // Dispatch target for call hooks. |
| @@ -2291,13 +2325,111 @@ static void build_subroutines(BuildCtx *ctx) | |||
| 2291 | |//-- Trace exit handler ------------------------------------------------- | 2325 | |//-- Trace exit handler ------------------------------------------------- |
| 2292 | |//----------------------------------------------------------------------- | 2326 | |//----------------------------------------------------------------------- |
| 2293 | | | 2327 | | |
| 2328 | |.macro savex_, a, b, c, d | ||
| 2329 | | stfd f..a, 16+a*8(sp) | ||
| 2330 | | stfd f..b, 16+b*8(sp) | ||
| 2331 | | stfd f..c, 16+c*8(sp) | ||
| 2332 | | stfd f..d, 16+d*8(sp) | ||
| 2333 | |.endmacro | ||
| 2334 | | | ||
| 2294 | |->vm_exit_handler: | 2335 | |->vm_exit_handler: |
| 2295 | #if LJ_HASJIT | 2336 | #if LJ_HASJIT |
| 2296 | | NYI | 2337 | | addi sp, sp, -(16+32*8+32*4) |
| 2338 | | stmw r2, 16+32*8+2*4(sp) | ||
| 2339 | | addi DISPATCH, JGL, -GG_DISP2G-32768 | ||
| 2340 | | li CARG2, ~LJ_VMST_EXIT | ||
| 2341 | | lwz CARG1, 16+32*8+32*4(sp) // Get stack chain. | ||
| 2342 | | stw CARG2, DISPATCH_GL(vmstate)(DISPATCH) | ||
| 2343 | | savex_ 0,1,2,3 | ||
| 2344 | | stw CARG1, 0(sp) // Store extended stack chain. | ||
| 2345 | | mcrxr cr0 // Clear SO flag. | ||
| 2346 | | savex_ 4,5,6,7 | ||
| 2347 | | addi CARG2, sp, 16+32*8+32*4 // Recompute original value of sp. | ||
| 2348 | | savex_ 8,9,10,11 | ||
| 2349 | | stw CARG2, 16+32*8+1*4(sp) // Store sp in RID_SP. | ||
| 2350 | | savex_ 12,13,14,15 | ||
| 2351 | | mflr CARG3 | ||
| 2352 | | li TMP1, 0 | ||
| 2353 | | savex_ 16,17,18,19 | ||
| 2354 | | stw TMP1, 16+32*8+0*4(sp) // Clear RID_TMP. | ||
| 2355 | | savex_ 20,21,22,23 | ||
| 2356 | | lwz CARG4, 0(CARG3) // Load exit stub group offset. | ||
| 2357 | | savex_ 24,25,26,27 | ||
| 2358 | | lwz L, DISPATCH_GL(jit_L)(DISPATCH) | ||
| 2359 | | savex_ 28,29,30,31 | ||
| 2360 | | sub CARG3, TMP0, CARG3 // Compute exit number. | ||
| 2361 | | lwz BASE, DISPATCH_GL(jit_base)(DISPATCH) | ||
| 2362 | | srwi CARG3, CARG3, 2 | ||
| 2363 | | stw L, DISPATCH_J(L)(DISPATCH) | ||
| 2364 | | subi CARG3, CARG3, 2 | ||
| 2365 | | stw TMP1, DISPATCH_GL(jit_L)(DISPATCH) | ||
| 2366 | | add CARG3, CARG4, CARG3 | ||
| 2367 | | stw BASE, L->base | ||
| 2368 | | addi CARG1, DISPATCH, GG_DISP2J | ||
| 2369 | | stw CARG3, DISPATCH_J(exitno)(DISPATCH) | ||
| 2370 | | addi CARG2, sp, 16 | ||
| 2371 | | stw JTR, DISPATCH_J(parent)(DISPATCH) | ||
| 2372 | | bl extern lj_trace_exit // (jit_State *J, ExitState *ex) | ||
| 2373 | | // Returns MULTRES (unscaled) or negated error code. | ||
| 2374 | | lwz TMP1, L->cframe | ||
| 2375 | | lwz TMP2, 0(sp) | ||
| 2376 | | lwz BASE, L->base | ||
| 2377 | | rlwinm sp, TMP1, 0, 0, 29 | ||
| 2378 | | lwz PC, SAVE_PC // Get SAVE_PC. | ||
| 2379 | | stw TMP2, 0(sp) | ||
| 2380 | | stw L, SAVE_L // Set SAVE_L (on-trace resume/yield). | ||
| 2381 | | b >1 | ||
| 2297 | #endif | 2382 | #endif |
| 2298 | |->vm_exit_interp: | 2383 | |->vm_exit_interp: |
| 2299 | #if LJ_HASJIT | 2384 | #if LJ_HASJIT |
| 2300 | | NYI | 2385 | | // CARG1 = MULTRES or negated error code, BASE, PC and JGL set. |
| 2386 | | lwz L, SAVE_L | ||
| 2387 | | addi DISPATCH, JGL, -GG_DISP2G-32768 | ||
| 2388 | |1: | ||
| 2389 | | cmpwi CARG1, 0 | ||
| 2390 | | blt >3 // Check for error from exit. | ||
| 2391 | | lwz LFUNC:TMP1, FRAME_FUNC(BASE) | ||
| 2392 | | slwi MULTRES, CARG1, 3 | ||
| 2393 | | li TMP2, 0 | ||
| 2394 | | stw MULTRES, SAVE_MULTRES | ||
| 2395 | | lwz TMP1, LFUNC:TMP1->pc | ||
| 2396 | | stw TMP2, DISPATCH_GL(jit_L)(DISPATCH) | ||
| 2397 | | lwz KBASE, PC2PROTO(k)(TMP1) | ||
| 2398 | | // Setup type comparison constants. | ||
| 2399 | | li TISNUM, LJ_TISNUM | ||
| 2400 | | lus TMP3, 0x59c0 // TOBIT = 2^52 + 2^51 (float). | ||
| 2401 | | stw TMP3, TMPD | ||
| 2402 | | li ZERO, 0 | ||
| 2403 | | ori TMP3, TMP3, 0x0004 // TONUM = 2^52 + 2^51 + 2^31 (float). | ||
| 2404 | | lfs TOBIT, TMPD | ||
| 2405 | | stw TMP3, TMPD | ||
| 2406 | | lus TMP0, 0x4338 // Hiword of 2^52 + 2^51 (double) | ||
| 2407 | | li TISNIL, LJ_TNIL | ||
| 2408 | | stw TMP0, TONUM_HI | ||
| 2409 | | lfs TONUM, TMPD | ||
| 2410 | | // Modified copy of ins_next which handles function header dispatch, too. | ||
| 2411 | | lwz INS, 0(PC) | ||
| 2412 | | addi PC, PC, 4 | ||
| 2413 | | // Assumes TISNIL == ~LJ_VMST_INTERP == -1. | ||
| 2414 | | stw TISNIL, DISPATCH_GL(vmstate)(DISPATCH) | ||
| 2415 | | decode_OP4 TMP1, INS | ||
| 2416 | | decode_RA8 RA, INS | ||
| 2417 | | lwzx TMP0, DISPATCH, TMP1 | ||
| 2418 | | mtctr TMP0 | ||
| 2419 | | cmpwi TMP1, BC_FUNCF*4 // Function header? | ||
| 2420 | | beq >2 | ||
| 2421 | | decode_RB8 RB, INS | ||
| 2422 | | decode_RD8 RD, INS | ||
| 2423 | | decode_RC8 RC, INS | ||
| 2424 | | bctr | ||
| 2425 | |2: | ||
| 2426 | | add RA, RA, BASE | ||
| 2427 | | bctr | ||
| 2428 | | | ||
| 2429 | |3: // Rethrow error from the right C frame. | ||
| 2430 | | neg CARG2, CARG1 | ||
| 2431 | | mr CARG1, L | ||
| 2432 | | bl extern lj_err_throw // (lua_State *L, int errcode) | ||
| 2301 | #endif | 2433 | #endif |
| 2302 | | | 2434 | | |
| 2303 | |//----------------------------------------------------------------------- | 2435 | |//----------------------------------------------------------------------- |
| @@ -2368,7 +2500,24 @@ static void build_subroutines(BuildCtx *ctx) | |||
| 2368 | |1: | 2500 | |1: |
| 2369 | | fabs FARG1, FARG1; blr | 2501 | | fabs FARG1, FARG1; blr |
| 2370 | |2: | 2502 | |2: |
| 2503 | #if LJ_HASJIT | ||
| 2504 | | cmplwi CARG1, 9; beq >9; bgt >2 | ||
| 2505 | | b extern atan2 | ||
| 2506 | | // No support needed for IR_LDEXP. | ||
| 2507 | |2: | ||
| 2508 | | cmplwi CARG1, 11; bgt >9 | ||
| 2509 | | fsub f0, FARG1, FARG2 | ||
| 2510 | | beq >1 | ||
| 2511 | | fsel FARG1, f0, FARG2, FARG1 // IR_MAX | ||
| 2512 | | blr | ||
| 2513 | |1: | ||
| 2514 | | fsel FARG1, f0, FARG1, FARG2 // IR_MIN | ||
| 2515 | | blr | ||
| 2516 | |9: | ||
| 2517 | | NYI // Bad op. | ||
| 2518 | #else | ||
| 2371 | | NYI // Other operations only needed by JIT compiler. | 2519 | | NYI // Other operations only needed by JIT compiler. |
| 2520 | #endif | ||
| 2372 | | | 2521 | | |
| 2373 | |//----------------------------------------------------------------------- | 2522 | |//----------------------------------------------------------------------- |
| 2374 | |//-- Miscellaneous functions -------------------------------------------- | 2523 | |//-- Miscellaneous functions -------------------------------------------- |
| @@ -4309,7 +4458,9 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
| 4309 | | lwz TMP2, 4(RA) | 4458 | | lwz TMP2, 4(RA) |
| 4310 | | checknil TMP1; beq >1 // Stop if iterator returned nil. | 4459 | | checknil TMP1; beq >1 // Stop if iterator returned nil. |
| 4311 | if (op == BC_JITERL) { | 4460 | if (op == BC_JITERL) { |
| 4312 | | NYI | 4461 | | stw TMP1, -8(RA) |
| 4462 | | stw TMP2, -4(RA) | ||
| 4463 | | b =>BC_JLOOP | ||
| 4313 | } else { | 4464 | } else { |
| 4314 | | branch_RD // Otherwise save control var + branch. | 4465 | | branch_RD // Otherwise save control var + branch. |
| 4315 | | stw TMP1, -8(RA) | 4466 | | stw TMP1, -8(RA) |
| @@ -4336,7 +4487,17 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
| 4336 | 4487 | ||
| 4337 | case BC_JLOOP: | 4488 | case BC_JLOOP: |
| 4338 | #if LJ_HASJIT | 4489 | #if LJ_HASJIT |
| 4339 | | NYI | 4490 | | // RA = base*8 (ignored), RD = traceno*8 |
| 4491 | | lwz TMP1, DISPATCH_J(trace)(DISPATCH) | ||
| 4492 | | srwi RD, RD, 1 | ||
| 4493 | | lwzx TRACE:TMP2, TMP1, RD | ||
| 4494 | | mcrxr cr0 // Clear SO flag. | ||
| 4495 | | lwz TMP2, TRACE:TMP2->mcode | ||
| 4496 | | stw BASE, DISPATCH_GL(jit_base)(DISPATCH) | ||
| 4497 | | mtctr TMP2 | ||
| 4498 | | stw L, DISPATCH_GL(jit_L)(DISPATCH) | ||
| 4499 | | addi JGL, DISPATCH, GG_DISP2G+32768 | ||
| 4500 | | bctr | ||
| 4340 | #endif | 4501 | #endif |
| 4341 | break; | 4502 | break; |
| 4342 | 4503 | ||
| @@ -4368,12 +4529,15 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
| 4368 | | cmplw RA, TMP2 | 4529 | | cmplw RA, TMP2 |
| 4369 | | slwi TMP1, TMP1, 3 | 4530 | | slwi TMP1, TMP1, 3 |
| 4370 | | bgt ->vm_growstack_l | 4531 | | bgt ->vm_growstack_l |
| 4371 | | ins_next1 | 4532 | if (op != BC_JFUNCF) { |
| 4533 | | ins_next1 | ||
| 4534 | } | ||
| 4372 | |2: | 4535 | |2: |
| 4373 | | cmplw NARGS8:RC, TMP1 // Check for missing parameters. | 4536 | | cmplw NARGS8:RC, TMP1 // Check for missing parameters. |
| 4374 | | ble >3 | 4537 | | ble >3 |
| 4375 | if (op == BC_JFUNCF) { | 4538 | if (op == BC_JFUNCF) { |
| 4376 | | NYI | 4539 | | decode_RD8 RD, INS |
| 4540 | | b =>BC_JLOOP | ||
| 4377 | } else { | 4541 | } else { |
| 4378 | | ins_next2 | 4542 | | ins_next2 |
| 4379 | } | 4543 | } |
diff --git a/src/buildvm_ppc.h b/src/buildvm_ppc.h index 87a838fd..af217215 100644 --- a/src/buildvm_ppc.h +++ b/src/buildvm_ppc.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 |
| 15 | static const unsigned int build_actionlist[7267] = { | 15 | static const unsigned int build_actionlist[7562] = { |
| 16 | 0x00010001, | 16 | 0x00010001, |
| 17 | 0x00060014, | 17 | 0x00060014, |
| 18 | 0x72000000, | 18 | 0x72000000, |
| @@ -38,7 +38,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 38 | 0x38000000, | 38 | 0x38000000, |
| 39 | 0x00098200, | 39 | 0x00098200, |
| 40 | 0x7d297050, | 40 | 0x7d297050, |
| 41 | 0x40820000, | 41 | 0x40a20000, |
| 42 | 0x00050814, | 42 | 0x00050814, |
| 43 | 0x350cfff8, | 43 | 0x350cfff8, |
| 44 | 0x91320000, | 44 | 0x91320000, |
| @@ -57,7 +57,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 57 | 0x3a940008, | 57 | 0x3a940008, |
| 58 | 0xd80e0000, | 58 | 0xd80e0000, |
| 59 | 0x39ce0008, | 59 | 0x39ce0008, |
| 60 | 0x40820000, | 60 | 0x40a20000, |
| 61 | 0x0005080b, | 61 | 0x0005080b, |
| 62 | 0x0006000c, | 62 | 0x0006000c, |
| 63 | 0x7c096000, | 63 | 0x7c096000, |
| @@ -779,7 +779,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 779 | 0x7ca82050, | 779 | 0x7ca82050, |
| 780 | 0x54f4dd78, | 780 | 0x54f4dd78, |
| 781 | 0xd8040000, | 781 | 0xd8040000, |
| 782 | 0x40820000, | 782 | 0x40a20000, |
| 783 | 0x0005082a, | 783 | 0x0005082a, |
| 784 | 0x7c0ea5ae, | 784 | 0x7c0ea5ae, |
| 785 | 0x48000000, | 785 | 0x48000000, |
| @@ -1174,7 +1174,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 1174 | 0x00000000, | 1174 | 0x00000000, |
| 1175 | 0x56ac9b78, | 1175 | 0x56ac9b78, |
| 1176 | 0x00000000, | 1176 | 0x00000000, |
| 1177 | 0x41820000, | 1177 | 0x41a20000, |
| 1178 | 0x00070800, | 1178 | 0x00070800, |
| 1179 | 0x00000000, | 1179 | 0x00000000, |
| 1180 | 0x48000000, | 1180 | 0x48000000, |
| @@ -1204,7 +1204,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 1204 | 0x7c0e44ae, | 1204 | 0x7c0e44ae, |
| 1205 | 0x7c1445ae, | 1205 | 0x7c1445ae, |
| 1206 | 0x39080008, | 1206 | 0x39080008, |
| 1207 | 0x40820000, | 1207 | 0x40a20000, |
| 1208 | 0x0005080b, | 1208 | 0x0005080b, |
| 1209 | 0x48000000, | 1209 | 0x48000000, |
| 1210 | 0x00050049, | 1210 | 0x00050049, |
| @@ -1971,7 +1971,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 1971 | 0x72000000, | 1971 | 0x72000000, |
| 1972 | 0x00090200, | 1972 | 0x00090200, |
| 1973 | 0x7d936378, | 1973 | 0x7d936378, |
| 1974 | 0x40820000, | 1974 | 0x40a20000, |
| 1975 | 0x00050818, | 1975 | 0x00050818, |
| 1976 | 0x80f0fffc, | 1976 | 0x80f0fffc, |
| 1977 | 0x54ea5d78, | 1977 | 0x54ea5d78, |
| @@ -2005,7 +2005,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 2005 | 0x41800000, | 2005 | 0x41800000, |
| 2006 | 0x00050848, | 2006 | 0x00050848, |
| 2007 | 0x7c05b040, | 2007 | 0x7c05b040, |
| 2008 | 0x41820000, | 2008 | 0x41a20000, |
| 2009 | 0x0005084d, | 2009 | 0x0005084d, |
| 2010 | 0x54a9657e, | 2010 | 0x54a9657e, |
| 2011 | 0x40800000, | 2011 | 0x40800000, |
| @@ -2054,7 +2054,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 2054 | 0x7d084b39, | 2054 | 0x7d084b39, |
| 2055 | 0x4c423202, | 2055 | 0x4c423202, |
| 2056 | 0x3c608000, | 2056 | 0x3c608000, |
| 2057 | 0x41820000, | 2057 | 0x41a20000, |
| 2058 | 0x0005085d, | 2058 | 0x0005085d, |
| 2059 | 0x0006000f, | 2059 | 0x0006000f, |
| 2060 | 0xc82e0000, | 2060 | 0xc82e0000, |
| @@ -2069,7 +2069,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 2069 | 0x41800000, | 2069 | 0x41800000, |
| 2070 | 0x00050848, | 2070 | 0x00050848, |
| 2071 | 0x7c05b040, | 2071 | 0x7c05b040, |
| 2072 | 0x41820000, | 2072 | 0x41a20000, |
| 2073 | 0x0005084d, | 2073 | 0x0005084d, |
| 2074 | 0x54a9657e, | 2074 | 0x54a9657e, |
| 2075 | 0x40800000, | 2075 | 0x40800000, |
| @@ -2104,7 +2104,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 2104 | 0x40830000, | 2104 | 0x40830000, |
| 2105 | 0x0005085d, | 2105 | 0x0005085d, |
| 2106 | 0x7c000400, | 2106 | 0x7c000400, |
| 2107 | 0x40810000, | 2107 | 0x40a10000, |
| 2108 | 0x0005085d, | 2108 | 0x0005085d, |
| 2109 | 0x3ca041e0, | 2109 | 0x3ca041e0, |
| 2110 | 0x38600000, | 2110 | 0x38600000, |
| @@ -2125,7 +2125,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 2125 | 0x7d084b39, | 2125 | 0x7d084b39, |
| 2126 | 0x4c423202, | 2126 | 0x4c423202, |
| 2127 | 0x3c608000, | 2127 | 0x3c608000, |
| 2128 | 0x41820000, | 2128 | 0x41a20000, |
| 2129 | 0x0005085d, | 2129 | 0x0005085d, |
| 2130 | 0x0006000f, | 2130 | 0x0006000f, |
| 2131 | 0xc82e0000, | 2131 | 0xc82e0000, |
| @@ -2717,7 +2717,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 2717 | 0x820efff8, | 2717 | 0x820efff8, |
| 2718 | 0x28000000, | 2718 | 0x28000000, |
| 2719 | 0x3a8efff8, | 2719 | 0x3a8efff8, |
| 2720 | 0x41820000, | 2720 | 0x41a20000, |
| 2721 | 0x00050849, | 2721 | 0x00050849, |
| 2722 | 0x48000000, | 2722 | 0x48000000, |
| 2723 | 0x0005005d, | 2723 | 0x0005005d, |
| @@ -2982,7 +2982,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 2982 | 0x0006000b, | 2982 | 0x0006000b, |
| 2983 | 0x2c060000, | 2983 | 0x2c060000, |
| 2984 | 0x7d0348ae, | 2984 | 0x7d0348ae, |
| 2985 | 0x41800000, | 2985 | 0x41a00000, |
| 2986 | 0x0005087b, | 2986 | 0x0005087b, |
| 2987 | 0x7d0431ae, | 2987 | 0x7d0431ae, |
| 2988 | 0x38c6ffff, | 2988 | 0x38c6ffff, |
| @@ -3021,7 +3021,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 3021 | 0x0006000b, | 3021 | 0x0006000b, |
| 3022 | 0x7c092840, | 3022 | 0x7c092840, |
| 3023 | 0x7d0348ae, | 3023 | 0x7d0348ae, |
| 3024 | 0x40800000, | 3024 | 0x40a00000, |
| 3025 | 0x0005087b, | 3025 | 0x0005087b, |
| 3026 | 0x00000000, | 3026 | 0x00000000, |
| 3027 | 0x3808ffbf, | 3027 | 0x3808ffbf, |
| @@ -3066,7 +3066,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 3066 | 0x0006000b, | 3066 | 0x0006000b, |
| 3067 | 0x7c092840, | 3067 | 0x7c092840, |
| 3068 | 0x7d0348ae, | 3068 | 0x7d0348ae, |
| 3069 | 0x40800000, | 3069 | 0x40a00000, |
| 3070 | 0x0005087b, | 3070 | 0x0005087b, |
| 3071 | 0x3808ff9f, | 3071 | 0x3808ff9f, |
| 3072 | 0x69060020, | 3072 | 0x69060020, |
| @@ -3126,7 +3126,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 3126 | 0x00000000, | 3126 | 0x00000000, |
| 3127 | 0xc8280000, | 3127 | 0xc8280000, |
| 3128 | 0x00000000, | 3128 | 0x00000000, |
| 3129 | 0x40840000, | 3129 | 0x40a40000, |
| 3130 | 0x0005085d, | 3130 | 0x0005085d, |
| 3131 | 0x7c06b040, | 3131 | 0x7c06b040, |
| 3132 | 0x00000000, | 3132 | 0x00000000, |
| @@ -3177,7 +3177,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 3177 | 0x00000000, | 3177 | 0x00000000, |
| 3178 | 0xc8280000, | 3178 | 0xc8280000, |
| 3179 | 0x00000000, | 3179 | 0x00000000, |
| 3180 | 0x40840000, | 3180 | 0x40a40000, |
| 3181 | 0x0005085d, | 3181 | 0x0005085d, |
| 3182 | 0x7c06b040, | 3182 | 0x7c06b040, |
| 3183 | 0x00000000, | 3183 | 0x00000000, |
| @@ -3228,7 +3228,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 3228 | 0x00000000, | 3228 | 0x00000000, |
| 3229 | 0xc8280000, | 3229 | 0xc8280000, |
| 3230 | 0x00000000, | 3230 | 0x00000000, |
| 3231 | 0x40840000, | 3231 | 0x40a40000, |
| 3232 | 0x0005085d, | 3232 | 0x0005085d, |
| 3233 | 0x7c06b040, | 3233 | 0x7c06b040, |
| 3234 | 0x00000000, | 3234 | 0x00000000, |
| @@ -3654,7 +3654,27 @@ static const unsigned int build_actionlist[7267] = { | |||
| 3654 | 0x4e800020, | 3654 | 0x4e800020, |
| 3655 | 0x0006008f, | 3655 | 0x0006008f, |
| 3656 | 0x00000000, | 3656 | 0x00000000, |
| 3657 | 0x7c810808, | 3657 | 0x88d10000, |
| 3658 | 0x00098200, | ||
| 3659 | 0x70c00000, | ||
| 3660 | 0x00090200, | ||
| 3661 | 0x40820000, | ||
| 3662 | 0x00050805, | ||
| 3663 | 0x81310000, | ||
| 3664 | 0x00098200, | ||
| 3665 | 0x70c00000, | ||
| 3666 | 0x00090200, | ||
| 3667 | 0x40820000, | ||
| 3668 | 0x00050801, | ||
| 3669 | 0x3929ffff, | ||
| 3670 | 0x70c00000, | ||
| 3671 | 0x00090200, | ||
| 3672 | 0x41a20000, | ||
| 3673 | 0x00050801, | ||
| 3674 | 0x91310000, | ||
| 3675 | 0x00098200, | ||
| 3676 | 0x48000000, | ||
| 3677 | 0x00050001, | ||
| 3658 | 0x00000000, | 3678 | 0x00000000, |
| 3659 | 0x00060090, | 3679 | 0x00060090, |
| 3660 | 0x88d10000, | 3680 | 0x88d10000, |
| @@ -3721,7 +3741,28 @@ static const unsigned int build_actionlist[7267] = { | |||
| 3721 | 0x0005000e, | 3741 | 0x0005000e, |
| 3722 | 0x00060093, | 3742 | 0x00060093, |
| 3723 | 0x00000000, | 3743 | 0x00000000, |
| 3724 | 0x7c810808, | 3744 | 0x810efffc, |
| 3745 | 0x38710000, | ||
| 3746 | 0x00098200, | ||
| 3747 | 0x92010020, | ||
| 3748 | 0x81080000, | ||
| 3749 | 0x00098200, | ||
| 3750 | 0x7e048378, | ||
| 3751 | 0x92510000, | ||
| 3752 | 0x00098200, | ||
| 3753 | 0x89080000, | ||
| 3754 | 0x00098200, | ||
| 3755 | 0x91d20000, | ||
| 3756 | 0x00098200, | ||
| 3757 | 0x55081800, | ||
| 3758 | 0x000900a1, | ||
| 3759 | 0x7d0e4214, | ||
| 3760 | 0x91120000, | ||
| 3761 | 0x00098200, | ||
| 3762 | 0x48000001, | ||
| 3763 | 0x00030029, | ||
| 3764 | 0x48000000, | ||
| 3765 | 0x0005000d, | ||
| 3725 | 0x00000000, | 3766 | 0x00000000, |
| 3726 | 0x00060094, | 3767 | 0x00060094, |
| 3727 | 0x7e048378, | 3768 | 0x7e048378, |
| @@ -3743,7 +3784,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 3743 | 0x90120000, | 3784 | 0x90120000, |
| 3744 | 0x00098200, | 3785 | 0x00098200, |
| 3745 | 0x48000001, | 3786 | 0x48000001, |
| 3746 | 0x00030029, | 3787 | 0x0003002a, |
| 3747 | 0x81d20000, | 3788 | 0x81d20000, |
| 3748 | 0x00098200, | 3789 | 0x00098200, |
| 3749 | 0x80120000, | 3790 | 0x80120000, |
| @@ -3756,11 +3797,188 @@ static const unsigned int build_actionlist[7267] = { | |||
| 3756 | 0x4e800420, | 3797 | 0x4e800420, |
| 3757 | 0x00060096, | 3798 | 0x00060096, |
| 3758 | 0x00000000, | 3799 | 0x00000000, |
| 3759 | 0x7c810808, | 3800 | 0x38210000, |
| 3801 | 0x00098200, | ||
| 3802 | 0xbc410000, | ||
| 3803 | 0x00098200, | ||
| 3804 | 0x3a3e0000, | ||
| 3805 | 0x00098200, | ||
| 3806 | 0x38800000, | ||
| 3807 | 0x00098200, | ||
| 3808 | 0x80610000, | ||
| 3809 | 0x00098200, | ||
| 3810 | 0x90910000, | ||
| 3811 | 0x00098200, | ||
| 3812 | 0xd8010000, | ||
| 3813 | 0x00098200, | ||
| 3814 | 0xd8210000, | ||
| 3815 | 0x00098200, | ||
| 3816 | 0xd8410000, | ||
| 3817 | 0x00098200, | ||
| 3818 | 0xd8610000, | ||
| 3819 | 0x00098200, | ||
| 3820 | 0x90610000, | ||
| 3821 | 0x7c000400, | ||
| 3822 | 0xd8810000, | ||
| 3823 | 0x00098200, | ||
| 3824 | 0xd8a10000, | ||
| 3825 | 0x00098200, | ||
| 3826 | 0xd8c10000, | ||
| 3827 | 0x00098200, | ||
| 3828 | 0xd8e10000, | ||
| 3829 | 0x00098200, | ||
| 3830 | 0x38810000, | ||
| 3831 | 0x00098200, | ||
| 3832 | 0xd9010000, | ||
| 3833 | 0x00098200, | ||
| 3834 | 0xd9210000, | ||
| 3835 | 0x00098200, | ||
| 3836 | 0xd9410000, | ||
| 3837 | 0x00098200, | ||
| 3838 | 0xd9610000, | ||
| 3839 | 0x00098200, | ||
| 3840 | 0x90810000, | ||
| 3841 | 0x00098200, | ||
| 3842 | 0xd9810000, | ||
| 3843 | 0x00098200, | ||
| 3844 | 0xd9a10000, | ||
| 3845 | 0x00098200, | ||
| 3846 | 0x00000000, | ||
| 3847 | 0xd9c10000, | ||
| 3848 | 0x00098200, | ||
| 3849 | 0xd9e10000, | ||
| 3850 | 0x00098200, | ||
| 3851 | 0x7ca802a6, | ||
| 3852 | 0x39000000, | ||
| 3853 | 0xda010000, | ||
| 3854 | 0x00098200, | ||
| 3855 | 0xda210000, | ||
| 3856 | 0x00098200, | ||
| 3857 | 0xda410000, | ||
| 3858 | 0x00098200, | ||
| 3859 | 0xda610000, | ||
| 3860 | 0x00098200, | ||
| 3861 | 0x91010000, | ||
| 3862 | 0x00098200, | ||
| 3863 | 0xda810000, | ||
| 3864 | 0x00098200, | ||
| 3865 | 0xdaa10000, | ||
| 3866 | 0x00098200, | ||
| 3867 | 0xdac10000, | ||
| 3868 | 0x00098200, | ||
| 3869 | 0xdae10000, | ||
| 3870 | 0x00098200, | ||
| 3871 | 0x80c50000, | ||
| 3872 | 0xdb010000, | ||
| 3873 | 0x00098200, | ||
| 3874 | 0xdb210000, | ||
| 3875 | 0x00098200, | ||
| 3876 | 0xdb410000, | ||
| 3877 | 0x00098200, | ||
| 3878 | 0xdb610000, | ||
| 3879 | 0x00098200, | ||
| 3880 | 0x82510000, | ||
| 3881 | 0x00098200, | ||
| 3882 | 0xdb810000, | ||
| 3883 | 0x00098200, | ||
| 3884 | 0xdba10000, | ||
| 3885 | 0x00098200, | ||
| 3886 | 0xdbc10000, | ||
| 3887 | 0x00098200, | ||
| 3888 | 0xdbe10000, | ||
| 3889 | 0x00098200, | ||
| 3890 | 0x7ca50050, | ||
| 3891 | 0x81d10000, | ||
| 3892 | 0x00098200, | ||
| 3893 | 0x54a500be, | ||
| 3894 | 0x000900ab, | ||
| 3895 | 0x00000000, | ||
| 3896 | 0x92510000, | ||
| 3897 | 0x00098200, | ||
| 3898 | 0x38a5fffe, | ||
| 3899 | 0x91110000, | ||
| 3900 | 0x00098200, | ||
| 3901 | 0x7ca62a14, | ||
| 3902 | 0x91d20000, | ||
| 3903 | 0x00098200, | ||
| 3904 | 0x38710000, | ||
| 3905 | 0x00098200, | ||
| 3906 | 0x90b10000, | ||
| 3907 | 0x00098200, | ||
| 3908 | 0x38810010, | ||
| 3909 | 0x93f10000, | ||
| 3910 | 0x00098200, | ||
| 3911 | 0x48000001, | ||
| 3912 | 0x0003002b, | ||
| 3913 | 0x81120000, | ||
| 3914 | 0x00098200, | ||
| 3915 | 0x81210000, | ||
| 3916 | 0x81d20000, | ||
| 3917 | 0x00098200, | ||
| 3918 | 0x5501003a, | ||
| 3919 | 0x82010020, | ||
| 3920 | 0x91210000, | ||
| 3921 | 0x92410024, | ||
| 3922 | 0x48000000, | ||
| 3923 | 0x00050001, | ||
| 3760 | 0x00000000, | 3924 | 0x00000000, |
| 3761 | 0x00060097, | 3925 | 0x00060097, |
| 3762 | 0x00000000, | 3926 | 0x00000000, |
| 3763 | 0x7c810808, | 3927 | 0x82410024, |
| 3928 | 0x3a3e0000, | ||
| 3929 | 0x00098200, | ||
| 3930 | 0x0006000b, | ||
| 3931 | 0x2c030000, | ||
| 3932 | 0x41800000, | ||
| 3933 | 0x00050803, | ||
| 3934 | 0x810efffc, | ||
| 3935 | 0x54731800, | ||
| 3936 | 0x000900a1, | ||
| 3937 | 0x39200000, | ||
| 3938 | 0x9261001c, | ||
| 3939 | 0x81080000, | ||
| 3940 | 0x00098200, | ||
| 3941 | 0x91310000, | ||
| 3942 | 0x00098200, | ||
| 3943 | 0x81e80000, | ||
| 3944 | 0x00098200, | ||
| 3945 | 0x3ac00000, | ||
| 3946 | 0x00098200, | ||
| 3947 | 0x3cc059c0, | ||
| 3948 | 0x90c10010, | ||
| 3949 | 0x3b000000, | ||
| 3950 | 0x60c60004, | ||
| 3951 | 0xc3c10010, | ||
| 3952 | 0x90c10010, | ||
| 3953 | 0x3c004338, | ||
| 3954 | 0x3ae00000, | ||
| 3955 | 0x00098200, | ||
| 3956 | 0x90010008, | ||
| 3957 | 0xc3e10010, | ||
| 3958 | 0x80f00000, | ||
| 3959 | 0x3a100004, | ||
| 3960 | 0x92f10000, | ||
| 3961 | 0x00098200, | ||
| 3962 | 0x54e815ba, | ||
| 3963 | 0x54f4dd78, | ||
| 3964 | 0x7c11402e, | ||
| 3965 | 0x7c0903a6, | ||
| 3966 | 0x2c080000, | ||
| 3967 | 0x00098200, | ||
| 3968 | 0x41820000, | ||
| 3969 | 0x00050802, | ||
| 3970 | 0x54ea5d78, | ||
| 3971 | 0x54ec9b78, | ||
| 3972 | 0x54eb9d78, | ||
| 3973 | 0x4e800420, | ||
| 3974 | 0x0006000c, | ||
| 3975 | 0x7e947214, | ||
| 3976 | 0x4e800420, | ||
| 3977 | 0x0006000d, | ||
| 3978 | 0x7c8300d0, | ||
| 3979 | 0x7e439378, | ||
| 3980 | 0x48000001, | ||
| 3981 | 0x0003002c, | ||
| 3764 | 0x00000000, | 3982 | 0x00000000, |
| 3765 | 0x00060098, | 3983 | 0x00060098, |
| 3766 | 0x48000000, | 3984 | 0x48000000, |
| @@ -3771,11 +3989,12 @@ static const unsigned int build_actionlist[7267] = { | |||
| 3771 | 0x0006009a, | 3989 | 0x0006009a, |
| 3772 | 0x00000000, | 3990 | 0x00000000, |
| 3773 | 0x48000000, | 3991 | 0x48000000, |
| 3774 | 0x0003002a, | 3992 | 0x0003002d, |
| 3775 | 0x00000000, | 3993 | 0x00000000, |
| 3776 | 0x0006009b, | 3994 | 0x0006009b, |
| 3777 | 0x7c0327d7, | 3995 | 0x7c0327d7, |
| 3778 | 0x4d830020, | 3996 | 0x41830000, |
| 3997 | 0x00050801, | ||
| 3779 | 0x7c652279, | 3998 | 0x7c652279, |
| 3780 | 0x7c0021d6, | 3999 | 0x7c0021d6, |
| 3781 | 0x7c601850, | 4000 | 0x7c601850, |
| @@ -3784,15 +4003,13 @@ static const unsigned int build_actionlist[7267] = { | |||
| 3784 | 0x4d820020, | 4003 | 0x4d820020, |
| 3785 | 0x7c632214, | 4004 | 0x7c632214, |
| 3786 | 0x4e800020, | 4005 | 0x4e800020, |
| 4006 | 0x0006000b, | ||
| 4007 | 0x2c040000, | ||
| 4008 | 0x38600000, | ||
| 4009 | 0x4d820020, | ||
| 4010 | 0x7c000400, | ||
| 4011 | 0x4e800020, | ||
| 3787 | 0x0006009c, | 4012 | 0x0006009c, |
| 3788 | 0x00000000, | ||
| 3789 | 0x7c810808, | ||
| 3790 | 0x00000000, | ||
| 3791 | 0x0006009d, | ||
| 3792 | 0x00000000, | ||
| 3793 | 0x7c810808, | ||
| 3794 | 0x00000000, | ||
| 3795 | 0x0006009e, | ||
| 3796 | 0x28030001, | 4013 | 0x28030001, |
| 3797 | 0x41820000, | 4014 | 0x41820000, |
| 3798 | 0x00050801, | 4015 | 0x00050801, |
| @@ -3853,8 +4070,32 @@ static const unsigned int build_actionlist[7267] = { | |||
| 3853 | 0xfc200a10, | 4070 | 0xfc200a10, |
| 3854 | 0x4e800020, | 4071 | 0x4e800020, |
| 3855 | 0x0006000c, | 4072 | 0x0006000c, |
| 4073 | 0x00000000, | ||
| 4074 | 0x28030009, | ||
| 4075 | 0x41820000, | ||
| 4076 | 0x00050809, | ||
| 4077 | 0x41810000, | ||
| 4078 | 0x00050802, | ||
| 4079 | 0x48000000, | ||
| 4080 | 0x00030020, | ||
| 4081 | 0x0006000c, | ||
| 4082 | 0x2803000b, | ||
| 4083 | 0x41810000, | ||
| 4084 | 0x00050809, | ||
| 4085 | 0xfc011028, | ||
| 4086 | 0x41820000, | ||
| 4087 | 0x00050801, | ||
| 4088 | 0xfc2008ae, | ||
| 4089 | 0x4e800020, | ||
| 4090 | 0x0006000b, | ||
| 4091 | 0xfc20106e, | ||
| 4092 | 0x4e800020, | ||
| 4093 | 0x00060013, | ||
| 3856 | 0x7c810808, | 4094 | 0x7c810808, |
| 3857 | 0x0006009f, | 4095 | 0x00000000, |
| 4096 | 0x7c810808, | ||
| 4097 | 0x00000000, | ||
| 4098 | 0x0006009d, | ||
| 3858 | 0x00000000, | 4099 | 0x00000000, |
| 3859 | 0x81030000, | 4100 | 0x81030000, |
| 3860 | 0x00098200, | 4101 | 0x00098200, |
| @@ -3876,7 +4117,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 3876 | 0x00098200, | 4117 | 0x00098200, |
| 3877 | 0x54841000, | 4118 | 0x54841000, |
| 3878 | 0x000900a1, | 4119 | 0x000900a1, |
| 3879 | 0x41800000, | 4120 | 0x41a00000, |
| 3880 | 0x00050802, | 4121 | 0x00050802, |
| 3881 | 0x39210008, | 4122 | 0x39210008, |
| 3882 | 0x0006000b, | 4123 | 0x0006000b, |
| @@ -3886,7 +4127,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 3886 | 0x40800000, | 4127 | 0x40800000, |
| 3887 | 0x0005080b, | 4128 | 0x0005080b, |
| 3888 | 0x0006000c, | 4129 | 0x0006000c, |
| 3889 | 0x40860000, | 4130 | 0x40a60000, |
| 3890 | 0x00050803, | 4131 | 0x00050803, |
| 3891 | 0xc8230000, | 4132 | 0xc8230000, |
| 3892 | 0x00098200, | 4133 | 0x00098200, |
| @@ -4088,10 +4329,10 @@ static const unsigned int build_actionlist[7267] = { | |||
| 4088 | 0x00098200, | 4329 | 0x00098200, |
| 4089 | 0x00000000, | 4330 | 0x00000000, |
| 4090 | 0x409d0000, | 4331 | 0x409d0000, |
| 4091 | 0x000508a0, | 4332 | 0x0005089e, |
| 4092 | 0x00000000, | 4333 | 0x00000000, |
| 4093 | 0x409d0000, | 4334 | 0x409d0000, |
| 4094 | 0x000508a1, | 4335 | 0x0005089f, |
| 4095 | 0x00000000, | 4336 | 0x00000000, |
| 4096 | 0x7c14706e, | 4337 | 0x7c14706e, |
| 4097 | 0x81300000, | 4338 | 0x81300000, |
| @@ -4262,9 +4503,9 @@ static const unsigned int build_actionlist[7267] = { | |||
| 4262 | 0x3d290000, | 4503 | 0x3d290000, |
| 4263 | 0x00098200, | 4504 | 0x00098200, |
| 4264 | 0x00000000, | 4505 | 0x00000000, |
| 4265 | 0x000600a0, | 4506 | 0x0006009e, |
| 4266 | 0x00000000, | 4507 | 0x00000000, |
| 4267 | 0x000600a1, | 4508 | 0x0006009f, |
| 4268 | 0x00000000, | 4509 | 0x00000000, |
| 4269 | 0x40820000, | 4510 | 0x40820000, |
| 4270 | 0x00050807, | 4511 | 0x00050807, |
| @@ -4273,9 +4514,9 @@ static const unsigned int build_actionlist[7267] = { | |||
| 4273 | 0x7c042800, | 4514 | 0x7c042800, |
| 4274 | 0x0006000e, | 4515 | 0x0006000e, |
| 4275 | 0x00000000, | 4516 | 0x00000000, |
| 4276 | 0x000600a0, | 4517 | 0x0006009e, |
| 4277 | 0x00000000, | 4518 | 0x00000000, |
| 4278 | 0x000600a1, | 4519 | 0x0006009f, |
| 4279 | 0x00000000, | 4520 | 0x00000000, |
| 4280 | 0x7c0ea02e, | 4521 | 0x7c0ea02e, |
| 4281 | 0x3a100004, | 4522 | 0x3a100004, |
| @@ -4486,7 +4727,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 4486 | 0x4e800420, | 4727 | 0x4e800420, |
| 4487 | 0x0006000e, | 4728 | 0x0006000e, |
| 4488 | 0x7c000400, | 4729 | 0x7c000400, |
| 4489 | 0x40810000, | 4730 | 0x40a10000, |
| 4490 | 0x0005080b, | 4731 | 0x0005080b, |
| 4491 | 0x3d0041e0, | 4732 | 0x3d0041e0, |
| 4492 | 0x38000000, | 4733 | 0x38000000, |
| @@ -4616,7 +4857,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 4616 | 0x4e800420, | 4857 | 0x4e800420, |
| 4617 | 0x0006000e, | 4858 | 0x0006000e, |
| 4618 | 0x7c000400, | 4859 | 0x7c000400, |
| 4619 | 0x40810000, | 4860 | 0x40a10000, |
| 4620 | 0x0005080b, | 4861 | 0x0005080b, |
| 4621 | 0x00000000, | 4862 | 0x00000000, |
| 4622 | 0x48000000, | 4863 | 0x48000000, |
| @@ -4753,7 +4994,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 4753 | 0x4e800420, | 4994 | 0x4e800420, |
| 4754 | 0x0006000e, | 4995 | 0x0006000e, |
| 4755 | 0x7c000400, | 4996 | 0x7c000400, |
| 4756 | 0x40810000, | 4997 | 0x40a10000, |
| 4757 | 0x0005080b, | 4998 | 0x0005080b, |
| 4758 | 0x00000000, | 4999 | 0x00000000, |
| 4759 | 0x48000000, | 5000 | 0x48000000, |
| @@ -4890,7 +5131,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 4890 | 0x4e800420, | 5131 | 0x4e800420, |
| 4891 | 0x0006000e, | 5132 | 0x0006000e, |
| 4892 | 0x7c000400, | 5133 | 0x7c000400, |
| 4893 | 0x40810000, | 5134 | 0x40a10000, |
| 4894 | 0x0005080b, | 5135 | 0x0005080b, |
| 4895 | 0x00000000, | 5136 | 0x00000000, |
| 4896 | 0x48000000, | 5137 | 0x48000000, |
| @@ -5085,7 +5326,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 5085 | 0x4e800420, | 5326 | 0x4e800420, |
| 5086 | 0x0006000e, | 5327 | 0x0006000e, |
| 5087 | 0x7c000400, | 5328 | 0x7c000400, |
| 5088 | 0x40810000, | 5329 | 0x40a10000, |
| 5089 | 0x0005080b, | 5330 | 0x0005080b, |
| 5090 | 0x00000000, | 5331 | 0x00000000, |
| 5091 | 0x48000000, | 5332 | 0x48000000, |
| @@ -5116,7 +5357,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 5116 | 0x40800000, | 5357 | 0x40800000, |
| 5117 | 0x00050841, | 5358 | 0x00050841, |
| 5118 | 0x00000000, | 5359 | 0x00000000, |
| 5119 | 0x000600a2, | 5360 | 0x000600a0, |
| 5120 | 0xfc2e7824, | 5361 | 0xfc2e7824, |
| 5121 | 0x48000001, | 5362 | 0x48000001, |
| 5122 | 0x00030010, | 5363 | 0x00030010, |
| @@ -5172,7 +5413,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 5172 | 0x40800000, | 5413 | 0x40800000, |
| 5173 | 0x0005083f, | 5414 | 0x0005083f, |
| 5174 | 0x00000000, | 5415 | 0x00000000, |
| 5175 | 0x000600a2, | 5416 | 0x000600a0, |
| 5176 | 0xfc2e7824, | 5417 | 0xfc2e7824, |
| 5177 | 0x48000001, | 5418 | 0x48000001, |
| 5178 | 0x00030010, | 5419 | 0x00030010, |
| @@ -5233,7 +5474,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 5233 | 0x4e800420, | 5474 | 0x4e800420, |
| 5234 | 0x0006000e, | 5475 | 0x0006000e, |
| 5235 | 0x7c000400, | 5476 | 0x7c000400, |
| 5236 | 0x40810000, | 5477 | 0x40a10000, |
| 5237 | 0x0005080b, | 5478 | 0x0005080b, |
| 5238 | 0x00000000, | 5479 | 0x00000000, |
| 5239 | 0x48000000, | 5480 | 0x48000000, |
| @@ -5265,7 +5506,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 5265 | 0x00050841, | 5506 | 0x00050841, |
| 5266 | 0x00000000, | 5507 | 0x00000000, |
| 5267 | 0x48000000, | 5508 | 0x48000000, |
| 5268 | 0x000500a2, | 5509 | 0x000500a0, |
| 5269 | 0x00000000, | 5510 | 0x00000000, |
| 5270 | 0x7d0e502e, | 5511 | 0x7d0e502e, |
| 5271 | 0x00000000, | 5512 | 0x00000000, |
| @@ -5312,7 +5553,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 5312 | 0x0005083f, | 5553 | 0x0005083f, |
| 5313 | 0x00000000, | 5554 | 0x00000000, |
| 5314 | 0x48000000, | 5555 | 0x48000000, |
| 5315 | 0x000500a2, | 5556 | 0x000500a0, |
| 5316 | 0x00000000, | 5557 | 0x00000000, |
| 5317 | 0x7d0e502e, | 5558 | 0x7d0e502e, |
| 5318 | 0x7c2e54ae, | 5559 | 0x7c2e54ae, |
| @@ -5348,7 +5589,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 5348 | 0x54a500fe, | 5589 | 0x54a500fe, |
| 5349 | 0x000900ab, | 5590 | 0x000900ab, |
| 5350 | 0x48000001, | 5591 | 0x48000001, |
| 5351 | 0x0003002b, | 5592 | 0x0003002e, |
| 5352 | 0x28030000, | 5593 | 0x28030000, |
| 5353 | 0x81d20000, | 5594 | 0x81d20000, |
| 5354 | 0x00098200, | 5595 | 0x00098200, |
| @@ -5566,7 +5807,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 5566 | 0x41820000, | 5807 | 0x41820000, |
| 5567 | 0x0005080b, | 5808 | 0x0005080b, |
| 5568 | 0x48000001, | 5809 | 0x48000001, |
| 5569 | 0x0003002c, | 5810 | 0x0003002f, |
| 5570 | 0x48000000, | 5811 | 0x48000000, |
| 5571 | 0x0005000b, | 5812 | 0x0005000b, |
| 5572 | 0x00000000, | 5813 | 0x00000000, |
| @@ -5617,7 +5858,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 5617 | 0x41820000, | 5858 | 0x41820000, |
| 5618 | 0x0005080b, | 5859 | 0x0005080b, |
| 5619 | 0x48000001, | 5860 | 0x48000001, |
| 5620 | 0x0003002c, | 5861 | 0x0003002f, |
| 5621 | 0x48000000, | 5862 | 0x48000000, |
| 5622 | 0x0005000b, | 5863 | 0x0005000b, |
| 5623 | 0x00000000, | 5864 | 0x00000000, |
| @@ -5680,7 +5921,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 5680 | 0x00050801, | 5921 | 0x00050801, |
| 5681 | 0x7c8ea214, | 5922 | 0x7c8ea214, |
| 5682 | 0x48000001, | 5923 | 0x48000001, |
| 5683 | 0x0003002d, | 5924 | 0x00030030, |
| 5684 | 0x81d20000, | 5925 | 0x81d20000, |
| 5685 | 0x00098200, | 5926 | 0x00098200, |
| 5686 | 0x0006000b, | 5927 | 0x0006000b, |
| @@ -5705,7 +5946,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 5705 | 0x7e439378, | 5946 | 0x7e439378, |
| 5706 | 0x80aefffc, | 5947 | 0x80aefffc, |
| 5707 | 0x48000001, | 5948 | 0x48000001, |
| 5708 | 0x0003002e, | 5949 | 0x00030031, |
| 5709 | 0x81d20000, | 5950 | 0x81d20000, |
| 5710 | 0x00098200, | 5951 | 0x00098200, |
| 5711 | 0x38000000, | 5952 | 0x38000000, |
| @@ -5743,14 +5984,14 @@ static const unsigned int build_actionlist[7267] = { | |||
| 5743 | 0x00050803, | 5984 | 0x00050803, |
| 5744 | 0x0006000c, | 5985 | 0x0006000c, |
| 5745 | 0x48000001, | 5986 | 0x48000001, |
| 5746 | 0x0003002f, | 5987 | 0x00030032, |
| 5747 | 0x00000000, | 5988 | 0x00000000, |
| 5748 | 0x5588007e, | 5989 | 0x5588007e, |
| 5749 | 0x000900ab, | 5990 | 0x000900ab, |
| 5750 | 0x2108fffc, | 5991 | 0x2108fffc, |
| 5751 | 0x7c8f402e, | 5992 | 0x7c8f402e, |
| 5752 | 0x48000001, | 5993 | 0x48000001, |
| 5753 | 0x00030030, | 5994 | 0x00030033, |
| 5754 | 0x00000000, | 5995 | 0x00000000, |
| 5755 | 0x81d20000, | 5996 | 0x81d20000, |
| 5756 | 0x00098200, | 5997 | 0x00098200, |
| @@ -5777,7 +6018,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 5777 | 0x0006000f, | 6018 | 0x0006000f, |
| 5778 | 0x7d956378, | 6019 | 0x7d956378, |
| 5779 | 0x48000001, | 6020 | 0x48000001, |
| 5780 | 0x00030031, | 6021 | 0x00030034, |
| 5781 | 0x7eacab78, | 6022 | 0x7eacab78, |
| 5782 | 0x7e439378, | 6023 | 0x7e439378, |
| 5783 | 0x48000000, | 6024 | 0x48000000, |
| @@ -5792,10 +6033,10 @@ static const unsigned int build_actionlist[7267] = { | |||
| 5792 | 0x7d6f402e, | 6033 | 0x7d6f402e, |
| 5793 | 0x00000000, | 6034 | 0x00000000, |
| 5794 | 0x48000000, | 6035 | 0x48000000, |
| 5795 | 0x000500a3, | 6036 | 0x000500a1, |
| 5796 | 0x00000000, | 6037 | 0x00000000, |
| 5797 | 0x48000000, | 6038 | 0x48000000, |
| 5798 | 0x000500a4, | 6039 | 0x000500a2, |
| 5799 | 0x00000000, | 6040 | 0x00000000, |
| 5800 | 0x7c6a706e, | 6041 | 0x7c6a706e, |
| 5801 | 0x7c8b706e, | 6042 | 0x7c8b706e, |
| @@ -5881,7 +6122,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 5881 | 0x816b0004, | 6122 | 0x816b0004, |
| 5882 | 0x00000000, | 6123 | 0x00000000, |
| 5883 | 0x48000000, | 6124 | 0x48000000, |
| 5884 | 0x000500a3, | 6125 | 0x000500a1, |
| 5885 | 0x00000000, | 6126 | 0x00000000, |
| 5886 | 0x7c6a706e, | 6127 | 0x7c6a706e, |
| 5887 | 0x5568007e, | 6128 | 0x5568007e, |
| @@ -5893,7 +6134,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 5893 | 0x7d6f402e, | 6134 | 0x7d6f402e, |
| 5894 | 0x40820000, | 6135 | 0x40820000, |
| 5895 | 0x0005082c, | 6136 | 0x0005082c, |
| 5896 | 0x000600a3, | 6137 | 0x000600a1, |
| 5897 | 0x800a0000, | 6138 | 0x800a0000, |
| 5898 | 0x00098200, | 6139 | 0x00098200, |
| 5899 | 0x810b0000, | 6140 | 0x810b0000, |
| @@ -6103,7 +6344,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 6103 | 0x816b0004, | 6344 | 0x816b0004, |
| 6104 | 0x00000000, | 6345 | 0x00000000, |
| 6105 | 0x48000000, | 6346 | 0x48000000, |
| 6106 | 0x000500a4, | 6347 | 0x000500a2, |
| 6107 | 0x00060011, | 6348 | 0x00060011, |
| 6108 | 0x80110000, | 6349 | 0x80110000, |
| 6109 | 0x00098200, | 6350 | 0x00098200, |
| @@ -6153,7 +6394,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 6153 | 0x7d6f402e, | 6394 | 0x7d6f402e, |
| 6154 | 0x40820000, | 6395 | 0x40820000, |
| 6155 | 0x00050830, | 6396 | 0x00050830, |
| 6156 | 0x000600a4, | 6397 | 0x000600a2, |
| 6157 | 0x800a0000, | 6398 | 0x800a0000, |
| 6158 | 0x00098200, | 6399 | 0x00098200, |
| 6159 | 0x810b0000, | 6400 | 0x810b0000, |
| @@ -6256,7 +6497,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 6256 | 0x7d445378, | 6497 | 0x7d445378, |
| 6257 | 0x90050000, | 6498 | 0x90050000, |
| 6258 | 0x48000001, | 6499 | 0x48000001, |
| 6259 | 0x00030032, | 6500 | 0x00030035, |
| 6260 | 0x81d20000, | 6501 | 0x81d20000, |
| 6261 | 0x00098200, | 6502 | 0x00098200, |
| 6262 | 0xd9c30000, | 6503 | 0xd9c30000, |
| @@ -6397,7 +6638,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 6397 | 0x92010020, | 6638 | 0x92010020, |
| 6398 | 0x7d956378, | 6639 | 0x7d956378, |
| 6399 | 0x48000001, | 6640 | 0x48000001, |
| 6400 | 0x00030033, | 6641 | 0x00030036, |
| 6401 | 0x7eacab78, | 6642 | 0x7eacab78, |
| 6402 | 0x48000000, | 6643 | 0x48000000, |
| 6403 | 0x0005000b, | 6644 | 0x0005000b, |
| @@ -6604,7 +6845,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 6604 | 0x7c0b4040, | 6845 | 0x7c0b4040, |
| 6605 | 0x55662800, | 6846 | 0x55662800, |
| 6606 | 0x000900a1, | 6847 | 0x000900a1, |
| 6607 | 0x41810000, | 6848 | 0x41a10000, |
| 6608 | 0x0005080d, | 6849 | 0x0005080d, |
| 6609 | 0x556a1800, | 6850 | 0x556a1800, |
| 6610 | 0x000900a1, | 6851 | 0x000900a1, |
| @@ -6732,7 +6973,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 6732 | 0x80120000, | 6973 | 0x80120000, |
| 6733 | 0x00098200, | 6974 | 0x00098200, |
| 6734 | 0x3a600008, | 6975 | 0x3a600008, |
| 6735 | 0x40810000, | 6976 | 0x40a10000, |
| 6736 | 0x0005080d, | 6977 | 0x0005080d, |
| 6737 | 0x7d344214, | 6978 | 0x7d344214, |
| 6738 | 0x7c090040, | 6979 | 0x7c090040, |
| @@ -6782,7 +7023,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 6782 | 0x6a080000, | 7023 | 0x6a080000, |
| 6783 | 0x00090200, | 7024 | 0x00090200, |
| 6784 | 0x40820000, | 7025 | 0x40820000, |
| 6785 | 0x000508a5, | 7026 | 0x000508a3, |
| 6786 | 0x00060017, | 7027 | 0x00060017, |
| 6787 | 0x80f0fffc, | 7028 | 0x80f0fffc, |
| 6788 | 0x2c0c0008, | 7029 | 0x2c0c0008, |
| @@ -6833,7 +7074,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 6833 | 0x7ee9412e, | 7074 | 0x7ee9412e, |
| 6834 | 0x48000000, | 7075 | 0x48000000, |
| 6835 | 0x0005000f, | 7076 | 0x0005000f, |
| 6836 | 0x000600a5, | 7077 | 0x000600a3, |
| 6837 | 0x71090000, | 7078 | 0x71090000, |
| 6838 | 0x00090200, | 7079 | 0x00090200, |
| 6839 | 0x40820000, | 7080 | 0x40820000, |
| @@ -6850,8 +7091,8 @@ static const unsigned int build_actionlist[7267] = { | |||
| 6850 | 0x00090200, | 7091 | 0x00090200, |
| 6851 | 0x6a080000, | 7092 | 0x6a080000, |
| 6852 | 0x00090200, | 7093 | 0x00090200, |
| 6853 | 0x40820000, | 7094 | 0x40a20000, |
| 6854 | 0x000508a5, | 7095 | 0x000508a3, |
| 6855 | 0x80f0fffc, | 7096 | 0x80f0fffc, |
| 6856 | 0x392efff8, | 7097 | 0x392efff8, |
| 6857 | 0x54ea5d78, | 7098 | 0x54ea5d78, |
| @@ -6887,7 +7128,15 @@ static const unsigned int build_actionlist[7267] = { | |||
| 6887 | 0x48000000, | 7128 | 0x48000000, |
| 6888 | 0x0005000f, | 7129 | 0x0005000f, |
| 6889 | 0x00000000, | 7130 | 0x00000000, |
| 6890 | 0x7c810808, | 7131 | 0x5608fe7c, |
| 7132 | 0x39080000, | ||
| 7133 | 0x00098200, | ||
| 7134 | 0x7d31422e, | ||
| 7135 | 0x35290000, | ||
| 7136 | 0x00098200, | ||
| 7137 | 0x7d31432e, | ||
| 7138 | 0x41800000, | ||
| 7139 | 0x00050893, | ||
| 6891 | 0x00000000, | 7140 | 0x00000000, |
| 6892 | 0x7d14706e, | 7141 | 0x7d14706e, |
| 6893 | 0x80740000, | 7142 | 0x80740000, |
| @@ -6973,7 +7222,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 6973 | 0x00000000, | 7222 | 0x00000000, |
| 6974 | 0x00060010, | 7223 | 0x00060010, |
| 6975 | 0x7c000400, | 7224 | 0x7c000400, |
| 6976 | 0x40810000, | 7225 | 0x40a10000, |
| 6977 | 0x0005080e, | 7226 | 0x0005080e, |
| 6978 | 0x48000000, | 7227 | 0x48000000, |
| 6979 | 0x0005000c, | 7228 | 0x0005000c, |
| @@ -7037,7 +7286,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 7037 | 0x41810000, | 7286 | 0x41810000, |
| 7038 | 0x00050803, | 7287 | 0x00050803, |
| 7039 | 0x00000000, | 7288 | 0x00000000, |
| 7040 | 0x41810000, | 7289 | 0x41a10000, |
| 7041 | 0x0005080c, | 7290 | 0x0005080c, |
| 7042 | 0x00000000, | 7291 | 0x00000000, |
| 7043 | 0x41810000, | 7292 | 0x41810000, |
| @@ -7073,7 +7322,7 @@ static const unsigned int build_actionlist[7267] = { | |||
| 7073 | 0x3e0c0000, | 7322 | 0x3e0c0000, |
| 7074 | 0x00098200, | 7323 | 0x00098200, |
| 7075 | 0x00000000, | 7324 | 0x00000000, |
| 7076 | 0x40800000, | 7325 | 0x40a00000, |
| 7077 | 0x0005080b, | 7326 | 0x0005080b, |
| 7078 | 0x00000000, | 7327 | 0x00000000, |
| 7079 | 0x40800000, | 7328 | 0x40800000, |
| @@ -7082,7 +7331,15 @@ static const unsigned int build_actionlist[7267] = { | |||
| 7082 | 0x48000000, | 7331 | 0x48000000, |
| 7083 | 0x0005000c, | 7332 | 0x0005000c, |
| 7084 | 0x00000000, | 7333 | 0x00000000, |
| 7085 | 0x7c810808, | 7334 | 0x5608fe7c, |
| 7335 | 0x39080000, | ||
| 7336 | 0x00098200, | ||
| 7337 | 0x7d31422e, | ||
| 7338 | 0x35290000, | ||
| 7339 | 0x00098200, | ||
| 7340 | 0x7d31432e, | ||
| 7341 | 0x41800000, | ||
| 7342 | 0x00050893, | ||
| 7086 | 0x00000000, | 7343 | 0x00000000, |
| 7087 | 0x7d14706e, | 7344 | 0x7d14706e, |
| 7088 | 0x81340004, | 7345 | 0x81340004, |
| @@ -7091,7 +7348,10 @@ static const unsigned int build_actionlist[7267] = { | |||
| 7091 | 0x41820000, | 7348 | 0x41820000, |
| 7092 | 0x00050801, | 7349 | 0x00050801, |
| 7093 | 0x00000000, | 7350 | 0x00000000, |
| 7094 | 0x7c810808, | 7351 | 0x9114fff8, |
| 7352 | 0x9134fffc, | ||
| 7353 | 0x48000000, | ||
| 7354 | 0x00070000, | ||
| 7095 | 0x00000000, | 7355 | 0x00000000, |
| 7096 | 0x5580007e, | 7356 | 0x5580007e, |
| 7097 | 0x000900ab, | 7357 | 0x000900ab, |
| @@ -7113,7 +7373,15 @@ static const unsigned int build_actionlist[7267] = { | |||
| 7113 | 0x54eb9d78, | 7373 | 0x54eb9d78, |
| 7114 | 0x4e800420, | 7374 | 0x4e800420, |
| 7115 | 0x00000000, | 7375 | 0x00000000, |
| 7116 | 0x7c810808, | 7376 | 0x5608fe7c, |
| 7377 | 0x39080000, | ||
| 7378 | 0x00098200, | ||
| 7379 | 0x7d31422e, | ||
| 7380 | 0x35290000, | ||
| 7381 | 0x00098200, | ||
| 7382 | 0x7d31432e, | ||
| 7383 | 0x41800000, | ||
| 7384 | 0x00050893, | ||
| 7117 | 0x00000000, | 7385 | 0x00000000, |
| 7118 | 0x80f00000, | 7386 | 0x80f00000, |
| 7119 | 0x3a100004, | 7387 | 0x3a100004, |
| @@ -7126,7 +7394,22 @@ static const unsigned int build_actionlist[7267] = { | |||
| 7126 | 0x54eb9d78, | 7394 | 0x54eb9d78, |
| 7127 | 0x4e800420, | 7395 | 0x4e800420, |
| 7128 | 0x00000000, | 7396 | 0x00000000, |
| 7129 | 0x7c810808, | 7397 | 0x81110000, |
| 7398 | 0x00098200, | ||
| 7399 | 0x558c007e, | ||
| 7400 | 0x000900ab, | ||
| 7401 | 0x7d28602e, | ||
| 7402 | 0x7c000400, | ||
| 7403 | 0x81290000, | ||
| 7404 | 0x00098200, | ||
| 7405 | 0x91d10000, | ||
| 7406 | 0x00098200, | ||
| 7407 | 0x7d2903a6, | ||
| 7408 | 0x92510000, | ||
| 7409 | 0x00098200, | ||
| 7410 | 0x3bd10000, | ||
| 7411 | 0x00098200, | ||
| 7412 | 0x4e800420, | ||
| 7130 | 0x00000000, | 7413 | 0x00000000, |
| 7131 | 0x5580007e, | 7414 | 0x5580007e, |
| 7132 | 0x000900ab, | 7415 | 0x000900ab, |
| @@ -7144,7 +7427,15 @@ static const unsigned int build_actionlist[7267] = { | |||
| 7144 | 0x54eb9d78, | 7427 | 0x54eb9d78, |
| 7145 | 0x4e800420, | 7428 | 0x4e800420, |
| 7146 | 0x00000000, | 7429 | 0x00000000, |
| 7147 | 0x7c810808, | 7430 | 0x5608fe7c, |
| 7431 | 0x39080000, | ||
| 7432 | 0x00098200, | ||
| 7433 | 0x7d31422e, | ||
| 7434 | 0x35290000, | ||
| 7435 | 0x00098200, | ||
| 7436 | 0x7d31432e, | ||
| 7437 | 0x41800000, | ||
| 7438 | 0x00050895, | ||
| 7148 | 0x00000000, | 7439 | 0x00000000, |
| 7149 | 0x81320000, | 7440 | 0x81320000, |
| 7150 | 0x00098200, | 7441 | 0x00098200, |
| @@ -7157,14 +7448,18 @@ static const unsigned int build_actionlist[7267] = { | |||
| 7157 | 0x000900a1, | 7448 | 0x000900a1, |
| 7158 | 0x41810000, | 7449 | 0x41810000, |
| 7159 | 0x00050820, | 7450 | 0x00050820, |
| 7451 | 0x00000000, | ||
| 7160 | 0x80f00000, | 7452 | 0x80f00000, |
| 7161 | 0x3a100004, | 7453 | 0x3a100004, |
| 7454 | 0x00000000, | ||
| 7162 | 0x0006000c, | 7455 | 0x0006000c, |
| 7163 | 0x7c0b4040, | 7456 | 0x7c0b4040, |
| 7164 | 0x40810000, | 7457 | 0x40810000, |
| 7165 | 0x00050803, | 7458 | 0x00050803, |
| 7166 | 0x00000000, | 7459 | 0x00000000, |
| 7167 | 0x7c810808, | 7460 | 0x54ec9b78, |
| 7461 | 0x48000000, | ||
| 7462 | 0x00070000, | ||
| 7168 | 0x00000000, | 7463 | 0x00000000, |
| 7169 | 0x54e815ba, | 7464 | 0x54e815ba, |
| 7170 | 0x7c11402e, | 7465 | 0x7c11402e, |
| @@ -7419,8 +7714,6 @@ enum { | |||
| 7419 | GLOB_vm_ceil, | 7714 | GLOB_vm_ceil, |
| 7420 | GLOB_vm_trunc, | 7715 | GLOB_vm_trunc, |
| 7421 | GLOB_vm_modi, | 7716 | GLOB_vm_modi, |
| 7422 | GLOB_vm_powi, | ||
| 7423 | GLOB_vm_foldfpm, | ||
| 7424 | GLOB_vm_foldarith, | 7717 | GLOB_vm_foldarith, |
| 7425 | GLOB_vm_ffi_call, | 7718 | GLOB_vm_ffi_call, |
| 7426 | GLOB_BC_ISEQN_Z, | 7719 | GLOB_BC_ISEQN_Z, |
| @@ -7568,8 +7861,6 @@ static const char *const globnames[] = { | |||
| 7568 | "vm_ceil", | 7861 | "vm_ceil", |
| 7569 | "vm_trunc", | 7862 | "vm_trunc", |
| 7570 | "vm_modi", | 7863 | "vm_modi", |
| 7571 | "vm_powi", | ||
| 7572 | "vm_foldfpm", | ||
| 7573 | "vm_foldarith", | 7864 | "vm_foldarith", |
| 7574 | "vm_ffi_call", | 7865 | "vm_ffi_call", |
| 7575 | "BC_ISEQN_Z", | 7866 | "BC_ISEQN_Z", |
| @@ -7622,7 +7913,10 @@ static const char *const extnames[] = { | |||
| 7622 | "lj_tab_len", | 7913 | "lj_tab_len", |
| 7623 | "lj_gc_step", | 7914 | "lj_gc_step", |
| 7624 | "lj_dispatch_ins", | 7915 | "lj_dispatch_ins", |
| 7916 | "lj_trace_hot", | ||
| 7625 | "lj_dispatch_call", | 7917 | "lj_dispatch_call", |
| 7918 | "lj_trace_exit", | ||
| 7919 | "lj_err_throw", | ||
| 7626 | "trunc", | 7920 | "trunc", |
| 7627 | "lj_meta_cat", | 7921 | "lj_meta_cat", |
| 7628 | "lj_gc_barrieruv", | 7922 | "lj_gc_barrieruv", |
| @@ -8001,46 +8295,46 @@ static void build_subroutines(BuildCtx *ctx) | |||
| 8001 | dasm_put(Dst, 3552, Dt8(->f), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), 31-3, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK); | 8295 | dasm_put(Dst, 3552, Dt8(->f), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), 31-3, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK); |
| 8002 | dasm_put(Dst, 3615, Dt1(->base), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); | 8296 | dasm_put(Dst, 3615, Dt1(->base), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); |
| 8003 | #if LJ_HASJIT | 8297 | #if LJ_HASJIT |
| 8004 | dasm_put(Dst, 3641); | 8298 | dasm_put(Dst, 3641, DISPATCH_GL(hookmask), HOOK_VMEVENT, DISPATCH_GL(hookcount), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); |
| 8005 | #endif | ||
| 8006 | dasm_put(Dst, 3643, DISPATCH_GL(hookmask), HOOK_ACTIVE, GG_DISP2STATIC, DISPATCH_GL(hookmask), DISPATCH_GL(hookcount), HOOK_ACTIVE, 31-LUA_HOOKLINE, DISPATCH_GL(hookcount), Dt1(->base), Dt1(->base)); | ||
| 8007 | dasm_put(Dst, 3690, GG_DISP2STATIC); | ||
| 8008 | #if LJ_HASJIT | ||
| 8009 | dasm_put(Dst, 3708); | ||
| 8010 | #endif | 8299 | #endif |
| 8011 | dasm_put(Dst, 3710); | 8300 | dasm_put(Dst, 3663, DISPATCH_GL(hookmask), HOOK_ACTIVE, GG_DISP2STATIC, DISPATCH_GL(hookmask), DISPATCH_GL(hookcount), HOOK_ACTIVE, 31-LUA_HOOKLINE, DISPATCH_GL(hookcount), Dt1(->base), Dt1(->base)); |
| 8301 | dasm_put(Dst, 3710, GG_DISP2STATIC); | ||
| 8012 | #if LJ_HASJIT | 8302 | #if LJ_HASJIT |
| 8013 | dasm_put(Dst, 3713); | 8303 | dasm_put(Dst, 3728, GG_DISP2J, Dt7(->pc), DISPATCH_J(L), PC2PROTO(framesize), Dt1(->base), 31-3, Dt1(->top)); |
| 8014 | #endif | 8304 | #endif |
| 8015 | dasm_put(Dst, 3716); | 8305 | dasm_put(Dst, 3751); |
| 8016 | #if LJ_HASJIT | 8306 | #if LJ_HASJIT |
| 8017 | dasm_put(Dst, 3718); | 8307 | dasm_put(Dst, 3754); |
| 8018 | #endif | 8308 | #endif |
| 8019 | dasm_put(Dst, 3721, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); | 8309 | dasm_put(Dst, 3757); |
| 8020 | #if LJ_HASJIT | 8310 | #if LJ_HASJIT |
| 8021 | dasm_put(Dst, 3743); | 8311 | dasm_put(Dst, 3759); |
| 8022 | #endif | 8312 | #endif |
| 8023 | dasm_put(Dst, 3745); | 8313 | dasm_put(Dst, 3762, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); |
| 8024 | #if LJ_HASJIT | 8314 | #if LJ_HASJIT |
| 8025 | dasm_put(Dst, 3747); | 8315 | dasm_put(Dst, 3784, -(16+32*8+32*4), 16+32*8+2*4, -GG_DISP2G-32768, ~LJ_VMST_EXIT, 16+32*8+32*4, DISPATCH_GL(vmstate), 16+0*8, 16+1*8, 16+2*8, 16+3*8, 16+4*8, 16+5*8, 16+6*8, 16+7*8, 16+32*8+32*4, 16+8*8, 16+9*8, 16+10*8, 16+11*8, 16+32*8+1*4, 16+12*8, 16+13*8); |
| 8316 | dasm_put(Dst, 3831, 16+14*8, 16+15*8, 16+16*8, 16+17*8, 16+18*8, 16+19*8, 16+32*8+0*4, 16+20*8, 16+21*8, 16+22*8, 16+23*8, 16+24*8, 16+25*8, 16+26*8, 16+27*8, DISPATCH_GL(jit_L), 16+28*8, 16+29*8, 16+30*8, 16+31*8, DISPATCH_GL(jit_base), 32-2); | ||
| 8317 | dasm_put(Dst, 3880, DISPATCH_J(L), DISPATCH_GL(jit_L), Dt1(->base), GG_DISP2J, DISPATCH_J(exitno), DISPATCH_J(parent), Dt1(->cframe), Dt1(->base)); | ||
| 8026 | #endif | 8318 | #endif |
| 8027 | dasm_put(Dst, 3749); | 8319 | dasm_put(Dst, 3909); |
| 8028 | #if LJ_HASJIT | 8320 | #if LJ_HASJIT |
| 8029 | dasm_put(Dst, 3757); | 8321 | dasm_put(Dst, 3911, -GG_DISP2G-32768, 31-3, Dt7(->pc), DISPATCH_GL(jit_L), PC2PROTO(k), LJ_TISNUM, LJ_TNIL, DISPATCH_GL(vmstate), BC_FUNCF*4); |
| 8030 | #endif | 8322 | #endif |
| 8031 | dasm_put(Dst, 3760); | 8323 | dasm_put(Dst, 3967); |
| 8032 | #if LJ_HASJIT | 8324 | #if LJ_HASJIT |
| 8033 | dasm_put(Dst, 3773); | 8325 | dasm_put(Dst, 3975); |
| 8034 | #endif | 8326 | #endif |
| 8035 | dasm_put(Dst, 3775); | 8327 | dasm_put(Dst, 3978); |
| 8036 | #if LJ_HASJIT | 8328 | #if LJ_HASJIT |
| 8037 | dasm_put(Dst, 3777); | 8329 | dasm_put(Dst, 4058); |
| 8330 | #else | ||
| 8331 | dasm_put(Dst, 4080); | ||
| 8038 | #endif | 8332 | #endif |
| 8039 | dasm_put(Dst, 3779); | 8333 | dasm_put(Dst, 4082); |
| 8040 | #if LJ_HASFFI | 8334 | #if LJ_HASFFI |
| 8041 | #define DtE(_V) (int)(ptrdiff_t)&(((CCallState *)0)_V) | 8335 | #define DtE(_V) (int)(ptrdiff_t)&(((CCallState *)0)_V) |
| 8042 | dasm_put(Dst, 3843, DtE(->spadj), DtE(->nsp), DtE(->nfpr), DtE(->stack), 31-2, DtE(->fpr[0]), DtE(->fpr[1]), DtE(->fpr[2]), DtE(->fpr[3]), DtE(->fpr[4]), DtE(->fpr[5]), DtE(->fpr[6]), DtE(->fpr[7]), DtE(->func), DtE(->gpr[1]), DtE(->gpr[2])); | 8336 | dasm_put(Dst, 4084, DtE(->spadj), DtE(->nsp), DtE(->nfpr), DtE(->stack), 31-2, DtE(->fpr[0]), DtE(->fpr[1]), DtE(->fpr[2]), DtE(->fpr[3]), DtE(->fpr[4]), DtE(->fpr[5]), DtE(->fpr[6]), DtE(->fpr[7]), DtE(->func), DtE(->gpr[1]), DtE(->gpr[2])); |
| 8043 | dasm_put(Dst, 3899, DtE(->gpr[3]), DtE(->gpr[4]), DtE(->gpr[5]), DtE(->gpr[6]), DtE(->gpr[7]), DtE(->gpr[0]), DtE(->gpr[0]), DtE(->fpr[0]), DtE(->gpr[1]), DtE(->gpr[2]), DtE(->gpr[3])); | 8337 | dasm_put(Dst, 4140, DtE(->gpr[3]), DtE(->gpr[4]), DtE(->gpr[5]), DtE(->gpr[6]), DtE(->gpr[7]), DtE(->gpr[0]), DtE(->gpr[0]), DtE(->fpr[0]), DtE(->gpr[1]), DtE(->gpr[2]), DtE(->gpr[3])); |
| 8044 | #endif | 8338 | #endif |
| 8045 | } | 8339 | } |
| 8046 | 8340 | ||
| @@ -8048,7 +8342,7 @@ static void build_subroutines(BuildCtx *ctx) | |||
| 8048 | static void build_ins(BuildCtx *ctx, BCOp op, int defop) | 8342 | static void build_ins(BuildCtx *ctx, BCOp op, int defop) |
| 8049 | { | 8343 | { |
| 8050 | int vk = 0; | 8344 | int vk = 0; |
| 8051 | dasm_put(Dst, 3930, defop); | 8345 | dasm_put(Dst, 4171, defop); |
| 8052 | 8346 | ||
| 8053 | switch (op) { | 8347 | switch (op) { |
| 8054 | 8348 | ||
| @@ -8058,224 +8352,224 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
| 8058 | 8352 | ||
| 8059 | case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: | 8353 | case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: |
| 8060 | if (LJ_DUALNUM) { | 8354 | if (LJ_DUALNUM) { |
| 8061 | dasm_put(Dst, 3932, -(BCBIAS_J*4 >> 16)); | 8355 | dasm_put(Dst, 4173, -(BCBIAS_J*4 >> 16)); |
| 8062 | if (op == BC_ISLT) { | 8356 | if (op == BC_ISLT) { |
| 8063 | dasm_put(Dst, 3949); | 8357 | dasm_put(Dst, 4190); |
| 8064 | } else if (op == BC_ISGE) { | 8358 | } else if (op == BC_ISGE) { |
| 8065 | dasm_put(Dst, 3952); | 8359 | dasm_put(Dst, 4193); |
| 8066 | } else if (op == BC_ISLE) { | 8360 | } else if (op == BC_ISLE) { |
| 8067 | dasm_put(Dst, 3955); | 8361 | dasm_put(Dst, 4196); |
| 8068 | } else { | 8362 | } else { |
| 8069 | dasm_put(Dst, 3958); | 8363 | dasm_put(Dst, 4199); |
| 8070 | } | 8364 | } |
| 8071 | dasm_put(Dst, 3961); | 8365 | dasm_put(Dst, 4202); |
| 8072 | if (op == BC_ISLT) { | 8366 | if (op == BC_ISLT) { |
| 8073 | dasm_put(Dst, 4000); | 8367 | dasm_put(Dst, 4241); |
| 8074 | } else if (op == BC_ISGE) { | 8368 | } else if (op == BC_ISGE) { |
| 8075 | dasm_put(Dst, 4003); | 8369 | dasm_put(Dst, 4244); |
| 8076 | } else if (op == BC_ISLE) { | 8370 | } else if (op == BC_ISLE) { |
| 8077 | dasm_put(Dst, 4006); | 8371 | dasm_put(Dst, 4247); |
| 8078 | } else { | 8372 | } else { |
| 8079 | dasm_put(Dst, 4010); | 8373 | dasm_put(Dst, 4251); |
| 8080 | } | 8374 | } |
| 8081 | dasm_put(Dst, 4014); | 8375 | dasm_put(Dst, 4255); |
| 8082 | } else { | 8376 | } else { |
| 8083 | dasm_put(Dst, 4017, -(BCBIAS_J*4 >> 16)); | 8377 | dasm_put(Dst, 4258, -(BCBIAS_J*4 >> 16)); |
| 8084 | if (op == BC_ISLT) { | 8378 | if (op == BC_ISLT) { |
| 8085 | dasm_put(Dst, 4034); | 8379 | dasm_put(Dst, 4275); |
| 8086 | } else if (op == BC_ISGE) { | 8380 | } else if (op == BC_ISGE) { |
| 8087 | dasm_put(Dst, 4037); | 8381 | dasm_put(Dst, 4278); |
| 8088 | } else if (op == BC_ISLE) { | 8382 | } else if (op == BC_ISLE) { |
| 8089 | dasm_put(Dst, 4040); | 8383 | dasm_put(Dst, 4281); |
| 8090 | } else { | 8384 | } else { |
| 8091 | dasm_put(Dst, 4044); | 8385 | dasm_put(Dst, 4285); |
| 8092 | } | 8386 | } |
| 8093 | dasm_put(Dst, 4048); | 8387 | dasm_put(Dst, 4289); |
| 8094 | } | 8388 | } |
| 8095 | break; | 8389 | break; |
| 8096 | 8390 | ||
| 8097 | case BC_ISEQV: case BC_ISNEV: | 8391 | case BC_ISEQV: case BC_ISNEV: |
| 8098 | vk = op == BC_ISEQV; | 8392 | vk = op == BC_ISEQV; |
| 8099 | if (LJ_DUALNUM) { | 8393 | if (LJ_DUALNUM) { |
| 8100 | dasm_put(Dst, 4061, -(BCBIAS_J*4 >> 16)); | 8394 | dasm_put(Dst, 4302, -(BCBIAS_J*4 >> 16)); |
| 8101 | if (vk) { | 8395 | if (vk) { |
| 8102 | dasm_put(Dst, 4074); | 8396 | dasm_put(Dst, 4315); |
| 8103 | } else { | 8397 | } else { |
| 8104 | dasm_put(Dst, 4077); | 8398 | dasm_put(Dst, 4318); |
| 8105 | } | 8399 | } |
| 8106 | } else { | 8400 | } else { |
| 8107 | dasm_put(Dst, 4080, -(BCBIAS_J*4 >> 16)); | 8401 | dasm_put(Dst, 4321, -(BCBIAS_J*4 >> 16)); |
| 8108 | if (vk) { | 8402 | if (vk) { |
| 8109 | dasm_put(Dst, 4097); | 8403 | dasm_put(Dst, 4338); |
| 8110 | } else { | 8404 | } else { |
| 8111 | dasm_put(Dst, 4101); | 8405 | dasm_put(Dst, 4342); |
| 8112 | } | 8406 | } |
| 8113 | dasm_put(Dst, 4105); | 8407 | dasm_put(Dst, 4346); |
| 8114 | } | 8408 | } |
| 8115 | dasm_put(Dst, 4117); | 8409 | dasm_put(Dst, 4358); |
| 8116 | if (!LJ_DUALNUM) { | 8410 | if (!LJ_DUALNUM) { |
| 8117 | dasm_put(Dst, 4119); | 8411 | dasm_put(Dst, 4360); |
| 8118 | } | 8412 | } |
| 8119 | if (LJ_HASFFI) { | 8413 | if (LJ_HASFFI) { |
| 8120 | dasm_put(Dst, 4122, LJ_TCDATA, LJ_TCDATA); | 8414 | dasm_put(Dst, 4363, LJ_TCDATA, LJ_TCDATA); |
| 8121 | } | 8415 | } |
| 8122 | dasm_put(Dst, 4127, ~LJ_TISPRI); | 8416 | dasm_put(Dst, 4368, ~LJ_TISPRI); |
| 8123 | if (LJ_HASFFI) { | 8417 | if (LJ_HASFFI) { |
| 8124 | dasm_put(Dst, 4132); | 8418 | dasm_put(Dst, 4373); |
| 8125 | } | 8419 | } |
| 8126 | dasm_put(Dst, 4134, ~LJ_TISTABUD); | 8420 | dasm_put(Dst, 4375, ~LJ_TISTABUD); |
| 8127 | if (LJ_HASFFI) { | 8421 | if (LJ_HASFFI) { |
| 8128 | dasm_put(Dst, 4137); | 8422 | dasm_put(Dst, 4378); |
| 8129 | } | 8423 | } |
| 8130 | dasm_put(Dst, 4140); | 8424 | dasm_put(Dst, 4381); |
| 8131 | if (vk) { | 8425 | if (vk) { |
| 8132 | dasm_put(Dst, 4148); | 8426 | dasm_put(Dst, 4389); |
| 8133 | } else { | 8427 | } else { |
| 8134 | dasm_put(Dst, 4153); | 8428 | dasm_put(Dst, 4394); |
| 8135 | } | 8429 | } |
| 8136 | if (LJ_DUALNUM) { | 8430 | if (LJ_DUALNUM) { |
| 8137 | dasm_put(Dst, 4158); | 8431 | dasm_put(Dst, 4399); |
| 8138 | } else { | 8432 | } else { |
| 8139 | dasm_put(Dst, 4173); | 8433 | dasm_put(Dst, 4414); |
| 8140 | } | 8434 | } |
| 8141 | dasm_put(Dst, 4176, Dt6(->metatable), 1-vk, Dt6(->nomm), 1<<MM_eq); | 8435 | dasm_put(Dst, 4417, Dt6(->metatable), 1-vk, Dt6(->nomm), 1<<MM_eq); |
| 8142 | break; | 8436 | break; |
| 8143 | 8437 | ||
| 8144 | case BC_ISEQS: case BC_ISNES: | 8438 | case BC_ISEQS: case BC_ISNES: |
| 8145 | vk = op == BC_ISEQS; | 8439 | vk = op == BC_ISEQS; |
| 8146 | dasm_put(Dst, 4195, 32-1); | 8440 | dasm_put(Dst, 4436, 32-1); |
| 8147 | if (LJ_HASFFI) { | 8441 | if (LJ_HASFFI) { |
| 8148 | dasm_put(Dst, 4203, LJ_TCDATA); | 8442 | dasm_put(Dst, 4444, LJ_TCDATA); |
| 8149 | } | 8443 | } |
| 8150 | dasm_put(Dst, 4206, LJ_TSTR); | 8444 | dasm_put(Dst, 4447, LJ_TSTR); |
| 8151 | if (LJ_HASFFI) { | 8445 | if (LJ_HASFFI) { |
| 8152 | dasm_put(Dst, 4210); | 8446 | dasm_put(Dst, 4451); |
| 8153 | } | 8447 | } |
| 8154 | dasm_put(Dst, 4213, -(BCBIAS_J*4 >> 16)); | 8448 | dasm_put(Dst, 4454, -(BCBIAS_J*4 >> 16)); |
| 8155 | if (vk) { | 8449 | if (vk) { |
| 8156 | dasm_put(Dst, 4221); | 8450 | dasm_put(Dst, 4462); |
| 8157 | } else { | 8451 | } else { |
| 8158 | dasm_put(Dst, 4223); | 8452 | dasm_put(Dst, 4464); |
| 8159 | } | 8453 | } |
| 8160 | dasm_put(Dst, 4225); | 8454 | dasm_put(Dst, 4466); |
| 8161 | break; | 8455 | break; |
| 8162 | 8456 | ||
| 8163 | case BC_ISEQN: case BC_ISNEN: | 8457 | case BC_ISEQN: case BC_ISNEN: |
| 8164 | vk = op == BC_ISEQN; | 8458 | vk = op == BC_ISEQN; |
| 8165 | if (LJ_DUALNUM) { | 8459 | if (LJ_DUALNUM) { |
| 8166 | dasm_put(Dst, 4237, -(BCBIAS_J*4 >> 16)); | 8460 | dasm_put(Dst, 4478, -(BCBIAS_J*4 >> 16)); |
| 8167 | if (vk) { | 8461 | if (vk) { |
| 8168 | dasm_put(Dst, 4249); | 8462 | dasm_put(Dst, 4490); |
| 8169 | } else { | 8463 | } else { |
| 8170 | dasm_put(Dst, 4251); | 8464 | dasm_put(Dst, 4492); |
| 8171 | } | 8465 | } |
| 8172 | dasm_put(Dst, 4253); | 8466 | dasm_put(Dst, 4494); |
| 8173 | } else { | 8467 | } else { |
| 8174 | if (vk) { | 8468 | if (vk) { |
| 8175 | dasm_put(Dst, 4260); | 8469 | dasm_put(Dst, 4501); |
| 8176 | } else { | 8470 | } else { |
| 8177 | dasm_put(Dst, 4262); | 8471 | dasm_put(Dst, 4503); |
| 8178 | } | 8472 | } |
| 8179 | dasm_put(Dst, 4264, -(BCBIAS_J*4 >> 16)); | 8473 | dasm_put(Dst, 4505, -(BCBIAS_J*4 >> 16)); |
| 8180 | } | 8474 | } |
| 8181 | if (vk) { | 8475 | if (vk) { |
| 8182 | dasm_put(Dst, 4277); | 8476 | dasm_put(Dst, 4518); |
| 8183 | if (!LJ_HASFFI) { | 8477 | if (!LJ_HASFFI) { |
| 8184 | dasm_put(Dst, 4282); | 8478 | dasm_put(Dst, 4523); |
| 8185 | } | 8479 | } |
| 8186 | } else { | 8480 | } else { |
| 8187 | dasm_put(Dst, 4284); | 8481 | dasm_put(Dst, 4525); |
| 8188 | if (!LJ_HASFFI) { | 8482 | if (!LJ_HASFFI) { |
| 8189 | dasm_put(Dst, 4288); | 8483 | dasm_put(Dst, 4529); |
| 8190 | } | 8484 | } |
| 8191 | dasm_put(Dst, 4290); | 8485 | dasm_put(Dst, 4531); |
| 8192 | } | 8486 | } |
| 8193 | dasm_put(Dst, 4293); | 8487 | dasm_put(Dst, 4534); |
| 8194 | if (LJ_HASFFI) { | 8488 | if (LJ_HASFFI) { |
| 8195 | dasm_put(Dst, 4304, LJ_TCDATA); | 8489 | dasm_put(Dst, 4545, LJ_TCDATA); |
| 8196 | } | 8490 | } |
| 8197 | if (LJ_DUALNUM) { | 8491 | if (LJ_DUALNUM) { |
| 8198 | dasm_put(Dst, 4312); | 8492 | dasm_put(Dst, 4553); |
| 8199 | } | 8493 | } |
| 8200 | break; | 8494 | break; |
| 8201 | 8495 | ||
| 8202 | case BC_ISEQP: case BC_ISNEP: | 8496 | case BC_ISEQP: case BC_ISNEP: |
| 8203 | vk = op == BC_ISEQP; | 8497 | vk = op == BC_ISEQP; |
| 8204 | dasm_put(Dst, 4336, 32-3); | 8498 | dasm_put(Dst, 4577, 32-3); |
| 8205 | if (LJ_HASFFI) { | 8499 | if (LJ_HASFFI) { |
| 8206 | dasm_put(Dst, 4343, LJ_TCDATA); | 8500 | dasm_put(Dst, 4584, LJ_TCDATA); |
| 8207 | } | 8501 | } |
| 8208 | dasm_put(Dst, 4346); | 8502 | dasm_put(Dst, 4587); |
| 8209 | if (LJ_HASFFI) { | 8503 | if (LJ_HASFFI) { |
| 8210 | dasm_put(Dst, 4348); | 8504 | dasm_put(Dst, 4589); |
| 8211 | } | 8505 | } |
| 8212 | dasm_put(Dst, 4351, -(BCBIAS_J*4 >> 16)); | 8506 | dasm_put(Dst, 4592, -(BCBIAS_J*4 >> 16)); |
| 8213 | if (vk) { | 8507 | if (vk) { |
| 8214 | dasm_put(Dst, 4357); | 8508 | dasm_put(Dst, 4598); |
| 8215 | } else { | 8509 | } else { |
| 8216 | dasm_put(Dst, 4359); | 8510 | dasm_put(Dst, 4600); |
| 8217 | } | 8511 | } |
| 8218 | dasm_put(Dst, 4361); | 8512 | dasm_put(Dst, 4602); |
| 8219 | break; | 8513 | break; |
| 8220 | 8514 | ||
| 8221 | /* -- Unary test and copy ops ------------------------------------------- */ | 8515 | /* -- Unary test and copy ops ------------------------------------------- */ |
| 8222 | 8516 | ||
| 8223 | case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: | 8517 | case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: |
| 8224 | dasm_put(Dst, 4373); | 8518 | dasm_put(Dst, 4614); |
| 8225 | if (op == BC_IST || op == BC_ISF) { | 8519 | if (op == BC_IST || op == BC_ISF) { |
| 8226 | dasm_put(Dst, 4377, LJ_TTRUE, -(BCBIAS_J*4 >> 16)); | 8520 | dasm_put(Dst, 4618, LJ_TTRUE, -(BCBIAS_J*4 >> 16)); |
| 8227 | if (op == BC_IST) { | 8521 | if (op == BC_IST) { |
| 8228 | dasm_put(Dst, 4384); | 8522 | dasm_put(Dst, 4625); |
| 8229 | } else { | 8523 | } else { |
| 8230 | dasm_put(Dst, 4386); | 8524 | dasm_put(Dst, 4627); |
| 8231 | } | 8525 | } |
| 8232 | dasm_put(Dst, 4388); | 8526 | dasm_put(Dst, 4629); |
| 8233 | } else { | 8527 | } else { |
| 8234 | dasm_put(Dst, 4390, LJ_TFALSE); | 8528 | dasm_put(Dst, 4631, LJ_TFALSE); |
| 8235 | if (op == BC_ISTC) { | 8529 | if (op == BC_ISTC) { |
| 8236 | dasm_put(Dst, 4395); | 8530 | dasm_put(Dst, 4636); |
| 8237 | } else { | 8531 | } else { |
| 8238 | dasm_put(Dst, 4398); | 8532 | dasm_put(Dst, 4639); |
| 8239 | } | 8533 | } |
| 8240 | dasm_put(Dst, 4401, -(BCBIAS_J*4 >> 16)); | 8534 | dasm_put(Dst, 4642, -(BCBIAS_J*4 >> 16)); |
| 8241 | } | 8535 | } |
| 8242 | dasm_put(Dst, 4408); | 8536 | dasm_put(Dst, 4649); |
| 8243 | break; | 8537 | break; |
| 8244 | 8538 | ||
| 8245 | /* -- Unary ops --------------------------------------------------------- */ | 8539 | /* -- Unary ops --------------------------------------------------------- */ |
| 8246 | 8540 | ||
| 8247 | case BC_MOV: | 8541 | case BC_MOV: |
| 8248 | dasm_put(Dst, 4419); | 8542 | dasm_put(Dst, 4660); |
| 8249 | break; | 8543 | break; |
| 8250 | case BC_NOT: | 8544 | case BC_NOT: |
| 8251 | dasm_put(Dst, 4432, LJ_TTRUE); | 8545 | dasm_put(Dst, 4673, LJ_TTRUE); |
| 8252 | break; | 8546 | break; |
| 8253 | case BC_UNM: | 8547 | case BC_UNM: |
| 8254 | dasm_put(Dst, 4448); | 8548 | dasm_put(Dst, 4689); |
| 8255 | if (LJ_DUALNUM) { | 8549 | if (LJ_DUALNUM) { |
| 8256 | dasm_put(Dst, 4452); | 8550 | dasm_put(Dst, 4693); |
| 8257 | } | 8551 | } |
| 8258 | dasm_put(Dst, 4480); | 8552 | dasm_put(Dst, 4721); |
| 8259 | if (LJ_DUALNUM) { | 8553 | if (LJ_DUALNUM) { |
| 8260 | dasm_put(Dst, 4490); | 8554 | dasm_put(Dst, 4731); |
| 8261 | } else { | 8555 | } else { |
| 8262 | dasm_put(Dst, 4493); | 8556 | dasm_put(Dst, 4734); |
| 8263 | } | 8557 | } |
| 8264 | break; | 8558 | break; |
| 8265 | case BC_LEN: | 8559 | case BC_LEN: |
| 8266 | dasm_put(Dst, 4502, LJ_TSTR, Dt5(->len)); | 8560 | dasm_put(Dst, 4743, LJ_TSTR, Dt5(->len)); |
| 8267 | if (LJ_DUALNUM) { | 8561 | if (LJ_DUALNUM) { |
| 8268 | dasm_put(Dst, 4512); | 8562 | dasm_put(Dst, 4753); |
| 8269 | } else { | 8563 | } else { |
| 8270 | dasm_put(Dst, 4517); | 8564 | dasm_put(Dst, 4758); |
| 8271 | } | 8565 | } |
| 8272 | dasm_put(Dst, 4524, LJ_TTAB); | 8566 | dasm_put(Dst, 4765, LJ_TTAB); |
| 8273 | #ifdef LUAJIT_ENABLE_LUA52COMPAT | 8567 | #ifdef LUAJIT_ENABLE_LUA52COMPAT |
| 8274 | dasm_put(Dst, 4538, Dt6(->metatable)); | 8568 | dasm_put(Dst, 4779, Dt6(->metatable)); |
| 8275 | #endif | 8569 | #endif |
| 8276 | dasm_put(Dst, 4545); | 8570 | dasm_put(Dst, 4786); |
| 8277 | #ifdef LUAJIT_ENABLE_LUA52COMPAT | 8571 | #ifdef LUAJIT_ENABLE_LUA52COMPAT |
| 8278 | dasm_put(Dst, 4551, Dt6(->nomm), 1<<MM_len); | 8572 | dasm_put(Dst, 4792, Dt6(->nomm), 1<<MM_len); |
| 8279 | #endif | 8573 | #endif |
| 8280 | break; | 8574 | break; |
| 8281 | 8575 | ||
| @@ -8287,77 +8581,77 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
| 8287 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); | 8581 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); |
| 8288 | switch (vk) { | 8582 | switch (vk) { |
| 8289 | case 0: | 8583 | case 0: |
| 8290 | dasm_put(Dst, 4561); | 8584 | dasm_put(Dst, 4802); |
| 8291 | break; | 8585 | break; |
| 8292 | case 1: | 8586 | case 1: |
| 8293 | dasm_put(Dst, 4567); | 8587 | dasm_put(Dst, 4808); |
| 8294 | break; | 8588 | break; |
| 8295 | default: | 8589 | default: |
| 8296 | dasm_put(Dst, 4573); | 8590 | dasm_put(Dst, 4814); |
| 8297 | break; | 8591 | break; |
| 8298 | } | 8592 | } |
| 8299 | dasm_put(Dst, 4579); | 8593 | dasm_put(Dst, 4820); |
| 8300 | switch (vk) { | 8594 | switch (vk) { |
| 8301 | case 0: | 8595 | case 0: |
| 8302 | dasm_put(Dst, 4606); | 8596 | dasm_put(Dst, 4847); |
| 8303 | break; | 8597 | break; |
| 8304 | case 1: | 8598 | case 1: |
| 8305 | dasm_put(Dst, 4609); | 8599 | dasm_put(Dst, 4850); |
| 8306 | break; | 8600 | break; |
| 8307 | default: | 8601 | default: |
| 8308 | dasm_put(Dst, 4612); | 8602 | dasm_put(Dst, 4853); |
| 8309 | break; | 8603 | break; |
| 8310 | } | 8604 | } |
| 8311 | dasm_put(Dst, 4615); | 8605 | dasm_put(Dst, 4856); |
| 8312 | if (vk == 1) { | 8606 | if (vk == 1) { |
| 8313 | dasm_put(Dst, 4617); | 8607 | dasm_put(Dst, 4858); |
| 8314 | } else { | 8608 | } else { |
| 8315 | dasm_put(Dst, 4621); | 8609 | dasm_put(Dst, 4862); |
| 8316 | } | 8610 | } |
| 8317 | switch (vk) { | 8611 | switch (vk) { |
| 8318 | case 0: | 8612 | case 0: |
| 8319 | dasm_put(Dst, 4625); | 8613 | dasm_put(Dst, 4866); |
| 8320 | break; | 8614 | break; |
| 8321 | case 1: | 8615 | case 1: |
| 8322 | dasm_put(Dst, 4628); | 8616 | dasm_put(Dst, 4869); |
| 8323 | break; | 8617 | break; |
| 8324 | default: | 8618 | default: |
| 8325 | dasm_put(Dst, 4631); | 8619 | dasm_put(Dst, 4872); |
| 8326 | break; | 8620 | break; |
| 8327 | } | 8621 | } |
| 8328 | dasm_put(Dst, 4634); | 8622 | dasm_put(Dst, 4875); |
| 8329 | } else { | 8623 | } else { |
| 8330 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); | 8624 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); |
| 8331 | switch (vk) { | 8625 | switch (vk) { |
| 8332 | case 0: | 8626 | case 0: |
| 8333 | dasm_put(Dst, 4641); | 8627 | dasm_put(Dst, 4882); |
| 8334 | if (LJ_DUALNUM) { | 8628 | if (LJ_DUALNUM) { |
| 8335 | dasm_put(Dst, 4643); | 8629 | dasm_put(Dst, 4884); |
| 8336 | } | 8630 | } |
| 8337 | dasm_put(Dst, 4645); | 8631 | dasm_put(Dst, 4886); |
| 8338 | if (LJ_DUALNUM) { | 8632 | if (LJ_DUALNUM) { |
| 8339 | dasm_put(Dst, 4648); | 8633 | dasm_put(Dst, 4889); |
| 8340 | } else { | 8634 | } else { |
| 8341 | dasm_put(Dst, 4654); | 8635 | dasm_put(Dst, 4895); |
| 8342 | } | 8636 | } |
| 8343 | break; | 8637 | break; |
| 8344 | case 1: | 8638 | case 1: |
| 8345 | dasm_put(Dst, 4658); | 8639 | dasm_put(Dst, 4899); |
| 8346 | if (LJ_DUALNUM) { | 8640 | if (LJ_DUALNUM) { |
| 8347 | dasm_put(Dst, 4660); | 8641 | dasm_put(Dst, 4901); |
| 8348 | } | 8642 | } |
| 8349 | dasm_put(Dst, 4662); | 8643 | dasm_put(Dst, 4903); |
| 8350 | if (LJ_DUALNUM) { | 8644 | if (LJ_DUALNUM) { |
| 8351 | dasm_put(Dst, 4665); | 8645 | dasm_put(Dst, 4906); |
| 8352 | } else { | 8646 | } else { |
| 8353 | dasm_put(Dst, 4671); | 8647 | dasm_put(Dst, 4912); |
| 8354 | } | 8648 | } |
| 8355 | break; | 8649 | break; |
| 8356 | default: | 8650 | default: |
| 8357 | dasm_put(Dst, 4675); | 8651 | dasm_put(Dst, 4916); |
| 8358 | break; | 8652 | break; |
| 8359 | } | 8653 | } |
| 8360 | dasm_put(Dst, 4685); | 8654 | dasm_put(Dst, 4926); |
| 8361 | } | 8655 | } |
| 8362 | break; | 8656 | break; |
| 8363 | case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: | 8657 | case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: |
| @@ -8365,77 +8659,77 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
| 8365 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); | 8659 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); |
| 8366 | switch (vk) { | 8660 | switch (vk) { |
| 8367 | case 0: | 8661 | case 0: |
| 8368 | dasm_put(Dst, 4698); | 8662 | dasm_put(Dst, 4939); |
| 8369 | break; | 8663 | break; |
| 8370 | case 1: | 8664 | case 1: |
| 8371 | dasm_put(Dst, 4704); | 8665 | dasm_put(Dst, 4945); |
| 8372 | break; | 8666 | break; |
| 8373 | default: | 8667 | default: |
| 8374 | dasm_put(Dst, 4710); | 8668 | dasm_put(Dst, 4951); |
| 8375 | break; | 8669 | break; |
| 8376 | } | 8670 | } |
| 8377 | dasm_put(Dst, 4716); | 8671 | dasm_put(Dst, 4957); |
| 8378 | switch (vk) { | 8672 | switch (vk) { |
| 8379 | case 0: | 8673 | case 0: |
| 8380 | dasm_put(Dst, 4743); | 8674 | dasm_put(Dst, 4984); |
| 8381 | break; | 8675 | break; |
| 8382 | case 1: | 8676 | case 1: |
| 8383 | dasm_put(Dst, 4746); | 8677 | dasm_put(Dst, 4987); |
| 8384 | break; | 8678 | break; |
| 8385 | default: | 8679 | default: |
| 8386 | dasm_put(Dst, 4749); | 8680 | dasm_put(Dst, 4990); |
| 8387 | break; | 8681 | break; |
| 8388 | } | 8682 | } |
| 8389 | dasm_put(Dst, 4752); | 8683 | dasm_put(Dst, 4993); |
| 8390 | if (vk == 1) { | 8684 | if (vk == 1) { |
| 8391 | dasm_put(Dst, 4754); | 8685 | dasm_put(Dst, 4995); |
| 8392 | } else { | 8686 | } else { |
| 8393 | dasm_put(Dst, 4758); | 8687 | dasm_put(Dst, 4999); |
| 8394 | } | 8688 | } |
| 8395 | switch (vk) { | 8689 | switch (vk) { |
| 8396 | case 0: | 8690 | case 0: |
| 8397 | dasm_put(Dst, 4762); | 8691 | dasm_put(Dst, 5003); |
| 8398 | break; | 8692 | break; |
| 8399 | case 1: | 8693 | case 1: |
| 8400 | dasm_put(Dst, 4765); | 8694 | dasm_put(Dst, 5006); |
| 8401 | break; | 8695 | break; |
| 8402 | default: | 8696 | default: |
| 8403 | dasm_put(Dst, 4768); | 8697 | dasm_put(Dst, 5009); |
| 8404 | break; | 8698 | break; |
| 8405 | } | 8699 | } |
| 8406 | dasm_put(Dst, 4771); | 8700 | dasm_put(Dst, 5012); |
| 8407 | } else { | 8701 | } else { |
| 8408 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); | 8702 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); |
| 8409 | switch (vk) { | 8703 | switch (vk) { |
| 8410 | case 0: | 8704 | case 0: |
| 8411 | dasm_put(Dst, 4778); | 8705 | dasm_put(Dst, 5019); |
| 8412 | if (LJ_DUALNUM) { | 8706 | if (LJ_DUALNUM) { |
| 8413 | dasm_put(Dst, 4780); | 8707 | dasm_put(Dst, 5021); |
| 8414 | } | 8708 | } |
| 8415 | dasm_put(Dst, 4782); | 8709 | dasm_put(Dst, 5023); |
| 8416 | if (LJ_DUALNUM) { | 8710 | if (LJ_DUALNUM) { |
| 8417 | dasm_put(Dst, 4785); | 8711 | dasm_put(Dst, 5026); |
| 8418 | } else { | 8712 | } else { |
| 8419 | dasm_put(Dst, 4791); | 8713 | dasm_put(Dst, 5032); |
| 8420 | } | 8714 | } |
| 8421 | break; | 8715 | break; |
| 8422 | case 1: | 8716 | case 1: |
| 8423 | dasm_put(Dst, 4795); | 8717 | dasm_put(Dst, 5036); |
| 8424 | if (LJ_DUALNUM) { | 8718 | if (LJ_DUALNUM) { |
| 8425 | dasm_put(Dst, 4797); | 8719 | dasm_put(Dst, 5038); |
| 8426 | } | 8720 | } |
| 8427 | dasm_put(Dst, 4799); | 8721 | dasm_put(Dst, 5040); |
| 8428 | if (LJ_DUALNUM) { | 8722 | if (LJ_DUALNUM) { |
| 8429 | dasm_put(Dst, 4802); | 8723 | dasm_put(Dst, 5043); |
| 8430 | } else { | 8724 | } else { |
| 8431 | dasm_put(Dst, 4808); | 8725 | dasm_put(Dst, 5049); |
| 8432 | } | 8726 | } |
| 8433 | break; | 8727 | break; |
| 8434 | default: | 8728 | default: |
| 8435 | dasm_put(Dst, 4812); | 8729 | dasm_put(Dst, 5053); |
| 8436 | break; | 8730 | break; |
| 8437 | } | 8731 | } |
| 8438 | dasm_put(Dst, 4822); | 8732 | dasm_put(Dst, 5063); |
| 8439 | } | 8733 | } |
| 8440 | break; | 8734 | break; |
| 8441 | case BC_MULVN: case BC_MULNV: case BC_MULVV: | 8735 | case BC_MULVN: case BC_MULNV: case BC_MULVV: |
| @@ -8443,188 +8737,188 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
| 8443 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); | 8737 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); |
| 8444 | switch (vk) { | 8738 | switch (vk) { |
| 8445 | case 0: | 8739 | case 0: |
| 8446 | dasm_put(Dst, 4835); | 8740 | dasm_put(Dst, 5076); |
| 8447 | break; | 8741 | break; |
| 8448 | case 1: | 8742 | case 1: |
| 8449 | dasm_put(Dst, 4841); | 8743 | dasm_put(Dst, 5082); |
| 8450 | break; | 8744 | break; |
| 8451 | default: | 8745 | default: |
| 8452 | dasm_put(Dst, 4847); | 8746 | dasm_put(Dst, 5088); |
| 8453 | break; | 8747 | break; |
| 8454 | } | 8748 | } |
| 8455 | dasm_put(Dst, 4853); | 8749 | dasm_put(Dst, 5094); |
| 8456 | switch (vk) { | 8750 | switch (vk) { |
| 8457 | case 0: | 8751 | case 0: |
| 8458 | dasm_put(Dst, 4880); | 8752 | dasm_put(Dst, 5121); |
| 8459 | break; | 8753 | break; |
| 8460 | case 1: | 8754 | case 1: |
| 8461 | dasm_put(Dst, 4883); | 8755 | dasm_put(Dst, 5124); |
| 8462 | break; | 8756 | break; |
| 8463 | default: | 8757 | default: |
| 8464 | dasm_put(Dst, 4886); | 8758 | dasm_put(Dst, 5127); |
| 8465 | break; | 8759 | break; |
| 8466 | } | 8760 | } |
| 8467 | dasm_put(Dst, 4889); | 8761 | dasm_put(Dst, 5130); |
| 8468 | if (vk == 1) { | 8762 | if (vk == 1) { |
| 8469 | dasm_put(Dst, 4891); | 8763 | dasm_put(Dst, 5132); |
| 8470 | } else { | 8764 | } else { |
| 8471 | dasm_put(Dst, 4895); | 8765 | dasm_put(Dst, 5136); |
| 8472 | } | 8766 | } |
| 8473 | switch (vk) { | 8767 | switch (vk) { |
| 8474 | case 0: | 8768 | case 0: |
| 8475 | dasm_put(Dst, 4899); | 8769 | dasm_put(Dst, 5140); |
| 8476 | break; | 8770 | break; |
| 8477 | case 1: | 8771 | case 1: |
| 8478 | dasm_put(Dst, 4902); | 8772 | dasm_put(Dst, 5143); |
| 8479 | break; | 8773 | break; |
| 8480 | default: | 8774 | default: |
| 8481 | dasm_put(Dst, 4905); | 8775 | dasm_put(Dst, 5146); |
| 8482 | break; | 8776 | break; |
| 8483 | } | 8777 | } |
| 8484 | dasm_put(Dst, 4908); | 8778 | dasm_put(Dst, 5149); |
| 8485 | } else { | 8779 | } else { |
| 8486 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); | 8780 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); |
| 8487 | switch (vk) { | 8781 | switch (vk) { |
| 8488 | case 0: | 8782 | case 0: |
| 8489 | dasm_put(Dst, 4915); | 8783 | dasm_put(Dst, 5156); |
| 8490 | if (LJ_DUALNUM) { | 8784 | if (LJ_DUALNUM) { |
| 8491 | dasm_put(Dst, 4917); | 8785 | dasm_put(Dst, 5158); |
| 8492 | } | 8786 | } |
| 8493 | dasm_put(Dst, 4919); | 8787 | dasm_put(Dst, 5160); |
| 8494 | if (LJ_DUALNUM) { | 8788 | if (LJ_DUALNUM) { |
| 8495 | dasm_put(Dst, 4922); | 8789 | dasm_put(Dst, 5163); |
| 8496 | } else { | 8790 | } else { |
| 8497 | dasm_put(Dst, 4928); | 8791 | dasm_put(Dst, 5169); |
| 8498 | } | 8792 | } |
| 8499 | break; | 8793 | break; |
| 8500 | case 1: | 8794 | case 1: |
| 8501 | dasm_put(Dst, 4932); | 8795 | dasm_put(Dst, 5173); |
| 8502 | if (LJ_DUALNUM) { | 8796 | if (LJ_DUALNUM) { |
| 8503 | dasm_put(Dst, 4934); | 8797 | dasm_put(Dst, 5175); |
| 8504 | } | 8798 | } |
| 8505 | dasm_put(Dst, 4936); | 8799 | dasm_put(Dst, 5177); |
| 8506 | if (LJ_DUALNUM) { | 8800 | if (LJ_DUALNUM) { |
| 8507 | dasm_put(Dst, 4939); | 8801 | dasm_put(Dst, 5180); |
| 8508 | } else { | 8802 | } else { |
| 8509 | dasm_put(Dst, 4945); | 8803 | dasm_put(Dst, 5186); |
| 8510 | } | 8804 | } |
| 8511 | break; | 8805 | break; |
| 8512 | default: | 8806 | default: |
| 8513 | dasm_put(Dst, 4949); | 8807 | dasm_put(Dst, 5190); |
| 8514 | break; | 8808 | break; |
| 8515 | } | 8809 | } |
| 8516 | dasm_put(Dst, 4959); | 8810 | dasm_put(Dst, 5200); |
| 8517 | } | 8811 | } |
| 8518 | break; | 8812 | break; |
| 8519 | case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: | 8813 | case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: |
| 8520 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); | 8814 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); |
| 8521 | switch (vk) { | 8815 | switch (vk) { |
| 8522 | case 0: | 8816 | case 0: |
| 8523 | dasm_put(Dst, 4972); | 8817 | dasm_put(Dst, 5213); |
| 8524 | if (LJ_DUALNUM) { | 8818 | if (LJ_DUALNUM) { |
| 8525 | dasm_put(Dst, 4974); | 8819 | dasm_put(Dst, 5215); |
| 8526 | } | 8820 | } |
| 8527 | dasm_put(Dst, 4976); | 8821 | dasm_put(Dst, 5217); |
| 8528 | if (LJ_DUALNUM) { | 8822 | if (LJ_DUALNUM) { |
| 8529 | dasm_put(Dst, 4979); | 8823 | dasm_put(Dst, 5220); |
| 8530 | } else { | 8824 | } else { |
| 8531 | dasm_put(Dst, 4985); | 8825 | dasm_put(Dst, 5226); |
| 8532 | } | 8826 | } |
| 8533 | break; | 8827 | break; |
| 8534 | case 1: | 8828 | case 1: |
| 8535 | dasm_put(Dst, 4989); | 8829 | dasm_put(Dst, 5230); |
| 8536 | if (LJ_DUALNUM) { | 8830 | if (LJ_DUALNUM) { |
| 8537 | dasm_put(Dst, 4991); | 8831 | dasm_put(Dst, 5232); |
| 8538 | } | 8832 | } |
| 8539 | dasm_put(Dst, 4993); | 8833 | dasm_put(Dst, 5234); |
| 8540 | if (LJ_DUALNUM) { | 8834 | if (LJ_DUALNUM) { |
| 8541 | dasm_put(Dst, 4996); | 8835 | dasm_put(Dst, 5237); |
| 8542 | } else { | 8836 | } else { |
| 8543 | dasm_put(Dst, 5002); | 8837 | dasm_put(Dst, 5243); |
| 8544 | } | 8838 | } |
| 8545 | break; | 8839 | break; |
| 8546 | default: | 8840 | default: |
| 8547 | dasm_put(Dst, 5006); | 8841 | dasm_put(Dst, 5247); |
| 8548 | break; | 8842 | break; |
| 8549 | } | 8843 | } |
| 8550 | dasm_put(Dst, 5016); | 8844 | dasm_put(Dst, 5257); |
| 8551 | break; | 8845 | break; |
| 8552 | case BC_MODVN: | 8846 | case BC_MODVN: |
| 8553 | if (LJ_DUALNUM) { | 8847 | if (LJ_DUALNUM) { |
| 8554 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); | 8848 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); |
| 8555 | switch (vk) { | 8849 | switch (vk) { |
| 8556 | case 0: | 8850 | case 0: |
| 8557 | dasm_put(Dst, 5029); | 8851 | dasm_put(Dst, 5270); |
| 8558 | break; | 8852 | break; |
| 8559 | case 1: | 8853 | case 1: |
| 8560 | dasm_put(Dst, 5035); | 8854 | dasm_put(Dst, 5276); |
| 8561 | break; | 8855 | break; |
| 8562 | default: | 8856 | default: |
| 8563 | dasm_put(Dst, 5041); | 8857 | dasm_put(Dst, 5282); |
| 8564 | break; | 8858 | break; |
| 8565 | } | 8859 | } |
| 8566 | dasm_put(Dst, 5047); | 8860 | dasm_put(Dst, 5288); |
| 8567 | switch (vk) { | 8861 | switch (vk) { |
| 8568 | case 0: | 8862 | case 0: |
| 8569 | dasm_put(Dst, 5075); | 8863 | dasm_put(Dst, 5316); |
| 8570 | break; | 8864 | break; |
| 8571 | case 1: | 8865 | case 1: |
| 8572 | dasm_put(Dst, 5078); | 8866 | dasm_put(Dst, 5319); |
| 8573 | break; | 8867 | break; |
| 8574 | default: | 8868 | default: |
| 8575 | dasm_put(Dst, 5081); | 8869 | dasm_put(Dst, 5322); |
| 8576 | break; | 8870 | break; |
| 8577 | } | 8871 | } |
| 8578 | dasm_put(Dst, 5084); | 8872 | dasm_put(Dst, 5325); |
| 8579 | if (vk == 1) { | 8873 | if (vk == 1) { |
| 8580 | dasm_put(Dst, 5086); | 8874 | dasm_put(Dst, 5327); |
| 8581 | } else { | 8875 | } else { |
| 8582 | dasm_put(Dst, 5090); | 8876 | dasm_put(Dst, 5331); |
| 8583 | } | 8877 | } |
| 8584 | switch (vk) { | 8878 | switch (vk) { |
| 8585 | case 0: | 8879 | case 0: |
| 8586 | dasm_put(Dst, 5094); | 8880 | dasm_put(Dst, 5335); |
| 8587 | break; | 8881 | break; |
| 8588 | case 1: | 8882 | case 1: |
| 8589 | dasm_put(Dst, 5097); | 8883 | dasm_put(Dst, 5338); |
| 8590 | break; | 8884 | break; |
| 8591 | default: | 8885 | default: |
| 8592 | dasm_put(Dst, 5100); | 8886 | dasm_put(Dst, 5341); |
| 8593 | break; | 8887 | break; |
| 8594 | } | 8888 | } |
| 8595 | dasm_put(Dst, 5103); | 8889 | dasm_put(Dst, 5344); |
| 8596 | } else { | 8890 | } else { |
| 8597 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); | 8891 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); |
| 8598 | switch (vk) { | 8892 | switch (vk) { |
| 8599 | case 0: | 8893 | case 0: |
| 8600 | dasm_put(Dst, 5115); | 8894 | dasm_put(Dst, 5356); |
| 8601 | if (LJ_DUALNUM) { | 8895 | if (LJ_DUALNUM) { |
| 8602 | dasm_put(Dst, 5117); | 8896 | dasm_put(Dst, 5358); |
| 8603 | } | 8897 | } |
| 8604 | dasm_put(Dst, 5119); | 8898 | dasm_put(Dst, 5360); |
| 8605 | if (LJ_DUALNUM) { | 8899 | if (LJ_DUALNUM) { |
| 8606 | dasm_put(Dst, 5122); | 8900 | dasm_put(Dst, 5363); |
| 8607 | } else { | 8901 | } else { |
| 8608 | dasm_put(Dst, 5128); | 8902 | dasm_put(Dst, 5369); |
| 8609 | } | 8903 | } |
| 8610 | break; | 8904 | break; |
| 8611 | case 1: | 8905 | case 1: |
| 8612 | dasm_put(Dst, 5132); | 8906 | dasm_put(Dst, 5373); |
| 8613 | if (LJ_DUALNUM) { | 8907 | if (LJ_DUALNUM) { |
| 8614 | dasm_put(Dst, 5134); | 8908 | dasm_put(Dst, 5375); |
| 8615 | } | 8909 | } |
| 8616 | dasm_put(Dst, 5136); | 8910 | dasm_put(Dst, 5377); |
| 8617 | if (LJ_DUALNUM) { | 8911 | if (LJ_DUALNUM) { |
| 8618 | dasm_put(Dst, 5139); | 8912 | dasm_put(Dst, 5380); |
| 8619 | } else { | 8913 | } else { |
| 8620 | dasm_put(Dst, 5145); | 8914 | dasm_put(Dst, 5386); |
| 8621 | } | 8915 | } |
| 8622 | break; | 8916 | break; |
| 8623 | default: | 8917 | default: |
| 8624 | dasm_put(Dst, 5149); | 8918 | dasm_put(Dst, 5390); |
| 8625 | break; | 8919 | break; |
| 8626 | } | 8920 | } |
| 8627 | dasm_put(Dst, 5159); | 8921 | dasm_put(Dst, 5400); |
| 8628 | } | 8922 | } |
| 8629 | break; | 8923 | break; |
| 8630 | case BC_MODNV: case BC_MODVV: | 8924 | case BC_MODNV: case BC_MODVV: |
| @@ -8632,298 +8926,298 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
| 8632 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); | 8926 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); |
| 8633 | switch (vk) { | 8927 | switch (vk) { |
| 8634 | case 0: | 8928 | case 0: |
| 8635 | dasm_put(Dst, 5177); | 8929 | dasm_put(Dst, 5418); |
| 8636 | break; | 8930 | break; |
| 8637 | case 1: | 8931 | case 1: |
| 8638 | dasm_put(Dst, 5183); | 8932 | dasm_put(Dst, 5424); |
| 8639 | break; | 8933 | break; |
| 8640 | default: | 8934 | default: |
| 8641 | dasm_put(Dst, 5189); | 8935 | dasm_put(Dst, 5430); |
| 8642 | break; | 8936 | break; |
| 8643 | } | 8937 | } |
| 8644 | dasm_put(Dst, 5195); | 8938 | dasm_put(Dst, 5436); |
| 8645 | switch (vk) { | 8939 | switch (vk) { |
| 8646 | case 0: | 8940 | case 0: |
| 8647 | dasm_put(Dst, 5223); | 8941 | dasm_put(Dst, 5464); |
| 8648 | break; | 8942 | break; |
| 8649 | case 1: | 8943 | case 1: |
| 8650 | dasm_put(Dst, 5226); | 8944 | dasm_put(Dst, 5467); |
| 8651 | break; | 8945 | break; |
| 8652 | default: | 8946 | default: |
| 8653 | dasm_put(Dst, 5229); | 8947 | dasm_put(Dst, 5470); |
| 8654 | break; | 8948 | break; |
| 8655 | } | 8949 | } |
| 8656 | dasm_put(Dst, 5232); | 8950 | dasm_put(Dst, 5473); |
| 8657 | if (vk == 1) { | 8951 | if (vk == 1) { |
| 8658 | dasm_put(Dst, 5234); | 8952 | dasm_put(Dst, 5475); |
| 8659 | } else { | 8953 | } else { |
| 8660 | dasm_put(Dst, 5238); | 8954 | dasm_put(Dst, 5479); |
| 8661 | } | 8955 | } |
| 8662 | switch (vk) { | 8956 | switch (vk) { |
| 8663 | case 0: | 8957 | case 0: |
| 8664 | dasm_put(Dst, 5242); | 8958 | dasm_put(Dst, 5483); |
| 8665 | break; | 8959 | break; |
| 8666 | case 1: | 8960 | case 1: |
| 8667 | dasm_put(Dst, 5245); | 8961 | dasm_put(Dst, 5486); |
| 8668 | break; | 8962 | break; |
| 8669 | default: | 8963 | default: |
| 8670 | dasm_put(Dst, 5248); | 8964 | dasm_put(Dst, 5489); |
| 8671 | break; | 8965 | break; |
| 8672 | } | 8966 | } |
| 8673 | dasm_put(Dst, 5251); | 8967 | dasm_put(Dst, 5492); |
| 8674 | } else { | 8968 | } else { |
| 8675 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); | 8969 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); |
| 8676 | switch (vk) { | 8970 | switch (vk) { |
| 8677 | case 0: | 8971 | case 0: |
| 8678 | dasm_put(Dst, 5254); | 8972 | dasm_put(Dst, 5495); |
| 8679 | if (LJ_DUALNUM) { | 8973 | if (LJ_DUALNUM) { |
| 8680 | dasm_put(Dst, 5256); | 8974 | dasm_put(Dst, 5497); |
| 8681 | } | 8975 | } |
| 8682 | dasm_put(Dst, 5258); | 8976 | dasm_put(Dst, 5499); |
| 8683 | if (LJ_DUALNUM) { | 8977 | if (LJ_DUALNUM) { |
| 8684 | dasm_put(Dst, 5261); | 8978 | dasm_put(Dst, 5502); |
| 8685 | } else { | 8979 | } else { |
| 8686 | dasm_put(Dst, 5267); | 8980 | dasm_put(Dst, 5508); |
| 8687 | } | 8981 | } |
| 8688 | break; | 8982 | break; |
| 8689 | case 1: | 8983 | case 1: |
| 8690 | dasm_put(Dst, 5271); | 8984 | dasm_put(Dst, 5512); |
| 8691 | if (LJ_DUALNUM) { | 8985 | if (LJ_DUALNUM) { |
| 8692 | dasm_put(Dst, 5273); | 8986 | dasm_put(Dst, 5514); |
| 8693 | } | 8987 | } |
| 8694 | dasm_put(Dst, 5275); | 8988 | dasm_put(Dst, 5516); |
| 8695 | if (LJ_DUALNUM) { | 8989 | if (LJ_DUALNUM) { |
| 8696 | dasm_put(Dst, 5278); | 8990 | dasm_put(Dst, 5519); |
| 8697 | } else { | 8991 | } else { |
| 8698 | dasm_put(Dst, 5284); | 8992 | dasm_put(Dst, 5525); |
| 8699 | } | 8993 | } |
| 8700 | break; | 8994 | break; |
| 8701 | default: | 8995 | default: |
| 8702 | dasm_put(Dst, 5288); | 8996 | dasm_put(Dst, 5529); |
| 8703 | break; | 8997 | break; |
| 8704 | } | 8998 | } |
| 8705 | dasm_put(Dst, 5298); | 8999 | dasm_put(Dst, 5539); |
| 8706 | } | 9000 | } |
| 8707 | break; | 9001 | break; |
| 8708 | case BC_POW: | 9002 | case BC_POW: |
| 8709 | dasm_put(Dst, 5301); | 9003 | dasm_put(Dst, 5542); |
| 8710 | break; | 9004 | break; |
| 8711 | 9005 | ||
| 8712 | case BC_CAT: | 9006 | case BC_CAT: |
| 8713 | dasm_put(Dst, 5324, Dt1(->base), 32-3, Dt1(->base)); | 9007 | dasm_put(Dst, 5565, Dt1(->base), 32-3, Dt1(->base)); |
| 8714 | break; | 9008 | break; |
| 8715 | 9009 | ||
| 8716 | /* -- Constant ops ------------------------------------------------------ */ | 9010 | /* -- Constant ops ------------------------------------------------------ */ |
| 8717 | 9011 | ||
| 8718 | case BC_KSTR: | 9012 | case BC_KSTR: |
| 8719 | dasm_put(Dst, 5354, 32-1, LJ_TSTR); | 9013 | dasm_put(Dst, 5595, 32-1, LJ_TSTR); |
| 8720 | break; | 9014 | break; |
| 8721 | case BC_KCDATA: | 9015 | case BC_KCDATA: |
| 8722 | #if LJ_HASFFI | 9016 | #if LJ_HASFFI |
| 8723 | dasm_put(Dst, 5373, 32-1, LJ_TCDATA); | 9017 | dasm_put(Dst, 5614, 32-1, LJ_TCDATA); |
| 8724 | #endif | 9018 | #endif |
| 8725 | break; | 9019 | break; |
| 8726 | case BC_KSHORT: | 9020 | case BC_KSHORT: |
| 8727 | if (LJ_DUALNUM) { | 9021 | if (LJ_DUALNUM) { |
| 8728 | dasm_put(Dst, 5392, 31-13); | 9022 | dasm_put(Dst, 5633, 31-13); |
| 8729 | } else { | 9023 | } else { |
| 8730 | dasm_put(Dst, 5408, 31-13, 31-20); | 9024 | dasm_put(Dst, 5649, 31-13, 31-20); |
| 8731 | } | 9025 | } |
| 8732 | break; | 9026 | break; |
| 8733 | case BC_KNUM: | 9027 | case BC_KNUM: |
| 8734 | dasm_put(Dst, 5436); | 9028 | dasm_put(Dst, 5677); |
| 8735 | break; | 9029 | break; |
| 8736 | case BC_KPRI: | 9030 | case BC_KPRI: |
| 8737 | dasm_put(Dst, 5449, 32-3); | 9031 | dasm_put(Dst, 5690, 32-3); |
| 8738 | break; | 9032 | break; |
| 8739 | case BC_KNIL: | 9033 | case BC_KNIL: |
| 8740 | dasm_put(Dst, 5464); | 9034 | dasm_put(Dst, 5705); |
| 8741 | break; | 9035 | break; |
| 8742 | 9036 | ||
| 8743 | /* -- Upvalue and function ops ------------------------------------------ */ | 9037 | /* -- Upvalue and function ops ------------------------------------------ */ |
| 8744 | 9038 | ||
| 8745 | case BC_UGET: | 9039 | case BC_UGET: |
| 8746 | dasm_put(Dst, 5483, 32-1, offsetof(GCfuncL, uvptr), DtA(->v)); | 9040 | dasm_put(Dst, 5724, 32-1, offsetof(GCfuncL, uvptr), DtA(->v)); |
| 8747 | break; | 9041 | break; |
| 8748 | case BC_USETV: | 9042 | case BC_USETV: |
| 8749 | dasm_put(Dst, 5504, 32-1, offsetof(GCfuncL, uvptr), DtA(->marked), DtA(->v), LJ_GC_BLACK, DtA(->closed), -(LJ_TISNUM+1), LJ_TISGCV - (LJ_TISNUM+1), Dt4(->gch.marked), LJ_GC_WHITES, GG_DISP2G); | 9043 | dasm_put(Dst, 5745, 32-1, offsetof(GCfuncL, uvptr), DtA(->marked), DtA(->v), LJ_GC_BLACK, DtA(->closed), -(LJ_TISNUM+1), LJ_TISGCV - (LJ_TISNUM+1), Dt4(->gch.marked), LJ_GC_WHITES, GG_DISP2G); |
| 8750 | break; | 9044 | break; |
| 8751 | case BC_USETS: | 9045 | case BC_USETS: |
| 8752 | dasm_put(Dst, 5557, 32-1, 32-1, offsetof(GCfuncL, uvptr), DtA(->marked), DtA(->v), LJ_GC_BLACK, Dt5(->marked), DtA(->closed), LJ_TSTR, LJ_GC_WHITES, GG_DISP2G); | 9046 | dasm_put(Dst, 5798, 32-1, 32-1, offsetof(GCfuncL, uvptr), DtA(->marked), DtA(->v), LJ_GC_BLACK, Dt5(->marked), DtA(->closed), LJ_TSTR, LJ_GC_WHITES, GG_DISP2G); |
| 8753 | break; | 9047 | break; |
| 8754 | case BC_USETN: | 9048 | case BC_USETN: |
| 8755 | dasm_put(Dst, 5608, 32-1, offsetof(GCfuncL, uvptr), DtA(->v)); | 9049 | dasm_put(Dst, 5849, 32-1, offsetof(GCfuncL, uvptr), DtA(->v)); |
| 8756 | break; | 9050 | break; |
| 8757 | case BC_USETP: | 9051 | case BC_USETP: |
| 8758 | dasm_put(Dst, 5629, 32-1, 32-3, offsetof(GCfuncL, uvptr), DtA(->v)); | 9052 | dasm_put(Dst, 5870, 32-1, 32-3, offsetof(GCfuncL, uvptr), DtA(->v)); |
| 8759 | break; | 9053 | break; |
| 8760 | 9054 | ||
| 8761 | case BC_UCLO: | 9055 | case BC_UCLO: |
| 8762 | dasm_put(Dst, 5652, Dt1(->openupval), 32-1, -(BCBIAS_J*4 >> 16), Dt1(->base), Dt1(->base)); | 9056 | dasm_put(Dst, 5893, Dt1(->openupval), 32-1, -(BCBIAS_J*4 >> 16), Dt1(->base), Dt1(->base)); |
| 8763 | break; | 9057 | break; |
| 8764 | 9058 | ||
| 8765 | case BC_FNEW: | 9059 | case BC_FNEW: |
| 8766 | dasm_put(Dst, 5682, 32-1, Dt1(->base), Dt1(->base), LJ_TFUNC); | 9060 | dasm_put(Dst, 5923, 32-1, Dt1(->base), Dt1(->base), LJ_TFUNC); |
| 8767 | break; | 9061 | break; |
| 8768 | 9062 | ||
| 8769 | /* -- Table ops --------------------------------------------------------- */ | 9063 | /* -- Table ops --------------------------------------------------------- */ |
| 8770 | 9064 | ||
| 8771 | case BC_TNEW: | 9065 | case BC_TNEW: |
| 8772 | case BC_TDUP: | 9066 | case BC_TDUP: |
| 8773 | dasm_put(Dst, 5710, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base)); | 9067 | dasm_put(Dst, 5951, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base)); |
| 8774 | if (op == BC_TNEW) { | 9068 | if (op == BC_TNEW) { |
| 8775 | dasm_put(Dst, 5723); | 9069 | dasm_put(Dst, 5964); |
| 8776 | } else { | 9070 | } else { |
| 8777 | dasm_put(Dst, 5732, 32-1); | 9071 | dasm_put(Dst, 5973, 32-1); |
| 8778 | } | 9072 | } |
| 8779 | dasm_put(Dst, 5739, Dt1(->base), LJ_TTAB); | 9073 | dasm_put(Dst, 5980, Dt1(->base), LJ_TTAB); |
| 8780 | if (op == BC_TNEW) { | 9074 | if (op == BC_TNEW) { |
| 8781 | dasm_put(Dst, 5756); | 9075 | dasm_put(Dst, 5997); |
| 8782 | } | 9076 | } |
| 8783 | dasm_put(Dst, 5761); | 9077 | dasm_put(Dst, 6002); |
| 8784 | break; | 9078 | break; |
| 8785 | 9079 | ||
| 8786 | case BC_GGET: | 9080 | case BC_GGET: |
| 8787 | case BC_GSET: | 9081 | case BC_GSET: |
| 8788 | dasm_put(Dst, 5770, 32-1, Dt7(->env)); | 9082 | dasm_put(Dst, 6011, 32-1, Dt7(->env)); |
| 8789 | if (op == BC_GGET) { | 9083 | if (op == BC_GGET) { |
| 8790 | dasm_put(Dst, 5778); | 9084 | dasm_put(Dst, 6019); |
| 8791 | } else { | 9085 | } else { |
| 8792 | dasm_put(Dst, 5781); | 9086 | dasm_put(Dst, 6022); |
| 8793 | } | 9087 | } |
| 8794 | break; | 9088 | break; |
| 8795 | 9089 | ||
| 8796 | case BC_TGETV: | 9090 | case BC_TGETV: |
| 8797 | dasm_put(Dst, 5784); | 9091 | dasm_put(Dst, 6025); |
| 8798 | if (LJ_DUALNUM) { | 9092 | if (LJ_DUALNUM) { |
| 8799 | dasm_put(Dst, 5788); | 9093 | dasm_put(Dst, 6029); |
| 8800 | } else { | 9094 | } else { |
| 8801 | dasm_put(Dst, 5790); | 9095 | dasm_put(Dst, 6031); |
| 8802 | } | 9096 | } |
| 8803 | dasm_put(Dst, 5792, LJ_TTAB); | 9097 | dasm_put(Dst, 6033, LJ_TTAB); |
| 8804 | if (LJ_DUALNUM) { | 9098 | if (LJ_DUALNUM) { |
| 8805 | dasm_put(Dst, 5798, Dt6(->asize), Dt6(->array), 31-3); | 9099 | dasm_put(Dst, 6039, Dt6(->asize), Dt6(->array), 31-3); |
| 8806 | } else { | 9100 | } else { |
| 8807 | dasm_put(Dst, 5808, Dt6(->asize), Dt6(->array), 31-3); | 9101 | dasm_put(Dst, 6049, Dt6(->asize), Dt6(->array), 31-3); |
| 8808 | } | 9102 | } |
| 8809 | dasm_put(Dst, 5825, LJ_TNIL, Dt6(->metatable), Dt6(->nomm), 1<<MM_index, LJ_TSTR); | 9103 | dasm_put(Dst, 6066, LJ_TNIL, Dt6(->metatable), Dt6(->nomm), 1<<MM_index, LJ_TSTR); |
| 8810 | if (!LJ_DUALNUM) { | 9104 | if (!LJ_DUALNUM) { |
| 8811 | dasm_put(Dst, 5865); | 9105 | dasm_put(Dst, 6106); |
| 8812 | } | 9106 | } |
| 8813 | dasm_put(Dst, 5867); | 9107 | dasm_put(Dst, 6108); |
| 8814 | break; | 9108 | break; |
| 8815 | case BC_TGETS: | 9109 | case BC_TGETS: |
| 8816 | dasm_put(Dst, 5870, 32-1, LJ_TTAB, Dt6(->hmask), Dt5(->hash), Dt6(->node), 31-5, 31-3, DtB(->key), 4+offsetof(Node, key), DtB(->val), 4+offsetof(Node, val), LJ_TSTR, LJ_TNIL, DtB(->next)); | 9110 | dasm_put(Dst, 6111, 32-1, LJ_TTAB, Dt6(->hmask), Dt5(->hash), Dt6(->node), 31-5, 31-3, DtB(->key), 4+offsetof(Node, key), DtB(->val), 4+offsetof(Node, val), LJ_TSTR, LJ_TNIL, DtB(->next)); |
| 8817 | dasm_put(Dst, 5931, LJ_TNIL, Dt6(->metatable), Dt6(->nomm), 1<<MM_index); | 9111 | dasm_put(Dst, 6172, LJ_TNIL, Dt6(->metatable), Dt6(->nomm), 1<<MM_index); |
| 8818 | break; | 9112 | break; |
| 8819 | case BC_TGETB: | 9113 | case BC_TGETB: |
| 8820 | dasm_put(Dst, 5951, 32-3, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->nomm), 1<<MM_index); | 9114 | dasm_put(Dst, 6192, 32-3, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->nomm), 1<<MM_index); |
| 8821 | break; | 9115 | break; |
| 8822 | 9116 | ||
| 8823 | case BC_TSETV: | 9117 | case BC_TSETV: |
| 8824 | dasm_put(Dst, 5999); | 9118 | dasm_put(Dst, 6240); |
| 8825 | if (LJ_DUALNUM) { | 9119 | if (LJ_DUALNUM) { |
| 8826 | dasm_put(Dst, 6003); | 9120 | dasm_put(Dst, 6244); |
| 8827 | } else { | 9121 | } else { |
| 8828 | dasm_put(Dst, 6005); | 9122 | dasm_put(Dst, 6246); |
| 8829 | } | 9123 | } |
| 8830 | dasm_put(Dst, 6007, LJ_TTAB); | 9124 | dasm_put(Dst, 6248, LJ_TTAB); |
| 8831 | if (LJ_DUALNUM) { | 9125 | if (LJ_DUALNUM) { |
| 8832 | dasm_put(Dst, 6013, Dt6(->asize), Dt6(->array), 31-3); | 9126 | dasm_put(Dst, 6254, Dt6(->asize), Dt6(->array), 31-3); |
| 8833 | } else { | 9127 | } else { |
| 8834 | dasm_put(Dst, 6023, Dt6(->asize), Dt6(->array), 31-3); | 9128 | dasm_put(Dst, 6264, Dt6(->asize), Dt6(->array), 31-3); |
| 8835 | } | 9129 | } |
| 8836 | dasm_put(Dst, 6040, Dt6(->marked), LJ_TNIL, LJ_GC_BLACK, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR); | 9130 | dasm_put(Dst, 6281, Dt6(->marked), LJ_TNIL, LJ_GC_BLACK, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR); |
| 8837 | if (!LJ_DUALNUM) { | 9131 | if (!LJ_DUALNUM) { |
| 8838 | dasm_put(Dst, 6087); | 9132 | dasm_put(Dst, 6328); |
| 8839 | } | 9133 | } |
| 8840 | dasm_put(Dst, 6089, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist)); | 9134 | dasm_put(Dst, 6330, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist)); |
| 8841 | break; | 9135 | break; |
| 8842 | dasm_put(Dst, 6104, LJ_TSTR, LJ_TNIL); | 9136 | dasm_put(Dst, 6345, LJ_TSTR, LJ_TNIL); |
| 8843 | case BC_TSETS: | 9137 | case BC_TSETS: |
| 8844 | dasm_put(Dst, 6130, 32-1, LJ_TTAB, Dt6(->hmask), Dt5(->hash), Dt6(->node), Dt6(->nomm), 31-5, 31-3, Dt6(->marked), DtB(->key), 4+offsetof(Node, key), DtB(->val), 4+offsetof(Node, val), LJ_TSTR, LJ_TNIL); | 9138 | dasm_put(Dst, 6371, 32-1, LJ_TTAB, Dt6(->hmask), Dt5(->hash), Dt6(->node), Dt6(->nomm), 31-5, 31-3, Dt6(->marked), DtB(->key), 4+offsetof(Node, key), DtB(->val), 4+offsetof(Node, val), LJ_TSTR, LJ_TNIL); |
| 8845 | dasm_put(Dst, 6181, LJ_GC_BLACK, DtB(->val), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next), Dt6(->metatable), DISPATCH_GL(tmptv), Dt1(->base), Dt6(->nomm), 1<<MM_newindex); | 9139 | dasm_put(Dst, 6422, LJ_GC_BLACK, DtB(->val), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next), Dt6(->metatable), DISPATCH_GL(tmptv), Dt1(->base), Dt6(->nomm), 1<<MM_newindex); |
| 8846 | dasm_put(Dst, 6237, LJ_TSTR, Dt1(->base), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist)); | 9140 | dasm_put(Dst, 6478, LJ_TSTR, Dt1(->base), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist)); |
| 8847 | break; | 9141 | break; |
| 8848 | case BC_TSETB: | 9142 | case BC_TSETB: |
| 8849 | dasm_put(Dst, 6262, 32-3, LJ_TTAB, Dt6(->asize), Dt6(->array), Dt6(->marked), LJ_TNIL, LJ_GC_BLACK, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DISPATCH_GL(gc.grayagain)); | 9143 | dasm_put(Dst, 6503, 32-3, LJ_TTAB, Dt6(->asize), Dt6(->array), Dt6(->marked), LJ_TNIL, LJ_GC_BLACK, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DISPATCH_GL(gc.grayagain)); |
| 8850 | dasm_put(Dst, 6320, DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist)); | 9144 | dasm_put(Dst, 6561, DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist)); |
| 8851 | break; | 9145 | break; |
| 8852 | 9146 | ||
| 8853 | case BC_TSETM: | 9147 | case BC_TSETM: |
| 8854 | dasm_put(Dst, 6330, 32-3, Dt6(->asize), 31-3, Dt6(->marked), Dt6(->array), LJ_GC_BLACK, Dt1(->base), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist)); | 9148 | dasm_put(Dst, 6571, 32-3, Dt6(->asize), 31-3, Dt6(->marked), Dt6(->array), LJ_GC_BLACK, Dt1(->base), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist)); |
| 8855 | dasm_put(Dst, 6399); | 9149 | dasm_put(Dst, 6640); |
| 8856 | break; | 9150 | break; |
| 8857 | 9151 | ||
| 8858 | /* -- Calls and vararg handling ----------------------------------------- */ | 9152 | /* -- Calls and vararg handling ----------------------------------------- */ |
| 8859 | 9153 | ||
| 8860 | case BC_CALLM: | 9154 | case BC_CALLM: |
| 8861 | dasm_put(Dst, 6402); | 9155 | dasm_put(Dst, 6643); |
| 8862 | break; | 9156 | break; |
| 8863 | case BC_CALL: | 9157 | case BC_CALL: |
| 8864 | dasm_put(Dst, 6404, LJ_TFUNC, Dt7(->pc)); | 9158 | dasm_put(Dst, 6645, LJ_TFUNC, Dt7(->pc)); |
| 8865 | break; | 9159 | break; |
| 8866 | 9160 | ||
| 8867 | case BC_CALLMT: | 9161 | case BC_CALLMT: |
| 8868 | dasm_put(Dst, 6425); | 9162 | dasm_put(Dst, 6666); |
| 8869 | break; | 9163 | break; |
| 8870 | case BC_CALLT: | 9164 | case BC_CALLT: |
| 8871 | dasm_put(Dst, 6427, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), FRAME_VARG, Dt7(->pc), -4-8, Dt7(->pc), PC2PROTO(k), FRAME_TYPEP); | 9165 | dasm_put(Dst, 6668, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), FRAME_VARG, Dt7(->pc), -4-8, Dt7(->pc), PC2PROTO(k), FRAME_TYPEP); |
| 8872 | dasm_put(Dst, 6491, FRAME_TYPE); | 9166 | dasm_put(Dst, 6732, FRAME_TYPE); |
| 8873 | break; | 9167 | break; |
| 8874 | 9168 | ||
| 8875 | case BC_ITERC: | 9169 | case BC_ITERC: |
| 8876 | dasm_put(Dst, 6500, LJ_TFUNC, Dt7(->pc)); | 9170 | dasm_put(Dst, 6741, LJ_TFUNC, Dt7(->pc)); |
| 8877 | break; | 9171 | break; |
| 8878 | 9172 | ||
| 8879 | case BC_ITERN: | 9173 | case BC_ITERN: |
| 8880 | #if LJ_HASJIT | 9174 | #if LJ_HASJIT |
| 8881 | #endif | 9175 | #endif |
| 8882 | dasm_put(Dst, 6527, Dt6(->asize), Dt6(->array), 31-3, LJ_TNIL); | 9176 | dasm_put(Dst, 6768, Dt6(->asize), Dt6(->array), 31-3, LJ_TNIL); |
| 8883 | if (LJ_DUALNUM) { | 9177 | if (LJ_DUALNUM) { |
| 8884 | dasm_put(Dst, 6549); | 9178 | dasm_put(Dst, 6790); |
| 8885 | } else { | 9179 | } else { |
| 8886 | dasm_put(Dst, 6552); | 9180 | dasm_put(Dst, 6793); |
| 8887 | } | 9181 | } |
| 8888 | dasm_put(Dst, 6556, -(BCBIAS_J*4 >> 16)); | 9182 | dasm_put(Dst, 6797, -(BCBIAS_J*4 >> 16)); |
| 8889 | if (!LJ_DUALNUM) { | 9183 | if (!LJ_DUALNUM) { |
| 8890 | dasm_put(Dst, 6564); | 9184 | dasm_put(Dst, 6805); |
| 8891 | } | 9185 | } |
| 8892 | dasm_put(Dst, 6566, Dt6(->hmask), Dt6(->node), 31-5, 31-3, LJ_TNIL, DtB(->key), -(BCBIAS_J*4 >> 16)); | 9186 | dasm_put(Dst, 6807, Dt6(->hmask), Dt6(->node), 31-5, 31-3, LJ_TNIL, DtB(->key), -(BCBIAS_J*4 >> 16)); |
| 8893 | break; | 9187 | break; |
| 8894 | 9188 | ||
| 8895 | case BC_ISNEXT: | 9189 | case BC_ISNEXT: |
| 8896 | dasm_put(Dst, 6622, LJ_TTAB, LJ_TFUNC, LJ_TNIL, Dt8(->ffid), FF_next_N, 32-1, -(BCBIAS_J*4 >> 16), BC_JMP, BC_ITERC, -(BCBIAS_J*4 >> 16)); | 9190 | dasm_put(Dst, 6863, LJ_TTAB, LJ_TFUNC, LJ_TNIL, Dt8(->ffid), FF_next_N, 32-1, -(BCBIAS_J*4 >> 16), BC_JMP, BC_ITERC, -(BCBIAS_J*4 >> 16)); |
| 8897 | break; | 9191 | break; |
| 8898 | 9192 | ||
| 8899 | case BC_VARG: | 9193 | case BC_VARG: |
| 8900 | dasm_put(Dst, 6672, FRAME_VARG, Dt1(->maxstack), Dt1(->top), Dt1(->base), 32-3, Dt1(->base)); | 9194 | dasm_put(Dst, 6913, FRAME_VARG, Dt1(->maxstack), Dt1(->top), Dt1(->base), 32-3, Dt1(->base)); |
| 8901 | dasm_put(Dst, 6752); | 9195 | dasm_put(Dst, 6993); |
| 8902 | break; | 9196 | break; |
| 8903 | 9197 | ||
| 8904 | /* -- Returns ----------------------------------------------------------- */ | 9198 | /* -- Returns ----------------------------------------------------------- */ |
| 8905 | 9199 | ||
| 8906 | case BC_RETM: | 9200 | case BC_RETM: |
| 8907 | dasm_put(Dst, 6758); | 9201 | dasm_put(Dst, 6999); |
| 8908 | break; | 9202 | break; |
| 8909 | 9203 | ||
| 8910 | case BC_RET: | 9204 | case BC_RET: |
| 8911 | dasm_put(Dst, 6760, FRAME_TYPE, FRAME_VARG, Dt7(->pc), PC2PROTO(k), FRAME_TYPEP); | 9205 | dasm_put(Dst, 7001, FRAME_TYPE, FRAME_VARG, Dt7(->pc), PC2PROTO(k), FRAME_TYPEP); |
| 8912 | break; | 9206 | break; |
| 8913 | 9207 | ||
| 8914 | case BC_RET0: case BC_RET1: | 9208 | case BC_RET0: case BC_RET1: |
| 8915 | dasm_put(Dst, 6830, FRAME_TYPE, FRAME_VARG); | 9209 | dasm_put(Dst, 7071, FRAME_TYPE, FRAME_VARG); |
| 8916 | if (op == BC_RET1) { | 9210 | if (op == BC_RET1) { |
| 8917 | dasm_put(Dst, 6843); | 9211 | dasm_put(Dst, 7084); |
| 8918 | } | 9212 | } |
| 8919 | dasm_put(Dst, 6846, Dt7(->pc), PC2PROTO(k)); | 9213 | dasm_put(Dst, 7087, Dt7(->pc), PC2PROTO(k)); |
| 8920 | break; | 9214 | break; |
| 8921 | 9215 | ||
| 8922 | /* -- Loops and branches ------------------------------------------------ */ | 9216 | /* -- Loops and branches ------------------------------------------------ */ |
| 8923 | 9217 | ||
| 8924 | case BC_FORL: | 9218 | case BC_FORL: |
| 8925 | #if LJ_HASJIT | 9219 | #if LJ_HASJIT |
| 8926 | dasm_put(Dst, 6874); | 9220 | dasm_put(Dst, 7115, GG_DISP2HOT, -HOTCOUNT_LOOP); |
| 8927 | #endif | 9221 | #endif |
| 8928 | break; | 9222 | break; |
| 8929 | 9223 | ||
| @@ -8936,93 +9230,93 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
| 8936 | case BC_IFORL: | 9230 | case BC_IFORL: |
| 8937 | vk = (op == BC_IFORL || op == BC_JFORL); | 9231 | vk = (op == BC_IFORL || op == BC_JFORL); |
| 8938 | if (LJ_DUALNUM) { | 9232 | if (LJ_DUALNUM) { |
| 8939 | dasm_put(Dst, 6876, FORL_IDX*8+4); | 9233 | dasm_put(Dst, 7125, FORL_IDX*8+4); |
| 8940 | if (vk) { | 9234 | if (vk) { |
| 8941 | dasm_put(Dst, 6881, FORL_STEP*8+4, FORL_STOP*8+4, FORL_IDX*8+4); | 9235 | dasm_put(Dst, 7130, FORL_STEP*8+4, FORL_STOP*8+4, FORL_IDX*8+4); |
| 8942 | } else { | 9236 | } else { |
| 8943 | dasm_put(Dst, 6895, FORL_STEP*8, FORL_STEP*8+4, FORL_STOP*8, FORL_STOP*8+4); | 9237 | dasm_put(Dst, 7144, FORL_STEP*8, FORL_STEP*8+4, FORL_STOP*8, FORL_STOP*8+4); |
| 8944 | } | 9238 | } |
| 8945 | dasm_put(Dst, 6911, FORL_EXT*8); | 9239 | dasm_put(Dst, 7160, FORL_EXT*8); |
| 8946 | if (op != BC_JFORL) { | 9240 | if (op != BC_JFORL) { |
| 8947 | dasm_put(Dst, 6918, 32-1); | 9241 | dasm_put(Dst, 7167, 32-1); |
| 8948 | } | 9242 | } |
| 8949 | dasm_put(Dst, 6921, FORL_EXT*8+4); | 9243 | dasm_put(Dst, 7170, FORL_EXT*8+4); |
| 8950 | if (op != BC_JFORL) { | 9244 | if (op != BC_JFORL) { |
| 8951 | dasm_put(Dst, 6924); | 9245 | dasm_put(Dst, 7173); |
| 8952 | } | 9246 | } |
| 8953 | if (op == BC_FORI) { | 9247 | if (op == BC_FORI) { |
| 8954 | dasm_put(Dst, 6926); | 9248 | dasm_put(Dst, 7175); |
| 8955 | } else if (op == BC_JFORI) { | 9249 | } else if (op == BC_JFORI) { |
| 8956 | dasm_put(Dst, 6929, -(BCBIAS_J*4 >> 16), BC_JLOOP); | 9250 | dasm_put(Dst, 7178, -(BCBIAS_J*4 >> 16), BC_JLOOP); |
| 8957 | } else if (op == BC_IFORL) { | 9251 | } else if (op == BC_IFORL) { |
| 8958 | dasm_put(Dst, 6934, -(BCBIAS_J*4 >> 16)); | 9252 | dasm_put(Dst, 7183, -(BCBIAS_J*4 >> 16)); |
| 8959 | } else { | 9253 | } else { |
| 8960 | dasm_put(Dst, 6939, BC_JLOOP); | 9254 | dasm_put(Dst, 7188, BC_JLOOP); |
| 8961 | } | 9255 | } |
| 8962 | dasm_put(Dst, 6942); | 9256 | dasm_put(Dst, 7191); |
| 8963 | if (vk) { | 9257 | if (vk) { |
| 8964 | dasm_put(Dst, 6958); | 9258 | dasm_put(Dst, 7207); |
| 8965 | } | 9259 | } |
| 8966 | } | 9260 | } |
| 8967 | if (vk) { | 9261 | if (vk) { |
| 8968 | if (LJ_DUALNUM) { | 9262 | if (LJ_DUALNUM) { |
| 8969 | dasm_put(Dst, 6965, FORL_IDX*8); | 9263 | dasm_put(Dst, 7214, FORL_IDX*8); |
| 8970 | } else { | 9264 | } else { |
| 8971 | dasm_put(Dst, 6969); | 9265 | dasm_put(Dst, 7218); |
| 8972 | } | 9266 | } |
| 8973 | dasm_put(Dst, 6971, FORL_STEP*8, FORL_STOP*8, FORL_STEP*8, FORL_IDX*8); | 9267 | dasm_put(Dst, 7220, FORL_STEP*8, FORL_STOP*8, FORL_STEP*8, FORL_IDX*8); |
| 8974 | } else { | 9268 | } else { |
| 8975 | if (LJ_DUALNUM) { | 9269 | if (LJ_DUALNUM) { |
| 8976 | dasm_put(Dst, 6981); | 9270 | dasm_put(Dst, 7230); |
| 8977 | } else { | 9271 | } else { |
| 8978 | dasm_put(Dst, 6983, FORL_STEP*8, FORL_STOP*8); | 9272 | dasm_put(Dst, 7232, FORL_STEP*8, FORL_STOP*8); |
| 8979 | } | 9273 | } |
| 8980 | dasm_put(Dst, 6992, FORL_IDX*8, FORL_STEP*8, FORL_STOP*8); | 9274 | dasm_put(Dst, 7241, FORL_IDX*8, FORL_STEP*8, FORL_STOP*8); |
| 8981 | } | 9275 | } |
| 8982 | dasm_put(Dst, 7003); | 9276 | dasm_put(Dst, 7252); |
| 8983 | if (op != BC_JFORL) { | 9277 | if (op != BC_JFORL) { |
| 8984 | dasm_put(Dst, 7005, 32-1); | 9278 | dasm_put(Dst, 7254, 32-1); |
| 8985 | } | 9279 | } |
| 8986 | dasm_put(Dst, 7008, FORL_EXT*8); | 9280 | dasm_put(Dst, 7257, FORL_EXT*8); |
| 8987 | if (op != BC_JFORL) { | 9281 | if (op != BC_JFORL) { |
| 8988 | dasm_put(Dst, 7011); | 9282 | dasm_put(Dst, 7260); |
| 8989 | } | 9283 | } |
| 8990 | dasm_put(Dst, 7013); | 9284 | dasm_put(Dst, 7262); |
| 8991 | if (op == BC_JFORI) { | 9285 | if (op == BC_JFORI) { |
| 8992 | dasm_put(Dst, 7015, -(BCBIAS_J*4 >> 16)); | 9286 | dasm_put(Dst, 7264, -(BCBIAS_J*4 >> 16)); |
| 8993 | } | 9287 | } |
| 8994 | dasm_put(Dst, 7018); | 9288 | dasm_put(Dst, 7267); |
| 8995 | if (op == BC_FORI) { | 9289 | if (op == BC_FORI) { |
| 8996 | dasm_put(Dst, 7021); | 9290 | dasm_put(Dst, 7270); |
| 8997 | } else if (op == BC_IFORL) { | 9291 | } else if (op == BC_IFORL) { |
| 8998 | if (LJ_DUALNUM) { | 9292 | if (LJ_DUALNUM) { |
| 8999 | dasm_put(Dst, 7024); | 9293 | dasm_put(Dst, 7273); |
| 9000 | } else { | 9294 | } else { |
| 9001 | dasm_put(Dst, 7027); | 9295 | dasm_put(Dst, 7276); |
| 9002 | } | 9296 | } |
| 9003 | dasm_put(Dst, 7030, -(BCBIAS_J*4 >> 16)); | 9297 | dasm_put(Dst, 7279, -(BCBIAS_J*4 >> 16)); |
| 9004 | } else { | 9298 | } else { |
| 9005 | dasm_put(Dst, 7034, BC_JLOOP); | 9299 | dasm_put(Dst, 7283, BC_JLOOP); |
| 9006 | } | 9300 | } |
| 9007 | if (LJ_DUALNUM) { | 9301 | if (LJ_DUALNUM) { |
| 9008 | dasm_put(Dst, 7037); | 9302 | dasm_put(Dst, 7286); |
| 9009 | } else { | 9303 | } else { |
| 9010 | dasm_put(Dst, 7040); | 9304 | dasm_put(Dst, 7289); |
| 9011 | } | 9305 | } |
| 9012 | dasm_put(Dst, 7052); | 9306 | dasm_put(Dst, 7301); |
| 9013 | if (op == BC_FORI) { | 9307 | if (op == BC_FORI) { |
| 9014 | dasm_put(Dst, 7054, -(BCBIAS_J*4 >> 16)); | 9308 | dasm_put(Dst, 7303, -(BCBIAS_J*4 >> 16)); |
| 9015 | } else if (op == BC_IFORL) { | 9309 | } else if (op == BC_IFORL) { |
| 9016 | dasm_put(Dst, 7060); | 9310 | dasm_put(Dst, 7309); |
| 9017 | } else { | 9311 | } else { |
| 9018 | dasm_put(Dst, 7063, BC_JLOOP); | 9312 | dasm_put(Dst, 7312, BC_JLOOP); |
| 9019 | } | 9313 | } |
| 9020 | dasm_put(Dst, 7066); | 9314 | dasm_put(Dst, 7315); |
| 9021 | break; | 9315 | break; |
| 9022 | 9316 | ||
| 9023 | case BC_ITERL: | 9317 | case BC_ITERL: |
| 9024 | #if LJ_HASJIT | 9318 | #if LJ_HASJIT |
| 9025 | dasm_put(Dst, 7069); | 9319 | dasm_put(Dst, 7318, GG_DISP2HOT, -HOTCOUNT_LOOP); |
| 9026 | #endif | 9320 | #endif |
| 9027 | break; | 9321 | break; |
| 9028 | 9322 | ||
| @@ -9031,40 +9325,40 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
| 9031 | break; | 9325 | break; |
| 9032 | #endif | 9326 | #endif |
| 9033 | case BC_IITERL: | 9327 | case BC_IITERL: |
| 9034 | dasm_put(Dst, 7071, LJ_TNIL); | 9328 | dasm_put(Dst, 7328, LJ_TNIL); |
| 9035 | if (op == BC_JITERL) { | 9329 | if (op == BC_JITERL) { |
| 9036 | dasm_put(Dst, 7078); | 9330 | dasm_put(Dst, 7335, BC_JLOOP); |
| 9037 | } else { | 9331 | } else { |
| 9038 | dasm_put(Dst, 7080, 32-1, -(BCBIAS_J*4 >> 16)); | 9332 | dasm_put(Dst, 7340, 32-1, -(BCBIAS_J*4 >> 16)); |
| 9039 | } | 9333 | } |
| 9040 | dasm_put(Dst, 7088); | 9334 | dasm_put(Dst, 7348); |
| 9041 | break; | 9335 | break; |
| 9042 | 9336 | ||
| 9043 | case BC_LOOP: | 9337 | case BC_LOOP: |
| 9044 | #if LJ_HASJIT | 9338 | #if LJ_HASJIT |
| 9045 | dasm_put(Dst, 7100); | 9339 | dasm_put(Dst, 7360, GG_DISP2HOT, -HOTCOUNT_LOOP); |
| 9046 | #endif | 9340 | #endif |
| 9047 | break; | 9341 | break; |
| 9048 | 9342 | ||
| 9049 | case BC_ILOOP: | 9343 | case BC_ILOOP: |
| 9050 | dasm_put(Dst, 7102); | 9344 | dasm_put(Dst, 7370); |
| 9051 | break; | 9345 | break; |
| 9052 | 9346 | ||
| 9053 | case BC_JLOOP: | 9347 | case BC_JLOOP: |
| 9054 | #if LJ_HASJIT | 9348 | #if LJ_HASJIT |
| 9055 | dasm_put(Dst, 7113); | 9349 | dasm_put(Dst, 7381, DISPATCH_J(trace), 32-1, DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L), GG_DISP2G+32768); |
| 9056 | #endif | 9350 | #endif |
| 9057 | break; | 9351 | break; |
| 9058 | 9352 | ||
| 9059 | case BC_JMP: | 9353 | case BC_JMP: |
| 9060 | dasm_put(Dst, 7115, 32-1, -(BCBIAS_J*4 >> 16)); | 9354 | dasm_put(Dst, 7398, 32-1, -(BCBIAS_J*4 >> 16)); |
| 9061 | break; | 9355 | break; |
| 9062 | 9356 | ||
| 9063 | /* -- Function headers -------------------------------------------------- */ | 9357 | /* -- Function headers -------------------------------------------------- */ |
| 9064 | 9358 | ||
| 9065 | case BC_FUNCF: | 9359 | case BC_FUNCF: |
| 9066 | #if LJ_HASJIT | 9360 | #if LJ_HASJIT |
| 9067 | dasm_put(Dst, 7131); | 9361 | dasm_put(Dst, 7414, GG_DISP2HOT, -HOTCOUNT_CALL); |
| 9068 | #endif | 9362 | #endif |
| 9069 | case BC_FUNCV: /* NYI: compiled vararg functions. */ | 9363 | case BC_FUNCV: /* NYI: compiled vararg functions. */ |
| 9070 | break; | 9364 | break; |
| @@ -9074,38 +9368,42 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
| 9074 | break; | 9368 | break; |
| 9075 | #endif | 9369 | #endif |
| 9076 | case BC_IFUNCF: | 9370 | case BC_IFUNCF: |
| 9077 | dasm_put(Dst, 7133, Dt1(->maxstack), -4+PC2PROTO(numparams), -4+PC2PROTO(k), 31-3); | 9371 | dasm_put(Dst, 7424, Dt1(->maxstack), -4+PC2PROTO(numparams), -4+PC2PROTO(k), 31-3); |
| 9372 | if (op != BC_JFUNCF) { | ||
| 9373 | dasm_put(Dst, 7436); | ||
| 9374 | } | ||
| 9375 | dasm_put(Dst, 7439); | ||
| 9078 | if (op == BC_JFUNCF) { | 9376 | if (op == BC_JFUNCF) { |
| 9079 | dasm_put(Dst, 7151); | 9377 | dasm_put(Dst, 7444, BC_JLOOP); |
| 9080 | } else { | 9378 | } else { |
| 9081 | dasm_put(Dst, 7153); | 9379 | dasm_put(Dst, 7448); |
| 9082 | } | 9380 | } |
| 9083 | dasm_put(Dst, 7162); | 9381 | dasm_put(Dst, 7457); |
| 9084 | break; | 9382 | break; |
| 9085 | 9383 | ||
| 9086 | case BC_JFUNCV: | 9384 | case BC_JFUNCV: |
| 9087 | #if !LJ_HASJIT | 9385 | #if !LJ_HASJIT |
| 9088 | break; | 9386 | break; |
| 9089 | #endif | 9387 | #endif |
| 9090 | dasm_put(Dst, 7168); | 9388 | dasm_put(Dst, 7463); |
| 9091 | break; /* NYI: compiled vararg functions. */ | 9389 | break; /* NYI: compiled vararg functions. */ |
| 9092 | 9390 | ||
| 9093 | case BC_IFUNCV: | 9391 | case BC_IFUNCV: |
| 9094 | dasm_put(Dst, 7170, Dt1(->maxstack), 8+FRAME_VARG, -4+PC2PROTO(k), -4+PC2PROTO(numparams), LJ_TNIL); | 9392 | dasm_put(Dst, 7465, Dt1(->maxstack), 8+FRAME_VARG, -4+PC2PROTO(k), -4+PC2PROTO(numparams), LJ_TNIL); |
| 9095 | break; | 9393 | break; |
| 9096 | 9394 | ||
| 9097 | case BC_FUNCC: | 9395 | case BC_FUNCC: |
| 9098 | case BC_FUNCCW: | 9396 | case BC_FUNCCW: |
| 9099 | if (op == BC_FUNCC) { | 9397 | if (op == BC_FUNCC) { |
| 9100 | dasm_put(Dst, 7223, Dt8(->f)); | 9398 | dasm_put(Dst, 7518, Dt8(->f)); |
| 9101 | } else { | 9399 | } else { |
| 9102 | dasm_put(Dst, 7226, DISPATCH_GL(wrapf)); | 9400 | dasm_put(Dst, 7521, DISPATCH_GL(wrapf)); |
| 9103 | } | 9401 | } |
| 9104 | dasm_put(Dst, 7229, Dt1(->maxstack), Dt1(->base), Dt1(->top), ~LJ_VMST_C); | 9402 | dasm_put(Dst, 7524, Dt1(->maxstack), Dt1(->base), Dt1(->top), ~LJ_VMST_C); |
| 9105 | if (op == BC_FUNCCW) { | 9403 | if (op == BC_FUNCCW) { |
| 9106 | dasm_put(Dst, 7242, Dt8(->f)); | 9404 | dasm_put(Dst, 7537, Dt8(->f)); |
| 9107 | } | 9405 | } |
| 9108 | dasm_put(Dst, 7245, DISPATCH_GL(vmstate), Dt1(->base), 31-3, Dt1(->top), ~LJ_VMST_INTERP, DISPATCH_GL(vmstate)); | 9406 | dasm_put(Dst, 7540, DISPATCH_GL(vmstate), Dt1(->base), 31-3, Dt1(->top), ~LJ_VMST_INTERP, DISPATCH_GL(vmstate)); |
| 9109 | break; | 9407 | break; |
| 9110 | 9408 | ||
| 9111 | /* ---------------------------------------------------------------------- */ | 9409 | /* ---------------------------------------------------------------------- */ |
| @@ -9125,7 +9423,7 @@ static int build_backend(BuildCtx *ctx) | |||
| 9125 | 9423 | ||
| 9126 | build_subroutines(ctx); | 9424 | build_subroutines(ctx); |
| 9127 | 9425 | ||
| 9128 | dasm_put(Dst, 7266); | 9426 | dasm_put(Dst, 7561); |
| 9129 | for (op = 0; op < BC__MAX; op++) | 9427 | for (op = 0; op < BC__MAX; op++) |
| 9130 | build_ins(ctx, (BCOp)op, op); | 9428 | build_ins(ctx, (BCOp)op, op); |
| 9131 | 9429 | ||
