diff options
| -rw-r--r-- | src/buildvm_arm.dasc | 119 | ||||
| -rw-r--r-- | src/buildvm_arm.h | 1214 |
2 files changed, 769 insertions, 564 deletions
diff --git a/src/buildvm_arm.dasc b/src/buildvm_arm.dasc index f2b08ed9..495181a1 100644 --- a/src/buildvm_arm.dasc +++ b/src/buildvm_arm.dasc | |||
| @@ -336,7 +336,8 @@ static void build_subroutines(BuildCtx *ctx) | |||
| 336 | | | 336 | | |
| 337 | |->vm_unwind_ff: // Unwind C stack, return from ff pcall. | 337 | |->vm_unwind_ff: // Unwind C stack, return from ff pcall. |
| 338 | | // (void *cframe) | 338 | | // (void *cframe) |
| 339 | | bic sp, CARG1, #~CFRAME_RAWMASK | 339 | | bic CARG1, CARG1, #~CFRAME_RAWMASK // Use two steps: bic sp is deprecated. |
| 340 | | mov sp, CARG1 | ||
| 340 | |->vm_unwind_ff_eh: // Landing pad for external unwinder. | 341 | |->vm_unwind_ff_eh: // Landing pad for external unwinder. |
| 341 | | ldr L, SAVE_L | 342 | | ldr L, SAVE_L |
| 342 | | mov MASKR8, #255 | 343 | | mov MASKR8, #255 |
| @@ -1921,6 +1922,7 @@ static void build_subroutines(BuildCtx *ctx) | |||
| 1921 | | sub NARGS8:RC, CARG4, BASE | 1922 | | sub NARGS8:RC, CARG4, BASE |
| 1922 | | str CARG2, SAVE_PC // Invalidate for subsequent line hook. | 1923 | | str CARG2, SAVE_PC // Invalidate for subsequent line hook. |
| 1923 | | ldr LFUNC:CARG3, [BASE, FRAME_FUNC] | 1924 | | ldr LFUNC:CARG3, [BASE, FRAME_FUNC] |
| 1925 | | ldr INS, [PC, #-4] | ||
| 1924 | | bx CRET1 | 1926 | | bx CRET1 |
| 1925 | | | 1927 | | |
| 1926 | |//----------------------------------------------------------------------- | 1928 | |//----------------------------------------------------------------------- |
| @@ -1929,11 +1931,74 @@ static void build_subroutines(BuildCtx *ctx) | |||
| 1929 | | | 1931 | | |
| 1930 | |->vm_exit_handler: | 1932 | |->vm_exit_handler: |
| 1931 | #if LJ_HASJIT | 1933 | #if LJ_HASJIT |
| 1932 | | NYI | 1934 | | sub sp, sp, #12 |
| 1935 | | push {r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12} | ||
| 1936 | | ldr CARG1, [sp, #64] // Load original value of lr. | ||
| 1937 | | ldr DISPATCH, [lr] // Load DISPATCH. | ||
| 1938 | | add CARG3, sp, #64 // Recompute original value of sp. | ||
| 1939 | | mv_vmstate CARG4, EXIT | ||
| 1940 | | str CARG3, [sp, #52] // Store sp in RID_SP | ||
| 1941 | | st_vmstate CARG4 | ||
| 1942 | | ldr CARG2, [CARG1, #-4]! // Get exit instruction. | ||
| 1943 | | str CARG1, [sp, #56] // Store exit pc in RID_LR and RID_PC. | ||
| 1944 | | str CARG1, [sp, #60] | ||
| 1945 | | lsl CARG2, CARG2, #8 | ||
| 1946 | | add CARG1, CARG1, CARG2, asr #6 | ||
| 1947 | | ldr CARG2, [lr, #4] // Load exit stub group offset. | ||
| 1948 | | sub CARG1, CARG1, lr | ||
| 1949 | | ldr L, [DISPATCH, #DISPATCH_GL(jit_L)] | ||
| 1950 | | add CARG1, CARG2, CARG1, lsr #2 // Compute exit number. | ||
| 1951 | | ldr BASE, [DISPATCH, #DISPATCH_GL(jit_base)] | ||
| 1952 | | str CARG1, [DISPATCH, #DISPATCH_J(exitno)] | ||
| 1953 | | mov CARG4, #0 | ||
| 1954 | | str L, [DISPATCH, #DISPATCH_J(L)] | ||
| 1955 | | str BASE, L->base | ||
| 1956 | | str CARG4, [DISPATCH, #DISPATCH_GL(jit_L)] | ||
| 1957 | | sub CARG1, DISPATCH, #-GG_DISP2J | ||
| 1958 | | mov CARG2, sp | ||
| 1959 | | bl extern lj_trace_exit // (jit_State *J, ExitState *ex) | ||
| 1960 | | // Returns MULTRES (unscaled) or negated error code. | ||
| 1961 | | ldr CARG2, L->cframe | ||
| 1962 | | ldr BASE, L->base | ||
| 1963 | | bic CARG2, CARG2, #~CFRAME_RAWMASK // Use two steps: bic sp is deprecated. | ||
| 1964 | | mov sp, CARG2 | ||
| 1965 | | ldr PC, SAVE_PC // Get SAVE_PC. | ||
| 1966 | | str L, SAVE_L // Set SAVE_L (on-trace resume/yield). | ||
| 1967 | | b >1 | ||
| 1933 | #endif | 1968 | #endif |
| 1934 | |->vm_exit_interp: | 1969 | |->vm_exit_interp: |
| 1970 | | // CARG1 = MULTRES or negated error code, BASE, PC and DISPATCH set. | ||
| 1935 | #if LJ_HASJIT | 1971 | #if LJ_HASJIT |
| 1936 | | NYI | 1972 | | ldr L, SAVE_L |
| 1973 | |1: | ||
| 1974 | | cmp CARG1, #0 | ||
| 1975 | | blt >3 // Check for error from exit. | ||
| 1976 | | lsl RC, CARG1, #3 | ||
| 1977 | | ldr LFUNC:CARG2, [BASE, FRAME_FUNC] | ||
| 1978 | | str RC, SAVE_MULTRES | ||
| 1979 | | mov CARG3, #0 | ||
| 1980 | | ldr CARG2, LFUNC:CARG2->field_pc | ||
| 1981 | | str CARG3, [DISPATCH, #DISPATCH_GL(jit_L)] | ||
| 1982 | | mv_vmstate CARG4, INTERP | ||
| 1983 | | ldr KBASE, [CARG2, #PC2PROTO(k)] | ||
| 1984 | | // Modified copy of ins_next which handles function header dispatch, too. | ||
| 1985 | | ldrb OP, [PC] | ||
| 1986 | | mov MASKR8, #255 | ||
| 1987 | | ldr INS, [PC], #4 | ||
| 1988 | | lsl MASKR8, MASKR8, #3 // MASKR8 = 255*8. | ||
| 1989 | | st_vmstate CARG4 | ||
| 1990 | | cmp OP, #BC_FUNCF // Function header? | ||
| 1991 | | ldr OP, [DISPATCH, OP, lsl #2] | ||
| 1992 | | decode_RA8 RA, INS | ||
| 1993 | | lsrlo RC, INS, #16 // No: Decode operands A*8 and D. | ||
| 1994 | | subhs RC, RC, #8 | ||
| 1995 | | addhs RA, RA, BASE // Yes: RA = BASE+framesize*8, RC = nargs*8 | ||
| 1996 | | bx OP | ||
| 1997 | | | ||
| 1998 | |3: // Rethrow error from the right C frame. | ||
| 1999 | | rsb CARG2, CARG1, #0 | ||
| 2000 | | mov CARG1, L | ||
| 2001 | | bl extern lj_err_throw // (lua_State *L, int errcode) | ||
| 1937 | #endif | 2002 | #endif |
| 1938 | | | 2003 | | |
| 1939 | |//----------------------------------------------------------------------- | 2004 | |//----------------------------------------------------------------------- |
| @@ -1945,7 +2010,8 @@ static void build_subroutines(BuildCtx *ctx) | |||
| 1945 | |// double lj_vm_floor/ceil/trunc(double x); | 2010 | |// double lj_vm_floor/ceil/trunc(double x); |
| 1946 | |.macro vm_round, func | 2011 | |.macro vm_round, func |
| 1947 | |->vm_ .. func: | 2012 | |->vm_ .. func: |
| 1948 | | NYI | 2013 | | // NYI: Use internal implementation. |
| 2014 | | b extern func | ||
| 1949 | |.endmacro | 2015 | |.endmacro |
| 1950 | | | 2016 | | |
| 1951 | | vm_round floor | 2017 | | vm_round floor |
| @@ -2022,7 +2088,30 @@ static void build_subroutines(BuildCtx *ctx) | |||
| 2022 | | eorlo CARG2, CARG2, #0x80000000 | 2088 | | eorlo CARG2, CARG2, #0x80000000 |
| 2023 | | biceq CARG2, CARG2, #0x80000000 | 2089 | | biceq CARG2, CARG2, #0x80000000 |
| 2024 | | bxls lr | 2090 | | bxls lr |
| 2091 | #if LJ_HASJIT | ||
| 2092 | | cmp OP, #9 | ||
| 2093 | | blo extern atan2 | ||
| 2094 | | beq >9 // No support needed for IR_LDEXP. | ||
| 2095 | | cmp OP, #11 | ||
| 2096 | | bhi >9 | ||
| 2097 | | push {r4, lr} | ||
| 2098 | | beq >1 | ||
| 2099 | | // IR_MIN | ||
| 2100 | | bl extern __aeabi_cdcmple | ||
| 2101 | | movhi CARG1, CARG3 | ||
| 2102 | | movhi CARG2, CARG4 | ||
| 2103 | | pop {r4, pc} | ||
| 2104 | |9: | ||
| 2105 | | NYI // Bad op. | ||
| 2106 | | | ||
| 2107 | |1: // IR_MAX | ||
| 2108 | | bl extern __aeabi_cdcmple | ||
| 2109 | | movlo CARG1, CARG3 | ||
| 2110 | | movlo CARG2, CARG4 | ||
| 2111 | | pop {r4, pc} | ||
| 2112 | #else | ||
| 2025 | | NYI // Other operations only needed by JIT compiler. | 2113 | | NYI // Other operations only needed by JIT compiler. |
| 2114 | #endif | ||
| 2026 | | | 2115 | | |
| 2027 | |//----------------------------------------------------------------------- | 2116 | |//----------------------------------------------------------------------- |
| 2028 | |//-- Miscellaneous functions -------------------------------------------- | 2117 | |//-- Miscellaneous functions -------------------------------------------- |
| @@ -3568,13 +3657,10 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
| 3568 | if (op == BC_FORI) { | 3657 | if (op == BC_FORI) { |
| 3569 | | subgt PC, RC, #0x20000 | 3658 | | subgt PC, RC, #0x20000 |
| 3570 | } else if (op == BC_JFORI) { | 3659 | } else if (op == BC_JFORI) { |
| 3571 | | subgt PC, RC, #0x20000 | 3660 | | sub PC, RC, #0x20000 |
| 3572 | | decode_RD RC, INS | 3661 | | ldrhle RC, [PC, #-2] |
| 3573 | | ble =>BC_JLOOP | ||
| 3574 | } else if (op == BC_IFORL) { | 3662 | } else if (op == BC_IFORL) { |
| 3575 | | suble PC, RC, #0x20000 | 3663 | | suble PC, RC, #0x20000 |
| 3576 | } else { | ||
| 3577 | | ble =>BC_JLOOP | ||
| 3578 | } | 3664 | } |
| 3579 | if (vk) { | 3665 | if (vk) { |
| 3580 | | strd CARG12, FOR_IDX | 3666 | | strd CARG12, FOR_IDX |
| @@ -3583,6 +3669,9 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
| 3583 | | ins_next1 | 3669 | | ins_next1 |
| 3584 | | ins_next2 | 3670 | | ins_next2 |
| 3585 | | strd CARG12, FOR_EXT | 3671 | | strd CARG12, FOR_EXT |
| 3672 | if (op == BC_JFORI || op == BC_JFORL) { | ||
| 3673 | | ble =>BC_JLOOP | ||
| 3674 | } | ||
| 3586 | |3: | 3675 | |3: |
| 3587 | | ins_next3 | 3676 | | ins_next3 |
| 3588 | | | 3677 | | |
| @@ -3616,8 +3705,8 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
| 3616 | if (op == BC_FORI) { | 3705 | if (op == BC_FORI) { |
| 3617 | | subhi PC, RC, #0x20000 | 3706 | | subhi PC, RC, #0x20000 |
| 3618 | } else if (op == BC_JFORI) { | 3707 | } else if (op == BC_JFORI) { |
| 3619 | | subhi PC, RC, #0x20000 | 3708 | | sub PC, RC, #0x20000 |
| 3620 | | decode_RD RC, INS | 3709 | | ldrhls RC, [PC, #-2] |
| 3621 | | bls =>BC_JLOOP | 3710 | | bls =>BC_JLOOP |
| 3622 | } else if (op == BC_IFORL) { | 3711 | } else if (op == BC_IFORL) { |
| 3623 | | subls PC, RC, #0x20000 | 3712 | | subls PC, RC, #0x20000 |
| @@ -3687,7 +3776,9 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
| 3687 | #if LJ_HASJIT | 3776 | #if LJ_HASJIT |
| 3688 | | // RA = base (ignored), RC = traceno | 3777 | | // RA = base (ignored), RC = traceno |
| 3689 | | ldr CARG1, [DISPATCH, #DISPATCH_J(trace)] | 3778 | | ldr CARG1, [DISPATCH, #DISPATCH_J(trace)] |
| 3779 | | mov CARG2, #0 // Traces on ARM don't store the trace number, so use 0. | ||
| 3690 | | ldr TRACE:RC, [CARG1, RC, lsl #2] | 3780 | | ldr TRACE:RC, [CARG1, RC, lsl #2] |
| 3781 | | st_vmstate CARG2 | ||
| 3691 | | ldr RA, TRACE:RC->mcode | 3782 | | ldr RA, TRACE:RC->mcode |
| 3692 | | str BASE, [DISPATCH, #DISPATCH_GL(jit_base)] | 3783 | | str BASE, [DISPATCH, #DISPATCH_GL(jit_base)] |
| 3693 | | str L, [DISPATCH, #DISPATCH_GL(jit_L)] | 3784 | | str L, [DISPATCH, #DISPATCH_GL(jit_L)] |
| @@ -3723,8 +3814,10 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
| 3723 | | ldr KBASE, [PC, #-4+PC2PROTO(k)] | 3814 | | ldr KBASE, [PC, #-4+PC2PROTO(k)] |
| 3724 | | cmp RA, CARG1 | 3815 | | cmp RA, CARG1 |
| 3725 | | bhi ->vm_growstack_l | 3816 | | bhi ->vm_growstack_l |
| 3726 | | ins_next1 | 3817 | if (op != BC_JFUNCF) { |
| 3727 | | ins_next2 | 3818 | | ins_next1 |
| 3819 | | ins_next2 | ||
| 3820 | } | ||
| 3728 | |2: | 3821 | |2: |
| 3729 | | cmp NARGS8:RC, CARG2, lsl #3 // Check for missing parameters. | 3822 | | cmp NARGS8:RC, CARG2, lsl #3 // Check for missing parameters. |
| 3730 | | mvn CARG4, #~LJ_TNIL | 3823 | | mvn CARG4, #~LJ_TNIL |
diff --git a/src/buildvm_arm.h b/src/buildvm_arm.h index 8189fdb4..f3b38d1d 100644 --- a/src/buildvm_arm.h +++ b/src/buildvm_arm.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[5505] = { | 15 | static const unsigned int build_actionlist[5614] = { |
| 16 | 0x00010001, | 16 | 0x00010001, |
| 17 | 0x00060014, | 17 | 0x00060014, |
| 18 | 0xe3160000, | 18 | 0xe3160000, |
| @@ -121,8 +121,9 @@ static const unsigned int build_actionlist[5505] = { | |||
| 121 | 0x0005001a, | 121 | 0x0005001a, |
| 122 | 0x0006001d, | 122 | 0x0006001d, |
| 123 | 0x00000000, | 123 | 0x00000000, |
| 124 | 0xe3c0d000, | 124 | 0xe3c00000, |
| 125 | 0x000a0000, | 125 | 0x000a0000, |
| 126 | 0xe1a0d000, | ||
| 126 | 0x0006001e, | 127 | 0x0006001e, |
| 127 | 0xe59d800c, | 128 | 0xe59d800c, |
| 128 | 0xe3a040ff, | 129 | 0xe3a040ff, |
| @@ -2869,29 +2870,114 @@ static const unsigned int build_actionlist[5505] = { | |||
| 2869 | 0xe043b009, | 2870 | 0xe043b009, |
| 2870 | 0xe58d1008, | 2871 | 0xe58d1008, |
| 2871 | 0xe5192008, | 2872 | 0xe5192008, |
| 2873 | 0xe516e004, | ||
| 2872 | 0xe12fff10, | 2874 | 0xe12fff10, |
| 2873 | 0x00060091, | 2875 | 0x00060091, |
| 2874 | 0x00000000, | 2876 | 0x00000000, |
| 2875 | 0xe7f001f0, | 2877 | 0xe24dd00c, |
| 2878 | 0xe92d1fff, | ||
| 2879 | 0xe59d0040, | ||
| 2880 | 0xe59e7000, | ||
| 2881 | 0xe28d2040, | ||
| 2882 | 0xe3e03000, | ||
| 2883 | 0x000a0000, | ||
| 2884 | 0xe58d2034, | ||
| 2885 | 0xe5073000, | ||
| 2886 | 0x000d8180, | ||
| 2887 | 0xe5301004, | ||
| 2888 | 0xe58d0038, | ||
| 2889 | 0xe58d003c, | ||
| 2890 | 0xe1a01401, | ||
| 2891 | 0xe0800341, | ||
| 2892 | 0xe59e1004, | ||
| 2893 | 0xe040000e, | ||
| 2894 | 0xe5178000, | ||
| 2895 | 0x000d8180, | ||
| 2896 | 0xe0810120, | ||
| 2897 | 0xe5179000, | ||
| 2898 | 0x000d8180, | ||
| 2899 | 0xe5070000, | ||
| 2900 | 0x000d8180, | ||
| 2901 | 0xe3a03000, | ||
| 2902 | 0xe5078000, | ||
| 2903 | 0x000d8180, | ||
| 2904 | 0xe5089000, | ||
| 2905 | 0x000d8180, | ||
| 2906 | 0xe5073000, | ||
| 2907 | 0x000d8180, | ||
| 2908 | 0xe2470000, | ||
| 2909 | 0x000a0000, | ||
| 2910 | 0xe1a0100d, | ||
| 2911 | 0xeb000000, | ||
| 2912 | 0x0003002d, | ||
| 2913 | 0xe5181000, | ||
| 2914 | 0x000d8180, | ||
| 2915 | 0xe5189000, | ||
| 2916 | 0x000d8180, | ||
| 2917 | 0xe3c11000, | ||
| 2918 | 0x000a0000, | ||
| 2919 | 0xe1a0d001, | ||
| 2920 | 0xe59d6008, | ||
| 2921 | 0xe58d800c, | ||
| 2922 | 0xea000000, | ||
| 2923 | 0x00050001, | ||
| 2876 | 0x00000000, | 2924 | 0x00000000, |
| 2877 | 0x00060092, | 2925 | 0x00060092, |
| 2878 | 0x00000000, | 2926 | 0x00000000, |
| 2879 | 0xe7f001f0, | 2927 | 0xe59d800c, |
| 2928 | 0x0006000b, | ||
| 2929 | 0xe3500000, | ||
| 2930 | 0xba000000, | ||
| 2931 | 0x00050003, | ||
| 2932 | 0xe1a0b180, | ||
| 2933 | 0xe5191008, | ||
| 2934 | 0xe58db004, | ||
| 2935 | 0xe3a02000, | ||
| 2936 | 0xe5111000, | ||
| 2937 | 0x000d8180, | ||
| 2938 | 0xe5072000, | ||
| 2939 | 0x000d8180, | ||
| 2940 | 0xe3e03000, | ||
| 2941 | 0x000a0000, | ||
| 2942 | 0xe5115000, | ||
| 2943 | 0x000d8180, | ||
| 2944 | 0xe5d6c000, | ||
| 2945 | 0xe3a040ff, | ||
| 2946 | 0xe496e004, | ||
| 2947 | 0xe1a04184, | ||
| 2948 | 0xe5073000, | ||
| 2949 | 0x000d8180, | ||
| 2950 | 0xe35c0000, | ||
| 2951 | 0x000a0000, | ||
| 2952 | 0xe797c10c, | ||
| 2953 | 0xe004a2ae, | ||
| 2954 | 0x31a0b82e, | ||
| 2955 | 0x224bb008, | ||
| 2956 | 0x208aa009, | ||
| 2957 | 0xe12fff1c, | ||
| 2958 | 0x0006000d, | ||
| 2959 | 0xe2601000, | ||
| 2960 | 0xe1a00008, | ||
| 2961 | 0xeb000000, | ||
| 2962 | 0x0003002e, | ||
| 2880 | 0x00000000, | 2963 | 0x00000000, |
| 2881 | 0x00060093, | 2964 | 0x00060093, |
| 2882 | 0xe7f001f0, | 2965 | 0xea000000, |
| 2966 | 0x0003000f, | ||
| 2883 | 0x00060094, | 2967 | 0x00060094, |
| 2884 | 0xe7f001f0, | 2968 | 0xea000000, |
| 2969 | 0x00030010, | ||
| 2885 | 0x00000000, | 2970 | 0x00000000, |
| 2886 | 0x00060095, | 2971 | 0x00060095, |
| 2887 | 0xe7f001f0, | 2972 | 0xea000000, |
| 2973 | 0x0003002f, | ||
| 2888 | 0x00000000, | 2974 | 0x00000000, |
| 2889 | 0x00060095, | 2975 | 0x00060095, |
| 2890 | 0x00000000, | 2976 | 0x00000000, |
| 2891 | 0x00060096, | 2977 | 0x00060096, |
| 2892 | 0xe92d401f, | 2978 | 0xe92d401f, |
| 2893 | 0xeb000000, | 2979 | 0xeb000000, |
| 2894 | 0x0003002d, | 2980 | 0x00030030, |
| 2895 | 0xeb000000, | 2981 | 0xeb000000, |
| 2896 | 0x0003000f, | 2982 | 0x0003000f, |
| 2897 | 0xe1cd20d8, | 2983 | 0xe1cd20d8, |
| @@ -2900,7 +2986,7 @@ static const unsigned int build_actionlist[5505] = { | |||
| 2900 | 0xe1cd20d0, | 2986 | 0xe1cd20d0, |
| 2901 | 0xe2211480, | 2987 | 0xe2211480, |
| 2902 | 0xeb000000, | 2988 | 0xeb000000, |
| 2903 | 0x0003002e, | 2989 | 0x00030031, |
| 2904 | 0xe28dd014, | 2990 | 0xe28dd014, |
| 2905 | 0xe8bd8000, | 2991 | 0xe8bd8000, |
| 2906 | 0x00060097, | 2992 | 0x00060097, |
| @@ -2937,25 +3023,17 @@ static const unsigned int build_actionlist[5505] = { | |||
| 2937 | 0x42600000, | 3023 | 0x42600000, |
| 2938 | 0xe12fff1e, | 3024 | 0xe12fff1e, |
| 2939 | 0x00060098, | 3025 | 0x00060098, |
| 2940 | 0x00000000, | ||
| 2941 | 0xe7f001f0, | ||
| 2942 | 0x00000000, | ||
| 2943 | 0x00060099, | ||
| 2944 | 0x00000000, | ||
| 2945 | 0xe7f001f0, | ||
| 2946 | 0x00000000, | ||
| 2947 | 0x0006009a, | ||
| 2948 | 0xe59dc000, | 3026 | 0xe59dc000, |
| 2949 | 0xe35c0001, | 3027 | 0xe35c0001, |
| 2950 | 0x3a000000, | 3028 | 0x3a000000, |
| 2951 | 0x0003002e, | 3029 | 0x00030031, |
| 2952 | 0x0a000000, | 3030 | 0x0a000000, |
| 2953 | 0x0003002f, | 3031 | 0x00030032, |
| 2954 | 0xe35c0003, | 3032 | 0xe35c0003, |
| 2955 | 0x3a000000, | 3033 | 0x3a000000, |
| 2956 | 0x00030021, | 3034 | 0x00030021, |
| 2957 | 0x0a000000, | 3035 | 0x0a000000, |
| 2958 | 0x0003002d, | 3036 | 0x00030030, |
| 2959 | 0xe35c0005, | 3037 | 0xe35c0005, |
| 2960 | 0x3a000000, | 3038 | 0x3a000000, |
| 2961 | 0x00050096, | 3039 | 0x00050096, |
| @@ -2965,8 +3043,35 @@ static const unsigned int build_actionlist[5505] = { | |||
| 2965 | 0x32211480, | 3043 | 0x32211480, |
| 2966 | 0x03c11480, | 3044 | 0x03c11480, |
| 2967 | 0x912fff1e, | 3045 | 0x912fff1e, |
| 3046 | 0x00000000, | ||
| 3047 | 0xe35c0009, | ||
| 3048 | 0x3a000000, | ||
| 3049 | 0x0003001f, | ||
| 3050 | 0x0a000000, | ||
| 3051 | 0x00050009, | ||
| 3052 | 0xe35c000b, | ||
| 3053 | 0x8a000000, | ||
| 3054 | 0x00050009, | ||
| 3055 | 0xe92d4010, | ||
| 3056 | 0x0a000000, | ||
| 3057 | 0x00050001, | ||
| 3058 | 0xeb000000, | ||
| 3059 | 0x00030026, | ||
| 3060 | 0x81a00002, | ||
| 3061 | 0x81a01003, | ||
| 3062 | 0xe8bd8010, | ||
| 3063 | 0x00060013, | ||
| 2968 | 0xe7f001f0, | 3064 | 0xe7f001f0, |
| 2969 | 0x0006009b, | 3065 | 0x0006000b, |
| 3066 | 0xeb000000, | ||
| 3067 | 0x00030026, | ||
| 3068 | 0x31a00002, | ||
| 3069 | 0x31a01003, | ||
| 3070 | 0xe8bd8010, | ||
| 3071 | 0x00000000, | ||
| 3072 | 0xe7f001f0, | ||
| 3073 | 0x00000000, | ||
| 3074 | 0x00060099, | ||
| 2970 | 0x00000000, | 3075 | 0x00000000, |
| 2971 | 0xe92d4830, | 3076 | 0xe92d4830, |
| 2972 | 0xe1a04000, | 3077 | 0xe1a04000, |
| @@ -3091,10 +3196,10 @@ static const unsigned int build_actionlist[5505] = { | |||
| 3091 | 0x000a0000, | 3196 | 0x000a0000, |
| 3092 | 0x00000000, | 3197 | 0x00000000, |
| 3093 | 0x9a000000, | 3198 | 0x9a000000, |
| 3094 | 0x0005009c, | 3199 | 0x0005009a, |
| 3095 | 0x00000000, | 3200 | 0x00000000, |
| 3096 | 0x9a000000, | 3201 | 0x9a000000, |
| 3097 | 0x0005009d, | 3202 | 0x0005009b, |
| 3098 | 0x00000000, | 3203 | 0x00000000, |
| 3099 | 0xe3710000, | 3204 | 0xe3710000, |
| 3100 | 0x000a0000, | 3205 | 0x000a0000, |
| @@ -3212,9 +3317,9 @@ static const unsigned int build_actionlist[5505] = { | |||
| 3212 | 0xe2866004, | 3317 | 0xe2866004, |
| 3213 | 0xe086c10c, | 3318 | 0xe086c10c, |
| 3214 | 0x00000000, | 3319 | 0x00000000, |
| 3215 | 0x0006009c, | 3320 | 0x0006009a, |
| 3216 | 0x00000000, | 3321 | 0x00000000, |
| 3217 | 0x0006009d, | 3322 | 0x0006009b, |
| 3218 | 0x00000000, | 3323 | 0x00000000, |
| 3219 | 0xe3710000, | 3324 | 0xe3710000, |
| 3220 | 0x000a0000, | 3325 | 0x000a0000, |
| @@ -3263,7 +3368,7 @@ static const unsigned int build_actionlist[5505] = { | |||
| 3263 | 0xe1cb20d0, | 3368 | 0xe1cb20d0, |
| 3264 | 0x0006000f, | 3369 | 0x0006000f, |
| 3265 | 0xeb000000, | 3370 | 0xeb000000, |
| 3266 | 0x00030030, | 3371 | 0x00030033, |
| 3267 | 0x00000000, | 3372 | 0x00000000, |
| 3268 | 0x024a6b80, | 3373 | 0x024a6b80, |
| 3269 | 0x00000000, | 3374 | 0x00000000, |
| @@ -3500,7 +3605,7 @@ static const unsigned int build_actionlist[5505] = { | |||
| 3500 | 0x0005003e, | 3605 | 0x0005003e, |
| 3501 | 0x00000000, | 3606 | 0x00000000, |
| 3502 | 0xeb000000, | 3607 | 0xeb000000, |
| 3503 | 0x0003002e, | 3608 | 0x00030031, |
| 3504 | 0xe5d6c000, | 3609 | 0xe5d6c000, |
| 3505 | 0xea000000, | 3610 | 0xea000000, |
| 3506 | 0x0005000e, | 3611 | 0x0005000e, |
| @@ -3591,7 +3696,7 @@ static const unsigned int build_actionlist[5505] = { | |||
| 3591 | 0x0005003e, | 3696 | 0x0005003e, |
| 3592 | 0x00000000, | 3697 | 0x00000000, |
| 3593 | 0xeb000000, | 3698 | 0xeb000000, |
| 3594 | 0x0003002f, | 3699 | 0x00030032, |
| 3595 | 0xe5d6c000, | 3700 | 0xe5d6c000, |
| 3596 | 0xea000000, | 3701 | 0xea000000, |
| 3597 | 0x0005000e, | 3702 | 0x0005000e, |
| @@ -3740,7 +3845,7 @@ static const unsigned int build_actionlist[5505] = { | |||
| 3740 | 0x0005003e, | 3845 | 0x0005003e, |
| 3741 | 0x00000000, | 3846 | 0x00000000, |
| 3742 | 0xeb000000, | 3847 | 0xeb000000, |
| 3743 | 0x0003002d, | 3848 | 0x00030030, |
| 3744 | 0xe5d6c000, | 3849 | 0xe5d6c000, |
| 3745 | 0xe496e004, | 3850 | 0xe496e004, |
| 3746 | 0xe18900fa, | 3851 | 0xe18900fa, |
| @@ -3924,7 +4029,7 @@ static const unsigned int build_actionlist[5505] = { | |||
| 3924 | 0xe58d6008, | 4029 | 0xe58d6008, |
| 3925 | 0xe1a021a2, | 4030 | 0xe1a021a2, |
| 3926 | 0xeb000000, | 4031 | 0xeb000000, |
| 3927 | 0x00030031, | 4032 | 0x00030034, |
| 3928 | 0xe5189000, | 4033 | 0xe5189000, |
| 3929 | 0x000d8180, | 4034 | 0x000d8180, |
| 3930 | 0xe3500000, | 4035 | 0xe3500000, |
| @@ -4073,11 +4178,11 @@ static const unsigned int build_actionlist[5505] = { | |||
| 4073 | 0x0005000b, | 4178 | 0x0005000b, |
| 4074 | 0xe1a0b009, | 4179 | 0xe1a0b009, |
| 4075 | 0xeb000000, | 4180 | 0xeb000000, |
| 4076 | 0x00030032, | 4181 | 0x00030035, |
| 4077 | 0xe1a0900b, | 4182 | 0xe1a0900b, |
| 4078 | 0x00000000, | 4183 | 0x00000000, |
| 4079 | 0x1b000000, | 4184 | 0x1b000000, |
| 4080 | 0x00030032, | 4185 | 0x00030035, |
| 4081 | 0x00000000, | 4186 | 0x00000000, |
| 4082 | 0xea000000, | 4187 | 0xea000000, |
| 4083 | 0x0005000b, | 4188 | 0x0005000b, |
| @@ -4122,11 +4227,11 @@ static const unsigned int build_actionlist[5505] = { | |||
| 4122 | 0x0005000b, | 4227 | 0x0005000b, |
| 4123 | 0xe1a0b009, | 4228 | 0xe1a0b009, |
| 4124 | 0xeb000000, | 4229 | 0xeb000000, |
| 4125 | 0x00030032, | 4230 | 0x00030035, |
| 4126 | 0xe1a0900b, | 4231 | 0xe1a0900b, |
| 4127 | 0x00000000, | 4232 | 0x00000000, |
| 4128 | 0x1b000000, | 4233 | 0x1b000000, |
| 4129 | 0x00030032, | 4234 | 0x00030035, |
| 4130 | 0x00000000, | 4235 | 0x00000000, |
| 4131 | 0xea000000, | 4236 | 0xea000000, |
| 4132 | 0x0005000b, | 4237 | 0x0005000b, |
| @@ -4176,7 +4281,7 @@ static const unsigned int build_actionlist[5505] = { | |||
| 4176 | 0xe1a00008, | 4281 | 0xe1a00008, |
| 4177 | 0xe089100a, | 4282 | 0xe089100a, |
| 4178 | 0xeb000000, | 4283 | 0xeb000000, |
| 4179 | 0x00030033, | 4284 | 0x00030036, |
| 4180 | 0xe5189000, | 4285 | 0xe5189000, |
| 4181 | 0x000d8180, | 4286 | 0x000d8180, |
| 4182 | 0x0006000b, | 4287 | 0x0006000b, |
| @@ -4195,7 +4300,7 @@ static const unsigned int build_actionlist[5505] = { | |||
| 4195 | 0xe5192008, | 4300 | 0xe5192008, |
| 4196 | 0xe1a00008, | 4301 | 0xe1a00008, |
| 4197 | 0xeb000000, | 4302 | 0xeb000000, |
| 4198 | 0x00030034, | 4303 | 0x00030037, |
| 4199 | 0xe5189000, | 4304 | 0xe5189000, |
| 4200 | 0x000d8180, | 4305 | 0x000d8180, |
| 4201 | 0xe3e01000, | 4306 | 0xe3e01000, |
| @@ -4230,11 +4335,11 @@ static const unsigned int build_actionlist[5505] = { | |||
| 4230 | 0xe37b0001, | 4335 | 0xe37b0001, |
| 4231 | 0x02811002, | 4336 | 0x02811002, |
| 4232 | 0xeb000000, | 4337 | 0xeb000000, |
| 4233 | 0x00030035, | 4338 | 0x00030038, |
| 4234 | 0x00000000, | 4339 | 0x00000000, |
| 4235 | 0xe795110b, | 4340 | 0xe795110b, |
| 4236 | 0xeb000000, | 4341 | 0xeb000000, |
| 4237 | 0x00030036, | 4342 | 0x00030039, |
| 4238 | 0x00000000, | 4343 | 0x00000000, |
| 4239 | 0xe5189000, | 4344 | 0xe5189000, |
| 4240 | 0x000d8180, | 4345 | 0x000d8180, |
| @@ -4249,7 +4354,7 @@ static const unsigned int build_actionlist[5505] = { | |||
| 4249 | 0xe12fff1c, | 4354 | 0xe12fff1c, |
| 4250 | 0x0006000f, | 4355 | 0x0006000f, |
| 4251 | 0xeb000000, | 4356 | 0xeb000000, |
| 4252 | 0x00030037, | 4357 | 0x0003003a, |
| 4253 | 0xe1a00008, | 4358 | 0xe1a00008, |
| 4254 | 0xea000000, | 4359 | 0xea000000, |
| 4255 | 0x0005000b, | 4360 | 0x0005000b, |
| @@ -4261,10 +4366,10 @@ static const unsigned int build_actionlist[5505] = { | |||
| 4261 | 0xe795b10b, | 4366 | 0xe795b10b, |
| 4262 | 0x00000000, | 4367 | 0x00000000, |
| 4263 | 0xea000000, | 4368 | 0xea000000, |
| 4264 | 0x0005009e, | 4369 | 0x0005009c, |
| 4265 | 0x00000000, | 4370 | 0x00000000, |
| 4266 | 0xea000000, | 4371 | 0xea000000, |
| 4267 | 0x0005009f, | 4372 | 0x0005009d, |
| 4268 | 0x00000000, | 4373 | 0x00000000, |
| 4269 | 0xe004caae, | 4374 | 0xe004caae, |
| 4270 | 0xe004b6ae, | 4375 | 0xe004b6ae, |
| @@ -4319,7 +4424,7 @@ static const unsigned int build_actionlist[5505] = { | |||
| 4319 | 0x000a0000, | 4424 | 0x000a0000, |
| 4320 | 0x01a0b002, | 4425 | 0x01a0b002, |
| 4321 | 0x0a000000, | 4426 | 0x0a000000, |
| 4322 | 0x0005009e, | 4427 | 0x0005009c, |
| 4323 | 0xea000000, | 4428 | 0xea000000, |
| 4324 | 0x0005002f, | 4429 | 0x0005002f, |
| 4325 | 0x00000000, | 4430 | 0x00000000, |
| @@ -4332,7 +4437,7 @@ static const unsigned int build_actionlist[5505] = { | |||
| 4332 | 0x000a0000, | 4437 | 0x000a0000, |
| 4333 | 0x1a000000, | 4438 | 0x1a000000, |
| 4334 | 0x0005002c, | 4439 | 0x0005002c, |
| 4335 | 0x0006009e, | 4440 | 0x0006009c, |
| 4336 | 0xe5102000, | 4441 | 0xe5102000, |
| 4337 | 0x000d8180, | 4442 | 0x000d8180, |
| 4338 | 0xe51b3000, | 4443 | 0xe51b3000, |
| @@ -4510,7 +4615,7 @@ static const unsigned int build_actionlist[5505] = { | |||
| 4510 | 0x000a0000, | 4615 | 0x000a0000, |
| 4511 | 0x01a0b002, | 4616 | 0x01a0b002, |
| 4512 | 0x0a000000, | 4617 | 0x0a000000, |
| 4513 | 0x0005009f, | 4618 | 0x0005009d, |
| 4514 | 0xea000000, | 4619 | 0xea000000, |
| 4515 | 0x00050033, | 4620 | 0x00050033, |
| 4516 | 0x00000000, | 4621 | 0x00000000, |
| @@ -4523,7 +4628,7 @@ static const unsigned int build_actionlist[5505] = { | |||
| 4523 | 0x000a0000, | 4628 | 0x000a0000, |
| 4524 | 0x1a000000, | 4629 | 0x1a000000, |
| 4525 | 0x00050030, | 4630 | 0x00050030, |
| 4526 | 0x0006009f, | 4631 | 0x0006009d, |
| 4527 | 0xe5102000, | 4632 | 0xe5102000, |
| 4528 | 0x000d8180, | 4633 | 0x000d8180, |
| 4529 | 0xe51b3000, | 4634 | 0xe51b3000, |
| @@ -4612,7 +4717,7 @@ static const unsigned int build_actionlist[5505] = { | |||
| 4612 | 0xe1a0100c, | 4717 | 0xe1a0100c, |
| 4613 | 0xe58d3004, | 4718 | 0xe58d3004, |
| 4614 | 0xeb000000, | 4719 | 0xeb000000, |
| 4615 | 0x00030038, | 4720 | 0x0003003b, |
| 4616 | 0xe5189000, | 4721 | 0xe5189000, |
| 4617 | 0x000d8180, | 4722 | 0x000d8180, |
| 4618 | 0xe18920da, | 4723 | 0xe18920da, |
| @@ -4743,7 +4848,7 @@ static const unsigned int build_actionlist[5505] = { | |||
| 4743 | 0xe1a00008, | 4848 | 0xe1a00008, |
| 4744 | 0xe58d6008, | 4849 | 0xe58d6008, |
| 4745 | 0xeb000000, | 4850 | 0xeb000000, |
| 4746 | 0x00030039, | 4851 | 0x0003003c, |
| 4747 | 0x00000000, | 4852 | 0x00000000, |
| 4748 | 0xe5189000, | 4853 | 0xe5189000, |
| 4749 | 0x000d8180, | 4854 | 0x000d8180, |
| @@ -4768,10 +4873,10 @@ static const unsigned int build_actionlist[5505] = { | |||
| 4768 | 0xe004b6ae, | 4873 | 0xe004b6ae, |
| 4769 | 0xe08bb000, | 4874 | 0xe08bb000, |
| 4770 | 0xea000000, | 4875 | 0xea000000, |
| 4771 | 0x000500a0, | 4876 | 0x0005009e, |
| 4772 | 0x00000000, | 4877 | 0x00000000, |
| 4773 | 0xe004b6ae, | 4878 | 0xe004b6ae, |
| 4774 | 0x000600a0, | 4879 | 0x0006009e, |
| 4775 | 0xe1a0c009, | 4880 | 0xe1a0c009, |
| 4776 | 0xe1a920da, | 4881 | 0xe1a920da, |
| 4777 | 0xe24bb008, | 4882 | 0xe24bb008, |
| @@ -4793,10 +4898,10 @@ static const unsigned int build_actionlist[5505] = { | |||
| 4793 | 0xe59d0004, | 4898 | 0xe59d0004, |
| 4794 | 0xe080b18b, | 4899 | 0xe080b18b, |
| 4795 | 0xea000000, | 4900 | 0xea000000, |
| 4796 | 0x000500a1, | 4901 | 0x0005009f, |
| 4797 | 0x00000000, | 4902 | 0x00000000, |
| 4798 | 0xe1a0b18b, | 4903 | 0xe1a0b18b, |
| 4799 | 0x000600a1, | 4904 | 0x0006009f, |
| 4800 | 0xe1aa20d9, | 4905 | 0xe1aa20d9, |
| 4801 | 0xe24bb008, | 4906 | 0xe24bb008, |
| 4802 | 0xe28aa008, | 4907 | 0xe28aa008, |
| @@ -5072,12 +5177,12 @@ static const unsigned int build_actionlist[5505] = { | |||
| 5072 | 0xe089a00a, | 5177 | 0xe089a00a, |
| 5073 | 0xe080b18b, | 5178 | 0xe080b18b, |
| 5074 | 0xea000000, | 5179 | 0xea000000, |
| 5075 | 0x000500a2, | 5180 | 0x000500a0, |
| 5076 | 0x00000000, | 5181 | 0x00000000, |
| 5077 | 0xe5196004, | 5182 | 0xe5196004, |
| 5078 | 0xe1a0b18b, | 5183 | 0xe1a0b18b, |
| 5079 | 0xe089a00a, | 5184 | 0xe089a00a, |
| 5080 | 0x000600a2, | 5185 | 0x000600a0, |
| 5081 | 0xe58db004, | 5186 | 0xe58db004, |
| 5082 | 0x0006000b, | 5187 | 0x0006000b, |
| 5083 | 0xe2160000, | 5188 | 0xe2160000, |
| @@ -5085,7 +5190,7 @@ static const unsigned int build_actionlist[5505] = { | |||
| 5085 | 0xe2261000, | 5190 | 0xe2261000, |
| 5086 | 0x000a0000, | 5191 | 0x000a0000, |
| 5087 | 0x1a000000, | 5192 | 0x1a000000, |
| 5088 | 0x000500a3, | 5193 | 0x000500a1, |
| 5089 | 0x00060017, | 5194 | 0x00060017, |
| 5090 | 0xe516e004, | 5195 | 0xe516e004, |
| 5091 | 0xe25b3008, | 5196 | 0xe25b3008, |
| @@ -5127,9 +5232,9 @@ static const unsigned int build_actionlist[5505] = { | |||
| 5127 | 0xe509100c, | 5232 | 0xe509100c, |
| 5128 | 0xea000000, | 5233 | 0xea000000, |
| 5129 | 0x0005000f, | 5234 | 0x0005000f, |
| 5130 | 0x000600a4, | 5235 | 0x000600a2, |
| 5131 | 0xe089a00a, | 5236 | 0xe089a00a, |
| 5132 | 0x000600a3, | 5237 | 0x000600a1, |
| 5133 | 0xe3110000, | 5238 | 0xe3110000, |
| 5134 | 0x000a0000, | 5239 | 0x000a0000, |
| 5135 | 0x1a000000, | 5240 | 0x1a000000, |
| @@ -5148,7 +5253,7 @@ static const unsigned int build_actionlist[5505] = { | |||
| 5148 | 0x000a0000, | 5253 | 0x000a0000, |
| 5149 | 0x0516e004, | 5254 | 0x0516e004, |
| 5150 | 0x1a000000, | 5255 | 0x1a000000, |
| 5151 | 0x000500a4, | 5256 | 0x000500a2, |
| 5152 | 0x00000000, | 5257 | 0x00000000, |
| 5153 | 0xe18900da, | 5258 | 0xe18900da, |
| 5154 | 0x00000000, | 5259 | 0x00000000, |
| @@ -5237,22 +5342,21 @@ static const unsigned int build_actionlist[5505] = { | |||
| 5237 | 0x00000000, | 5342 | 0x00000000, |
| 5238 | 0xc24b6b80, | 5343 | 0xc24b6b80, |
| 5239 | 0x00000000, | 5344 | 0x00000000, |
| 5240 | 0xc24b6b80, | 5345 | 0xe24b6b80, |
| 5241 | 0xe1a0b82e, | 5346 | 0xd156b0b2, |
| 5242 | 0xda000000, | ||
| 5243 | 0x00070000, | ||
| 5244 | 0x00000000, | 5347 | 0x00000000, |
| 5245 | 0xd24b6b80, | 5348 | 0xd24b6b80, |
| 5246 | 0x00000000, | 5349 | 0x00000000, |
| 5247 | 0xda000000, | ||
| 5248 | 0x00070000, | ||
| 5249 | 0x00000000, | ||
| 5250 | 0xe1ca00f0, | 5350 | 0xe1ca00f0, |
| 5251 | 0x00000000, | 5351 | 0x00000000, |
| 5252 | 0x0006000c, | 5352 | 0x0006000c, |
| 5253 | 0xe5d6c000, | 5353 | 0xe5d6c000, |
| 5254 | 0xe496e004, | 5354 | 0xe496e004, |
| 5255 | 0xe1ca01f8, | 5355 | 0xe1ca01f8, |
| 5356 | 0x00000000, | ||
| 5357 | 0xda000000, | ||
| 5358 | 0x00070000, | ||
| 5359 | 0x00000000, | ||
| 5256 | 0x0006000d, | 5360 | 0x0006000d, |
| 5257 | 0xe797c10c, | 5361 | 0xe797c10c, |
| 5258 | 0xe004a2ae, | 5362 | 0xe004a2ae, |
| @@ -5284,7 +5388,7 @@ static const unsigned int build_actionlist[5505] = { | |||
| 5284 | 0xba000000, | 5388 | 0xba000000, |
| 5285 | 0x00050008, | 5389 | 0x00050008, |
| 5286 | 0xeb000000, | 5390 | 0xeb000000, |
| 5287 | 0x0003002e, | 5391 | 0x00030031, |
| 5288 | 0xe1ca00f0, | 5392 | 0xe1ca00f0, |
| 5289 | 0xe1ca20d8, | 5393 | 0xe1ca20d8, |
| 5290 | 0xe1ca01f8, | 5394 | 0xe1ca01f8, |
| @@ -5295,8 +5399,8 @@ static const unsigned int build_actionlist[5505] = { | |||
| 5295 | 0x00000000, | 5399 | 0x00000000, |
| 5296 | 0x824b6b80, | 5400 | 0x824b6b80, |
| 5297 | 0x00000000, | 5401 | 0x00000000, |
| 5298 | 0x824b6b80, | 5402 | 0xe24b6b80, |
| 5299 | 0xe1a0b82e, | 5403 | 0x9156b0b2, |
| 5300 | 0x9a000000, | 5404 | 0x9a000000, |
| 5301 | 0x00070000, | 5405 | 0x00070000, |
| 5302 | 0x00000000, | 5406 | 0x00000000, |
| @@ -5312,7 +5416,7 @@ static const unsigned int build_actionlist[5505] = { | |||
| 5312 | 0x00060012, | 5416 | 0x00060012, |
| 5313 | 0x00000000, | 5417 | 0x00000000, |
| 5314 | 0xeb000000, | 5418 | 0xeb000000, |
| 5315 | 0x0003002e, | 5419 | 0x00030031, |
| 5316 | 0xe1ca00f0, | 5420 | 0xe1ca00f0, |
| 5317 | 0xe1ca01f8, | 5421 | 0xe1ca01f8, |
| 5318 | 0x00000000, | 5422 | 0x00000000, |
| @@ -5372,7 +5476,10 @@ static const unsigned int build_actionlist[5505] = { | |||
| 5372 | 0x00000000, | 5476 | 0x00000000, |
| 5373 | 0xe5170000, | 5477 | 0xe5170000, |
| 5374 | 0x000d8180, | 5478 | 0x000d8180, |
| 5479 | 0xe3a01000, | ||
| 5375 | 0xe790b10b, | 5480 | 0xe790b10b, |
| 5481 | 0xe5071000, | ||
| 5482 | 0x000d8180, | ||
| 5376 | 0xe51ba000, | 5483 | 0xe51ba000, |
| 5377 | 0x000d8180, | 5484 | 0x000d8180, |
| 5378 | 0xe5079000, | 5485 | 0xe5079000, |
| @@ -5409,8 +5516,10 @@ static const unsigned int build_actionlist[5505] = { | |||
| 5409 | 0xe15a0000, | 5516 | 0xe15a0000, |
| 5410 | 0x8a000000, | 5517 | 0x8a000000, |
| 5411 | 0x00050020, | 5518 | 0x00050020, |
| 5519 | 0x00000000, | ||
| 5412 | 0xe5d6c000, | 5520 | 0xe5d6c000, |
| 5413 | 0xe496e004, | 5521 | 0xe496e004, |
| 5522 | 0x00000000, | ||
| 5414 | 0x0006000c, | 5523 | 0x0006000c, |
| 5415 | 0xe15b0181, | 5524 | 0xe15b0181, |
| 5416 | 0xe3e03000, | 5525 | 0xe3e03000, |
| @@ -5653,8 +5762,6 @@ enum { | |||
| 5653 | GLOB_vm_trunc, | 5762 | GLOB_vm_trunc, |
| 5654 | GLOB_vm_mod, | 5763 | GLOB_vm_mod, |
| 5655 | GLOB_vm_modi, | 5764 | GLOB_vm_modi, |
| 5656 | GLOB_vm_powi, | ||
| 5657 | GLOB_vm_foldfpm, | ||
| 5658 | GLOB_vm_foldarith, | 5765 | GLOB_vm_foldarith, |
| 5659 | GLOB_vm_ffi_call, | 5766 | GLOB_vm_ffi_call, |
| 5660 | GLOB_BC_ISEQN_Z, | 5767 | GLOB_BC_ISEQN_Z, |
| @@ -5801,8 +5908,6 @@ static const char *const globnames[] = { | |||
| 5801 | "vm_trunc", | 5908 | "vm_trunc", |
| 5802 | "vm_mod", | 5909 | "vm_mod", |
| 5803 | "vm_modi", | 5910 | "vm_modi", |
| 5804 | "vm_powi", | ||
| 5805 | "vm_foldfpm", | ||
| 5806 | "vm_foldarith", | 5911 | "vm_foldarith", |
| 5807 | "vm_ffi_call", | 5912 | "vm_ffi_call", |
| 5808 | "BC_ISEQN_Z", | 5913 | "BC_ISEQN_Z", |
| @@ -5862,6 +5967,9 @@ static const char *const extnames[] = { | |||
| 5862 | "lj_dispatch_ins", | 5967 | "lj_dispatch_ins", |
| 5863 | "lj_trace_hot", | 5968 | "lj_trace_hot", |
| 5864 | "lj_dispatch_call", | 5969 | "lj_dispatch_call", |
| 5970 | "lj_trace_exit", | ||
| 5971 | "lj_err_throw", | ||
| 5972 | "trunc", | ||
| 5865 | "__aeabi_ddiv", | 5973 | "__aeabi_ddiv", |
| 5866 | "__aeabi_dadd", | 5974 | "__aeabi_dadd", |
| 5867 | "__aeabi_dsub", | 5975 | "__aeabi_dsub", |
| @@ -5907,344 +6015,342 @@ static void build_subroutines(BuildCtx *ctx) | |||
| 5907 | dasm_put(Dst, 1, FRAME_P, ~LJ_TTRUE, FRAME_TYPE, FRAME_TYPEP, FRAME_C, Dt1(->base), LJ_VMST_C, DISPATCH_GL(vmstate), Dt1(->top)); | 6015 | dasm_put(Dst, 1, FRAME_P, ~LJ_TTRUE, FRAME_TYPE, FRAME_TYPEP, FRAME_C, Dt1(->base), LJ_VMST_C, DISPATCH_GL(vmstate), Dt1(->top)); |
| 5908 | dasm_put(Dst, 54, Dt1(->cframe), Dt1(->maxstack), ~LJ_TNIL, Dt1(->top), Dt1(->top), LJ_VMST_C, Dt1(->glref), Dt2(->vmstate)); | 6016 | dasm_put(Dst, 54, Dt1(->cframe), Dt1(->maxstack), ~LJ_TNIL, Dt1(->top), Dt1(->top), LJ_VMST_C, Dt1(->glref), Dt2(->vmstate)); |
| 5909 | dasm_put(Dst, 108, ~CFRAME_RAWMASK, Dt1(->base), Dt1(->glref), ~LJ_TFALSE, GG_G2DISP, LJ_VMST_INTERP, DISPATCH_GL(vmstate), LUA_MINSTACK, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top), Dt7(->field_pc), Dt1(->glref)); | 6017 | dasm_put(Dst, 108, ~CFRAME_RAWMASK, Dt1(->base), Dt1(->glref), ~LJ_TFALSE, GG_G2DISP, LJ_VMST_INTERP, DISPATCH_GL(vmstate), LUA_MINSTACK, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top), Dt7(->field_pc), Dt1(->glref)); |
| 5910 | dasm_put(Dst, 172, GG_G2DISP, FRAME_CP, CFRAME_RESUME, Dt1(->status), Dt1(->cframe), Dt1(->base), Dt1(->top), Dt1(->status), LJ_VMST_INTERP, FRAME_TYPE, DISPATCH_GL(vmstate), FRAME_CP, FRAME_C, Dt1(->cframe), Dt1(->cframe)); | 6018 | dasm_put(Dst, 173, GG_G2DISP, FRAME_CP, CFRAME_RESUME, Dt1(->status), Dt1(->cframe), Dt1(->base), Dt1(->top), Dt1(->status), LJ_VMST_INTERP, FRAME_TYPE, DISPATCH_GL(vmstate), FRAME_CP, FRAME_C, Dt1(->cframe), Dt1(->cframe)); |
| 5911 | dasm_put(Dst, 237, Dt1(->glref), GG_G2DISP, Dt1(->base), Dt1(->top), LJ_VMST_INTERP, DISPATCH_GL(vmstate), -LJ_TFUNC, Dt7(->field_pc), Dt1(->stack), Dt1(->top), Dt1(->cframe), Dt1(->cframe), Dt1(->glref), FRAME_CP, GG_G2DISP); | 6019 | dasm_put(Dst, 238, Dt1(->glref), GG_G2DISP, Dt1(->base), Dt1(->top), LJ_VMST_INTERP, DISPATCH_GL(vmstate), -LJ_TFUNC, Dt7(->field_pc), Dt1(->stack), Dt1(->top), Dt1(->cframe), Dt1(->cframe), Dt1(->glref), FRAME_CP, GG_G2DISP); |
| 5912 | dasm_put(Dst, 306, Dt7(->field_pc), ~LJ_TNIL, PC2PROTO(k), Dt1(->base), -DISPATCH_GL(tmptv), ~LJ_TTAB, ~LJ_TSTR, ~LJ_TISNUM); | 6020 | dasm_put(Dst, 307, Dt7(->field_pc), ~LJ_TNIL, PC2PROTO(k), Dt1(->base), -DISPATCH_GL(tmptv), ~LJ_TTAB, ~LJ_TSTR, ~LJ_TISNUM); |
| 5913 | dasm_put(Dst, 377, Dt1(->base)); | 6021 | dasm_put(Dst, 378, Dt1(->base)); |
| 5914 | if (LJ_TARGET_OSX) { | 6022 | if (LJ_TARGET_OSX) { |
| 5915 | dasm_put(Dst, 387, Dt1(->base)); | 6023 | dasm_put(Dst, 388, Dt1(->base)); |
| 5916 | } | 6024 | } |
| 5917 | dasm_put(Dst, 390, FRAME_CONT, Dt1(->top), -DISPATCH_GL(tmptv), ~LJ_TTAB, ~LJ_TSTR, ~LJ_TISNUM, Dt1(->base)); | 6025 | dasm_put(Dst, 391, FRAME_CONT, Dt1(->top), -DISPATCH_GL(tmptv), ~LJ_TTAB, ~LJ_TSTR, ~LJ_TISNUM, Dt1(->base)); |
| 5918 | if (LJ_TARGET_OSX) { | 6026 | if (LJ_TARGET_OSX) { |
| 5919 | dasm_put(Dst, 452, Dt1(->base)); | 6027 | dasm_put(Dst, 453, Dt1(->base)); |
| 5920 | } | 6028 | } |
| 5921 | dasm_put(Dst, 455, FRAME_CONT, Dt1(->top), Dt1(->base)); | 6029 | dasm_put(Dst, 456, FRAME_CONT, Dt1(->top), Dt1(->base)); |
| 5922 | if (LJ_TARGET_OSX) { | 6030 | if (LJ_TARGET_OSX) { |
| 5923 | dasm_put(Dst, 491, Dt1(->base)); | 6031 | dasm_put(Dst, 492, Dt1(->base)); |
| 5924 | } | 6032 | } |
| 5925 | dasm_put(Dst, 494, ~LJ_TTRUE, -LJ_TFALSE, Dt1(->base)); | 6033 | dasm_put(Dst, 495, ~LJ_TTRUE, -LJ_TFALSE, Dt1(->base)); |
| 5926 | #if LJ_HASFFI | 6034 | #if LJ_HASFFI |
| 5927 | dasm_put(Dst, 541, Dt1(->base)); | 6035 | dasm_put(Dst, 542, Dt1(->base)); |
| 5928 | #endif | 6036 | #endif |
| 5929 | dasm_put(Dst, 552, Dt1(->base)); | 6037 | dasm_put(Dst, 553, Dt1(->base)); |
| 5930 | if (LJ_TARGET_OSX) { | 6038 | if (LJ_TARGET_OSX) { |
| 5931 | dasm_put(Dst, 589, Dt1(->base)); | 6039 | dasm_put(Dst, 590, Dt1(->base)); |
| 5932 | } | 6040 | } |
| 5933 | dasm_put(Dst, 592, FRAME_CONT, Dt1(->base)); | 6041 | dasm_put(Dst, 593, FRAME_CONT, Dt1(->base)); |
| 5934 | if (LJ_TARGET_OSX) { | 6042 | if (LJ_TARGET_OSX) { |
| 5935 | dasm_put(Dst, 613, Dt1(->base)); | 6043 | dasm_put(Dst, 614, Dt1(->base)); |
| 5936 | } | 6044 | } |
| 5937 | dasm_put(Dst, 616, Dt1(->base)); | 6045 | dasm_put(Dst, 617, Dt1(->base)); |
| 5938 | if (LJ_TARGET_OSX) { | 6046 | if (LJ_TARGET_OSX) { |
| 5939 | dasm_put(Dst, 626); | 6047 | dasm_put(Dst, 627); |
| 5940 | } | 6048 | } |
| 5941 | dasm_put(Dst, 628); | 6049 | dasm_put(Dst, 629); |
| 5942 | if (LJ_TARGET_OSX) { | 6050 | if (LJ_TARGET_OSX) { |
| 5943 | dasm_put(Dst, 631); | 6051 | dasm_put(Dst, 632); |
| 5944 | } | 6052 | } |
| 5945 | dasm_put(Dst, 633, Dt7(->field_pc), Dt1(->base)); | 6053 | dasm_put(Dst, 634, Dt7(->field_pc), Dt1(->base)); |
| 5946 | if (LJ_TARGET_OSX) { | 6054 | if (LJ_TARGET_OSX) { |
| 5947 | dasm_put(Dst, 654, Dt1(->base)); | 6055 | dasm_put(Dst, 655, Dt1(->base)); |
| 5948 | } | 6056 | } |
| 5949 | dasm_put(Dst, 657, Dt1(->base)); | 6057 | dasm_put(Dst, 658, Dt1(->base)); |
| 5950 | if (LJ_TARGET_OSX) { | 6058 | if (LJ_TARGET_OSX) { |
| 5951 | dasm_put(Dst, 671, Dt1(->base)); | 6059 | dasm_put(Dst, 672, Dt1(->base)); |
| 5952 | } | 6060 | } |
| 5953 | #if LJ_HASJIT | 6061 | #if LJ_HASJIT |
| 5954 | dasm_put(Dst, 674); | 6062 | dasm_put(Dst, 675); |
| 5955 | #endif | 6063 | #endif |
| 5956 | dasm_put(Dst, 676); | 6064 | dasm_put(Dst, 677); |
| 5957 | #if LJ_HASJIT | 6065 | #if LJ_HASJIT |
| 5958 | dasm_put(Dst, 678, BC_JFORI); | 6066 | dasm_put(Dst, 679, BC_JFORI); |
| 5959 | #endif | 6067 | #endif |
| 5960 | dasm_put(Dst, 681); | 6068 | dasm_put(Dst, 682); |
| 5961 | #if LJ_HASJIT | 6069 | #if LJ_HASJIT |
| 5962 | dasm_put(Dst, 684, BC_JFORI); | 6070 | dasm_put(Dst, 685, BC_JFORI); |
| 5963 | #endif | 6071 | #endif |
| 5964 | dasm_put(Dst, 687, BC_FORI, -LJ_TTRUE, -LJ_TISNUM, ~LJ_TISNUM, (int)(offsetof(GCfuncC, upvalue)>>3)-1, -LJ_TTAB, -LJ_TUDATA, Dt6(->metatable)); | 6072 | dasm_put(Dst, 688, BC_FORI, -LJ_TTRUE, -LJ_TISNUM, ~LJ_TISNUM, (int)(offsetof(GCfuncC, upvalue)>>3)-1, -LJ_TTAB, -LJ_TUDATA, Dt6(->metatable)); |
| 5965 | dasm_put(Dst, 744, ~LJ_TNIL, DISPATCH_GL(gcroot[GCROOT_MMNAME+MM_metatable]), Dt6(->hmask), Dt5(->hash), Dt6(->node), DtB(->key), DtB(->val), DtB(->next), -LJ_TSTR, ~LJ_TTAB, -LJ_TNIL, -LJ_TISNUM); | 6073 | dasm_put(Dst, 745, ~LJ_TNIL, DISPATCH_GL(gcroot[GCROOT_MMNAME+MM_metatable]), Dt6(->hmask), Dt5(->hash), Dt6(->node), DtB(->key), DtB(->val), DtB(->next), -LJ_TSTR, ~LJ_TTAB, -LJ_TNIL, -LJ_TISNUM); |
| 5966 | dasm_put(Dst, 792, ~LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT]), -LJ_TTAB, Dt6(->metatable), -LJ_TTAB, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), DISPATCH_GL(gc.grayagain), LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist), -LJ_TTAB); | 6074 | dasm_put(Dst, 793, ~LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT]), -LJ_TTAB, Dt6(->metatable), -LJ_TTAB, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), DISPATCH_GL(gc.grayagain), LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist), -LJ_TTAB); |
| 5967 | dasm_put(Dst, 844); | 6075 | dasm_put(Dst, 845); |
| 5968 | if (LJ_TARGET_OSX) { | 6076 | if (LJ_TARGET_OSX) { |
| 5969 | dasm_put(Dst, 849); | 6077 | dasm_put(Dst, 850); |
| 5970 | } | 6078 | } |
| 5971 | dasm_put(Dst, 851); | 6079 | dasm_put(Dst, 852); |
| 5972 | if (LJ_TARGET_OSX) { | 6080 | if (LJ_TARGET_OSX) { |
| 5973 | dasm_put(Dst, 854); | 6081 | dasm_put(Dst, 855); |
| 5974 | } | 6082 | } |
| 5975 | dasm_put(Dst, 856, -LJ_TISNUM, -LJ_TSTR, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), Dt1(->base), -LJ_TISNUM, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), ~LJ_TSTR); | 6083 | dasm_put(Dst, 857, -LJ_TISNUM, -LJ_TSTR, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), Dt1(->base), -LJ_TISNUM, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), ~LJ_TSTR); |
| 5976 | dasm_put(Dst, 908, ~LJ_TNIL, -LJ_TTAB, Dt1(->base), Dt1(->top)); | 6084 | dasm_put(Dst, 909, ~LJ_TNIL, -LJ_TTAB, Dt1(->base), Dt1(->top)); |
| 5977 | if (LJ_TARGET_OSX) { | 6085 | if (LJ_TARGET_OSX) { |
| 5978 | dasm_put(Dst, 931, Dt1(->base)); | 6086 | dasm_put(Dst, 932, Dt1(->base)); |
| 5979 | } | 6087 | } |
| 5980 | dasm_put(Dst, 934, ~LJ_TNIL, (2+1)*8, -LJ_TTAB); | 6088 | dasm_put(Dst, 935, ~LJ_TNIL, (2+1)*8, -LJ_TTAB); |
| 5981 | #ifdef LUAJIT_ENABLE_LUA52COMPAT | 6089 | #ifdef LUAJIT_ENABLE_LUA52COMPAT |
| 5982 | dasm_put(Dst, 957, Dt6(->metatable)); | 6090 | dasm_put(Dst, 958, Dt6(->metatable)); |
| 5983 | #endif | 6091 | #endif |
| 5984 | dasm_put(Dst, 960, Dt8(->upvalue[0])); | 6092 | dasm_put(Dst, 961, Dt8(->upvalue[0])); |
| 5985 | #ifdef LUAJIT_ENABLE_LUA52COMPAT | 6093 | #ifdef LUAJIT_ENABLE_LUA52COMPAT |
| 5986 | dasm_put(Dst, 964); | 6094 | dasm_put(Dst, 965); |
| 5987 | #endif | 6095 | #endif |
| 5988 | dasm_put(Dst, 968, ~LJ_TNIL, (3+1)*8, -LJ_TTAB, -LJ_TISNUM, Dt6(->asize), Dt6(->array), (0+1)*8, -LJ_TNIL, (2+1)*8, Dt6(->hmask)); | 6096 | dasm_put(Dst, 969, ~LJ_TNIL, (3+1)*8, -LJ_TTAB, -LJ_TISNUM, Dt6(->asize), Dt6(->array), (0+1)*8, -LJ_TNIL, (2+1)*8, Dt6(->hmask)); |
| 5989 | if (LJ_TARGET_OSX) { | 6097 | if (LJ_TARGET_OSX) { |
| 5990 | dasm_put(Dst, 1018); | 6098 | dasm_put(Dst, 1019); |
| 5991 | } | 6099 | } |
| 5992 | dasm_put(Dst, 1020); | 6100 | dasm_put(Dst, 1021); |
| 5993 | if (LJ_TARGET_OSX) { | 6101 | if (LJ_TARGET_OSX) { |
| 5994 | dasm_put(Dst, 1023); | 6102 | dasm_put(Dst, 1024); |
| 5995 | } | 6103 | } |
| 5996 | dasm_put(Dst, 1025, -LJ_TTAB); | 6104 | dasm_put(Dst, 1026, -LJ_TTAB); |
| 5997 | #ifdef LUAJIT_ENABLE_LUA52COMPAT | 6105 | #ifdef LUAJIT_ENABLE_LUA52COMPAT |
| 5998 | dasm_put(Dst, 1041, Dt6(->metatable)); | 6106 | dasm_put(Dst, 1042, Dt6(->metatable)); |
| 5999 | #endif | 6107 | #endif |
| 6000 | dasm_put(Dst, 1044, Dt8(->upvalue[0])); | 6108 | dasm_put(Dst, 1045, Dt8(->upvalue[0])); |
| 6001 | #ifdef LUAJIT_ENABLE_LUA52COMPAT | 6109 | #ifdef LUAJIT_ENABLE_LUA52COMPAT |
| 6002 | dasm_put(Dst, 1048); | 6110 | dasm_put(Dst, 1049); |
| 6003 | #endif | 6111 | #endif |
| 6004 | dasm_put(Dst, 1052, ~LJ_TISNUM, (3+1)*8, DISPATCH_GL(hookmask), HOOK_ACTIVE, 8+FRAME_PCALL, 8+FRAME_PCALLH, DISPATCH_GL(hookmask), -LJ_TFUNC, HOOK_ACTIVE, 16+FRAME_PCALL, 16+FRAME_PCALLH, -LJ_TTHREAD); | 6112 | dasm_put(Dst, 1053, ~LJ_TISNUM, (3+1)*8, DISPATCH_GL(hookmask), HOOK_ACTIVE, 8+FRAME_PCALL, 8+FRAME_PCALLH, DISPATCH_GL(hookmask), -LJ_TFUNC, HOOK_ACTIVE, 16+FRAME_PCALL, 16+FRAME_PCALLH, -LJ_TTHREAD); |
| 6005 | dasm_put(Dst, 1111, Dt1(->base), Dt1(->top), Dt1(->status), Dt1(->base), Dt1(->maxstack), Dt1(->cframe), LUA_YIELD, Dt1(->top), Dt1(->top), Dt1(->base), LJ_VMST_INTERP, Dt1(->top), DISPATCH_GL(vmstate), LUA_YIELD); | 6113 | dasm_put(Dst, 1112, Dt1(->base), Dt1(->top), Dt1(->status), Dt1(->base), Dt1(->maxstack), Dt1(->cframe), LUA_YIELD, Dt1(->top), Dt1(->top), Dt1(->base), LJ_VMST_INTERP, Dt1(->top), DISPATCH_GL(vmstate), LUA_YIELD); |
| 6006 | dasm_put(Dst, 1170, Dt1(->base), Dt1(->maxstack), Dt1(->top), ~LJ_TTRUE, FRAME_TYPE, ~LJ_TFALSE, (2+1)*8, Dt1(->top)); | 6114 | dasm_put(Dst, 1171, Dt1(->base), Dt1(->maxstack), Dt1(->top), ~LJ_TTRUE, FRAME_TYPE, ~LJ_TFALSE, (2+1)*8, Dt1(->top)); |
| 6007 | dasm_put(Dst, 1230, Dt8(->upvalue[0].gcr), Dt1(->base), Dt1(->top), Dt1(->status), Dt1(->base), Dt1(->maxstack), Dt1(->cframe), LUA_YIELD, Dt1(->top), Dt1(->top), Dt1(->base), LJ_VMST_INTERP, Dt1(->top), DISPATCH_GL(vmstate), LUA_YIELD); | 6115 | dasm_put(Dst, 1231, Dt8(->upvalue[0].gcr), Dt1(->base), Dt1(->top), Dt1(->status), Dt1(->base), Dt1(->maxstack), Dt1(->cframe), LUA_YIELD, Dt1(->top), Dt1(->top), Dt1(->base), LJ_VMST_INTERP, Dt1(->top), DISPATCH_GL(vmstate), LUA_YIELD); |
| 6008 | dasm_put(Dst, 1286, Dt1(->base), Dt1(->maxstack), Dt1(->top), FRAME_TYPE, Dt1(->cframe), Dt1(->base), CFRAME_RESUME, Dt1(->top)); | 6116 | dasm_put(Dst, 1287, Dt1(->base), Dt1(->maxstack), Dt1(->top), FRAME_TYPE, Dt1(->cframe), Dt1(->base), CFRAME_RESUME, Dt1(->top)); |
| 6009 | dasm_put(Dst, 1345, LUA_YIELD, Dt1(->cframe), Dt1(->status), -LJ_TISNUM, ~LJ_TISNUM, ~LJ_TISNUM); | 6117 | dasm_put(Dst, 1346, LUA_YIELD, Dt1(->cframe), Dt1(->status), -LJ_TISNUM, ~LJ_TISNUM, ~LJ_TISNUM); |
| 6010 | if (LJ_TARGET_OSX) { | 6118 | if (LJ_TARGET_OSX) { |
| 6011 | dasm_put(Dst, 1411); | 6119 | dasm_put(Dst, 1412); |
| 6012 | } | 6120 | } |
| 6013 | dasm_put(Dst, 1413); | 6121 | dasm_put(Dst, 1414); |
| 6014 | if (LJ_TARGET_OSX) { | 6122 | if (LJ_TARGET_OSX) { |
| 6015 | dasm_put(Dst, 1416); | 6123 | dasm_put(Dst, 1417); |
| 6016 | } | 6124 | } |
| 6017 | dasm_put(Dst, 1418, -LJ_TISNUM, ~LJ_TISNUM, ~LJ_TISNUM); | 6125 | dasm_put(Dst, 1419, -LJ_TISNUM, ~LJ_TISNUM, ~LJ_TISNUM); |
| 6018 | if (LJ_TARGET_OSX) { | 6126 | if (LJ_TARGET_OSX) { |
| 6019 | dasm_put(Dst, 1478); | 6127 | dasm_put(Dst, 1479); |
| 6020 | } | 6128 | } |
| 6021 | dasm_put(Dst, 1480); | 6129 | dasm_put(Dst, 1481); |
| 6022 | if (LJ_TARGET_OSX) { | 6130 | if (LJ_TARGET_OSX) { |
| 6023 | dasm_put(Dst, 1483); | 6131 | dasm_put(Dst, 1484); |
| 6024 | } | 6132 | } |
| 6025 | dasm_put(Dst, 1485, -LJ_TISNUM, (1+1)*8, FRAME_TYPE, ~LJ_TNIL); | 6133 | dasm_put(Dst, 1486, -LJ_TISNUM, (1+1)*8, FRAME_TYPE, ~LJ_TNIL); |
| 6026 | dasm_put(Dst, 1549, -LJ_TISNUM); | 6134 | dasm_put(Dst, 1550, -LJ_TISNUM); |
| 6027 | if (LJ_TARGET_OSX) { | 6135 | if (LJ_TARGET_OSX) { |
| 6028 | dasm_put(Dst, 1554); | 6136 | dasm_put(Dst, 1555); |
| 6029 | } | 6137 | } |
| 6030 | dasm_put(Dst, 1556); | 6138 | dasm_put(Dst, 1557); |
| 6031 | if (LJ_TARGET_OSX) { | 6139 | if (LJ_TARGET_OSX) { |
| 6032 | dasm_put(Dst, 1559); | 6140 | dasm_put(Dst, 1560); |
| 6033 | } | 6141 | } |
| 6034 | dasm_put(Dst, 1561, -LJ_TISNUM); | 6142 | dasm_put(Dst, 1562, -LJ_TISNUM); |
| 6035 | if (LJ_TARGET_OSX) { | 6143 | if (LJ_TARGET_OSX) { |
| 6036 | dasm_put(Dst, 1573); | 6144 | dasm_put(Dst, 1574); |
| 6037 | } | 6145 | } |
| 6038 | dasm_put(Dst, 1575); | 6146 | dasm_put(Dst, 1576); |
| 6039 | if (LJ_TARGET_OSX) { | 6147 | if (LJ_TARGET_OSX) { |
| 6040 | dasm_put(Dst, 1578); | 6148 | dasm_put(Dst, 1579); |
| 6041 | } | 6149 | } |
| 6042 | dasm_put(Dst, 1580, -LJ_TISNUM); | 6150 | dasm_put(Dst, 1581, -LJ_TISNUM); |
| 6043 | if (LJ_TARGET_OSX) { | 6151 | if (LJ_TARGET_OSX) { |
| 6044 | dasm_put(Dst, 1592); | 6152 | dasm_put(Dst, 1593); |
| 6045 | } | 6153 | } |
| 6046 | dasm_put(Dst, 1594); | 6154 | dasm_put(Dst, 1595); |
| 6047 | if (LJ_TARGET_OSX) { | 6155 | if (LJ_TARGET_OSX) { |
| 6048 | dasm_put(Dst, 1597); | 6156 | dasm_put(Dst, 1598); |
| 6049 | } | 6157 | } |
| 6050 | dasm_put(Dst, 1599, -LJ_TISNUM); | 6158 | dasm_put(Dst, 1600, -LJ_TISNUM); |
| 6051 | if (LJ_TARGET_OSX) { | 6159 | if (LJ_TARGET_OSX) { |
| 6052 | dasm_put(Dst, 1611); | 6160 | dasm_put(Dst, 1612); |
| 6053 | } | 6161 | } |
| 6054 | dasm_put(Dst, 1613); | 6162 | dasm_put(Dst, 1614); |
| 6055 | if (LJ_TARGET_OSX) { | 6163 | if (LJ_TARGET_OSX) { |
| 6056 | dasm_put(Dst, 1616); | 6164 | dasm_put(Dst, 1617); |
| 6057 | } | 6165 | } |
| 6058 | dasm_put(Dst, 1618, -LJ_TISNUM); | 6166 | dasm_put(Dst, 1619, -LJ_TISNUM); |
| 6059 | if (LJ_TARGET_OSX) { | 6167 | if (LJ_TARGET_OSX) { |
| 6060 | dasm_put(Dst, 1630); | 6168 | dasm_put(Dst, 1631); |
| 6061 | } | 6169 | } |
| 6062 | dasm_put(Dst, 1632); | 6170 | dasm_put(Dst, 1633); |
| 6063 | if (LJ_TARGET_OSX) { | 6171 | if (LJ_TARGET_OSX) { |
| 6064 | dasm_put(Dst, 1635); | 6172 | dasm_put(Dst, 1636); |
| 6065 | } | 6173 | } |
| 6066 | dasm_put(Dst, 1637, -LJ_TISNUM); | 6174 | dasm_put(Dst, 1638, -LJ_TISNUM); |
| 6067 | if (LJ_TARGET_OSX) { | 6175 | if (LJ_TARGET_OSX) { |
| 6068 | dasm_put(Dst, 1649); | 6176 | dasm_put(Dst, 1650); |
| 6069 | } | 6177 | } |
| 6070 | dasm_put(Dst, 1651); | 6178 | dasm_put(Dst, 1652); |
| 6071 | if (LJ_TARGET_OSX) { | 6179 | if (LJ_TARGET_OSX) { |
| 6072 | dasm_put(Dst, 1654); | 6180 | dasm_put(Dst, 1655); |
| 6073 | } | 6181 | } |
| 6074 | dasm_put(Dst, 1656, -LJ_TISNUM); | 6182 | dasm_put(Dst, 1657, -LJ_TISNUM); |
| 6075 | if (LJ_TARGET_OSX) { | 6183 | if (LJ_TARGET_OSX) { |
| 6076 | dasm_put(Dst, 1668); | 6184 | dasm_put(Dst, 1669); |
| 6077 | } | 6185 | } |
| 6078 | dasm_put(Dst, 1670); | 6186 | dasm_put(Dst, 1671); |
| 6079 | if (LJ_TARGET_OSX) { | 6187 | if (LJ_TARGET_OSX) { |
| 6080 | dasm_put(Dst, 1673); | 6188 | dasm_put(Dst, 1674); |
| 6081 | } | 6189 | } |
| 6082 | dasm_put(Dst, 1675, -LJ_TISNUM); | 6190 | dasm_put(Dst, 1676, -LJ_TISNUM); |
| 6083 | if (LJ_TARGET_OSX) { | 6191 | if (LJ_TARGET_OSX) { |
| 6084 | dasm_put(Dst, 1687); | 6192 | dasm_put(Dst, 1688); |
| 6085 | } | 6193 | } |
| 6086 | dasm_put(Dst, 1689); | 6194 | dasm_put(Dst, 1690); |
| 6087 | if (LJ_TARGET_OSX) { | 6195 | if (LJ_TARGET_OSX) { |
| 6088 | dasm_put(Dst, 1692); | 6196 | dasm_put(Dst, 1693); |
| 6089 | } | 6197 | } |
| 6090 | dasm_put(Dst, 1694, -LJ_TISNUM); | 6198 | dasm_put(Dst, 1695, -LJ_TISNUM); |
| 6091 | if (LJ_TARGET_OSX) { | 6199 | if (LJ_TARGET_OSX) { |
| 6092 | dasm_put(Dst, 1706); | 6200 | dasm_put(Dst, 1707); |
| 6093 | } | 6201 | } |
| 6094 | dasm_put(Dst, 1708); | 6202 | dasm_put(Dst, 1709); |
| 6095 | if (LJ_TARGET_OSX) { | 6203 | if (LJ_TARGET_OSX) { |
| 6096 | dasm_put(Dst, 1711); | 6204 | dasm_put(Dst, 1712); |
| 6097 | } | 6205 | } |
| 6098 | dasm_put(Dst, 1713, -LJ_TISNUM); | 6206 | dasm_put(Dst, 1714, -LJ_TISNUM); |
| 6099 | if (LJ_TARGET_OSX) { | 6207 | if (LJ_TARGET_OSX) { |
| 6100 | dasm_put(Dst, 1725); | 6208 | dasm_put(Dst, 1726); |
| 6101 | } | 6209 | } |
| 6102 | dasm_put(Dst, 1727); | 6210 | dasm_put(Dst, 1728); |
| 6103 | if (LJ_TARGET_OSX) { | 6211 | if (LJ_TARGET_OSX) { |
| 6104 | dasm_put(Dst, 1730); | 6212 | dasm_put(Dst, 1731); |
| 6105 | } | 6213 | } |
| 6106 | dasm_put(Dst, 1732, -LJ_TISNUM); | 6214 | dasm_put(Dst, 1733, -LJ_TISNUM); |
| 6107 | if (LJ_TARGET_OSX) { | 6215 | if (LJ_TARGET_OSX) { |
| 6108 | dasm_put(Dst, 1744); | 6216 | dasm_put(Dst, 1745); |
| 6109 | } | 6217 | } |
| 6110 | dasm_put(Dst, 1746); | 6218 | dasm_put(Dst, 1747); |
| 6111 | if (LJ_TARGET_OSX) { | 6219 | if (LJ_TARGET_OSX) { |
| 6112 | dasm_put(Dst, 1749); | 6220 | dasm_put(Dst, 1750); |
| 6113 | } | 6221 | } |
| 6114 | dasm_put(Dst, 1751, -LJ_TISNUM); | 6222 | dasm_put(Dst, 1752, -LJ_TISNUM); |
| 6115 | if (LJ_TARGET_OSX) { | 6223 | if (LJ_TARGET_OSX) { |
| 6116 | dasm_put(Dst, 1763); | 6224 | dasm_put(Dst, 1764); |
| 6117 | } | 6225 | } |
| 6118 | dasm_put(Dst, 1765); | 6226 | dasm_put(Dst, 1766); |
| 6119 | if (LJ_TARGET_OSX) { | 6227 | if (LJ_TARGET_OSX) { |
| 6120 | dasm_put(Dst, 1768); | 6228 | dasm_put(Dst, 1769); |
| 6121 | } | 6229 | } |
| 6122 | dasm_put(Dst, 1770, -LJ_TISNUM); | 6230 | dasm_put(Dst, 1771, -LJ_TISNUM); |
| 6123 | if (LJ_TARGET_OSX) { | 6231 | if (LJ_TARGET_OSX) { |
| 6124 | dasm_put(Dst, 1782); | 6232 | dasm_put(Dst, 1783); |
| 6125 | } | 6233 | } |
| 6126 | dasm_put(Dst, 1784); | 6234 | dasm_put(Dst, 1785); |
| 6127 | if (LJ_TARGET_OSX) { | 6235 | if (LJ_TARGET_OSX) { |
| 6128 | dasm_put(Dst, 1787); | 6236 | dasm_put(Dst, 1788); |
| 6129 | } | 6237 | } |
| 6130 | dasm_put(Dst, 1789, -LJ_TISNUM, -LJ_TISNUM); | 6238 | dasm_put(Dst, 1790, -LJ_TISNUM, -LJ_TISNUM); |
| 6131 | if (LJ_TARGET_OSX) { | 6239 | if (LJ_TARGET_OSX) { |
| 6132 | dasm_put(Dst, 1804); | 6240 | dasm_put(Dst, 1805); |
| 6133 | } | 6241 | } |
| 6134 | dasm_put(Dst, 1806); | 6242 | dasm_put(Dst, 1807); |
| 6135 | if (LJ_TARGET_OSX) { | 6243 | if (LJ_TARGET_OSX) { |
| 6136 | dasm_put(Dst, 1809); | 6244 | dasm_put(Dst, 1810); |
| 6137 | } | 6245 | } |
| 6138 | dasm_put(Dst, 1811, -LJ_TISNUM, -LJ_TISNUM); | 6246 | dasm_put(Dst, 1812, -LJ_TISNUM, -LJ_TISNUM); |
| 6139 | if (LJ_TARGET_OSX) { | 6247 | if (LJ_TARGET_OSX) { |
| 6140 | dasm_put(Dst, 1826); | 6248 | dasm_put(Dst, 1827); |
| 6141 | } | 6249 | } |
| 6142 | dasm_put(Dst, 1828); | 6250 | dasm_put(Dst, 1829); |
| 6143 | if (LJ_TARGET_OSX) { | 6251 | if (LJ_TARGET_OSX) { |
| 6144 | dasm_put(Dst, 1831); | 6252 | dasm_put(Dst, 1832); |
| 6145 | } | 6253 | } |
| 6146 | dasm_put(Dst, 1833, -LJ_TISNUM, -LJ_TISNUM); | 6254 | dasm_put(Dst, 1834, -LJ_TISNUM, -LJ_TISNUM); |
| 6147 | if (LJ_TARGET_OSX) { | 6255 | if (LJ_TARGET_OSX) { |
| 6148 | dasm_put(Dst, 1848); | 6256 | dasm_put(Dst, 1849); |
| 6149 | } | 6257 | } |
| 6150 | dasm_put(Dst, 1850); | 6258 | dasm_put(Dst, 1851); |
| 6151 | if (LJ_TARGET_OSX) { | 6259 | if (LJ_TARGET_OSX) { |
| 6152 | dasm_put(Dst, 1853); | 6260 | dasm_put(Dst, 1854); |
| 6153 | } | 6261 | } |
| 6154 | dasm_put(Dst, 1855, -LJ_TISNUM, Dt8(->upvalue[0]), -LJ_TISNUM, -LJ_TISNUM); | 6262 | dasm_put(Dst, 1856, -LJ_TISNUM, Dt8(->upvalue[0]), -LJ_TISNUM, -LJ_TISNUM); |
| 6155 | if (LJ_TARGET_OSX) { | 6263 | if (LJ_TARGET_OSX) { |
| 6156 | dasm_put(Dst, 1888); | 6264 | dasm_put(Dst, 1889); |
| 6157 | } | 6265 | } |
| 6158 | dasm_put(Dst, 1890); | 6266 | dasm_put(Dst, 1891); |
| 6159 | if (LJ_TARGET_OSX) { | 6267 | if (LJ_TARGET_OSX) { |
| 6160 | dasm_put(Dst, 1893); | 6268 | dasm_put(Dst, 1894); |
| 6161 | } | 6269 | } |
| 6162 | dasm_put(Dst, 1895, -LJ_TISNUM); | 6270 | dasm_put(Dst, 1896, -LJ_TISNUM); |
| 6163 | if (LJ_TARGET_OSX) { | 6271 | if (LJ_TARGET_OSX) { |
| 6164 | dasm_put(Dst, 1908); | 6272 | dasm_put(Dst, 1909); |
| 6165 | } | 6273 | } |
| 6166 | dasm_put(Dst, 1910); | 6274 | dasm_put(Dst, 1911); |
| 6167 | if (LJ_TARGET_OSX) { | 6275 | if (LJ_TARGET_OSX) { |
| 6168 | dasm_put(Dst, 1913); | 6276 | dasm_put(Dst, 1914); |
| 6169 | } | 6277 | } |
| 6170 | dasm_put(Dst, 1915, ~LJ_TISNUM, (2+1)*8, -LJ_TISNUM); | 6278 | dasm_put(Dst, 1916, ~LJ_TISNUM, (2+1)*8, -LJ_TISNUM); |
| 6171 | if (LJ_TARGET_OSX) { | 6279 | if (LJ_TARGET_OSX) { |
| 6172 | dasm_put(Dst, 1937); | 6280 | dasm_put(Dst, 1938); |
| 6173 | } | 6281 | } |
| 6174 | dasm_put(Dst, 1939); | 6282 | dasm_put(Dst, 1940); |
| 6175 | if (LJ_TARGET_OSX) { | 6283 | if (LJ_TARGET_OSX) { |
| 6176 | dasm_put(Dst, 1942); | 6284 | dasm_put(Dst, 1943); |
| 6177 | } | 6285 | } |
| 6178 | dasm_put(Dst, 1944, (2+1)*8, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM); | 6286 | dasm_put(Dst, 1945, (2+1)*8, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM); |
| 6179 | dasm_put(Dst, 1995, -LJ_TISNUM, -LJ_TISNUM); | 6287 | dasm_put(Dst, 1996, -LJ_TISNUM, -LJ_TISNUM); |
| 6180 | dasm_put(Dst, 2049, -LJ_TISNUM, -LJ_TSTR, Dt5(->len), ~LJ_TISNUM, -LJ_TSTR, Dt5(->len), Dt5([1])); | 6288 | dasm_put(Dst, 2050, -LJ_TISNUM, -LJ_TSTR, Dt5(->len), ~LJ_TISNUM, -LJ_TSTR, Dt5(->len), Dt5([1])); |
| 6181 | dasm_put(Dst, 2103, ~LJ_TISNUM, (0+1)*8, (1+1)*8, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), -LJ_TISNUM, Dt1(->base), Dt1(->base), ~LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); | 6289 | dasm_put(Dst, 2104, ~LJ_TISNUM, (0+1)*8, (1+1)*8, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), -LJ_TISNUM, Dt1(->base), Dt1(->base), ~LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); |
| 6182 | dasm_put(Dst, 2162, -LJ_TISNUM, -LJ_TSTR, Dt5(->len), -LJ_TISNUM, sizeof(GCstr)-1, -DISPATCH_GL(strempty), ~LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), -LJ_TSTR, -LJ_TISNUM, Dt5(->len)); | 6290 | dasm_put(Dst, 2163, -LJ_TISNUM, -LJ_TSTR, Dt5(->len), -LJ_TISNUM, sizeof(GCstr)-1, -DISPATCH_GL(strempty), ~LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), -LJ_TSTR, -LJ_TISNUM, Dt5(->len)); |
| 6183 | dasm_put(Dst, 2224, DISPATCH_GL(tmpbuf.sz), DISPATCH_GL(tmpbuf.buf), Dt5([1]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), -LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), DISPATCH_GL(tmpbuf.buf), sizeof(GCstr)); | 6291 | dasm_put(Dst, 2225, DISPATCH_GL(tmpbuf.sz), DISPATCH_GL(tmpbuf.buf), Dt5([1]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), -LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), DISPATCH_GL(tmpbuf.buf), sizeof(GCstr)); |
| 6184 | dasm_put(Dst, 2277, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), -LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), DISPATCH_GL(tmpbuf.buf), sizeof(GCstr), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); | 6292 | dasm_put(Dst, 2278, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), -LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), DISPATCH_GL(tmpbuf.buf), sizeof(GCstr), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); |
| 6185 | dasm_put(Dst, 2337, -LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), DISPATCH_GL(tmpbuf.buf), sizeof(GCstr), -LJ_TTAB); | 6293 | dasm_put(Dst, 2338, -LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), DISPATCH_GL(tmpbuf.buf), sizeof(GCstr), -LJ_TTAB); |
| 6186 | if (LJ_TARGET_OSX) { | 6294 | if (LJ_TARGET_OSX) { |
| 6187 | dasm_put(Dst, 2375); | 6295 | dasm_put(Dst, 2376); |
| 6188 | } | 6296 | } |
| 6189 | dasm_put(Dst, 2377); | 6297 | dasm_put(Dst, 2378); |
| 6190 | if (LJ_TARGET_OSX) { | 6298 | if (LJ_TARGET_OSX) { |
| 6191 | dasm_put(Dst, 2380); | 6299 | dasm_put(Dst, 2381); |
| 6192 | } | 6300 | } |
| 6193 | dasm_put(Dst, 2382, ~LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM); | 6301 | dasm_put(Dst, 2383, ~LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM); |
| 6194 | dasm_put(Dst, 2453, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM); | 6302 | dasm_put(Dst, 2454, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM); |
| 6195 | dasm_put(Dst, 2513, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM); | 6303 | dasm_put(Dst, 2514, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM); |
| 6196 | dasm_put(Dst, 2569, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM); | 6304 | dasm_put(Dst, 2570, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM); |
| 6197 | dasm_put(Dst, 2626, -LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM, Dt1(->maxstack), Dt1(->top), Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->base), Dt1(->top), Dt7(->field_pc), FRAME_TYPE, FRAME_TYPEP); | 6305 | dasm_put(Dst, 2627, -LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM, Dt1(->maxstack), Dt1(->top), Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->base), Dt1(->top), Dt7(->field_pc), FRAME_TYPE, FRAME_TYPEP); |
| 6198 | dasm_put(Dst, 2689, LUA_MINSTACK, Dt1(->base), Dt1(->base), Dt1(->top), Dt1(->base)); | 6306 | dasm_put(Dst, 2690, LUA_MINSTACK, Dt1(->base), Dt1(->base), Dt1(->top), Dt1(->base)); |
| 6199 | #if LJ_HASJIT | 6307 | #if LJ_HASJIT |
| 6200 | dasm_put(Dst, 2723, DISPATCH_GL(hookmask), HOOK_VMEVENT, DISPATCH_GL(hookcount), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); | 6308 | dasm_put(Dst, 2724, DISPATCH_GL(hookmask), HOOK_VMEVENT, DISPATCH_GL(hookcount), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); |
| 6201 | #endif | 6309 | #endif |
| 6202 | dasm_put(Dst, 2743, DISPATCH_GL(hookmask), HOOK_ACTIVE, GG_DISP2STATIC, DISPATCH_GL(hookmask), DISPATCH_GL(hookcount), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE, Dt1(->base), Dt1(->base)); | 6310 | dasm_put(Dst, 2744, DISPATCH_GL(hookmask), HOOK_ACTIVE, GG_DISP2STATIC, DISPATCH_GL(hookmask), DISPATCH_GL(hookcount), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE, Dt1(->base), Dt1(->base)); |
| 6203 | dasm_put(Dst, 2789, GG_DISP2STATIC); | 6311 | dasm_put(Dst, 2790, GG_DISP2STATIC); |
| 6204 | #if LJ_HASJIT | 6312 | #if LJ_HASJIT |
| 6205 | dasm_put(Dst, 2805, -GG_DISP2J, Dt7(->field_pc), DISPATCH_J(L), PC2PROTO(framesize), Dt1(->base), Dt1(->top)); | 6313 | dasm_put(Dst, 2806, -GG_DISP2J, Dt7(->field_pc), DISPATCH_J(L), PC2PROTO(framesize), Dt1(->base), Dt1(->top)); |
| 6206 | #endif | 6314 | #endif |
| 6207 | dasm_put(Dst, 2826); | 6315 | dasm_put(Dst, 2827); |
| 6208 | #if LJ_HASJIT | 6316 | #if LJ_HASJIT |
| 6209 | dasm_put(Dst, 2829); | 6317 | dasm_put(Dst, 2830); |
| 6210 | #endif | 6318 | #endif |
| 6211 | dasm_put(Dst, 2832); | 6319 | dasm_put(Dst, 2833); |
| 6212 | #if LJ_HASJIT | 6320 | #if LJ_HASJIT |
| 6213 | dasm_put(Dst, 2834); | 6321 | dasm_put(Dst, 2835); |
| 6214 | #endif | 6322 | #endif |
| 6215 | dasm_put(Dst, 2837, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); | 6323 | dasm_put(Dst, 2838, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); |
| 6216 | #if LJ_HASJIT | 6324 | #if LJ_HASJIT |
| 6217 | dasm_put(Dst, 2859); | 6325 | dasm_put(Dst, 2861, LJ_VMST_EXIT, DISPATCH_GL(vmstate), DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(exitno), DISPATCH_J(L), Dt1(->base), DISPATCH_GL(jit_L), -GG_DISP2J, Dt1(->cframe), Dt1(->base), ~CFRAME_RAWMASK); |
| 6218 | #endif | 6326 | #endif |
| 6219 | dasm_put(Dst, 2861); | 6327 | dasm_put(Dst, 2909); |
| 6220 | #if LJ_HASJIT | 6328 | #if LJ_HASJIT |
| 6221 | dasm_put(Dst, 2863); | 6329 | dasm_put(Dst, 2911, Dt7(->field_pc), DISPATCH_GL(jit_L), LJ_VMST_INTERP, PC2PROTO(k), DISPATCH_GL(vmstate), BC_FUNCF); |
| 6222 | #endif | 6330 | #endif |
| 6223 | dasm_put(Dst, 2865); | 6331 | dasm_put(Dst, 2948); |
| 6224 | #if LJ_HASJIT | 6332 | #if LJ_HASJIT |
| 6225 | dasm_put(Dst, 2870); | 6333 | dasm_put(Dst, 2955); |
| 6226 | #else | 6334 | #else |
| 6227 | dasm_put(Dst, 2873); | 6335 | dasm_put(Dst, 2959); |
| 6228 | #endif | 6336 | #endif |
| 6229 | dasm_put(Dst, 2875); | 6337 | dasm_put(Dst, 2961); |
| 6230 | { | 6338 | { |
| 6231 | int i; | 6339 | int i; |
| 6232 | for (i = 31; i >= 0; i--) { | 6340 | for (i = 31; i >= 0; i--) { |
| 6233 | dasm_put(Dst, 2911, i, i); | 6341 | dasm_put(Dst, 2997, i, i); |
| 6234 | } | 6342 | } |
| 6235 | } | 6343 | } |
| 6236 | dasm_put(Dst, 2916); | 6344 | dasm_put(Dst, 3002); |
| 6237 | #if LJ_HASJIT | 6345 | #if LJ_HASJIT |
| 6238 | dasm_put(Dst, 2925); | 6346 | dasm_put(Dst, 3031); |
| 6239 | #endif | 6347 | #else |
| 6240 | dasm_put(Dst, 2927); | 6348 | dasm_put(Dst, 3056); |
| 6241 | #if LJ_HASJIT | ||
| 6242 | dasm_put(Dst, 2929); | ||
| 6243 | #endif | 6349 | #endif |
| 6244 | dasm_put(Dst, 2931); | 6350 | dasm_put(Dst, 3058); |
| 6245 | #if LJ_HASFFI | 6351 | #if LJ_HASFFI |
| 6246 | #define DtE(_V) (int)(ptrdiff_t)&(((CCallState *)0)_V) | 6352 | #define DtE(_V) (int)(ptrdiff_t)&(((CCallState *)0)_V) |
| 6247 | dasm_put(Dst, 2955, DtE(->spadj), DtE(->nsp), offsetof(CCallState, stack), DtE(->func), DtE(->gpr[0]), DtE(->gpr[1]), DtE(->gpr[2]), DtE(->gpr[3]), DtE(->gpr[0]), DtE(->gpr[1])); | 6353 | dasm_put(Dst, 3060, DtE(->spadj), DtE(->nsp), offsetof(CCallState, stack), DtE(->func), DtE(->gpr[0]), DtE(->gpr[1]), DtE(->gpr[2]), DtE(->gpr[3]), DtE(->gpr[0]), DtE(->gpr[1])); |
| 6248 | #endif | 6354 | #endif |
| 6249 | } | 6355 | } |
| 6250 | 6356 | ||
| @@ -6252,7 +6358,7 @@ static void build_subroutines(BuildCtx *ctx) | |||
| 6252 | static void build_ins(BuildCtx *ctx, BCOp op, int defop) | 6358 | static void build_ins(BuildCtx *ctx, BCOp op, int defop) |
| 6253 | { | 6359 | { |
| 6254 | int vk = 0; | 6360 | int vk = 0; |
| 6255 | dasm_put(Dst, 2993, defop); | 6361 | dasm_put(Dst, 3098, defop); |
| 6256 | 6362 | ||
| 6257 | switch (op) { | 6363 | switch (op) { |
| 6258 | 6364 | ||
| @@ -6261,578 +6367,578 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
| 6261 | /* Remember: all ops branch for a true comparison, fall through otherwise. */ | 6367 | /* Remember: all ops branch for a true comparison, fall through otherwise. */ |
| 6262 | 6368 | ||
| 6263 | case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: | 6369 | case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: |
| 6264 | dasm_put(Dst, 2995, -LJ_TISNUM, -LJ_TISNUM); | 6370 | dasm_put(Dst, 3100, -LJ_TISNUM, -LJ_TISNUM); |
| 6265 | if (op == BC_ISLT) { | 6371 | if (op == BC_ISLT) { |
| 6266 | dasm_put(Dst, 3011); | 6372 | dasm_put(Dst, 3116); |
| 6267 | } else if (op == BC_ISGE) { | 6373 | } else if (op == BC_ISGE) { |
| 6268 | dasm_put(Dst, 3013); | 6374 | dasm_put(Dst, 3118); |
| 6269 | } else if (op == BC_ISLE) { | 6375 | } else if (op == BC_ISLE) { |
| 6270 | dasm_put(Dst, 3015); | 6376 | dasm_put(Dst, 3120); |
| 6271 | } else { | 6377 | } else { |
| 6272 | dasm_put(Dst, 3017); | 6378 | dasm_put(Dst, 3122); |
| 6273 | } | 6379 | } |
| 6274 | dasm_put(Dst, 3019, -LJ_TISNUM); | 6380 | dasm_put(Dst, 3124, -LJ_TISNUM); |
| 6275 | if (op == BC_ISLT) { | 6381 | if (op == BC_ISLT) { |
| 6276 | dasm_put(Dst, 3055); | 6382 | dasm_put(Dst, 3160); |
| 6277 | } else if (op == BC_ISGE) { | 6383 | } else if (op == BC_ISGE) { |
| 6278 | dasm_put(Dst, 3057); | 6384 | dasm_put(Dst, 3162); |
| 6279 | } else if (op == BC_ISLE) { | 6385 | } else if (op == BC_ISLE) { |
| 6280 | dasm_put(Dst, 3059); | 6386 | dasm_put(Dst, 3164); |
| 6281 | } else { | 6387 | } else { |
| 6282 | dasm_put(Dst, 3061); | 6388 | dasm_put(Dst, 3166); |
| 6283 | } | 6389 | } |
| 6284 | dasm_put(Dst, 3063); | 6390 | dasm_put(Dst, 3168); |
| 6285 | break; | 6391 | break; |
| 6286 | 6392 | ||
| 6287 | case BC_ISEQV: case BC_ISNEV: | 6393 | case BC_ISEQV: case BC_ISNEV: |
| 6288 | vk = op == BC_ISEQV; | 6394 | vk = op == BC_ISEQV; |
| 6289 | dasm_put(Dst, 3066, -LJ_TISNUM, -LJ_TISNUM); | 6395 | dasm_put(Dst, 3171, -LJ_TISNUM, -LJ_TISNUM); |
| 6290 | if (vk) { | 6396 | if (vk) { |
| 6291 | dasm_put(Dst, 3077); | 6397 | dasm_put(Dst, 3182); |
| 6292 | } else { | 6398 | } else { |
| 6293 | dasm_put(Dst, 3080); | 6399 | dasm_put(Dst, 3185); |
| 6294 | } | 6400 | } |
| 6295 | if (LJ_HASFFI) { | 6401 | if (LJ_HASFFI) { |
| 6296 | dasm_put(Dst, 3083, -LJ_TCDATA, -LJ_TCDATA); | 6402 | dasm_put(Dst, 3188, -LJ_TCDATA, -LJ_TCDATA); |
| 6297 | } | 6403 | } |
| 6298 | dasm_put(Dst, 3090, -LJ_TISPRI); | 6404 | dasm_put(Dst, 3195, -LJ_TISPRI); |
| 6299 | if (vk) { | 6405 | if (vk) { |
| 6300 | dasm_put(Dst, 3099, -LJ_TISTABUD); | 6406 | dasm_put(Dst, 3204, -LJ_TISTABUD); |
| 6301 | } else { | 6407 | } else { |
| 6302 | dasm_put(Dst, 3116, -LJ_TISTABUD); | 6408 | dasm_put(Dst, 3221, -LJ_TISTABUD); |
| 6303 | } | 6409 | } |
| 6304 | dasm_put(Dst, 3123, Dt6(->metatable)); | 6410 | dasm_put(Dst, 3228, Dt6(->metatable)); |
| 6305 | if (vk) { | 6411 | if (vk) { |
| 6306 | dasm_put(Dst, 3127); | 6412 | dasm_put(Dst, 3232); |
| 6307 | } else { | 6413 | } else { |
| 6308 | dasm_put(Dst, 3130); | 6414 | dasm_put(Dst, 3235); |
| 6309 | } | 6415 | } |
| 6310 | dasm_put(Dst, 3133, Dt6(->nomm), 1-vk, 1<<MM_eq); | 6416 | dasm_put(Dst, 3238, Dt6(->nomm), 1-vk, 1<<MM_eq); |
| 6311 | if (vk) { | 6417 | if (vk) { |
| 6312 | dasm_put(Dst, 3143); | 6418 | dasm_put(Dst, 3248); |
| 6313 | } else { | 6419 | } else { |
| 6314 | dasm_put(Dst, 3146); | 6420 | dasm_put(Dst, 3251); |
| 6315 | } | 6421 | } |
| 6316 | break; | 6422 | break; |
| 6317 | 6423 | ||
| 6318 | case BC_ISEQS: case BC_ISNES: | 6424 | case BC_ISEQS: case BC_ISNES: |
| 6319 | vk = op == BC_ISEQS; | 6425 | vk = op == BC_ISEQS; |
| 6320 | dasm_put(Dst, 3156, -LJ_TSTR); | 6426 | dasm_put(Dst, 3261, -LJ_TSTR); |
| 6321 | if (LJ_HASFFI) { | 6427 | if (LJ_HASFFI) { |
| 6322 | dasm_put(Dst, 3165); | 6428 | dasm_put(Dst, 3270); |
| 6323 | } else { | 6429 | } else { |
| 6324 | dasm_put(Dst, 3169); | 6430 | dasm_put(Dst, 3274); |
| 6325 | } | 6431 | } |
| 6326 | if (vk) { | 6432 | if (vk) { |
| 6327 | dasm_put(Dst, 3171); | 6433 | dasm_put(Dst, 3276); |
| 6328 | } else { | 6434 | } else { |
| 6329 | dasm_put(Dst, 3174); | 6435 | dasm_put(Dst, 3279); |
| 6330 | } | 6436 | } |
| 6331 | dasm_put(Dst, 3177); | 6437 | dasm_put(Dst, 3282); |
| 6332 | if (LJ_HASFFI) { | 6438 | if (LJ_HASFFI) { |
| 6333 | dasm_put(Dst, 3184, -LJ_TCDATA); | 6439 | dasm_put(Dst, 3289, -LJ_TCDATA); |
| 6334 | } | 6440 | } |
| 6335 | break; | 6441 | break; |
| 6336 | 6442 | ||
| 6337 | case BC_ISEQN: case BC_ISNEN: | 6443 | case BC_ISEQN: case BC_ISNEN: |
| 6338 | vk = op == BC_ISEQN; | 6444 | vk = op == BC_ISEQN; |
| 6339 | dasm_put(Dst, 3192); | 6445 | dasm_put(Dst, 3297); |
| 6340 | if (vk) { | 6446 | if (vk) { |
| 6341 | dasm_put(Dst, 3199); | 6447 | dasm_put(Dst, 3304); |
| 6342 | } else { | 6448 | } else { |
| 6343 | dasm_put(Dst, 3201); | 6449 | dasm_put(Dst, 3306); |
| 6344 | } | 6450 | } |
| 6345 | dasm_put(Dst, 3203, -LJ_TISNUM, -LJ_TISNUM); | 6451 | dasm_put(Dst, 3308, -LJ_TISNUM, -LJ_TISNUM); |
| 6346 | if (vk) { | 6452 | if (vk) { |
| 6347 | dasm_put(Dst, 3213); | 6453 | dasm_put(Dst, 3318); |
| 6348 | } else { | 6454 | } else { |
| 6349 | dasm_put(Dst, 3216); | 6455 | dasm_put(Dst, 3321); |
| 6350 | } | 6456 | } |
| 6351 | dasm_put(Dst, 3219); | 6457 | dasm_put(Dst, 3324); |
| 6352 | if (LJ_HASFFI) { | 6458 | if (LJ_HASFFI) { |
| 6353 | dasm_put(Dst, 3228); | 6459 | dasm_put(Dst, 3333); |
| 6354 | } else { | 6460 | } else { |
| 6355 | if (!vk) { | 6461 | if (!vk) { |
| 6356 | dasm_put(Dst, 3231); | 6462 | dasm_put(Dst, 3336); |
| 6357 | } | 6463 | } |
| 6358 | dasm_put(Dst, 3233); | 6464 | dasm_put(Dst, 3338); |
| 6359 | } | 6465 | } |
| 6360 | dasm_put(Dst, 3236, -LJ_TISNUM); | 6466 | dasm_put(Dst, 3341, -LJ_TISNUM); |
| 6361 | if (vk) { | 6467 | if (vk) { |
| 6362 | dasm_put(Dst, 3252); | 6468 | dasm_put(Dst, 3357); |
| 6363 | } else { | 6469 | } else { |
| 6364 | dasm_put(Dst, 3254); | 6470 | dasm_put(Dst, 3359); |
| 6365 | } | 6471 | } |
| 6366 | dasm_put(Dst, 3256); | 6472 | dasm_put(Dst, 3361); |
| 6367 | if (LJ_HASFFI) { | 6473 | if (LJ_HASFFI) { |
| 6368 | dasm_put(Dst, 3259, -LJ_TCDATA); | 6474 | dasm_put(Dst, 3364, -LJ_TCDATA); |
| 6369 | } | 6475 | } |
| 6370 | break; | 6476 | break; |
| 6371 | 6477 | ||
| 6372 | case BC_ISEQP: case BC_ISNEP: | 6478 | case BC_ISEQP: case BC_ISNEP: |
| 6373 | vk = op == BC_ISEQP; | 6479 | vk = op == BC_ISEQP; |
| 6374 | dasm_put(Dst, 3267); | 6480 | dasm_put(Dst, 3372); |
| 6375 | if (LJ_HASFFI) { | 6481 | if (LJ_HASFFI) { |
| 6376 | dasm_put(Dst, 3273, -LJ_TCDATA); | 6482 | dasm_put(Dst, 3378, -LJ_TCDATA); |
| 6377 | } | 6483 | } |
| 6378 | dasm_put(Dst, 3278); | 6484 | dasm_put(Dst, 3383); |
| 6379 | if (vk) { | 6485 | if (vk) { |
| 6380 | dasm_put(Dst, 3280); | 6486 | dasm_put(Dst, 3385); |
| 6381 | } else { | 6487 | } else { |
| 6382 | dasm_put(Dst, 3282); | 6488 | dasm_put(Dst, 3387); |
| 6383 | } | 6489 | } |
| 6384 | dasm_put(Dst, 3284); | 6490 | dasm_put(Dst, 3389); |
| 6385 | break; | 6491 | break; |
| 6386 | 6492 | ||
| 6387 | /* -- Unary test and copy ops ------------------------------------------- */ | 6493 | /* -- Unary test and copy ops ------------------------------------------- */ |
| 6388 | 6494 | ||
| 6389 | case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: | 6495 | case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: |
| 6390 | dasm_put(Dst, 3291, -LJ_TTRUE); | 6496 | dasm_put(Dst, 3396, -LJ_TTRUE); |
| 6391 | if (op == BC_ISTC || op == BC_IST) { | 6497 | if (op == BC_ISTC || op == BC_IST) { |
| 6392 | dasm_put(Dst, 3299); | 6498 | dasm_put(Dst, 3404); |
| 6393 | if (op == BC_ISTC) { | 6499 | if (op == BC_ISTC) { |
| 6394 | dasm_put(Dst, 3301); | 6500 | dasm_put(Dst, 3406); |
| 6395 | } | 6501 | } |
| 6396 | } else { | 6502 | } else { |
| 6397 | dasm_put(Dst, 3303); | 6503 | dasm_put(Dst, 3408); |
| 6398 | if (op == BC_ISFC) { | 6504 | if (op == BC_ISFC) { |
| 6399 | dasm_put(Dst, 3305); | 6505 | dasm_put(Dst, 3410); |
| 6400 | } | 6506 | } |
| 6401 | } | 6507 | } |
| 6402 | dasm_put(Dst, 3307); | 6508 | dasm_put(Dst, 3412); |
| 6403 | break; | 6509 | break; |
| 6404 | 6510 | ||
| 6405 | /* -- Unary ops --------------------------------------------------------- */ | 6511 | /* -- Unary ops --------------------------------------------------------- */ |
| 6406 | 6512 | ||
| 6407 | case BC_MOV: | 6513 | case BC_MOV: |
| 6408 | dasm_put(Dst, 3314); | 6514 | dasm_put(Dst, 3419); |
| 6409 | break; | 6515 | break; |
| 6410 | case BC_NOT: | 6516 | case BC_NOT: |
| 6411 | dasm_put(Dst, 3324, -LJ_TTRUE, ~LJ_TFALSE, ~LJ_TTRUE); | 6517 | dasm_put(Dst, 3429, -LJ_TTRUE, ~LJ_TFALSE, ~LJ_TTRUE); |
| 6412 | break; | 6518 | break; |
| 6413 | case BC_UNM: | 6519 | case BC_UNM: |
| 6414 | dasm_put(Dst, 3341, -LJ_TISNUM); | 6520 | dasm_put(Dst, 3446, -LJ_TISNUM); |
| 6415 | break; | 6521 | break; |
| 6416 | case BC_LEN: | 6522 | case BC_LEN: |
| 6417 | dasm_put(Dst, 3367, -LJ_TSTR, Dt5(->len), ~LJ_TISNUM, -LJ_TTAB); | 6523 | dasm_put(Dst, 3472, -LJ_TSTR, Dt5(->len), ~LJ_TISNUM, -LJ_TTAB); |
| 6418 | if (LJ_TARGET_OSX) { | 6524 | if (LJ_TARGET_OSX) { |
| 6419 | dasm_put(Dst, 3391); | 6525 | dasm_put(Dst, 3496); |
| 6420 | } | 6526 | } |
| 6421 | dasm_put(Dst, 3393); | 6527 | dasm_put(Dst, 3498); |
| 6422 | if (LJ_TARGET_OSX) { | 6528 | if (LJ_TARGET_OSX) { |
| 6423 | dasm_put(Dst, 3396); | 6529 | dasm_put(Dst, 3501); |
| 6424 | } | 6530 | } |
| 6425 | dasm_put(Dst, 3398); | 6531 | dasm_put(Dst, 3503); |
| 6426 | break; | 6532 | break; |
| 6427 | 6533 | ||
| 6428 | /* -- Binary ops -------------------------------------------------------- */ | 6534 | /* -- Binary ops -------------------------------------------------------- */ |
| 6429 | 6535 | ||
| 6430 | 6536 | ||
| 6431 | case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: | 6537 | case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: |
| 6432 | dasm_put(Dst, 3401); | 6538 | dasm_put(Dst, 3506); |
| 6433 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); | 6539 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); |
| 6434 | switch (vk) { | 6540 | switch (vk) { |
| 6435 | case 0: | 6541 | case 0: |
| 6436 | dasm_put(Dst, 3404); | 6542 | dasm_put(Dst, 3509); |
| 6437 | break; | 6543 | break; |
| 6438 | case 1: | 6544 | case 1: |
| 6439 | dasm_put(Dst, 3407); | 6545 | dasm_put(Dst, 3512); |
| 6440 | break; | 6546 | break; |
| 6441 | default: | 6547 | default: |
| 6442 | dasm_put(Dst, 3410); | 6548 | dasm_put(Dst, 3515); |
| 6443 | break; | 6549 | break; |
| 6444 | } | 6550 | } |
| 6445 | dasm_put(Dst, 3413); | 6551 | dasm_put(Dst, 3518); |
| 6446 | if (vk == 1) { | 6552 | if (vk == 1) { |
| 6447 | dasm_put(Dst, 3415, -LJ_TISNUM, -LJ_TISNUM); | 6553 | dasm_put(Dst, 3520, -LJ_TISNUM, -LJ_TISNUM); |
| 6448 | } else { | 6554 | } else { |
| 6449 | dasm_put(Dst, 3420, -LJ_TISNUM, -LJ_TISNUM); | 6555 | dasm_put(Dst, 3525, -LJ_TISNUM, -LJ_TISNUM); |
| 6450 | } | 6556 | } |
| 6451 | dasm_put(Dst, 3425); | 6557 | dasm_put(Dst, 3530); |
| 6452 | switch (vk) { | 6558 | switch (vk) { |
| 6453 | case 0: | 6559 | case 0: |
| 6454 | dasm_put(Dst, 3429); | 6560 | dasm_put(Dst, 3534); |
| 6455 | break; | 6561 | break; |
| 6456 | case 1: | 6562 | case 1: |
| 6457 | dasm_put(Dst, 3432); | 6563 | dasm_put(Dst, 3537); |
| 6458 | break; | 6564 | break; |
| 6459 | default: | 6565 | default: |
| 6460 | dasm_put(Dst, 3435); | 6566 | dasm_put(Dst, 3540); |
| 6461 | break; | 6567 | break; |
| 6462 | } | 6568 | } |
| 6463 | dasm_put(Dst, 3438); | 6569 | dasm_put(Dst, 3543); |
| 6464 | switch (vk) { | 6570 | switch (vk) { |
| 6465 | case 0: | 6571 | case 0: |
| 6466 | if (vk == 1) { | 6572 | if (vk == 1) { |
| 6467 | dasm_put(Dst, 3447, -LJ_TISNUM, -LJ_TISNUM); | 6573 | dasm_put(Dst, 3552, -LJ_TISNUM, -LJ_TISNUM); |
| 6468 | } else { | 6574 | } else { |
| 6469 | dasm_put(Dst, 3452, -LJ_TISNUM, -LJ_TISNUM); | 6575 | dasm_put(Dst, 3557, -LJ_TISNUM, -LJ_TISNUM); |
| 6470 | } | 6576 | } |
| 6471 | dasm_put(Dst, 3457); | 6577 | dasm_put(Dst, 3562); |
| 6472 | break; | 6578 | break; |
| 6473 | case 1: | 6579 | case 1: |
| 6474 | if (vk == 1) { | 6580 | if (vk == 1) { |
| 6475 | dasm_put(Dst, 3460, -LJ_TISNUM, -LJ_TISNUM); | 6581 | dasm_put(Dst, 3565, -LJ_TISNUM, -LJ_TISNUM); |
| 6476 | } else { | 6582 | } else { |
| 6477 | dasm_put(Dst, 3465, -LJ_TISNUM, -LJ_TISNUM); | 6583 | dasm_put(Dst, 3570, -LJ_TISNUM, -LJ_TISNUM); |
| 6478 | } | 6584 | } |
| 6479 | dasm_put(Dst, 3470); | 6585 | dasm_put(Dst, 3575); |
| 6480 | break; | 6586 | break; |
| 6481 | default: | 6587 | default: |
| 6482 | if (vk == 1) { | 6588 | if (vk == 1) { |
| 6483 | dasm_put(Dst, 3473, -LJ_TISNUM, -LJ_TISNUM); | 6589 | dasm_put(Dst, 3578, -LJ_TISNUM, -LJ_TISNUM); |
| 6484 | } else { | 6590 | } else { |
| 6485 | dasm_put(Dst, 3478, -LJ_TISNUM, -LJ_TISNUM); | 6591 | dasm_put(Dst, 3583, -LJ_TISNUM, -LJ_TISNUM); |
| 6486 | } | 6592 | } |
| 6487 | dasm_put(Dst, 3483); | 6593 | dasm_put(Dst, 3588); |
| 6488 | break; | 6594 | break; |
| 6489 | } | 6595 | } |
| 6490 | dasm_put(Dst, 3486); | 6596 | dasm_put(Dst, 3591); |
| 6491 | break; | 6597 | break; |
| 6492 | case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: | 6598 | case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: |
| 6493 | dasm_put(Dst, 3492); | 6599 | dasm_put(Dst, 3597); |
| 6494 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); | 6600 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); |
| 6495 | switch (vk) { | 6601 | switch (vk) { |
| 6496 | case 0: | 6602 | case 0: |
| 6497 | dasm_put(Dst, 3495); | 6603 | dasm_put(Dst, 3600); |
| 6498 | break; | 6604 | break; |
| 6499 | case 1: | 6605 | case 1: |
| 6500 | dasm_put(Dst, 3498); | 6606 | dasm_put(Dst, 3603); |
| 6501 | break; | 6607 | break; |
| 6502 | default: | 6608 | default: |
| 6503 | dasm_put(Dst, 3501); | 6609 | dasm_put(Dst, 3606); |
| 6504 | break; | 6610 | break; |
| 6505 | } | 6611 | } |
| 6506 | dasm_put(Dst, 3504); | 6612 | dasm_put(Dst, 3609); |
| 6507 | if (vk == 1) { | 6613 | if (vk == 1) { |
| 6508 | dasm_put(Dst, 3506, -LJ_TISNUM, -LJ_TISNUM); | 6614 | dasm_put(Dst, 3611, -LJ_TISNUM, -LJ_TISNUM); |
| 6509 | } else { | 6615 | } else { |
| 6510 | dasm_put(Dst, 3511, -LJ_TISNUM, -LJ_TISNUM); | 6616 | dasm_put(Dst, 3616, -LJ_TISNUM, -LJ_TISNUM); |
| 6511 | } | 6617 | } |
| 6512 | dasm_put(Dst, 3516); | 6618 | dasm_put(Dst, 3621); |
| 6513 | switch (vk) { | 6619 | switch (vk) { |
| 6514 | case 0: | 6620 | case 0: |
| 6515 | dasm_put(Dst, 3520); | 6621 | dasm_put(Dst, 3625); |
| 6516 | break; | 6622 | break; |
| 6517 | case 1: | 6623 | case 1: |
| 6518 | dasm_put(Dst, 3523); | 6624 | dasm_put(Dst, 3628); |
| 6519 | break; | 6625 | break; |
| 6520 | default: | 6626 | default: |
| 6521 | dasm_put(Dst, 3526); | 6627 | dasm_put(Dst, 3631); |
| 6522 | break; | 6628 | break; |
| 6523 | } | 6629 | } |
| 6524 | dasm_put(Dst, 3529); | 6630 | dasm_put(Dst, 3634); |
| 6525 | switch (vk) { | 6631 | switch (vk) { |
| 6526 | case 0: | 6632 | case 0: |
| 6527 | if (vk == 1) { | 6633 | if (vk == 1) { |
| 6528 | dasm_put(Dst, 3538, -LJ_TISNUM, -LJ_TISNUM); | 6634 | dasm_put(Dst, 3643, -LJ_TISNUM, -LJ_TISNUM); |
| 6529 | } else { | 6635 | } else { |
| 6530 | dasm_put(Dst, 3543, -LJ_TISNUM, -LJ_TISNUM); | 6636 | dasm_put(Dst, 3648, -LJ_TISNUM, -LJ_TISNUM); |
| 6531 | } | 6637 | } |
| 6532 | dasm_put(Dst, 3548); | 6638 | dasm_put(Dst, 3653); |
| 6533 | break; | 6639 | break; |
| 6534 | case 1: | 6640 | case 1: |
| 6535 | if (vk == 1) { | 6641 | if (vk == 1) { |
| 6536 | dasm_put(Dst, 3551, -LJ_TISNUM, -LJ_TISNUM); | 6642 | dasm_put(Dst, 3656, -LJ_TISNUM, -LJ_TISNUM); |
| 6537 | } else { | 6643 | } else { |
| 6538 | dasm_put(Dst, 3556, -LJ_TISNUM, -LJ_TISNUM); | 6644 | dasm_put(Dst, 3661, -LJ_TISNUM, -LJ_TISNUM); |
| 6539 | } | 6645 | } |
| 6540 | dasm_put(Dst, 3561); | 6646 | dasm_put(Dst, 3666); |
| 6541 | break; | 6647 | break; |
| 6542 | default: | 6648 | default: |
| 6543 | if (vk == 1) { | 6649 | if (vk == 1) { |
| 6544 | dasm_put(Dst, 3564, -LJ_TISNUM, -LJ_TISNUM); | 6650 | dasm_put(Dst, 3669, -LJ_TISNUM, -LJ_TISNUM); |
| 6545 | } else { | 6651 | } else { |
| 6546 | dasm_put(Dst, 3569, -LJ_TISNUM, -LJ_TISNUM); | 6652 | dasm_put(Dst, 3674, -LJ_TISNUM, -LJ_TISNUM); |
| 6547 | } | 6653 | } |
| 6548 | dasm_put(Dst, 3574); | 6654 | dasm_put(Dst, 3679); |
| 6549 | break; | 6655 | break; |
| 6550 | } | 6656 | } |
| 6551 | dasm_put(Dst, 3577); | 6657 | dasm_put(Dst, 3682); |
| 6552 | break; | 6658 | break; |
| 6553 | case BC_MULVN: case BC_MULNV: case BC_MULVV: | 6659 | case BC_MULVN: case BC_MULNV: case BC_MULVV: |
| 6554 | dasm_put(Dst, 3583); | 6660 | dasm_put(Dst, 3688); |
| 6555 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); | 6661 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); |
| 6556 | switch (vk) { | 6662 | switch (vk) { |
| 6557 | case 0: | 6663 | case 0: |
| 6558 | dasm_put(Dst, 3586); | 6664 | dasm_put(Dst, 3691); |
| 6559 | break; | 6665 | break; |
| 6560 | case 1: | 6666 | case 1: |
| 6561 | dasm_put(Dst, 3589); | 6667 | dasm_put(Dst, 3694); |
| 6562 | break; | 6668 | break; |
| 6563 | default: | 6669 | default: |
| 6564 | dasm_put(Dst, 3592); | 6670 | dasm_put(Dst, 3697); |
| 6565 | break; | 6671 | break; |
| 6566 | } | 6672 | } |
| 6567 | dasm_put(Dst, 3595); | 6673 | dasm_put(Dst, 3700); |
| 6568 | if (vk == 1) { | 6674 | if (vk == 1) { |
| 6569 | dasm_put(Dst, 3597, -LJ_TISNUM, -LJ_TISNUM); | 6675 | dasm_put(Dst, 3702, -LJ_TISNUM, -LJ_TISNUM); |
| 6570 | } else { | 6676 | } else { |
| 6571 | dasm_put(Dst, 3602, -LJ_TISNUM, -LJ_TISNUM); | 6677 | dasm_put(Dst, 3707, -LJ_TISNUM, -LJ_TISNUM); |
| 6572 | } | 6678 | } |
| 6573 | dasm_put(Dst, 3607); | 6679 | dasm_put(Dst, 3712); |
| 6574 | switch (vk) { | 6680 | switch (vk) { |
| 6575 | case 0: | 6681 | case 0: |
| 6576 | dasm_put(Dst, 3612); | 6682 | dasm_put(Dst, 3717); |
| 6577 | break; | 6683 | break; |
| 6578 | case 1: | 6684 | case 1: |
| 6579 | dasm_put(Dst, 3615); | 6685 | dasm_put(Dst, 3720); |
| 6580 | break; | 6686 | break; |
| 6581 | default: | 6687 | default: |
| 6582 | dasm_put(Dst, 3618); | 6688 | dasm_put(Dst, 3723); |
| 6583 | break; | 6689 | break; |
| 6584 | } | 6690 | } |
| 6585 | dasm_put(Dst, 3621); | 6691 | dasm_put(Dst, 3726); |
| 6586 | switch (vk) { | 6692 | switch (vk) { |
| 6587 | case 0: | 6693 | case 0: |
| 6588 | if (vk == 1) { | 6694 | if (vk == 1) { |
| 6589 | dasm_put(Dst, 3630, -LJ_TISNUM, -LJ_TISNUM); | 6695 | dasm_put(Dst, 3735, -LJ_TISNUM, -LJ_TISNUM); |
| 6590 | } else { | 6696 | } else { |
| 6591 | dasm_put(Dst, 3635, -LJ_TISNUM, -LJ_TISNUM); | 6697 | dasm_put(Dst, 3740, -LJ_TISNUM, -LJ_TISNUM); |
| 6592 | } | 6698 | } |
| 6593 | dasm_put(Dst, 3640); | 6699 | dasm_put(Dst, 3745); |
| 6594 | break; | 6700 | break; |
| 6595 | case 1: | 6701 | case 1: |
| 6596 | if (vk == 1) { | 6702 | if (vk == 1) { |
| 6597 | dasm_put(Dst, 3643, -LJ_TISNUM, -LJ_TISNUM); | 6703 | dasm_put(Dst, 3748, -LJ_TISNUM, -LJ_TISNUM); |
| 6598 | } else { | 6704 | } else { |
| 6599 | dasm_put(Dst, 3648, -LJ_TISNUM, -LJ_TISNUM); | 6705 | dasm_put(Dst, 3753, -LJ_TISNUM, -LJ_TISNUM); |
| 6600 | } | 6706 | } |
| 6601 | dasm_put(Dst, 3653); | 6707 | dasm_put(Dst, 3758); |
| 6602 | break; | 6708 | break; |
| 6603 | default: | 6709 | default: |
| 6604 | if (vk == 1) { | 6710 | if (vk == 1) { |
| 6605 | dasm_put(Dst, 3656, -LJ_TISNUM, -LJ_TISNUM); | 6711 | dasm_put(Dst, 3761, -LJ_TISNUM, -LJ_TISNUM); |
| 6606 | } else { | 6712 | } else { |
| 6607 | dasm_put(Dst, 3661, -LJ_TISNUM, -LJ_TISNUM); | 6713 | dasm_put(Dst, 3766, -LJ_TISNUM, -LJ_TISNUM); |
| 6608 | } | 6714 | } |
| 6609 | dasm_put(Dst, 3666); | 6715 | dasm_put(Dst, 3771); |
| 6610 | break; | 6716 | break; |
| 6611 | } | 6717 | } |
| 6612 | dasm_put(Dst, 3669); | 6718 | dasm_put(Dst, 3774); |
| 6613 | break; | 6719 | break; |
| 6614 | case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: | 6720 | case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: |
| 6615 | dasm_put(Dst, 3675); | 6721 | dasm_put(Dst, 3780); |
| 6616 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); | 6722 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); |
| 6617 | switch (vk) { | 6723 | switch (vk) { |
| 6618 | case 0: | 6724 | case 0: |
| 6619 | dasm_put(Dst, 3678); | 6725 | dasm_put(Dst, 3783); |
| 6620 | break; | 6726 | break; |
| 6621 | case 1: | 6727 | case 1: |
| 6622 | dasm_put(Dst, 3681); | 6728 | dasm_put(Dst, 3786); |
| 6623 | break; | 6729 | break; |
| 6624 | default: | 6730 | default: |
| 6625 | dasm_put(Dst, 3684); | 6731 | dasm_put(Dst, 3789); |
| 6626 | break; | 6732 | break; |
| 6627 | } | 6733 | } |
| 6628 | switch (vk) { | 6734 | switch (vk) { |
| 6629 | case 0: | 6735 | case 0: |
| 6630 | if (vk == 1) { | 6736 | if (vk == 1) { |
| 6631 | dasm_put(Dst, 3687, -LJ_TISNUM, -LJ_TISNUM); | 6737 | dasm_put(Dst, 3792, -LJ_TISNUM, -LJ_TISNUM); |
| 6632 | } else { | 6738 | } else { |
| 6633 | dasm_put(Dst, 3692, -LJ_TISNUM, -LJ_TISNUM); | 6739 | dasm_put(Dst, 3797, -LJ_TISNUM, -LJ_TISNUM); |
| 6634 | } | 6740 | } |
| 6635 | dasm_put(Dst, 3697); | 6741 | dasm_put(Dst, 3802); |
| 6636 | break; | 6742 | break; |
| 6637 | case 1: | 6743 | case 1: |
| 6638 | if (vk == 1) { | 6744 | if (vk == 1) { |
| 6639 | dasm_put(Dst, 3700, -LJ_TISNUM, -LJ_TISNUM); | 6745 | dasm_put(Dst, 3805, -LJ_TISNUM, -LJ_TISNUM); |
| 6640 | } else { | 6746 | } else { |
| 6641 | dasm_put(Dst, 3705, -LJ_TISNUM, -LJ_TISNUM); | 6747 | dasm_put(Dst, 3810, -LJ_TISNUM, -LJ_TISNUM); |
| 6642 | } | 6748 | } |
| 6643 | dasm_put(Dst, 3710); | 6749 | dasm_put(Dst, 3815); |
| 6644 | break; | 6750 | break; |
| 6645 | default: | 6751 | default: |
| 6646 | if (vk == 1) { | 6752 | if (vk == 1) { |
| 6647 | dasm_put(Dst, 3713, -LJ_TISNUM, -LJ_TISNUM); | 6753 | dasm_put(Dst, 3818, -LJ_TISNUM, -LJ_TISNUM); |
| 6648 | } else { | 6754 | } else { |
| 6649 | dasm_put(Dst, 3718, -LJ_TISNUM, -LJ_TISNUM); | 6755 | dasm_put(Dst, 3823, -LJ_TISNUM, -LJ_TISNUM); |
| 6650 | } | 6756 | } |
| 6651 | dasm_put(Dst, 3723); | 6757 | dasm_put(Dst, 3828); |
| 6652 | break; | 6758 | break; |
| 6653 | } | 6759 | } |
| 6654 | dasm_put(Dst, 3726); | 6760 | dasm_put(Dst, 3831); |
| 6655 | break; | 6761 | break; |
| 6656 | case BC_MODVN: case BC_MODNV: case BC_MODVV: | 6762 | case BC_MODVN: case BC_MODNV: case BC_MODVV: |
| 6657 | dasm_put(Dst, 3736); | 6763 | dasm_put(Dst, 3841); |
| 6658 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); | 6764 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); |
| 6659 | switch (vk) { | 6765 | switch (vk) { |
| 6660 | case 0: | 6766 | case 0: |
| 6661 | dasm_put(Dst, 3739); | 6767 | dasm_put(Dst, 3844); |
| 6662 | break; | 6768 | break; |
| 6663 | case 1: | 6769 | case 1: |
| 6664 | dasm_put(Dst, 3742); | 6770 | dasm_put(Dst, 3847); |
| 6665 | break; | 6771 | break; |
| 6666 | default: | 6772 | default: |
| 6667 | dasm_put(Dst, 3745); | 6773 | dasm_put(Dst, 3850); |
| 6668 | break; | 6774 | break; |
| 6669 | } | 6775 | } |
| 6670 | if (vk == 1) { | 6776 | if (vk == 1) { |
| 6671 | dasm_put(Dst, 3748, -LJ_TISNUM, -LJ_TISNUM); | 6777 | dasm_put(Dst, 3853, -LJ_TISNUM, -LJ_TISNUM); |
| 6672 | } else { | 6778 | } else { |
| 6673 | dasm_put(Dst, 3753, -LJ_TISNUM, -LJ_TISNUM); | 6779 | dasm_put(Dst, 3858, -LJ_TISNUM, -LJ_TISNUM); |
| 6674 | } | 6780 | } |
| 6675 | dasm_put(Dst, 3758); | 6781 | dasm_put(Dst, 3863); |
| 6676 | switch (vk) { | 6782 | switch (vk) { |
| 6677 | case 0: | 6783 | case 0: |
| 6678 | dasm_put(Dst, 3762); | 6784 | dasm_put(Dst, 3867); |
| 6679 | break; | 6785 | break; |
| 6680 | case 1: | 6786 | case 1: |
| 6681 | dasm_put(Dst, 3765); | 6787 | dasm_put(Dst, 3870); |
| 6682 | break; | 6788 | break; |
| 6683 | default: | 6789 | default: |
| 6684 | dasm_put(Dst, 3768); | 6790 | dasm_put(Dst, 3873); |
| 6685 | break; | 6791 | break; |
| 6686 | } | 6792 | } |
| 6687 | dasm_put(Dst, 3771, ~LJ_TISNUM); | 6793 | dasm_put(Dst, 3876, ~LJ_TISNUM); |
| 6688 | switch (vk) { | 6794 | switch (vk) { |
| 6689 | case 0: | 6795 | case 0: |
| 6690 | if (vk == 1) { | 6796 | if (vk == 1) { |
| 6691 | dasm_put(Dst, 3785, -LJ_TISNUM, -LJ_TISNUM); | 6797 | dasm_put(Dst, 3890, -LJ_TISNUM, -LJ_TISNUM); |
| 6692 | } else { | 6798 | } else { |
| 6693 | dasm_put(Dst, 3790, -LJ_TISNUM, -LJ_TISNUM); | 6799 | dasm_put(Dst, 3895, -LJ_TISNUM, -LJ_TISNUM); |
| 6694 | } | 6800 | } |
| 6695 | dasm_put(Dst, 3795); | 6801 | dasm_put(Dst, 3900); |
| 6696 | break; | 6802 | break; |
| 6697 | case 1: | 6803 | case 1: |
| 6698 | if (vk == 1) { | 6804 | if (vk == 1) { |
| 6699 | dasm_put(Dst, 3798, -LJ_TISNUM, -LJ_TISNUM); | 6805 | dasm_put(Dst, 3903, -LJ_TISNUM, -LJ_TISNUM); |
| 6700 | } else { | 6806 | } else { |
| 6701 | dasm_put(Dst, 3803, -LJ_TISNUM, -LJ_TISNUM); | 6807 | dasm_put(Dst, 3908, -LJ_TISNUM, -LJ_TISNUM); |
| 6702 | } | 6808 | } |
| 6703 | dasm_put(Dst, 3808); | 6809 | dasm_put(Dst, 3913); |
| 6704 | break; | 6810 | break; |
| 6705 | default: | 6811 | default: |
| 6706 | if (vk == 1) { | 6812 | if (vk == 1) { |
| 6707 | dasm_put(Dst, 3811, -LJ_TISNUM, -LJ_TISNUM); | 6813 | dasm_put(Dst, 3916, -LJ_TISNUM, -LJ_TISNUM); |
| 6708 | } else { | 6814 | } else { |
| 6709 | dasm_put(Dst, 3816, -LJ_TISNUM, -LJ_TISNUM); | 6815 | dasm_put(Dst, 3921, -LJ_TISNUM, -LJ_TISNUM); |
| 6710 | } | 6816 | } |
| 6711 | dasm_put(Dst, 3821); | 6817 | dasm_put(Dst, 3926); |
| 6712 | break; | 6818 | break; |
| 6713 | } | 6819 | } |
| 6714 | if (LJ_TARGET_OSX) { | 6820 | if (LJ_TARGET_OSX) { |
| 6715 | dasm_put(Dst, 3824); | 6821 | dasm_put(Dst, 3929); |
| 6716 | } | 6822 | } |
| 6717 | dasm_put(Dst, 3826); | 6823 | dasm_put(Dst, 3931); |
| 6718 | if (LJ_TARGET_OSX) { | 6824 | if (LJ_TARGET_OSX) { |
| 6719 | dasm_put(Dst, 3829); | 6825 | dasm_put(Dst, 3934); |
| 6720 | } | 6826 | } |
| 6721 | dasm_put(Dst, 3831); | 6827 | dasm_put(Dst, 3936); |
| 6722 | break; | 6828 | break; |
| 6723 | case BC_POW: | 6829 | case BC_POW: |
| 6724 | dasm_put(Dst, 3834); | 6830 | dasm_put(Dst, 3939); |
| 6725 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); | 6831 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); |
| 6726 | switch (vk) { | 6832 | switch (vk) { |
| 6727 | case 0: | 6833 | case 0: |
| 6728 | dasm_put(Dst, 3837); | 6834 | dasm_put(Dst, 3942); |
| 6729 | break; | 6835 | break; |
| 6730 | case 1: | 6836 | case 1: |
| 6731 | dasm_put(Dst, 3840); | 6837 | dasm_put(Dst, 3945); |
| 6732 | break; | 6838 | break; |
| 6733 | default: | 6839 | default: |
| 6734 | dasm_put(Dst, 3843); | 6840 | dasm_put(Dst, 3948); |
| 6735 | break; | 6841 | break; |
| 6736 | } | 6842 | } |
| 6737 | switch (vk) { | 6843 | switch (vk) { |
| 6738 | case 0: | 6844 | case 0: |
| 6739 | if (vk == 1) { | 6845 | if (vk == 1) { |
| 6740 | dasm_put(Dst, 3846, -LJ_TISNUM, -LJ_TISNUM); | 6846 | dasm_put(Dst, 3951, -LJ_TISNUM, -LJ_TISNUM); |
| 6741 | } else { | 6847 | } else { |
| 6742 | dasm_put(Dst, 3851, -LJ_TISNUM, -LJ_TISNUM); | 6848 | dasm_put(Dst, 3956, -LJ_TISNUM, -LJ_TISNUM); |
| 6743 | } | 6849 | } |
| 6744 | dasm_put(Dst, 3856); | 6850 | dasm_put(Dst, 3961); |
| 6745 | break; | 6851 | break; |
| 6746 | case 1: | 6852 | case 1: |
| 6747 | if (vk == 1) { | 6853 | if (vk == 1) { |
| 6748 | dasm_put(Dst, 3859, -LJ_TISNUM, -LJ_TISNUM); | 6854 | dasm_put(Dst, 3964, -LJ_TISNUM, -LJ_TISNUM); |
| 6749 | } else { | 6855 | } else { |
| 6750 | dasm_put(Dst, 3864, -LJ_TISNUM, -LJ_TISNUM); | 6856 | dasm_put(Dst, 3969, -LJ_TISNUM, -LJ_TISNUM); |
| 6751 | } | 6857 | } |
| 6752 | dasm_put(Dst, 3869); | 6858 | dasm_put(Dst, 3974); |
| 6753 | break; | 6859 | break; |
| 6754 | default: | 6860 | default: |
| 6755 | if (vk == 1) { | 6861 | if (vk == 1) { |
| 6756 | dasm_put(Dst, 3872, -LJ_TISNUM, -LJ_TISNUM); | 6862 | dasm_put(Dst, 3977, -LJ_TISNUM, -LJ_TISNUM); |
| 6757 | } else { | 6863 | } else { |
| 6758 | dasm_put(Dst, 3877, -LJ_TISNUM, -LJ_TISNUM); | 6864 | dasm_put(Dst, 3982, -LJ_TISNUM, -LJ_TISNUM); |
| 6759 | } | 6865 | } |
| 6760 | dasm_put(Dst, 3882); | 6866 | dasm_put(Dst, 3987); |
| 6761 | break; | 6867 | break; |
| 6762 | } | 6868 | } |
| 6763 | if (LJ_TARGET_OSX) { | 6869 | if (LJ_TARGET_OSX) { |
| 6764 | dasm_put(Dst, 3885); | 6870 | dasm_put(Dst, 3990); |
| 6765 | } | 6871 | } |
| 6766 | dasm_put(Dst, 3887); | 6872 | dasm_put(Dst, 3992); |
| 6767 | if (LJ_TARGET_OSX) { | 6873 | if (LJ_TARGET_OSX) { |
| 6768 | dasm_put(Dst, 3890); | 6874 | dasm_put(Dst, 3995); |
| 6769 | } | 6875 | } |
| 6770 | dasm_put(Dst, 3892); | 6876 | dasm_put(Dst, 3997); |
| 6771 | break; | 6877 | break; |
| 6772 | 6878 | ||
| 6773 | case BC_CAT: | 6879 | case BC_CAT: |
| 6774 | dasm_put(Dst, 3900, Dt1(->base), Dt1(->base)); | 6880 | dasm_put(Dst, 4005, Dt1(->base), Dt1(->base)); |
| 6775 | break; | 6881 | break; |
| 6776 | 6882 | ||
| 6777 | /* -- Constant ops ------------------------------------------------------ */ | 6883 | /* -- Constant ops ------------------------------------------------------ */ |
| 6778 | 6884 | ||
| 6779 | case BC_KSTR: | 6885 | case BC_KSTR: |
| 6780 | dasm_put(Dst, 3926, ~LJ_TSTR); | 6886 | dasm_put(Dst, 4031, ~LJ_TSTR); |
| 6781 | break; | 6887 | break; |
| 6782 | case BC_KCDATA: | 6888 | case BC_KCDATA: |
| 6783 | #if LJ_HASFFI | 6889 | #if LJ_HASFFI |
| 6784 | dasm_put(Dst, 3938, ~LJ_TCDATA); | 6890 | dasm_put(Dst, 4043, ~LJ_TCDATA); |
| 6785 | #endif | 6891 | #endif |
| 6786 | break; | 6892 | break; |
| 6787 | case BC_KSHORT: | 6893 | case BC_KSHORT: |
| 6788 | dasm_put(Dst, 3950, ~LJ_TISNUM); | 6894 | dasm_put(Dst, 4055, ~LJ_TISNUM); |
| 6789 | break; | 6895 | break; |
| 6790 | case BC_KNUM: | 6896 | case BC_KNUM: |
| 6791 | dasm_put(Dst, 3961); | 6897 | dasm_put(Dst, 4066); |
| 6792 | break; | 6898 | break; |
| 6793 | case BC_KPRI: | 6899 | case BC_KPRI: |
| 6794 | dasm_put(Dst, 3971); | 6900 | dasm_put(Dst, 4076); |
| 6795 | break; | 6901 | break; |
| 6796 | case BC_KNIL: | 6902 | case BC_KNIL: |
| 6797 | dasm_put(Dst, 3981, ~LJ_TNIL); | 6903 | dasm_put(Dst, 4086, ~LJ_TNIL); |
| 6798 | break; | 6904 | break; |
| 6799 | 6905 | ||
| 6800 | /* -- Upvalue and function ops ------------------------------------------ */ | 6906 | /* -- Upvalue and function ops ------------------------------------------ */ |
| 6801 | 6907 | ||
| 6802 | case BC_UGET: | 6908 | case BC_UGET: |
| 6803 | dasm_put(Dst, 4000, offsetof(GCfuncL, uvptr), DtA(->v)); | 6909 | dasm_put(Dst, 4105, offsetof(GCfuncL, uvptr), DtA(->v)); |
| 6804 | break; | 6910 | break; |
| 6805 | case BC_USETV: | 6911 | case BC_USETV: |
| 6806 | dasm_put(Dst, 4016, offsetof(GCfuncL, uvptr), DtA(->marked), DtA(->closed), DtA(->v), LJ_GC_BLACK, -LJ_TISGCV, -(LJ_TISNUM - LJ_TISGCV), Dt4(->gch.marked), -GG_DISP2G, LJ_GC_WHITES); | 6912 | dasm_put(Dst, 4121, offsetof(GCfuncL, uvptr), DtA(->marked), DtA(->closed), DtA(->v), LJ_GC_BLACK, -LJ_TISGCV, -(LJ_TISNUM - LJ_TISGCV), Dt4(->gch.marked), -GG_DISP2G, LJ_GC_WHITES); |
| 6807 | if (LJ_TARGET_OSX) { | 6913 | if (LJ_TARGET_OSX) { |
| 6808 | dasm_put(Dst, 4056); | 6914 | dasm_put(Dst, 4161); |
| 6809 | } else { | 6915 | } else { |
| 6810 | dasm_put(Dst, 4063); | 6916 | dasm_put(Dst, 4168); |
| 6811 | } | 6917 | } |
| 6812 | dasm_put(Dst, 4066); | 6918 | dasm_put(Dst, 4171); |
| 6813 | break; | 6919 | break; |
| 6814 | case BC_USETS: | 6920 | case BC_USETS: |
| 6815 | dasm_put(Dst, 4069, offsetof(GCfuncL, uvptr), ~LJ_TSTR, DtA(->marked), DtA(->v), DtA(->closed), LJ_GC_BLACK, Dt5(->marked), LJ_GC_WHITES, -GG_DISP2G); | 6921 | dasm_put(Dst, 4174, offsetof(GCfuncL, uvptr), ~LJ_TSTR, DtA(->marked), DtA(->v), DtA(->closed), LJ_GC_BLACK, Dt5(->marked), LJ_GC_WHITES, -GG_DISP2G); |
| 6816 | if (LJ_TARGET_OSX) { | 6922 | if (LJ_TARGET_OSX) { |
| 6817 | dasm_put(Dst, 4105); | 6923 | dasm_put(Dst, 4210); |
| 6818 | } else { | 6924 | } else { |
| 6819 | dasm_put(Dst, 4112); | 6925 | dasm_put(Dst, 4217); |
| 6820 | } | 6926 | } |
| 6821 | dasm_put(Dst, 4115); | 6927 | dasm_put(Dst, 4220); |
| 6822 | break; | 6928 | break; |
| 6823 | case BC_USETN: | 6929 | case BC_USETN: |
| 6824 | dasm_put(Dst, 4118, offsetof(GCfuncL, uvptr), DtA(->v)); | 6930 | dasm_put(Dst, 4223, offsetof(GCfuncL, uvptr), DtA(->v)); |
| 6825 | break; | 6931 | break; |
| 6826 | case BC_USETP: | 6932 | case BC_USETP: |
| 6827 | dasm_put(Dst, 4135, offsetof(GCfuncL, uvptr), DtA(->v)); | 6933 | dasm_put(Dst, 4240, offsetof(GCfuncL, uvptr), DtA(->v)); |
| 6828 | break; | 6934 | break; |
| 6829 | 6935 | ||
| 6830 | case BC_UCLO: | 6936 | case BC_UCLO: |
| 6831 | dasm_put(Dst, 4151, Dt1(->openupval), Dt1(->base), Dt1(->base)); | 6937 | dasm_put(Dst, 4256, Dt1(->openupval), Dt1(->base), Dt1(->base)); |
| 6832 | break; | 6938 | break; |
| 6833 | 6939 | ||
| 6834 | case BC_FNEW: | 6940 | case BC_FNEW: |
| 6835 | dasm_put(Dst, 4174, Dt1(->base), Dt1(->base), ~LJ_TFUNC); | 6941 | dasm_put(Dst, 4279, Dt1(->base), Dt1(->base), ~LJ_TFUNC); |
| 6836 | break; | 6942 | break; |
| 6837 | 6943 | ||
| 6838 | /* -- Table ops --------------------------------------------------------- */ | 6944 | /* -- Table ops --------------------------------------------------------- */ |
| @@ -6840,115 +6946,115 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
| 6840 | case BC_TNEW: | 6946 | case BC_TNEW: |
| 6841 | case BC_TDUP: | 6947 | case BC_TDUP: |
| 6842 | if (op == BC_TDUP) { | 6948 | if (op == BC_TDUP) { |
| 6843 | dasm_put(Dst, 4195); | 6949 | dasm_put(Dst, 4300); |
| 6844 | } | 6950 | } |
| 6845 | dasm_put(Dst, 4197, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base)); | 6951 | dasm_put(Dst, 4302, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base)); |
| 6846 | if (op == BC_TNEW) { | 6952 | if (op == BC_TNEW) { |
| 6847 | dasm_put(Dst, 4210); | 6953 | dasm_put(Dst, 4315); |
| 6848 | } else { | 6954 | } else { |
| 6849 | dasm_put(Dst, 4219); | 6955 | dasm_put(Dst, 4324); |
| 6850 | } | 6956 | } |
| 6851 | dasm_put(Dst, 4223, Dt1(->base), ~LJ_TTAB); | 6957 | dasm_put(Dst, 4328, Dt1(->base), ~LJ_TTAB); |
| 6852 | break; | 6958 | break; |
| 6853 | 6959 | ||
| 6854 | case BC_GGET: | 6960 | case BC_GGET: |
| 6855 | case BC_GSET: | 6961 | case BC_GSET: |
| 6856 | dasm_put(Dst, 4241, Dt7(->env)); | 6962 | dasm_put(Dst, 4346, Dt7(->env)); |
| 6857 | if (op == BC_GGET) { | 6963 | if (op == BC_GGET) { |
| 6858 | dasm_put(Dst, 4247); | 6964 | dasm_put(Dst, 4352); |
| 6859 | } else { | 6965 | } else { |
| 6860 | dasm_put(Dst, 4250); | 6966 | dasm_put(Dst, 4355); |
| 6861 | } | 6967 | } |
| 6862 | break; | 6968 | break; |
| 6863 | 6969 | ||
| 6864 | case BC_TGETV: | 6970 | case BC_TGETV: |
| 6865 | dasm_put(Dst, 4253, -LJ_TTAB, -LJ_TISNUM, Dt6(->array), Dt6(->asize), -LJ_TNIL, Dt6(->metatable), Dt6(->nomm), 1<<MM_index, -LJ_TSTR); | 6971 | dasm_put(Dst, 4358, -LJ_TTAB, -LJ_TISNUM, Dt6(->array), Dt6(->asize), -LJ_TNIL, Dt6(->metatable), Dt6(->nomm), 1<<MM_index, -LJ_TSTR); |
| 6866 | break; | 6972 | break; |
| 6867 | case BC_TGETS: | 6973 | case BC_TGETS: |
| 6868 | dasm_put(Dst, 4310, -LJ_TTAB, Dt6(->hmask), Dt5(->hash), Dt6(->node), DtB(->key), DtB(->val), DtB(->next), -LJ_TSTR, -LJ_TNIL, Dt6(->metatable), ~LJ_TNIL, Dt6(->nomm)); | 6974 | dasm_put(Dst, 4415, -LJ_TTAB, Dt6(->hmask), Dt5(->hash), Dt6(->node), DtB(->key), DtB(->val), DtB(->next), -LJ_TSTR, -LJ_TNIL, Dt6(->metatable), ~LJ_TNIL, Dt6(->nomm)); |
| 6869 | dasm_put(Dst, 4370, 1<<MM_index); | 6975 | dasm_put(Dst, 4475, 1<<MM_index); |
| 6870 | break; | 6976 | break; |
| 6871 | case BC_TGETB: | 6977 | case BC_TGETB: |
| 6872 | dasm_put(Dst, 4377, -LJ_TTAB, Dt6(->asize), Dt6(->array), -LJ_TNIL, Dt6(->metatable), Dt6(->nomm), 1<<MM_index); | 6978 | dasm_put(Dst, 4482, -LJ_TTAB, Dt6(->asize), Dt6(->array), -LJ_TNIL, Dt6(->metatable), Dt6(->nomm), 1<<MM_index); |
| 6873 | break; | 6979 | break; |
| 6874 | 6980 | ||
| 6875 | case BC_TSETV: | 6981 | case BC_TSETV: |
| 6876 | dasm_put(Dst, 4420, -LJ_TTAB, -LJ_TISNUM, Dt6(->array), Dt6(->asize), -LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex); | 6982 | dasm_put(Dst, 4525, -LJ_TTAB, -LJ_TISNUM, Dt6(->array), Dt6(->asize), -LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex); |
| 6877 | dasm_put(Dst, 4480, DISPATCH_GL(gc.grayagain), LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist), -LJ_TSTR); | 6983 | dasm_put(Dst, 4585, DISPATCH_GL(gc.grayagain), LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist), -LJ_TSTR); |
| 6878 | break; | 6984 | break; |
| 6879 | case BC_TSETS: | 6985 | case BC_TSETS: |
| 6880 | dasm_put(Dst, 4501, -LJ_TTAB, Dt6(->hmask), Dt5(->hash), Dt6(->node), Dt6(->nomm), DtB(->key), DtB(->val.it), DtB(->next), -LJ_TSTR, Dt6(->marked), -LJ_TNIL, LJ_GC_BLACK, DtB(->val)); | 6986 | dasm_put(Dst, 4606, -LJ_TTAB, Dt6(->hmask), Dt5(->hash), Dt6(->node), Dt6(->nomm), DtB(->key), DtB(->val.it), DtB(->next), -LJ_TSTR, Dt6(->marked), -LJ_TNIL, LJ_GC_BLACK, DtB(->val)); |
| 6881 | dasm_put(Dst, 4559, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->metatable), Dt1(->base), Dt6(->nomm), 1<<MM_newindex, ~LJ_TSTR, Dt1(->base), DISPATCH_GL(gc.grayagain), LJ_GC_BLACK); | 6987 | dasm_put(Dst, 4664, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->metatable), Dt1(->base), Dt6(->nomm), 1<<MM_newindex, ~LJ_TSTR, Dt1(->base), DISPATCH_GL(gc.grayagain), LJ_GC_BLACK); |
| 6882 | dasm_put(Dst, 4612, DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist)); | 6988 | dasm_put(Dst, 4717, DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist)); |
| 6883 | break; | 6989 | break; |
| 6884 | case BC_TSETB: | 6990 | case BC_TSETB: |
| 6885 | dasm_put(Dst, 4621, -LJ_TTAB, Dt6(->asize), Dt6(->array), -LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DISPATCH_GL(gc.grayagain), LJ_GC_BLACK); | 6991 | dasm_put(Dst, 4726, -LJ_TTAB, Dt6(->asize), Dt6(->array), -LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DISPATCH_GL(gc.grayagain), LJ_GC_BLACK); |
| 6886 | dasm_put(Dst, 4678, DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist)); | 6992 | dasm_put(Dst, 4783, DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist)); |
| 6887 | break; | 6993 | break; |
| 6888 | 6994 | ||
| 6889 | case BC_TSETM: | 6995 | case BC_TSETM: |
| 6890 | dasm_put(Dst, 4687, Dt6(->asize), Dt6(->array), Dt6(->marked), LJ_GC_BLACK, Dt1(->base)); | 6996 | dasm_put(Dst, 4792, Dt6(->asize), Dt6(->array), Dt6(->marked), LJ_GC_BLACK, Dt1(->base)); |
| 6891 | if (LJ_TARGET_OSX) { | 6997 | if (LJ_TARGET_OSX) { |
| 6892 | dasm_put(Dst, 4732, Dt1(->base)); | 6998 | dasm_put(Dst, 4837, Dt1(->base)); |
| 6893 | } | 6999 | } |
| 6894 | dasm_put(Dst, 4735, DISPATCH_GL(gc.grayagain), LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist)); | 7000 | dasm_put(Dst, 4840, DISPATCH_GL(gc.grayagain), LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist)); |
| 6895 | break; | 7001 | break; |
| 6896 | 7002 | ||
| 6897 | /* -- Calls and vararg handling ----------------------------------------- */ | 7003 | /* -- Calls and vararg handling ----------------------------------------- */ |
| 6898 | 7004 | ||
| 6899 | case BC_CALLM: | 7005 | case BC_CALLM: |
| 6900 | dasm_put(Dst, 4751); | 7006 | dasm_put(Dst, 4856); |
| 6901 | break; | 7007 | break; |
| 6902 | case BC_CALL: | 7008 | case BC_CALL: |
| 6903 | dasm_put(Dst, 4757, -LJ_TFUNC, Dt7(->field_pc)); | 7009 | dasm_put(Dst, 4862, -LJ_TFUNC, Dt7(->field_pc)); |
| 6904 | break; | 7010 | break; |
| 6905 | 7011 | ||
| 6906 | case BC_CALLMT: | 7012 | case BC_CALLMT: |
| 6907 | dasm_put(Dst, 4777); | 7013 | dasm_put(Dst, 4882); |
| 6908 | break; | 7014 | break; |
| 6909 | case BC_CALLT: | 7015 | case BC_CALLT: |
| 6910 | dasm_put(Dst, 4782, -LJ_TFUNC, Dt7(->ffid), FRAME_TYPE, Dt7(->field_pc), Dt7(->field_pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP); | 7016 | dasm_put(Dst, 4887, -LJ_TFUNC, Dt7(->ffid), FRAME_TYPE, Dt7(->field_pc), Dt7(->field_pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP); |
| 6911 | dasm_put(Dst, 4843, FRAME_TYPE); | 7017 | dasm_put(Dst, 4948, FRAME_TYPE); |
| 6912 | break; | 7018 | break; |
| 6913 | 7019 | ||
| 6914 | case BC_ITERC: | 7020 | case BC_ITERC: |
| 6915 | dasm_put(Dst, 4854, -LJ_TFUNC, Dt7(->field_pc)); | 7021 | dasm_put(Dst, 4959, -LJ_TFUNC, Dt7(->field_pc)); |
| 6916 | break; | 7022 | break; |
| 6917 | 7023 | ||
| 6918 | case BC_ITERN: | 7024 | case BC_ITERN: |
| 6919 | #if LJ_HASJIT | 7025 | #if LJ_HASJIT |
| 6920 | #endif | 7026 | #endif |
| 6921 | dasm_put(Dst, 4878, Dt6(->asize), Dt6(->array), -LJ_TNIL, ~LJ_TISNUM, Dt6(->hmask), Dt6(->node), DtB(->val), -LJ_TNIL, DtB(->key)); | 7027 | dasm_put(Dst, 4983, Dt6(->asize), Dt6(->array), -LJ_TNIL, ~LJ_TISNUM, Dt6(->hmask), Dt6(->node), DtB(->val), -LJ_TNIL, DtB(->key)); |
| 6922 | break; | 7028 | break; |
| 6923 | 7029 | ||
| 6924 | case BC_ISNEXT: | 7030 | case BC_ISNEXT: |
| 6925 | dasm_put(Dst, 4943, -LJ_TFUNC, Dt8(->ffid), -LJ_TTAB, -LJ_TNIL, FF_next_N, BC_JMP, BC_ITERC); | 7031 | dasm_put(Dst, 5048, -LJ_TFUNC, Dt8(->ffid), -LJ_TTAB, -LJ_TNIL, FF_next_N, BC_JMP, BC_ITERC); |
| 6926 | break; | 7032 | break; |
| 6927 | 7033 | ||
| 6928 | case BC_VARG: | 7034 | case BC_VARG: |
| 6929 | dasm_put(Dst, 4982, FRAME_VARG, ~LJ_TNIL, Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->base)); | 7035 | dasm_put(Dst, 5087, FRAME_VARG, ~LJ_TNIL, Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->base)); |
| 6930 | break; | 7036 | break; |
| 6931 | 7037 | ||
| 6932 | /* -- Returns ----------------------------------------------------------- */ | 7038 | /* -- Returns ----------------------------------------------------------- */ |
| 6933 | 7039 | ||
| 6934 | case BC_RETM: | 7040 | case BC_RETM: |
| 6935 | dasm_put(Dst, 5054); | 7041 | dasm_put(Dst, 5159); |
| 6936 | break; | 7042 | break; |
| 6937 | 7043 | ||
| 6938 | case BC_RET: | 7044 | case BC_RET: |
| 6939 | dasm_put(Dst, 5061, FRAME_TYPE, FRAME_VARG, Dt7(->field_pc), PC2PROTO(k), ~LJ_TNIL, FRAME_TYPEP); | 7045 | dasm_put(Dst, 5166, FRAME_TYPE, FRAME_VARG, Dt7(->field_pc), PC2PROTO(k), ~LJ_TNIL, FRAME_TYPEP); |
| 6940 | break; | 7046 | break; |
| 6941 | 7047 | ||
| 6942 | case BC_RET0: case BC_RET1: | 7048 | case BC_RET0: case BC_RET1: |
| 6943 | dasm_put(Dst, 5126, FRAME_TYPE, FRAME_VARG); | 7049 | dasm_put(Dst, 5231, FRAME_TYPE, FRAME_VARG); |
| 6944 | if (op == BC_RET1) { | 7050 | if (op == BC_RET1) { |
| 6945 | dasm_put(Dst, 5137); | 7051 | dasm_put(Dst, 5242); |
| 6946 | } | 7052 | } |
| 6947 | dasm_put(Dst, 5139); | 7053 | dasm_put(Dst, 5244); |
| 6948 | if (op == BC_RET1) { | 7054 | if (op == BC_RET1) { |
| 6949 | dasm_put(Dst, 5142); | 7055 | dasm_put(Dst, 5247); |
| 6950 | } | 7056 | } |
| 6951 | dasm_put(Dst, 5144, Dt7(->field_pc), PC2PROTO(k), ~LJ_TNIL); | 7057 | dasm_put(Dst, 5249, Dt7(->field_pc), PC2PROTO(k), ~LJ_TNIL); |
| 6952 | break; | 7058 | break; |
| 6953 | 7059 | ||
| 6954 | /* -- Loops and branches ------------------------------------------------ */ | 7060 | /* -- Loops and branches ------------------------------------------------ */ |
| @@ -6956,7 +7062,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
| 6956 | 7062 | ||
| 6957 | case BC_FORL: | 7063 | case BC_FORL: |
| 6958 | #if LJ_HASJIT | 7064 | #if LJ_HASJIT |
| 6959 | dasm_put(Dst, 5170, -GG_DISP2HOT); | 7065 | dasm_put(Dst, 5275, -GG_DISP2HOT); |
| 6960 | #endif | 7066 | #endif |
| 6961 | break; | 7067 | break; |
| 6962 | 7068 | ||
| @@ -6968,66 +7074,68 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
| 6968 | case BC_FORI: | 7074 | case BC_FORI: |
| 6969 | case BC_IFORL: | 7075 | case BC_IFORL: |
| 6970 | vk = (op == BC_IFORL || op == BC_JFORL); | 7076 | vk = (op == BC_IFORL || op == BC_JFORL); |
| 6971 | dasm_put(Dst, 5180); | 7077 | dasm_put(Dst, 5285); |
| 6972 | if (op != BC_JFORL) { | 7078 | if (op != BC_JFORL) { |
| 6973 | dasm_put(Dst, 5182); | 7079 | dasm_put(Dst, 5287); |
| 6974 | } | 7080 | } |
| 6975 | if (!vk) { | 7081 | if (!vk) { |
| 6976 | dasm_put(Dst, 5184, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM); | 7082 | dasm_put(Dst, 5289, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM); |
| 6977 | } else { | 7083 | } else { |
| 6978 | dasm_put(Dst, 5202, -LJ_TISNUM); | 7084 | dasm_put(Dst, 5307, -LJ_TISNUM); |
| 6979 | if (op == BC_IFORL) { | 7085 | if (op == BC_IFORL) { |
| 6980 | dasm_put(Dst, 5210); | 7086 | dasm_put(Dst, 5315); |
| 6981 | } else { | 7087 | } else { |
| 6982 | dasm_put(Dst, 5212); | 7088 | dasm_put(Dst, 5317); |
| 6983 | } | 7089 | } |
| 6984 | dasm_put(Dst, 5215); | 7090 | dasm_put(Dst, 5320); |
| 6985 | } | 7091 | } |
| 6986 | dasm_put(Dst, 5220); | 7092 | dasm_put(Dst, 5325); |
| 6987 | if (op == BC_FORI) { | 7093 | if (op == BC_FORI) { |
| 6988 | dasm_put(Dst, 5222); | 7094 | dasm_put(Dst, 5327); |
| 6989 | } else if (op == BC_JFORI) { | 7095 | } else if (op == BC_JFORI) { |
| 6990 | dasm_put(Dst, 5224, BC_JLOOP); | 7096 | dasm_put(Dst, 5329); |
| 6991 | } else if (op == BC_IFORL) { | 7097 | } else if (op == BC_IFORL) { |
| 6992 | dasm_put(Dst, 5229); | 7098 | dasm_put(Dst, 5332); |
| 6993 | } else { | ||
| 6994 | dasm_put(Dst, 5231, BC_JLOOP); | ||
| 6995 | } | 7099 | } |
| 6996 | if (vk) { | 7100 | if (vk) { |
| 6997 | dasm_put(Dst, 5234); | 7101 | dasm_put(Dst, 5334); |
| 6998 | } | 7102 | } |
| 6999 | dasm_put(Dst, 5236); | 7103 | dasm_put(Dst, 5336); |
| 7104 | if (op == BC_JFORI || op == BC_JFORL) { | ||
| 7105 | dasm_put(Dst, 5341, BC_JLOOP); | ||
| 7106 | } | ||
| 7107 | dasm_put(Dst, 5344); | ||
| 7000 | if (!vk) { | 7108 | if (!vk) { |
| 7001 | dasm_put(Dst, 5247); | 7109 | dasm_put(Dst, 5351); |
| 7002 | } else { | 7110 | } else { |
| 7003 | dasm_put(Dst, 5249); | 7111 | dasm_put(Dst, 5353); |
| 7004 | } | 7112 | } |
| 7005 | dasm_put(Dst, 5251); | 7113 | dasm_put(Dst, 5355); |
| 7006 | if (!vk) { | 7114 | if (!vk) { |
| 7007 | dasm_put(Dst, 5255, -LJ_TISNUM, -LJ_TISNUM); | 7115 | dasm_put(Dst, 5359, -LJ_TISNUM, -LJ_TISNUM); |
| 7008 | } else { | 7116 | } else { |
| 7009 | dasm_put(Dst, 5267); | 7117 | dasm_put(Dst, 5371); |
| 7010 | } | 7118 | } |
| 7011 | dasm_put(Dst, 5276); | 7119 | dasm_put(Dst, 5380); |
| 7012 | if (op == BC_FORI) { | 7120 | if (op == BC_FORI) { |
| 7013 | dasm_put(Dst, 5280); | 7121 | dasm_put(Dst, 5384); |
| 7014 | } else if (op == BC_JFORI) { | 7122 | } else if (op == BC_JFORI) { |
| 7015 | dasm_put(Dst, 5282, BC_JLOOP); | 7123 | dasm_put(Dst, 5386, BC_JLOOP); |
| 7016 | } else if (op == BC_IFORL) { | 7124 | } else if (op == BC_IFORL) { |
| 7017 | dasm_put(Dst, 5287); | 7125 | dasm_put(Dst, 5391); |
| 7018 | } else { | 7126 | } else { |
| 7019 | dasm_put(Dst, 5289, BC_JLOOP); | 7127 | dasm_put(Dst, 5393, BC_JLOOP); |
| 7020 | } | 7128 | } |
| 7021 | dasm_put(Dst, 5292); | 7129 | dasm_put(Dst, 5396); |
| 7022 | if (vk) { | 7130 | if (vk) { |
| 7023 | dasm_put(Dst, 5298); | 7131 | dasm_put(Dst, 5402); |
| 7024 | } | 7132 | } |
| 7025 | dasm_put(Dst, 5303); | 7133 | dasm_put(Dst, 5407); |
| 7026 | break; | 7134 | break; |
| 7027 | 7135 | ||
| 7028 | case BC_ITERL: | 7136 | case BC_ITERL: |
| 7029 | #if LJ_HASJIT | 7137 | #if LJ_HASJIT |
| 7030 | dasm_put(Dst, 5309, -GG_DISP2HOT); | 7138 | dasm_put(Dst, 5413, -GG_DISP2HOT); |
| 7031 | #endif | 7139 | #endif |
| 7032 | break; | 7140 | break; |
| 7033 | 7141 | ||
| @@ -7036,40 +7144,40 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
| 7036 | break; | 7144 | break; |
| 7037 | #endif | 7145 | #endif |
| 7038 | case BC_IITERL: | 7146 | case BC_IITERL: |
| 7039 | dasm_put(Dst, 5319); | 7147 | dasm_put(Dst, 5423); |
| 7040 | if (op == BC_JITERL) { | 7148 | if (op == BC_JITERL) { |
| 7041 | dasm_put(Dst, 5321, -LJ_TNIL, BC_JLOOP); | 7149 | dasm_put(Dst, 5425, -LJ_TNIL, BC_JLOOP); |
| 7042 | } else { | 7150 | } else { |
| 7043 | dasm_put(Dst, 5327, -LJ_TNIL); | 7151 | dasm_put(Dst, 5431, -LJ_TNIL); |
| 7044 | } | 7152 | } |
| 7045 | dasm_put(Dst, 5333); | 7153 | dasm_put(Dst, 5437); |
| 7046 | break; | 7154 | break; |
| 7047 | 7155 | ||
| 7048 | case BC_LOOP: | 7156 | case BC_LOOP: |
| 7049 | #if LJ_HASJIT | 7157 | #if LJ_HASJIT |
| 7050 | dasm_put(Dst, 5340, -GG_DISP2HOT); | 7158 | dasm_put(Dst, 5444, -GG_DISP2HOT); |
| 7051 | #endif | 7159 | #endif |
| 7052 | break; | 7160 | break; |
| 7053 | 7161 | ||
| 7054 | case BC_ILOOP: | 7162 | case BC_ILOOP: |
| 7055 | dasm_put(Dst, 5350); | 7163 | dasm_put(Dst, 5454); |
| 7056 | break; | 7164 | break; |
| 7057 | 7165 | ||
| 7058 | case BC_JLOOP: | 7166 | case BC_JLOOP: |
| 7059 | #if LJ_HASJIT | 7167 | #if LJ_HASJIT |
| 7060 | dasm_put(Dst, 5357, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); | 7168 | dasm_put(Dst, 5461, DISPATCH_J(trace), DISPATCH_GL(vmstate), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); |
| 7061 | #endif | 7169 | #endif |
| 7062 | break; | 7170 | break; |
| 7063 | 7171 | ||
| 7064 | case BC_JMP: | 7172 | case BC_JMP: |
| 7065 | dasm_put(Dst, 5368); | 7173 | dasm_put(Dst, 5475); |
| 7066 | break; | 7174 | break; |
| 7067 | 7175 | ||
| 7068 | /* -- Function headers -------------------------------------------------- */ | 7176 | /* -- Function headers -------------------------------------------------- */ |
| 7069 | 7177 | ||
| 7070 | case BC_FUNCF: | 7178 | case BC_FUNCF: |
| 7071 | #if LJ_HASJIT | 7179 | #if LJ_HASJIT |
| 7072 | dasm_put(Dst, 5377, -GG_DISP2HOT); | 7180 | dasm_put(Dst, 5484, -GG_DISP2HOT); |
| 7073 | #endif | 7181 | #endif |
| 7074 | case BC_FUNCV: /* NYI: compiled vararg functions. */ | 7182 | case BC_FUNCV: /* NYI: compiled vararg functions. */ |
| 7075 | break; | 7183 | break; |
| @@ -7079,38 +7187,42 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
| 7079 | break; | 7187 | break; |
| 7080 | #endif | 7188 | #endif |
| 7081 | case BC_IFUNCF: | 7189 | case BC_IFUNCF: |
| 7082 | dasm_put(Dst, 5387, Dt1(->maxstack), -4+PC2PROTO(numparams), -4+PC2PROTO(k), ~LJ_TNIL); | 7190 | dasm_put(Dst, 5494, Dt1(->maxstack), -4+PC2PROTO(numparams), -4+PC2PROTO(k)); |
| 7191 | if (op != BC_JFUNCF) { | ||
| 7192 | dasm_put(Dst, 5504); | ||
| 7193 | } | ||
| 7194 | dasm_put(Dst, 5507, ~LJ_TNIL); | ||
| 7083 | if (op == BC_JFUNCF) { | 7195 | if (op == BC_JFUNCF) { |
| 7084 | dasm_put(Dst, 5405, BC_JLOOP); | 7196 | dasm_put(Dst, 5514, BC_JLOOP); |
| 7085 | } else { | 7197 | } else { |
| 7086 | dasm_put(Dst, 5409); | 7198 | dasm_put(Dst, 5518); |
| 7087 | } | 7199 | } |
| 7088 | dasm_put(Dst, 5414); | 7200 | dasm_put(Dst, 5523); |
| 7089 | break; | 7201 | break; |
| 7090 | 7202 | ||
| 7091 | case BC_JFUNCV: | 7203 | case BC_JFUNCV: |
| 7092 | #if !LJ_HASJIT | 7204 | #if !LJ_HASJIT |
| 7093 | break; | 7205 | break; |
| 7094 | #endif | 7206 | #endif |
| 7095 | dasm_put(Dst, 5420); | 7207 | dasm_put(Dst, 5529); |
| 7096 | break; /* NYI: compiled vararg functions. */ | 7208 | break; /* NYI: compiled vararg functions. */ |
| 7097 | 7209 | ||
| 7098 | case BC_IFUNCV: | 7210 | case BC_IFUNCV: |
| 7099 | dasm_put(Dst, 5422, Dt1(->maxstack), 8+FRAME_VARG, -4+PC2PROTO(k), -4+PC2PROTO(numparams), ~LJ_TNIL); | 7211 | dasm_put(Dst, 5531, Dt1(->maxstack), 8+FRAME_VARG, -4+PC2PROTO(k), -4+PC2PROTO(numparams), ~LJ_TNIL); |
| 7100 | break; | 7212 | break; |
| 7101 | 7213 | ||
| 7102 | case BC_FUNCC: | 7214 | case BC_FUNCC: |
| 7103 | case BC_FUNCCW: | 7215 | case BC_FUNCCW: |
| 7104 | if (op == BC_FUNCC) { | 7216 | if (op == BC_FUNCC) { |
| 7105 | dasm_put(Dst, 5463, Dt8(->f)); | 7217 | dasm_put(Dst, 5572, Dt8(->f)); |
| 7106 | } else { | 7218 | } else { |
| 7107 | dasm_put(Dst, 5466, DISPATCH_GL(wrapf)); | 7219 | dasm_put(Dst, 5575, DISPATCH_GL(wrapf)); |
| 7108 | } | 7220 | } |
| 7109 | dasm_put(Dst, 5469, Dt1(->maxstack), Dt1(->base), Dt1(->top)); | 7221 | dasm_put(Dst, 5578, Dt1(->maxstack), Dt1(->base), Dt1(->top)); |
| 7110 | if (op == BC_FUNCCW) { | 7222 | if (op == BC_FUNCCW) { |
| 7111 | dasm_put(Dst, 5479, Dt8(->f)); | 7223 | dasm_put(Dst, 5588, Dt8(->f)); |
| 7112 | } | 7224 | } |
| 7113 | dasm_put(Dst, 5482, LJ_VMST_C, DISPATCH_GL(vmstate), Dt1(->base), LJ_VMST_INTERP, Dt1(->top), DISPATCH_GL(vmstate)); | 7225 | dasm_put(Dst, 5591, LJ_VMST_C, DISPATCH_GL(vmstate), Dt1(->base), LJ_VMST_INTERP, Dt1(->top), DISPATCH_GL(vmstate)); |
| 7114 | break; | 7226 | break; |
| 7115 | 7227 | ||
| 7116 | /* ---------------------------------------------------------------------- */ | 7228 | /* ---------------------------------------------------------------------- */ |
| @@ -7130,7 +7242,7 @@ static int build_backend(BuildCtx *ctx) | |||
| 7130 | 7242 | ||
| 7131 | build_subroutines(ctx); | 7243 | build_subroutines(ctx); |
| 7132 | 7244 | ||
| 7133 | dasm_put(Dst, 5504); | 7245 | dasm_put(Dst, 5613); |
| 7134 | for (op = 0; op < BC__MAX; op++) | 7246 | for (op = 0; op < BC__MAX; op++) |
| 7135 | build_ins(ctx, (BCOp)op, op); | 7247 | build_ins(ctx, (BCOp)op, op); |
| 7136 | 7248 | ||
