diff --git a/doc/install.html b/doc/install.html index de934abc..f6c99c17 100644 --- a/doc/install.html +++ b/doc/install.html @@ -97,14 +97,14 @@ make && sudo make install

LuaJIT currently builds out-of-the box on most systems. Here's the compatibility matrix for the supported combinations of -operating system, CPU and compilers: +operating systems, CPUs and compilers:

- - - + + + @@ -122,10 +122,10 @@ operating system, CPU and compilers: - + + - @@ -342,14 +342,6 @@ installing the mingw32 package and running: make HOST_CC="gcc -m32" CROSS=i586-mingw32msvc- TARGET_SYS=Windows

-Whenever the host OS and the target OS differ, you need to specify -TARGET_SYS or you'll get assembler or linker errors. E.g. if -you're compiling on a Windows or OSX host for embedded Linux or Android, -you need to add TARGET_SYS=Linux to the examples below. For a -minimal target OS, you may need to disable the built-in allocator in -src/Makefile and use TARGET_SYS=Other. -

-

You can cross-compile for an ARM target on an x86 or x64 host system using a standard GNU cross-compile toolchain (Binutils, GCC, EGLIBC). The CROSS prefix may vary depending on the @@ -359,7 +351,7 @@ EGLIBC). The CROSS prefix may vary depending on the make HOST_CC="gcc -m32" CROSS=arm-linux-gnueabi- TARGET=arm

-You can cross-compile for Android (ARM) using the » Android NDK. +You can cross-compile for Android (ARM) using the » Android NDK. The environment variables need to match the install locations and the desired target platform. E.g. Android 2.2 corresponds to ABI level 8:

@@ -372,6 +364,18 @@ NDKF="--sysroot $NDK/platforms/android-$NDKABI/arch-arm" make HOST_CC="gcc -m32" CROSS=$NDKP TARGET_FLAGS="$NDKF" TARGET=arm

+You can cross-compile for iOS 3.0+ (iPhone/iPad) using the » iOS SDK. +The environment variables need to match the iOS SDK version: +

+
+ISDK=/Developer/Platforms/iPhoneOS.platform/Developer
+ISDKVER=iPhoneOS4.3.sdk
+ISDKP=$ISDK/usr/bin/
+ISDKF="-arch armv6 -isysroot $ISDK/SDKs/$ISDKVER"
+make HOST_CC="gcc -m32 -arch i386" CROSS=$ISDKP TARGET_FLAGS="$ISDKF" \
+     TARGET=arm TARGET_SYS=iOS
+
+

You can cross-compile for a PPC/e500v2 target on an x86 or x64 host system using a standard GNU cross-compile toolchain (Binutils, GCC, EGLIBC). The CROSS prefix may vary depending on the --target @@ -380,6 +384,14 @@ of the toolchain:

 make HOST_CC="gcc -m32" CROSS=powerpc-e500v2-linux-gnuspe- TARGET=ppcspe
 
+

+Whenever the host OS and the target OS differ, you need to specify +TARGET_SYS or you'll get assembler or linker errors. E.g. if +you're compiling on a Windows or OSX host for embedded Linux or Android, +you need to add TARGET_SYS=Linux to the examples above. For a +minimal target OS, you may need to disable the built-in allocator in +src/Makefile and use TARGET_SYS=Other. +

Embedding LuaJIT

diff --git a/src/Makefile b/src/Makefile index 43d926e8..4e426c30 100644 --- a/src/Makefile +++ b/src/Makefile @@ -282,6 +282,16 @@ ifeq (Darwin,$(TARGET_SYS)) TARGET_XLDFLAGS+= -pagezero_size 10000 -image_base 100000000 TARGET_XSHLDFLAGS+= -image_base 7fff04c4a000 endif +else +ifeq (iOS,$(TARGET_SYS)) + TARGET_STRIP+= -x + TARGET_AR+= 2>/dev/null + TARGET_XSHLDFLAGS= -dynamiclib -single_module -undefined dynamic_lookup -fPIC + HOST_XCFLAGS+= -DLUAJIT_OS=LUAJIT_OS_OSX + ifneq (,$(TARGET_DYNXLDOPTS)) + TARGET_DYNXLDOPTS= + TARGET_XSHLDFLAGS+= -install_name $(PREFIX)/lib/$(TARGET_DYLIBNAME) + endif else TARGET_XLDFLAGS+= -Wl,-E ifeq (Linux,$(TARGET_SYS)) @@ -292,6 +302,7 @@ else endif endif endif +endif ifneq (,$(CCDEBUG)) TARGET_STRIP= @: @@ -390,6 +401,9 @@ endif ifeq (Darwin,$(TARGET_SYS)) LJVM_MODE= machasm endif +ifeq (iOS,$(TARGET_SYS)) + LJVM_MODE= machasm +endif ifeq (static,$(BUILDMODE)) TARGET_DYNCC= @: @@ -409,6 +423,10 @@ ifeq (Darwin,$(TARGET_SYS)) TARGET_DYNCC= @: LJVMCORE_DYNO= $(LJVMCORE_O) endif +ifeq (iOS,$(TARGET_SYS)) + TARGET_DYNCC= @: + LJVMCORE_DYNO= $(LJVMCORE_O) +endif endif endif diff --git a/src/buildvm.c b/src/buildvm.c index 152c95f0..3a99c834 100644 --- a/src/buildvm.c +++ b/src/buildvm.c @@ -425,7 +425,7 @@ int main(int argc, char **argv) if (sizeof(void *) != 4*LJ_32+8*LJ_64) { fprintf(stderr,"Error: pointer size mismatch in cross-build.\n"); - fprintf(stderr,"Try: make CC=\"gcc -m32\" CROSS=... TARGET=...\n\n"); + fprintf(stderr,"Try: make HOST_CC=\"gcc -m32\" CROSS=... TARGET=...\n\n"); return 1; } diff --git a/src/buildvm_arm.dasc b/src/buildvm_arm.dasc index 9032c9c2..dadfc734 100644 --- a/src/buildvm_arm.dasc +++ b/src/buildvm_arm.dasc @@ -17,13 +17,15 @@ | |// Fixed register assignments for the interpreter. | -|// The following must be C callee-save (but BASE is often refetched). -|.define BASE, r4 // Base of current Lua stack frame. +|// The following must be C callee-save. +|.define MASKR8, r4 // 255*8 constant for fast bytecode decoding. |.define KBASE, r5 // Constants of current Lua function. |.define PC, r6 // Next PC. |.define DISPATCH, r7 // Opcode dispatch table. |.define LREG, r8 // Register holding lua_State (also in SAVE_L). -|.define MASKR8, r9 // 255*8 constant for fast bytecode decoding. +| +|// C callee-save in EABI, but often refetched. Temporary in iOS 3.0+. +|.define BASE, r9 // Base of current Lua stack frame. | |// The following temporaries are not saved across C calls, except for RA/RC. |.define RA, r10 // Callee-save. @@ -204,6 +206,12 @@ | str tmp, tab->gclist |.endmacro | +|.macro IOS, a, b +||if (LJ_TARGET_OSX) { +| a, b +||} +|.endmacro +| |//----------------------------------------------------------------------- #if !LJ_DUALNUM @@ -550,6 +558,7 @@ static void build_subroutines(BuildCtx *ctx) | str PC, SAVE_PC | bl extern lj_meta_tget // (lua_State *L, TValue *o, TValue *k) | // Returns TValue * (finished) or NULL (metamethod). + | IOS ldr BASE, L->base | cmp CRET1, #0 | beq >3 | ldrd CARG34, [CRET1] @@ -604,6 +613,7 @@ static void build_subroutines(BuildCtx *ctx) | str PC, SAVE_PC | bl extern lj_meta_tset // (lua_State *L, TValue *o, TValue *k) | // Returns TValue * (finished) or NULL (metamethod). + | IOS ldr BASE, L->base | cmp CRET1, #0 | ldrd CARG34, [BASE, RA] | beq >3 @@ -637,6 +647,7 @@ static void build_subroutines(BuildCtx *ctx) | bl extern lj_meta_comp // (lua_State *L, TValue *o1, *o2, int op) | // Returns 0/1 or TValue * (metamethod). |3: + | IOS ldr BASE, L->base | cmp CRET1, #1 | bhi ->vmeta_binop |4: @@ -724,6 +735,7 @@ static void build_subroutines(BuildCtx *ctx) | str OP, ARG5 | bl extern lj_meta_arith // (lua_State *L, TValue *ra,*rb,*rc, BCReg op) | // Returns NULL (finished) or TValue * (metamethod). + | IOS ldr BASE, L->base | cmp CRET1, #0 | beq ->cont_nop | @@ -744,6 +756,7 @@ static void build_subroutines(BuildCtx *ctx) | str PC, SAVE_PC | bl extern lj_meta_len // (lua_State *L, TValue *o) | // Returns TValue * (metamethod base). + | IOS ldr BASE, L->base | b ->vmeta_binop // Binop call for compatibility. | |//-- Call metamethod ---------------------------------------------------- @@ -755,7 +768,9 @@ static void build_subroutines(BuildCtx *ctx) | sub CARG2, BASE, #8 | str PC, SAVE_PC | add CARG3, BASE, NARGS8:RC + | IOS mov RA, BASE | bl extern lj_meta_call // (lua_State *L, TValue *func, TValue *top) + | IOS mov BASE, RA | ldr LFUNC:CARG3, [BASE, FRAME_FUNC] // Guaranteed to be a function here. | add NARGS8:RC, NARGS8:RC, #8 // Got one more argument now. | ins_call @@ -768,6 +783,7 @@ static void build_subroutines(BuildCtx *ctx) | str PC, SAVE_PC | add CARG3, RA, NARGS8:RC | bl extern lj_meta_call // (lua_State *L, TValue *func, TValue *top) + | IOS ldr BASE, L->base | ldr LFUNC:CARG3, [RA, FRAME_FUNC] // Guaranteed to be a function here. | ldr PC, [BASE, FRAME_PC] | add NARGS8:RC, NARGS8:RC, #8 // Got one more argument now. @@ -781,6 +797,7 @@ static void build_subroutines(BuildCtx *ctx) | mov CARG2, RA | str PC, SAVE_PC | bl extern lj_meta_for // (lua_State *L, TValue *base) + | IOS ldr BASE, L->base #if LJ_HASJIT | ldrb OP, [PC, #-4] #endif @@ -935,8 +952,10 @@ static void build_subroutines(BuildCtx *ctx) | checktab CARG4, ->fff_fallback | mov CARG1, L | add CARG3, BASE, #8 + | IOS mov RA, BASE | bl extern lj_tab_get // (lua_State *L, GCtab *t, cTValue *key) | // Returns cTValue *. + | IOS mov BASE, RA | ldrd CARG12, [CRET1] | b ->fff_restv | @@ -984,6 +1003,7 @@ static void build_subroutines(BuildCtx *ctx) | str PC, SAVE_PC | bl extern lj_tab_next // (lua_State *L, GCtab *t, TValue *key) | // Returns 0 at end of traversal. + | IOS ldr BASE, L->base | cmp CRET1, #0 | mvneq CRET2, #~LJ_TNIL | beq ->fff_restv // End of traversal: return nil. @@ -1035,8 +1055,10 @@ static void build_subroutines(BuildCtx *ctx) | mov CARG2, CARG3 | cmp RB, #0 | beq ->fff_res + | IOS mov RA, BASE | bl extern lj_tab_getinth // (GCtab *t, int32_t key) | // Returns cTValue * or NULL. + | IOS mov BASE, RA | cmp CRET1, #0 | beq ->fff_res | ldrd CARG12, [CRET1] @@ -1275,7 +1297,9 @@ static void build_subroutines(BuildCtx *ctx) | bmi <1 |4: | // NYI: Use internal implementation. + | IOS mov RA, BASE | bl extern func + | IOS mov BASE, RA | b ->fff_restv |.endmacro | @@ -1330,13 +1354,17 @@ static void build_subroutines(BuildCtx *ctx) | |.macro math_extern, func | .ffunc_n math_ .. func + | IOS mov RA, BASE | bl extern func + | IOS mov BASE, RA | b ->fff_restv |.endmacro | |.macro math_extern2, func | .ffunc_nn math_ .. func + | IOS mov RA, BASE | bl extern func + | IOS mov BASE, RA | b ->fff_restv |.endmacro | @@ -1368,12 +1396,16 @@ static void build_subroutines(BuildCtx *ctx) | bhs ->fff_fallback | checktp CARG4, LJ_TISNUM | bne ->fff_fallback + | IOS mov RA, BASE | bl extern ldexp // (double x, int exp) + | IOS mov BASE, RA | b ->fff_restv | |.ffunc_n math_frexp | mov CARG3, sp + | IOS mov RA, BASE | bl extern frexp + | IOS mov BASE, RA | ldr CARG3, [sp] | mvn CARG4, #~LJ_TISNUM | ldr PC, [BASE, FRAME_PC] @@ -1385,7 +1417,9 @@ static void build_subroutines(BuildCtx *ctx) |.ffunc_n math_modf | sub CARG3, BASE, #8 | ldr PC, [BASE, FRAME_PC] + | IOS mov RA, BASE | bl extern modf + | IOS mov BASE, RA | mov RC, #(2+1)*8 | strd CARG12, [BASE] | b ->fff_res @@ -1600,8 +1634,10 @@ static void build_subroutines(BuildCtx *ctx) | |.ffunc_1 table_getn | checktab CARG2, ->fff_fallback + | IOS mov RA, BASE | bl extern lj_tab_len // (GCtab *t) | // Returns uint32_t (but less than 2^31). + | IOS mov BASE, RA | mvn CARG2, #~LJ_TISNUM | b ->fff_restv | @@ -2347,8 +2383,10 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | ins_next3 |2: | checktab CARG2, ->vmeta_len + | IOS mov RC, BASE | bl extern lj_tab_len // (GCtab *t) | // Returns uint32_t (but less than 2^31). + | IOS mov BASE, RC | b <1 break; @@ -2434,8 +2472,12 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | ins_next3 |5: // FP variant. | ins_arithfallback ins_arithcheck_num + |.if "intins" == "vm_modi" + | IOS mov RC, BASE + | bl fpcall + | IOS mov BASE, RC // NYI: remove once we use internal impl. of floor. + |.else | bl fpcall - |.if "intins" ~= "vm_modi" | ins_next1 |.endif | b <4 @@ -2444,7 +2486,13 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) |.macro ins_arithfp, fpcall | ins_arithpre | ins_arithfallback ins_arithcheck_num + |.if "fpcall" == "extern pow" + | IOS mov RC, BASE | bl fpcall + | IOS mov BASE, RC + |.else + | bl fpcall + |.endif | ins_next1 | ins_next2 | strd CARG12, [BASE, RA] @@ -2602,7 +2650,14 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | sub CARG1, DISPATCH, #-GG_DISP2G | tst RC, #LJ_GC_WHITES | // Crossed a write barrier. Move the barrier forward. - | blne extern lj_gc_barrieruv // (global_State *g, TValue *tv) + if (LJ_TARGET_OSX) { + | beq <1 + | mov RC, BASE + | bl extern lj_gc_barrieruv // (global_State *g, TValue *tv) + | mov BASE, RC + } else { + | blne extern lj_gc_barrieruv // (global_State *g, TValue *tv) + } | b <1 break; case BC_USETS: @@ -2629,7 +2684,14 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | cmpne RC, #0 | sub CARG1, DISPATCH, #-GG_DISP2G | // Crossed a write barrier. Move the barrier forward. - | blne extern lj_gc_barrieruv // (global_State *g, TValue *tv) + if (LJ_TARGET_OSX) { + | beq <1 + | mov RC, BASE + | bl extern lj_gc_barrieruv // (global_State *g, TValue *tv) + | mov BASE, RC + } else { + | blne extern lj_gc_barrieruv // (global_State *g, TValue *tv) + } | b <1 break; case BC_USETN: @@ -3072,6 +3134,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | str PC, SAVE_PC | bl extern lj_tab_reasize // (lua_State *L, GCtab *t, int nasize) | // Must not reallocate the stack. + | IOS ldr BASE, L->base | b <1 | |7: // Possible table write barrier for any value. Skip valiswhite check. diff --git a/src/buildvm_arm.h b/src/buildvm_arm.h index 70c21538..a5f16897 100644 --- a/src/buildvm_arm.h +++ b/src/buildvm_arm.h @@ -12,7 +12,7 @@ #define DASM_SECTION_CODE_OP 0 #define DASM_SECTION_CODE_SUB 1 #define DASM_MAXSECTION 2 -static const unsigned int build_actionlist[5200] = { +static const unsigned int build_actionlist[5407] = { 0x00010001, 0x00060014, 0xe3160000, @@ -22,7 +22,7 @@ static const unsigned int build_actionlist[5200] = { 0xe51c6004, 0xe3e01000, 0x000a0000, -0xe1a0400c, +0xe1a0900c, 0xe50a1004, 0xe24aa008, 0x00060016, @@ -37,7 +37,7 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0xe3500000, 0x000a0000, -0xe044c00c, +0xe049c00c, 0x1a000000, 0x00050014, 0xe508c000, @@ -45,7 +45,7 @@ static const unsigned int build_actionlist[5200] = { 0xe59d5014, 0xe3e03000, 0x000a0000, -0xe2444008, +0xe2499008, 0xe25b2008, 0xe1a05185, 0xe5073000, @@ -55,7 +55,7 @@ static const unsigned int build_actionlist[5200] = { 0x0006000b, 0xe2522008, 0xe0ca00d8, -0xe0c400f8, +0xe0c900f8, 0x1a000000, 0x0005000b, 0x0006000c, @@ -63,7 +63,7 @@ static const unsigned int build_actionlist[5200] = { 0x1a000000, 0x00050006, 0x0006000d, -0xe5084000, +0xe5089000, 0x000d8180, 0x00060019, 0x00000000, @@ -81,28 +81,28 @@ static const unsigned int build_actionlist[5200] = { 0x000d8180, 0xe3e01000, 0x000a0000, -0xe1540002, +0xe1590002, 0x2a000000, 0x00050008, -0xe5841004, +0xe5891004, 0xe28bb008, -0xe2844008, +0xe2899008, 0xea000000, 0x0005000c, 0x00060011, 0xe04b0005, 0xe3550000, -0x10444000, +0x10499000, 0xea000000, 0x0005000d, 0x00060012, -0xe5084000, +0xe5089000, 0x000d8180, 0xe1a01005, 0xe1a00008, 0xeb000000, 0x00030000, -0xe5184000, +0xe5189000, 0x000d8180, 0xea000000, 0x0005000c, @@ -125,22 +125,22 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0x0006001e, 0xe59d800c, -0xe3a090ff, +0xe3a040ff, 0xe3a0b010, -0xe1a09189, -0xe5184000, +0xe1a04184, +0xe5189000, 0x000d8180, 0xe5187000, 0x000d8180, 0xe3e00000, 0x000a0000, -0xe244a008, -0xe5146004, +0xe249a008, +0xe5196004, 0xe2877000, 0x000a0000, 0xe3e01000, 0x000a0000, -0xe5040004, +0xe5090004, 0xe5071000, 0x000d8180, 0xea000000, @@ -151,10 +151,10 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x00050002, 0x00060020, -0xe084b00b, -0xe04aa004, +0xe089b00b, +0xe04aa009, 0xe1a00008, -0xe5084000, +0xe5089000, 0x000d8180, 0xe2866004, 0xe508b000, @@ -164,19 +164,19 @@ static const unsigned int build_actionlist[5200] = { 0xe58d6008, 0xeb000000, 0x00030000, -0xe5184000, +0xe5189000, 0x000d8180, 0xe518b000, 0x000d8180, -0xe5142008, -0xe04bb004, +0xe5192008, +0xe04bb009, 0xe5126000, 0x000d8180, 0xe5d6c000, 0xe496e004, 0xe797c10c, -0xe009a2ae, -0xe08aa004, +0xe004a2ae, +0xe08aa009, 0xe12fff1c, 0x00060021, 0xe92d4ff0, @@ -185,7 +185,7 @@ static const unsigned int build_actionlist[5200] = { 0xe5107000, 0x000d8180, 0x00000000, -0xe1a04001, +0xe1a09001, 0xe2877000, 0x000a0000, 0xe58d800c, @@ -204,17 +204,17 @@ static const unsigned int build_actionlist[5200] = { 0xe58d8008, 0x0a000000, 0x00050003, -0xe1a0a004, -0xe5184000, +0xe1a0a009, +0xe5189000, 0x000d8180, 0xe5180000, 0x000d8180, -0xe3a090ff, +0xe3a040ff, 0xe5482000, 0x000d8180, -0xe040b004, -0xe5146004, -0xe1a09189, +0xe040b009, +0xe5196004, +0xe1a04184, 0xe3e01000, 0x000a0000, 0xe28bb008, @@ -246,7 +246,7 @@ static const unsigned int build_actionlist[5200] = { 0xe58d2014, 0xe1a08000, 0xe58d000c, -0xe1a04001, +0xe1a09001, 0xe508d000, 0x000d8180, 0x00000000, @@ -261,30 +261,30 @@ static const unsigned int build_actionlist[5200] = { 0x000d8180, 0xe5180000, 0x000d8180, -0xe3a090ff, -0xe0866004, -0xe1a09189, +0xe3a040ff, +0xe0866009, +0xe1a04184, 0xe046600c, 0xe3e01000, 0x000a0000, -0xe040b004, +0xe040b009, 0xe5071000, 0x000d8180, 0x00060024, -0xe14420d8, +0xe14920d8, 0xe3730000, 0x000a0000, 0x1a000000, 0x00050025, 0x00060026, -0xe5046004, +0xe5096004, 0xe5126000, 0x000d8180, 0xe5d6c000, 0xe496e004, 0xe797c10c, -0xe009a2ae, -0xe08aa004, +0xe004a2ae, +0xe08aa009, 0xe12fff1c, 0x00060027, 0xe92d4ff0, @@ -308,7 +308,7 @@ static const unsigned int build_actionlist[5200] = { 0xe12fff33, 0xe5187000, 0x000d8180, -0xe1b04000, +0xe1b09000, 0xe3a06000, 0x000a0000, 0xe2877000, @@ -320,9 +320,9 @@ static const unsigned int build_actionlist[5200] = { 0x00060015, 0x00000000, 0xe51c2008, -0xe5140010, -0xe1a03004, -0xe1a0400c, +0xe5190010, +0xe1a03009, +0xe1a0900c, 0xe3500000, 0xe513600c, 0x0a000000, @@ -337,30 +337,30 @@ static const unsigned int build_actionlist[5200] = { 0x000d8180, 0xe12fff10, 0x0006000b, -0xe5142008, +0xe5192008, 0xe2433010, -0xe043b004, +0xe043b009, 0xea000000, 0x00050028, 0x00060029, 0xe516e004, 0xe2431010, 0xe1ca20d0, -0xe5084000, +0xe5089000, 0x000d8180, -0xe009baae, -0xe009a2ae, -0xe084000b, +0xe004baae, +0xe004a2ae, +0xe089000b, 0xe0510000, 0x11c120f0, 0x11a02000, 0x1a000000, 0x0005002a, -0xe18420fa, +0xe18920fa, 0xea000000, 0x0005002b, 0x0006002c, -0xe084100c, +0xe089100c, 0xea000000, 0x00050002, 0x0006002d, @@ -379,50 +379,54 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x00050001, 0x0006002e, -0xe009caae, +0xe004caae, 0xe58db000, 0xe3e03000, 0x000a0000, -0xe084100c, +0xe089100c, 0xe58d3004, 0xe1a0200d, 0xea000000, 0x00050001, 0x0006002f, 0x00000000, -0xe084100c, -0xe084200b, +0xe089100c, +0xe089200b, 0x0006000b, -0xe5084000, +0xe5089000, 0x000d8180, 0xe1a00008, 0xe58d6008, 0xeb000000, 0x00030001, +0x00000000, +0xe5189000, +0x000d8180, +0x00000000, 0xe3500000, 0x0a000000, 0x00050003, 0xe1c020d0, 0xe5d6c000, 0xe496e004, -0xe18420fa, +0xe18920fa, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x0006000d, -0xe2640000, +0xe2690000, 0x000a0000, -0xe5184000, +0xe5189000, 0x000d8180, 0xe3a0b010, -0xe504600c, -0xe0806004, -0xe5142008, +0xe509600c, +0xe0806009, +0xe5192008, 0xea000000, 0x00050026, 0x00060030, -0xe084100c, +0xe089100c, 0xea000000, 0x00050002, 0x00060031, @@ -441,54 +445,57 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x00050001, 0x00060032, -0xe009caae, +0xe004caae, 0xe58db000, 0xe3e03000, 0x000a0000, -0xe084100c, +0xe089100c, 0xe58d3004, 0xe1a0200d, 0xea000000, 0x00050001, 0x00060033, -0xe084100c, -0xe084200b, +0xe089100c, +0xe089200b, 0x0006000b, -0xe5084000, +0xe5089000, 0x000d8180, -0x00000000, 0xe1a00008, 0xe58d6008, 0xeb000000, 0x00030002, +0x00000000, +0xe5189000, +0x000d8180, +0x00000000, 0xe3500000, -0xe18420da, +0xe18920da, 0x0a000000, 0x00050003, 0xe5d6c000, 0xe1c020f0, 0xe496e004, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x0006000d, -0xe2640000, +0xe2690000, 0x000a0000, -0xe5184000, +0xe5189000, 0x000d8180, 0xe3a0b018, -0xe1c421f0, -0xe504600c, -0xe0806004, -0xe5142008, +0xe1c921f0, +0xe509600c, +0xe0806009, +0xe5192008, 0xea000000, 0x00050026, 0x00060034, 0xe1a00008, 0xe2466004, 0xe1a0100a, -0xe5084000, +0xe5089000, 0x000d8180, 0xe1a0200b, 0xe58d6008, @@ -496,6 +503,10 @@ static const unsigned int build_actionlist[5200] = { 0xeb000000, 0x00030003, 0x0006000d, +0x00000000, +0xe5189000, +0x000d8180, +0x00000000, 0xe3500001, 0x8a000000, 0x00050035, @@ -508,14 +519,14 @@ static const unsigned int build_actionlist[5200] = { 0xe5d6c000, 0xe496e004, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x00060036, 0xe516e004, 0xe1ca00d0, -0xe00922ae, -0xe18400f2, +0xe00422ae, +0xe18900f2, 0xea000000, 0x0005002b, 0x00060037, @@ -532,9 +543,8 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x0005000e, 0x00060039, -0x00000000, 0xe2466004, -0xe5084000, +0xe5089000, 0x000d8180, 0xe1a00008, 0xe58d6008, @@ -545,7 +555,7 @@ static const unsigned int build_actionlist[5200] = { 0x0006003a, 0x00000000, 0xe2466004, -0xe5084000, +0xe5089000, 0x000d8180, 0xe1a00008, 0xe1a0100e, @@ -556,107 +566,127 @@ static const unsigned int build_actionlist[5200] = { 0x0005000d, 0x00000000, 0x0006003b, -0xe009caae, -0xe009b6ae, -0xe084200c, +0xe004caae, +0xe004b6ae, +0xe089200c, 0xe085300b, 0xea000000, 0x00050001, 0x0006003c, -0xe009caae, -0xe009b6ae, -0xe084300c, +0xe004caae, +0xe004b6ae, +0xe089300c, 0xe085200b, 0xea000000, 0x00050001, 0x0006003d, 0xe516e008, 0xe2466004, -0xe084200b, -0xe084300b, +0xe089200b, +0xe089300b, 0xea000000, 0x00050001, 0x0006003e, -0xe009caae, -0xe009b6ae, -0xe084200c, -0xe084300b, +0xe004caae, +0xe004b6ae, +0xe089200c, +0xe089300b, 0x0006000b, 0xe20ec0ff, -0xe084100a, -0xe5084000, +0xe089100a, +0xe5089000, 0x000d8180, 0xe1a00008, 0xe58d6008, 0xe58dc000, 0xeb000000, 0x00030006, +0x00000000, +0xe5189000, +0x000d8180, +0x00000000, 0xe3500000, 0x0a000000, 0x0005002b, 0x00060035, -0xe0401004, +0xe0401009, 0xe500600c, 0xe2816000, 0x000a0000, -0xe1a04000, +0xe1a09000, 0xe3a0b010, 0xea000000, 0x00050024, 0x0006003f, -0xe084100b, -0xe5084000, +0xe089100b, +0xe5089000, 0x000d8180, 0xe1a00008, 0xe58d6008, 0xeb000000, 0x00030007, +0x00000000, +0xe5189000, +0x000d8180, +0x00000000, 0xea000000, 0x00050035, 0x00060025, 0xe1a00008, 0xe508c000, 0x000d8180, -0xe2441008, +0xe2491008, 0xe58d6008, -0xe084200b, +0xe089200b, +0x00000000, +0xe1a0a009, +0x00000000, 0xeb000000, 0x00030008, -0xe5142008, +0x00000000, +0xe1a0900a, +0x00000000, +0xe5192008, 0xe28bb008, -0xe5046004, +0xe5096004, 0xe5126000, 0x000d8180, -0x00000000, 0xe5d6c000, 0xe496e004, 0xe797c10c, -0xe009a2ae, -0xe08aa004, +0xe004a2ae, +0xe08aa009, 0xe12fff1c, 0x00060040, 0xe1a00008, -0xe5084000, +0xe5089000, 0x000d8180, 0xe24a1008, 0xe58d6008, 0xe08a200b, 0xeb000000, 0x00030008, +0x00000000, +0xe5189000, +0x000d8180, +0x00000000, 0xe51a2008, -0xe5146004, +0xe5196004, 0xe28bb008, 0xea000000, 0x00050041, 0x00060042, 0xe1a00008, -0xe5084000, +0xe5089000, 0x000d8180, 0xe1a0100a, 0xe58d6008, 0xeb000000, 0x00030009, 0x00000000, +0xe5189000, +0x000d8180, +0x00000000, 0xe556c004, 0x00000000, 0xe516e004, @@ -664,7 +694,7 @@ static const unsigned int build_actionlist[5200] = { 0xe35c0000, 0x000a0000, 0x00000000, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0x00000000, 0x0a000000, @@ -673,7 +703,7 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x00070000, 0x00060043, -0xe1c400d0, +0xe1c900d0, 0xe35b0008, 0x3a000000, 0x00050044, @@ -681,9 +711,9 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0x8a000000, 0x00050044, -0xe5146004, -0xe14400f8, -0xe1a0c004, +0xe5196004, +0xe14900f8, +0xe1a0c009, 0xe25ba008, 0xe28bb008, 0x0a000000, @@ -697,7 +727,7 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x00050045, 0x00060046, -0xe5941004, +0xe5991004, 0xe35b0008, 0x3a000000, 0x00050044, @@ -712,7 +742,7 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x00050047, 0x00060048, -0xe1c400d0, +0xe1c900d0, 0xe35b0008, 0x3a000000, 0x00050044, @@ -784,8 +814,8 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x0005000c, 0x00060049, -0xe1c400d0, -0xe1c420d8, +0xe1c900d0, +0xe1c920d8, 0xe35b0010, 0x3a000000, 0x00050044, @@ -819,7 +849,7 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x00050047, 0x0006004a, -0xe1c420d0, +0xe1c920d0, 0xe35b0010, 0x3a000000, 0x00050044, @@ -830,14 +860,20 @@ static const unsigned int build_actionlist[5200] = { 0x1a000000, 0x00050044, 0xe1a00008, -0xe2842008, +0xe2892008, +0x00000000, +0xe1a0a009, +0x00000000, 0xeb000000, 0x0003000a, +0x00000000, +0xe1a0900a, +0x00000000, 0xe1c000d0, 0xea000000, 0x00050047, 0x0006004b, -0xe1c400d0, +0xe1c900d0, 0xe35b0008, 0x3a000000, 0x00050044, @@ -848,7 +884,7 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x00050044, 0x0006004c, -0xe1c400d0, +0xe1c900d0, 0xe35b0008, 0x3a000000, 0x00050044, @@ -858,7 +894,7 @@ static const unsigned int build_actionlist[5200] = { 0x00050047, 0xe5173000, 0x000d8180, -0xe5084000, +0xe5089000, 0x000d8180, 0xe3710000, 0x000a0000, @@ -874,18 +910,18 @@ static const unsigned int build_actionlist[5200] = { 0xab000000, 0x0005004d, 0xe1a00008, -0xe1a01004, +0xe1a01009, 0xeb000000, 0x0003000b, -0xe5184000, +0xe5189000, 0x000d8180, 0xe3e01000, 0x000a0000, -0x00000000, 0xea000000, 0x00050047, 0x0006004e, -0xe1c400d0, +0x00000000, +0xe1c900d0, 0xe35b0008, 0x3a000000, 0x00050044, @@ -895,33 +931,37 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0x1a000000, 0x00050044, -0xe18420fb, -0xe5146004, +0xe18920fb, +0xe5196004, 0xe1a01000, -0xe5084000, +0xe5089000, 0x000d8180, 0xe1a00008, -0xe5084000, +0xe5089000, 0x000d8180, -0xe2842008, +0xe2892008, 0xe58d6008, 0xeb000000, 0x0003000c, +0x00000000, +0xe5189000, +0x000d8180, +0x00000000, 0xe3500000, 0x03e01000, 0x000a0000, 0x0a000000, 0x00050047, -0xe1c400d8, -0xe1c421d0, +0xe1c900d8, +0xe1c921d0, 0xe3a0b000, 0x000a0000, -0xe14400f8, -0xe1c420f0, +0xe14900f8, +0xe1c920f0, 0xea000000, 0x00050045, 0x0006004f, -0xe1c400d0, +0xe1c900d0, 0xe35b0008, 0x3a000000, 0x00050044, @@ -935,7 +975,7 @@ static const unsigned int build_actionlist[5200] = { 0x00000000, 0xe14220d0, 0x000c8100, -0xe5146004, +0xe5196004, 0x00000000, 0xe35c0000, 0x1a000000, @@ -945,13 +985,13 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0xe3a0b000, 0x000a0000, -0xe14420f8, -0xe584100c, +0xe14920f8, +0xe589100c, 0xea000000, 0x00050045, 0x00060050, -0xe1c400d0, -0xe1c420d8, +0xe1c900d0, +0xe1c920d8, 0xe35b0010, 0x3a000000, 0x00050044, @@ -966,10 +1006,10 @@ static const unsigned int build_actionlist[5200] = { 0xe510b000, 0x000d8180, 0xe2822001, -0xe5146004, +0xe5196004, 0xe152000c, 0xe08bb182, -0xe14420f8, +0xe14920f8, 0x31cb00d0, 0xe3a0b000, 0x000a0000, @@ -980,7 +1020,7 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0x13a0b000, 0x000a0000, -0x11c400f0, +0x11c900f0, 0xea000000, 0x00050045, 0x0006000c, @@ -990,8 +1030,14 @@ static const unsigned int build_actionlist[5200] = { 0xe35c0000, 0x0a000000, 0x00050045, +0x00000000, +0xe1a0a009, +0x00000000, 0xeb000000, 0x0003000d, +0x00000000, +0xe1a0900a, +0x00000000, 0xe3500000, 0x0a000000, 0x00050045, @@ -999,8 +1045,7 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x0005000b, 0x00060051, -0x00000000, -0xe1c400d0, +0xe1c900d0, 0xe35b0008, 0x3a000000, 0x00050044, @@ -1014,7 +1059,7 @@ static const unsigned int build_actionlist[5200] = { 0x00000000, 0xe14220d0, 0x000c8100, -0xe5146004, +0xe5196004, 0x00000000, 0xe35c0000, 0x1a000000, @@ -1025,8 +1070,8 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0xe3a0b000, 0x000a0000, -0xe14420f8, -0xe1c400f8, +0xe14920f8, +0xe1c900f8, 0xea000000, 0x00050045, 0x00060052, @@ -1037,8 +1082,8 @@ static const unsigned int build_actionlist[5200] = { 0x00050044, 0xe31a0000, 0x000a0000, -0xe1a0c004, -0xe2844008, +0xe1a0c009, +0xe2899008, 0x03a06000, 0x000a0000, 0x13a06000, @@ -1047,8 +1092,8 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x00050024, 0x00060053, -0xe1c400d0, -0xe1c420d8, +0xe1c900d0, +0xe1c920d8, 0xe35b0010, 0x3a000000, 0x00050044, @@ -1058,12 +1103,12 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0x1a000000, 0x00050044, -0xe1a0c004, -0xe1c400f8, -0xe1c420f0, +0xe1a0c009, +0xe1c900f8, +0xe1c920f0, 0xe31a0000, 0x000a0000, -0xe2844010, +0xe2899010, 0x03a06000, 0x000a0000, 0x13a06000, @@ -1072,7 +1117,7 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x00050024, 0x00060054, -0xe1c400d0, +0xe1c900d0, 0xe35b0008, 0x3a000000, 0x00050044, @@ -1081,8 +1126,8 @@ static const unsigned int build_actionlist[5200] = { 0x00000000, 0x1a000000, 0x00050044, -0xe5146004, -0xe5084000, +0xe5196004, +0xe5089000, 0x000d8180, 0xe5101000, 0x000d8180, @@ -1108,14 +1153,14 @@ static const unsigned int build_actionlist[5200] = { 0x00050044, 0x0006000b, 0xe2422008, -0xe2844008, +0xe2899008, 0xe24bb008, 0xe5002000, 0x000d8180, -0xe5084000, +0xe5089000, 0x000d8180, 0x0006000c, -0xe18420dc, +0xe18920dc, 0xe15c000b, 0x118120fc, 0xe28cc008, @@ -1138,14 +1183,14 @@ static const unsigned int build_actionlist[5200] = { 0xe3500000, 0x000a0000, 0x00000000, -0xe5184000, +0xe5189000, 0x000d8180, 0x8a000000, 0x00050008, 0xe053b002, 0xe5180000, 0x000d8180, -0xe084100b, +0xe089100b, 0x0a000000, 0x00050006, 0xe1510000, @@ -1158,7 +1203,7 @@ static const unsigned int build_actionlist[5200] = { 0x0006000f, 0xe18200dc, 0xe15c0003, -0xe18400fc, +0xe18900fc, 0xe28cc008, 0x1a000000, 0x0005000f, @@ -1167,8 +1212,8 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0xe28bb010, 0x00060011, -0xe5042004, -0xe244a008, +0xe5092004, +0xe249a008, 0xe2160000, 0x000a0000, 0xe58d6008, @@ -1185,7 +1230,7 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0xe50a3000, 0x000d8180, -0xe1c400f0, +0xe1c900f0, 0xea000000, 0x00050011, 0x00060013, @@ -1200,8 +1245,8 @@ static const unsigned int build_actionlist[5200] = { 0x00000000, 0xe5120000, 0x000d8180, -0xe5146004, -0xe5084000, +0xe5196004, +0xe5089000, 0x000d8180, 0xe5101000, 0x000d8180, @@ -1228,10 +1273,10 @@ static const unsigned int build_actionlist[5200] = { 0x0006000b, 0xe5002000, 0x000d8180, -0xe5084000, +0xe5089000, 0x000d8180, 0x0006000c, -0xe18420dc, +0xe18920dc, 0xe15c000b, 0x118120fc, 0xe28cc008, @@ -1254,14 +1299,14 @@ static const unsigned int build_actionlist[5200] = { 0xe3500000, 0x000a0000, 0x00000000, -0xe5184000, +0xe5189000, 0x000d8180, 0x8a000000, 0x00050008, 0xe053b002, 0xe5180000, 0x000d8180, -0xe084100b, +0xe089100b, 0x0a000000, 0x00050006, 0xe1510000, @@ -1274,12 +1319,12 @@ static const unsigned int build_actionlist[5200] = { 0x0006000f, 0xe18200dc, 0xe15c0003, -0xe18400fc, +0xe18900fc, 0xe28cc008, 0x1a000000, 0x0005000f, 0x00060010, -0xe1a0a004, +0xe1a0a009, 0xe28bb008, 0xe2160000, 0x000a0000, @@ -1305,8 +1350,8 @@ static const unsigned int build_actionlist[5200] = { 0x00060056, 0xe5180000, 0x000d8180, -0xe084100b, -0xe5084000, +0xe089100b, +0xe5089000, 0x000d8180, 0xe3100000, 0x000a0000, @@ -1325,7 +1370,7 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x0005001a, 0x00060057, -0xe1c400d0, +0xe1c900d0, 0xe35b0008, 0x3a000000, 0x00050044, @@ -1379,12 +1424,17 @@ static const unsigned int build_actionlist[5200] = { 0x0005000b, 0x0006000e, 0x00000000, +0xe1a0a009, +0x00000000, 0xeb000000, 0x0003000f, +0x00000000, +0xe1a0900a, +0x00000000, 0xea000000, 0x00050047, 0x00060058, -0xe1c400d0, +0xe1c900d0, 0xe35b0008, 0x3a000000, 0x00050044, @@ -1440,9 +1490,14 @@ static const unsigned int build_actionlist[5200] = { 0x4a000000, 0x0005000b, 0x0006000e, +0x00000000, +0xe1a0a009, +0x00000000, 0xeb000000, 0x00030010, 0x00000000, +0xe1a0900a, +0x00000000, 0xea000000, 0x00050047, 0x00040007, @@ -1451,7 +1506,7 @@ static const unsigned int build_actionlist[5200] = { 0x00000000, 0x41e00000, 0x00060059, -0xe1c400d0, +0xe1c900d0, 0xe35b0008, 0x3a000000, 0x00050044, @@ -1467,8 +1522,8 @@ static const unsigned int build_actionlist[5200] = { 0x614f00d0, 0x00051813, 0x00060047, -0xe5146004, -0xe14400f8, +0xe5196004, +0xe14900f8, 0x0006005a, 0xe3a0b000, 0x000a0000, @@ -1477,20 +1532,20 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0x0516e004, 0xe58db004, -0xe244a008, +0xe249a008, 0x1a000000, 0x00050018, -0xe009caae, +0xe004caae, 0x0006000f, 0xe15c000b, 0x8a000000, 0x00050006, -0xe00902ae, +0xe00402ae, 0xe5d6c000, 0xe496e004, -0xe04a4000, +0xe04a9000, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x00060010, @@ -1502,7 +1557,7 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x0005000f, 0x0006005b, -0xe1c400d0, +0xe1c900d0, 0xe35b0008, 0x3a000000, 0x00050044, @@ -1511,12 +1566,18 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0x2a000000, 0x00050044, +0x00000000, +0xe1a0a009, +0x00000000, 0xeb000000, 0x00030011, +0x00000000, +0xe1a0900a, +0x00000000, 0xea000000, 0x00050047, 0x0006005c, -0xe1c400d0, +0xe1c900d0, 0xe35b0008, 0x3a000000, 0x00050044, @@ -1524,12 +1585,18 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0x2a000000, 0x00050044, +0x00000000, +0xe1a0a009, +0x00000000, 0xeb000000, 0x00030012, +0x00000000, +0xe1a0900a, +0x00000000, 0xea000000, 0x00050047, 0x0006005d, -0xe1c400d0, +0xe1c900d0, 0xe35b0008, 0x3a000000, 0x00050044, @@ -1537,12 +1604,18 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0x2a000000, 0x00050044, +0x00000000, +0xe1a0a009, +0x00000000, 0xeb000000, 0x00030013, +0x00000000, +0xe1a0900a, +0x00000000, 0xea000000, 0x00050047, 0x0006005e, -0xe1c400d0, +0xe1c900d0, 0xe35b0008, 0x3a000000, 0x00050044, @@ -1550,13 +1623,18 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0x2a000000, 0x00050044, +0x00000000, +0xe1a0a009, +0x00000000, 0xeb000000, 0x00030014, +0x00000000, +0xe1a0900a, +0x00000000, 0xea000000, 0x00050047, 0x0006005f, -0x00000000, -0xe1c400d0, +0xe1c900d0, 0xe35b0008, 0x3a000000, 0x00050044, @@ -1564,12 +1642,18 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0x2a000000, 0x00050044, +0x00000000, +0xe1a0a009, +0x00000000, 0xeb000000, 0x00030015, +0x00000000, +0xe1a0900a, +0x00000000, 0xea000000, 0x00050047, 0x00060060, -0xe1c400d0, +0xe1c900d0, 0xe35b0008, 0x3a000000, 0x00050044, @@ -1577,12 +1661,18 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0x2a000000, 0x00050044, +0x00000000, +0xe1a0a009, +0x00000000, 0xeb000000, 0x00030016, +0x00000000, +0xe1a0900a, +0x00000000, 0xea000000, 0x00050047, 0x00060061, -0xe1c400d0, +0xe1c900d0, 0xe35b0008, 0x3a000000, 0x00050044, @@ -1590,12 +1680,18 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0x2a000000, 0x00050044, +0x00000000, +0xe1a0a009, +0x00000000, 0xeb000000, 0x00030017, +0x00000000, +0xe1a0900a, +0x00000000, 0xea000000, 0x00050047, 0x00060062, -0xe1c400d0, +0xe1c900d0, 0xe35b0008, 0x3a000000, 0x00050044, @@ -1603,13 +1699,18 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0x2a000000, 0x00050044, +0x00000000, +0xe1a0a009, +0x00000000, 0xeb000000, 0x00030018, 0x00000000, +0xe1a0900a, +0x00000000, 0xea000000, 0x00050047, 0x00060063, -0xe1c400d0, +0xe1c900d0, 0xe35b0008, 0x3a000000, 0x00050044, @@ -1617,12 +1718,18 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0x2a000000, 0x00050044, +0x00000000, +0xe1a0a009, +0x00000000, 0xeb000000, 0x00030019, +0x00000000, +0xe1a0900a, +0x00000000, 0xea000000, 0x00050047, 0x00060064, -0xe1c400d0, +0xe1c900d0, 0xe35b0008, 0x3a000000, 0x00050044, @@ -1630,12 +1737,18 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0x2a000000, 0x00050044, +0x00000000, +0xe1a0a009, +0x00000000, 0xeb000000, 0x0003001a, +0x00000000, +0xe1a0900a, +0x00000000, 0xea000000, 0x00050047, 0x00060065, -0xe1c400d0, +0xe1c900d0, 0xe35b0008, 0x3a000000, 0x00050044, @@ -1643,26 +1756,37 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0x2a000000, 0x00050044, +0x00000000, +0xe1a0a009, +0x00000000, 0xeb000000, 0x0003001b, +0x00000000, +0xe1a0900a, +0x00000000, 0xea000000, 0x00050047, 0x00060066, -0xe1c400d0, +0xe1c900d0, 0xe35b0008, 0x3a000000, 0x00050044, 0xe3710000, 0x000a0000, -0x00000000, 0x2a000000, 0x00050044, +0x00000000, +0xe1a0a009, +0x00000000, 0xeb000000, 0x0003001c, +0x00000000, +0xe1a0900a, +0x00000000, 0xea000000, 0x00050047, 0x00060067, -0xe1c400d0, +0xe1c900d0, 0xe35b0008, 0x3a000000, 0x00050044, @@ -1670,13 +1794,19 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0x2a000000, 0x00050044, +0x00000000, +0xe1a0a009, +0x00000000, 0xeb000000, 0x0003001d, +0x00000000, +0xe1a0900a, +0x00000000, 0xea000000, 0x00050047, 0x00060068, -0xe1c400d0, -0xe1c420d8, +0xe1c900d0, +0xe1c920d8, 0xe35b0010, 0x3a000000, 0x00050044, @@ -1686,13 +1816,19 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0x2a000000, 0x00050044, +0x00000000, +0xe1a0a009, +0x00000000, 0xeb000000, 0x0003001e, +0x00000000, +0xe1a0900a, +0x00000000, 0xea000000, 0x00050047, 0x00060069, -0xe1c400d0, -0xe1c420d8, +0xe1c900d0, +0xe1c920d8, 0xe35b0010, 0x3a000000, 0x00050044, @@ -1702,14 +1838,19 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0x2a000000, 0x00050044, +0x00000000, +0xe1a0a009, +0x00000000, 0xeb000000, 0x0003001f, 0x00000000, +0xe1a0900a, +0x00000000, 0xea000000, 0x00050047, 0x0006006a, -0xe1c400d0, -0xe1c420d8, +0xe1c900d0, +0xe1c920d8, 0xe35b0010, 0x3a000000, 0x00050044, @@ -1719,13 +1860,19 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0x2a000000, 0x00050044, +0x00000000, +0xe1a0a009, +0x00000000, 0xeb000000, 0x00030020, +0x00000000, +0xe1a0900a, +0x00000000, 0xea000000, 0x00050047, 0x0006006b, 0x0006006c, -0xe1c400d0, +0xe1c900d0, 0xe35b0008, 0x3a000000, 0x00050044, @@ -1740,8 +1887,8 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x00050047, 0x0006006d, -0xe1c400d0, -0xe1c420d8, +0xe1c900d0, +0xe1c920d8, 0xe35b0010, 0x3a000000, 0x00050044, @@ -1754,12 +1901,17 @@ static const unsigned int build_actionlist[5200] = { 0x1a000000, 0x00050044, 0x00000000, +0xe1a0a009, +0x00000000, 0xeb000000, 0x00030022, +0x00000000, +0xe1a0900a, +0x00000000, 0xea000000, 0x00050047, 0x0006006e, -0xe1c400d0, +0xe1c900d0, 0xe35b0008, 0x3a000000, 0x00050044, @@ -1768,20 +1920,26 @@ static const unsigned int build_actionlist[5200] = { 0x2a000000, 0x00050044, 0xe1a0200d, +0x00000000, +0xe1a0a009, +0x00000000, 0xeb000000, 0x00030023, +0x00000000, +0xe1a0900a, +0x00000000, 0xe59d2000, 0xe3e03000, 0x000a0000, -0xe5146004, -0xe14400f8, +0xe5196004, +0xe14900f8, 0xe3a0b000, 0x000a0000, -0xe1c420f0, +0xe1c920f0, 0xea000000, 0x00050045, 0x0006006f, -0xe1c400d0, +0xe1c900d0, 0xe35b0008, 0x3a000000, 0x00050044, @@ -1789,17 +1947,23 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0x2a000000, 0x00050044, -0xe2442008, -0xe5146004, +0xe2492008, +0xe5196004, +0x00000000, +0xe1a0a009, +0x00000000, 0xeb000000, 0x00030024, +0x00000000, +0xe1a0900a, +0x00000000, 0xe3a0b000, 0x000a0000, -0xe1c400f0, +0xe1c900f0, 0xea000000, 0x00050045, 0x00060070, -0xe1c400d0, +0xe1c900d0, 0xe35b0008, 0x3a000000, 0x00050044, @@ -1809,8 +1973,7 @@ static const unsigned int build_actionlist[5200] = { 0x1a000000, 0x00050004, 0x0006000b, -0x00000000, -0xe18420da, +0xe18920da, 0xe15a000b, 0x2a000000, 0x00050047, @@ -1828,14 +1991,14 @@ static const unsigned int build_actionlist[5200] = { 0x00050044, 0xeb000000, 0x00030025, -0xe18420da, +0xe18920da, 0xea000000, 0x00050006, 0x0006000e, 0x8a000000, 0x00050044, 0x0006000f, -0xe18420da, +0xe18920da, 0xe15a000b, 0x2a000000, 0x00050047, @@ -1844,6 +2007,7 @@ static const unsigned int build_actionlist[5200] = { 0x2a000000, 0x00050007, 0x00060010, +0x00000000, 0xeb000000, 0x00030026, 0xe28aa008, @@ -1862,8 +2026,7 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x00050010, 0x00060071, -0x00000000, -0xe1c400d0, +0xe1c900d0, 0xe35b0008, 0x3a000000, 0x00050044, @@ -1873,7 +2036,7 @@ static const unsigned int build_actionlist[5200] = { 0x1a000000, 0x00050004, 0x0006000b, -0xe18420da, +0xe18920da, 0xe15a000b, 0x2a000000, 0x00050047, @@ -1891,14 +2054,15 @@ static const unsigned int build_actionlist[5200] = { 0x00050044, 0xeb000000, 0x00030025, -0xe18420da, +0xe18920da, 0xea000000, 0x00050006, 0x0006000e, 0x8a000000, 0x00050044, 0x0006000f, -0xe18420da, +0x00000000, +0xe18920da, 0xe15a000b, 0x2a000000, 0x00050047, @@ -1915,7 +2079,6 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x0005000f, 0x00060011, -0x00000000, 0x8a000000, 0x00050044, 0xe1cd00f0, @@ -1926,7 +2089,7 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x00050010, 0x00060072, -0xe1c400d0, +0xe1c900d0, 0xe35b0008, 0x3a000000, 0x00050044, @@ -1941,8 +2104,8 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x00050047, 0x00060073, -0xe1c400d0, -0xe5146004, +0xe1c900d0, +0xe5196004, 0xe35b0008, 0x03710000, 0x000a0000, @@ -1952,6 +2115,7 @@ static const unsigned int build_actionlist[5200] = { 0x000d8180, 0xe5500000, 0x000d8180, +0x00000000, 0xe3e01000, 0x000a0000, 0xe3520000, @@ -1959,7 +2123,7 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0x13a0b000, 0x000a0000, -0xe14400f8, +0xe14900f8, 0xea000000, 0x00050045, 0x00060074, @@ -1967,12 +2131,11 @@ static const unsigned int build_actionlist[5200] = { 0x000d8180, 0xe5171000, 0x000d8180, -0x00000000, 0xe1500001, 0xab000000, 0x0005004d, -0xe1c400d0, -0xe5146004, +0xe1c900d0, +0xe5196004, 0xe35b0008, 0x03710000, 0x000a0000, @@ -1983,13 +2146,13 @@ static const unsigned int build_actionlist[5200] = { 0xe58d0000, 0xe1a0100d, 0x00060075, -0xe5084000, +0xe5089000, 0x000d8180, 0xe1a00008, 0xe58d6008, 0xeb000000, 0x00030027, -0xe5184000, +0xe5189000, 0x000d8180, 0xe3e01000, 0x000a0000, @@ -2003,21 +2166,22 @@ static const unsigned int build_actionlist[5200] = { 0xe1500001, 0xab000000, 0x0005004d, -0xe1c400d0, -0xe1c421d0, +0xe1c900d0, +0xe1c921d0, 0xe35b0010, 0xe3e0c000, 0x0a000000, 0x00050001, 0x3a000000, 0x00050044, +0x00000000, 0xe3730000, 0x000a0000, 0xe1a0c002, 0x1a000000, 0x00050044, 0x0006000b, -0xe5942008, +0xe5992008, 0xe3710000, 0x000a0000, 0x05101000, @@ -2026,7 +2190,6 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0x1a000000, 0x00050044, -0x00000000, 0xe2813001, 0xe3520000, 0xb0822003, @@ -2059,8 +2222,8 @@ static const unsigned int build_actionlist[5200] = { 0xe1500001, 0xab000000, 0x0005004d, -0xe1c400d0, -0xe1c420d8, +0xe1c900d0, +0xe1c920d8, 0xe35b0010, 0x3a000000, 0x00050044, @@ -2073,6 +2236,7 @@ static const unsigned int build_actionlist[5200] = { 0xe2523001, 0xe5101000, 0x000d8180, +0x00000000, 0xba000000, 0x00050077, 0xe3510001, @@ -2090,7 +2254,6 @@ static const unsigned int build_actionlist[5200] = { 0x3a000000, 0x00050044, 0x0006000b, -0x00000000, 0xe7c10003, 0xe2533001, 0xaa000000, @@ -2105,7 +2268,7 @@ static const unsigned int build_actionlist[5200] = { 0xe1500001, 0xab000000, 0x0005004d, -0xe1c400d0, +0xe1c900d0, 0xe35b0008, 0x3a000000, 0x00050044, @@ -2126,6 +2289,7 @@ static const unsigned int build_actionlist[5200] = { 0x3a000000, 0x00050044, 0x0006000b, +0x00000000, 0xe4d0c001, 0xe2533001, 0xba000000, @@ -2141,11 +2305,10 @@ static const unsigned int build_actionlist[5200] = { 0xe1500001, 0xab000000, 0x0005004d, -0xe1c400d0, +0xe1c900d0, 0xe35b0008, 0x3a000000, 0x00050044, -0x00000000, 0xe3710000, 0x000a0000, 0x1a000000, @@ -2182,10 +2345,11 @@ static const unsigned int build_actionlist[5200] = { 0xe1500001, 0xab000000, 0x0005004d, -0xe1c400d0, +0xe1c900d0, 0xe35b0008, 0x3a000000, 0x00050044, +0x00000000, 0xe3710000, 0x000a0000, 0x1a000000, @@ -2203,7 +2367,6 @@ static const unsigned int build_actionlist[5200] = { 0x3a000000, 0x00050044, 0x0006000b, -0x00000000, 0xe7d0c003, 0xe1530002, 0x2a000000, @@ -2216,7 +2379,7 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x0005000b, 0x0006007c, -0xe1c400d0, +0xe1c900d0, 0xe35b0008, 0x3a000000, 0x00050044, @@ -2224,8 +2387,14 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0x1a000000, 0x00050044, +0x00000000, +0xe1a0a009, +0x00000000, 0xeb000000, 0x00030028, +0x00000000, +0xe1a0900a, +0x00000000, 0xe3e01000, 0x000a0000, 0xea000000, @@ -2259,7 +2428,7 @@ static const unsigned int build_actionlist[5200] = { 0xb2600000, 0xe12fff1e, 0x0006007f, -0xe1c400d0, +0xe1c900d0, 0xe35b0008, 0x3a000000, 0x00050044, @@ -2272,11 +2441,10 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x00050047, 0x00060080, -0xe1c400d0, +0xe1c900d0, 0xe35b0008, 0x3a000000, 0x00050044, -0x00000000, 0xe3710000, 0x000a0000, 0x1b000000, @@ -2284,7 +2452,7 @@ static const unsigned int build_actionlist[5200] = { 0xe1a02000, 0xe3a0a008, 0x0006000b, -0xe18400da, +0xe18900da, 0xe15a000b, 0xe28aa008, 0xaa000000, @@ -2297,7 +2465,8 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x0005000b, 0x00060081, -0xe1c400d0, +0x00000000, +0xe1c900d0, 0xe35b0008, 0x3a000000, 0x00050044, @@ -2308,7 +2477,7 @@ static const unsigned int build_actionlist[5200] = { 0xe1a02000, 0xe3a0a008, 0x0006000b, -0xe18400da, +0xe18900da, 0xe15a000b, 0xe28aa008, 0xaa000000, @@ -2321,7 +2490,7 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x0005000b, 0x00060082, -0xe1c400d0, +0xe1c900d0, 0xe35b0008, 0x3a000000, 0x00050044, @@ -2332,12 +2501,11 @@ static const unsigned int build_actionlist[5200] = { 0xe1a02000, 0xe3a0a008, 0x0006000b, -0xe18400da, +0xe18900da, 0xe15a000b, 0xe28aa008, 0xaa000000, 0x00050002, -0x00000000, 0xe3710000, 0x000a0000, 0x1b000000, @@ -2348,15 +2516,16 @@ static const unsigned int build_actionlist[5200] = { 0x0006000c, 0xe3e03000, 0x000a0000, -0xe5146004, -0xe14420f8, +0xe5196004, +0xe14920f8, 0xea000000, 0x0005005a, 0x00060083, -0xe1c400d0, +0xe1c900d0, 0xe35b0008, 0x3a000000, 0x00050044, +0x00000000, 0xe3710000, 0x000a0000, 0x1b000000, @@ -2370,7 +2539,7 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x00050047, 0x00060084, -0xe1c400d0, +0xe1c900d0, 0xe35b0008, 0x3a000000, 0x00050044, @@ -2384,7 +2553,7 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x00050047, 0x00060085, -0xe1c400d8, +0xe1c900d8, 0xe35b0010, 0x3a000000, 0x00050044, @@ -2392,9 +2561,8 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0x1b000000, 0x0005007d, -0x00000000, 0xe200a01f, -0xe1c400d0, +0xe1c900d0, 0xe3710000, 0x000a0000, 0x1b000000, @@ -2405,7 +2573,7 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x00050047, 0x00060086, -0xe1c400d8, +0xe1c900d8, 0xe35b0010, 0x3a000000, 0x00050044, @@ -2413,8 +2581,9 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0x1b000000, 0x0005007d, +0x00000000, 0xe200a01f, -0xe1c400d0, +0xe1c900d0, 0xe3710000, 0x000a0000, 0x1b000000, @@ -2425,7 +2594,7 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x00050047, 0x00060087, -0xe1c400d8, +0xe1c900d8, 0xe35b0010, 0x3a000000, 0x00050044, @@ -2434,7 +2603,7 @@ static const unsigned int build_actionlist[5200] = { 0x1b000000, 0x0005007d, 0xe200a01f, -0xe1c400d0, +0xe1c900d0, 0xe3710000, 0x000a0000, 0x1b000000, @@ -2445,17 +2614,16 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x00050047, 0x00060088, -0xe1c400d8, +0xe1c900d8, 0xe35b0010, 0x3a000000, 0x00050044, -0x00000000, 0xe3710000, 0x000a0000, 0x1b000000, 0x0005007d, 0xe260a000, -0xe1c400d0, +0xe1c900d0, 0xe3710000, 0x000a0000, 0x1b000000, @@ -2466,16 +2634,17 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x00050047, 0x00060089, -0xe1c400d8, +0xe1c900d8, 0xe35b0010, 0x3a000000, 0x00050044, +0x00000000, 0xe3710000, 0x000a0000, 0x1b000000, 0x0005007d, 0xe200a01f, -0xe1c400d0, +0xe1c900d0, 0xe3710000, 0x000a0000, 0x1b000000, @@ -2486,16 +2655,16 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x00050047, 0x00060044, -0xe5142008, +0xe5192008, 0xe5181000, 0x000d8180, -0xe084000b, -0xe5146004, +0xe089000b, +0xe5196004, 0xe5080000, 0x000d8180, 0xe5122000, 0x000d8180, -0xe5084000, +0xe5089000, 0x000d8180, 0xe2800000, 0x000a0000, @@ -2505,19 +2674,18 @@ static const unsigned int build_actionlist[5200] = { 0x8a000000, 0x00050005, 0xe12fff32, -0xe5184000, +0xe5189000, 0x000d8180, -0x00000000, 0xe3500000, 0xe1a0b180, -0xe244a008, +0xe249a008, 0xca000000, 0x00050045, 0x0006000b, 0xe5180000, 0x000d8180, -0xe5142008, -0xe040b004, +0xe5192008, +0xe040b009, 0x1a000000, 0x00050028, 0xe5126000, @@ -2525,18 +2693,19 @@ static const unsigned int build_actionlist[5200] = { 0xe5d6c000, 0xe496e004, 0xe797c10c, -0xe009a2ae, -0xe08aa004, +0xe004a2ae, +0xe08aa009, 0xe12fff1c, 0x00060028, 0xe2160000, 0x000a0000, 0xe3c61000, 0x000a0000, +0x00000000, 0x0516e004, 0x00020000, -0x000912ae, -0xe044c001, +0x000412ae, +0xe049c001, 0xea000000, 0x00050024, 0x0006000f, @@ -2544,26 +2713,26 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0xeb000000, 0x00030000, -0xe5184000, +0xe5189000, 0x000d8180, 0xe1500000, 0xea000000, 0x0005000b, 0x0006004d, 0xe1a0a00e, -0xe5084000, +0xe5089000, 0x000d8180, -0xe084100b, +0xe089100b, 0xe58d6008, 0xe5081000, 0x000d8180, 0xe1a00008, 0xeb000000, 0x00030029, -0xe5184000, +0xe5189000, 0x000d8180, 0xe1a0e00a, -0xe5142008, +0xe5192008, 0xe12fff1e, 0x0006008a, 0x00000000, @@ -2605,13 +2774,13 @@ static const unsigned int build_actionlist[5200] = { 0x0005000f, 0x0006000b, 0xe1a00008, -0xe5084000, +0xe5089000, 0x000d8180, 0xe1a01006, 0xeb000000, 0x0003002a, 0x0006000d, -0xe5184000, +0xe5189000, 0x000d8180, 0x0006000e, 0x00000000, @@ -2620,7 +2789,7 @@ static const unsigned int build_actionlist[5200] = { 0xe087c10c, 0xe51cc000, 0x000d8180, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x0006008d, @@ -2644,25 +2813,25 @@ static const unsigned int build_actionlist[5200] = { 0xe3861001, 0x0006000b, 0x00000000, -0xe084300b, +0xe089300b, 0xe58d6008, 0xe1a00008, -0xe5084000, +0xe5089000, 0x000d8180, -0xe04aa004, +0xe04aa009, 0xe5083000, 0x000d8180, 0xeb000000, 0x0003002b, -0xe5184000, +0xe5189000, 0x000d8180, 0xe5183000, 0x000d8180, 0xe3a01000, -0xe084a00a, -0xe043b004, +0xe089a00a, +0xe043b009, 0xe58d1008, -0xe5142008, +0xe5192008, 0xe12fff10, 0x00060091, 0x00000000, @@ -2803,9 +2972,9 @@ static const unsigned int build_actionlist[5200] = { 0x00080000, 0x00000000, 0xe1a0b18b, -0xe1aa00d4, +0xe1aa00d9, 0xe1d6c0b2, -0xe1ab20d4, +0xe1ab20d9, 0xe2866004, 0xe086c10c, 0xe3710000, @@ -2830,7 +2999,7 @@ static const unsigned int build_actionlist[5200] = { 0xe5d6c000, 0xe496e004, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x0006000d, @@ -2874,9 +3043,9 @@ static const unsigned int build_actionlist[5200] = { 0x0005000b, 0x00000000, 0xe1a0b18b, -0xe1aa00d4, +0xe1aa00d9, 0xe1d6c0b2, -0xe1ab20d4, +0xe1ab20d9, 0xe2866004, 0xe086c10c, 0xe3710000, @@ -2914,7 +3083,7 @@ static const unsigned int build_actionlist[5200] = { 0xe5d6c000, 0xe496e004, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x0006000d, @@ -2956,12 +3125,12 @@ static const unsigned int build_actionlist[5200] = { 0xe5d6c000, 0xe496e004, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x00000000, 0xe1e0b00b, -0xe18400da, +0xe18900da, 0xe1d6c0b2, 0xe795210b, 0xe2866004, @@ -2984,7 +3153,7 @@ static const unsigned int build_actionlist[5200] = { 0xe5d6c000, 0xe496e004, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x00000000, @@ -2997,7 +3166,7 @@ static const unsigned int build_actionlist[5200] = { 0x0005003a, 0x00000000, 0xe1a0b18b, -0xe1aa00d4, +0xe1aa00d9, 0xe1d6c0b2, 0xe1ab20d5, 0xe2866004, @@ -3027,7 +3196,7 @@ static const unsigned int build_actionlist[5200] = { 0xe5d6c000, 0xe496e004, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x0006000d, @@ -3071,7 +3240,7 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x0005003a, 0x00000000, -0xe18400da, +0xe18900da, 0xe1d6c0b2, 0xe2866004, 0xe1e0b00b, @@ -3091,11 +3260,11 @@ static const unsigned int build_actionlist[5200] = { 0xe5d6c000, 0xe496e004, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x00000000, -0xe084b18b, +0xe089b18b, 0xe1d6c0b2, 0xe1cb00d0, 0xe2866004, @@ -3105,33 +3274,33 @@ static const unsigned int build_actionlist[5200] = { 0x00000000, 0x924c6b80, 0x00000000, -0x918400fa, +0x918900fa, 0x00000000, 0x824c6b80, 0x00000000, -0x818400fa, +0x818900fa, 0x00000000, 0xe5d6c000, 0xe496e004, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x00000000, 0xe1a0b18b, 0xe5d6c000, -0xe18400db, +0xe18900db, 0xe496e004, -0xe18400fa, +0xe18900fa, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x00000000, -0xe084b18b, +0xe089b18b, 0xe5d6c000, 0xe59b0004, -0xe084a00a, +0xe089a00a, 0xe496e004, 0xe3700000, 0x000a0000, @@ -3141,12 +3310,12 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0xe58a1004, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x00000000, 0xe1a0b18b, -0xe18400db, +0xe18900db, 0xe5d6c000, 0xe496e004, 0xe3710000, @@ -3160,9 +3329,9 @@ static const unsigned int build_actionlist[5200] = { 0x614f00d0, 0x00051809, 0x0006000f, -0xe18400fa, +0xe18900fa, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x00040007, @@ -3172,7 +3341,7 @@ static const unsigned int build_actionlist[5200] = { 0x41e00000, 0x00000000, 0xe1a0b18b, -0xe18400db, +0xe18900db, 0xe3710000, 0x000a0000, 0x1a000000, @@ -3184,9 +3353,9 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0xe5d6c000, 0xe496e004, -0xe18400fa, +0xe18900fa, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x0006000c, @@ -3194,22 +3363,28 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0x1a000000, 0x0005003f, +0x00000000, +0xe1a0b009, +0x00000000, 0xeb000000, 0x00030028, +0x00000000, +0xe1a0900b, +0x00000000, 0xea000000, 0x0005000b, 0x00000000, -0xe009caae, -0xe009b6ae, +0xe004caae, +0xe004b6ae, 0x00000000, -0xe18400dc, +0xe18900dc, 0xe18520db, 0x00000000, -0xe18420dc, +0xe18920dc, 0xe18500db, 0x00000000, -0xe18400dc, -0xe18420db, +0xe18900dc, +0xe18920db, 0x00000000, 0xe5d6c000, 0x00000000, @@ -3238,9 +3413,9 @@ static const unsigned int build_actionlist[5200] = { 0x00000000, 0x0006000e, 0xe496e004, -0xe18400fa, +0xe18900fa, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x0006000f, @@ -3290,17 +3465,17 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x0005000e, 0x00000000, -0xe009caae, -0xe009b6ae, +0xe004caae, +0xe004b6ae, 0x00000000, -0xe18400dc, +0xe18900dc, 0xe18520db, 0x00000000, -0xe18420dc, +0xe18920dc, 0xe18500db, 0x00000000, -0xe18400dc, -0xe18420db, +0xe18900dc, +0xe18920db, 0x00000000, 0xe5d6c000, 0x00000000, @@ -3329,9 +3504,9 @@ static const unsigned int build_actionlist[5200] = { 0x00000000, 0x0006000e, 0xe496e004, -0xe18400fa, +0xe18900fa, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x0006000f, @@ -3381,17 +3556,17 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x0005000e, 0x00000000, -0xe009caae, -0xe009b6ae, +0xe004caae, +0xe004b6ae, 0x00000000, -0xe18400dc, +0xe18900dc, 0xe18520db, 0x00000000, -0xe18420dc, +0xe18920dc, 0xe18500db, 0x00000000, -0xe18400dc, -0xe18420db, +0xe18900dc, +0xe18920db, 0x00000000, 0xe5d6c000, 0x00000000, @@ -3421,9 +3596,9 @@ static const unsigned int build_actionlist[5200] = { 0x00000000, 0x0006000e, 0xe496e004, -0xe18400fa, +0xe18900fa, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x0006000f, @@ -3473,17 +3648,17 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x0005000e, 0x00000000, -0xe009caae, -0xe009b6ae, +0xe004caae, +0xe004b6ae, 0x00000000, -0xe18400dc, +0xe18900dc, 0xe18520db, 0x00000000, -0xe18420dc, +0xe18920dc, 0xe18500db, 0x00000000, -0xe18400dc, -0xe18420db, +0xe18900dc, +0xe18920db, 0x00000000, 0xe3730000, 0x000a0000, @@ -3528,23 +3703,23 @@ static const unsigned int build_actionlist[5200] = { 0x0003002c, 0xe5d6c000, 0xe496e004, -0xe18400fa, +0xe18900fa, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x00000000, -0xe009caae, -0xe009b6ae, +0xe004caae, +0xe004b6ae, 0x00000000, -0xe18400dc, +0xe18900dc, 0xe18520db, 0x00000000, -0xe18420dc, +0xe18920dc, 0xe18500db, 0x00000000, -0xe18400dc, -0xe18420db, +0xe18900dc, +0xe18920db, 0x00000000, 0xe3730000, 0x000a0000, @@ -3576,9 +3751,9 @@ static const unsigned int build_actionlist[5200] = { 0x0006000e, 0xe5d6c000, 0xe496e004, -0xe18400fa, +0xe18900fa, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x0006000f, @@ -3622,22 +3797,27 @@ static const unsigned int build_actionlist[5200] = { 0x2a000000, 0x0005003e, 0x00000000, +0xe1a0b009, +0x00000000, 0xeb000000, 0x00050096, +0x00000000, +0xe1a0900b, +0x00000000, 0xea000000, 0x0005000e, 0x00000000, -0xe009caae, -0xe009b6ae, +0xe004caae, +0xe004b6ae, 0x00000000, -0xe18400dc, +0xe18900dc, 0xe18520db, 0x00000000, -0xe18420dc, +0xe18920dc, 0xe18500db, 0x00000000, -0xe18400dc, -0xe18420db, +0xe18900dc, +0xe18920db, 0x00000000, 0xe3730000, 0x000a0000, @@ -3678,39 +3858,44 @@ static const unsigned int build_actionlist[5200] = { 0x2a000000, 0x0005003e, 0x00000000, +0xe1a0b009, +0x00000000, 0xeb000000, 0x0003001e, +0x00000000, +0xe1a0900b, +0x00000000, 0xe5d6c000, 0xe496e004, -0xe18400fa, +0xe18900fa, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x00000000, -0xe009baae, -0xe009c6ae, +0xe004baae, +0xe004c6ae, 0xe04c200b, -0xe5084000, +0xe5089000, 0x000d8180, -0xe084100c, +0xe089100c, 0x0006002a, 0xe1a00008, 0xe58d6008, 0xe1a021a2, 0xeb000000, 0x00030030, -0xe5184000, +0xe5189000, 0x000d8180, 0xe3500000, 0x1a000000, 0x00050035, -0xe18420db, +0xe18920db, 0xe5d6c000, 0xe496e004, -0xe18420fa, +0xe18920fa, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x00000000, @@ -3720,9 +3905,9 @@ static const unsigned int build_actionlist[5200] = { 0xe3e01000, 0x000a0000, 0xe496e004, -0xe18400fa, +0xe18900fa, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x00000000, @@ -3732,9 +3917,9 @@ static const unsigned int build_actionlist[5200] = { 0xe3e01000, 0x000a0000, 0xe496e004, -0xe18400fa, +0xe18900fa, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x00000000, @@ -3743,9 +3928,9 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0xe5d6c000, 0xe496e004, -0xe18400fa, +0xe18900fa, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x00000000, @@ -3753,24 +3938,24 @@ static const unsigned int build_actionlist[5200] = { 0xe5d6c000, 0xe18500db, 0xe496e004, -0xe18400fa, +0xe18900fa, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x00000000, -0xe084a00a, +0xe089a00a, 0xe1e0b00b, 0xe5d6c000, 0xe496e004, 0xe58ab004, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x00000000, -0xe084a00a, -0xe084b18b, +0xe089a00a, +0xe089b18b, 0xe3e00000, 0x000a0000, 0xe58a0004, @@ -3784,11 +3969,11 @@ static const unsigned int build_actionlist[5200] = { 0xe5d6c000, 0xe496e004, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x00000000, -0xe5141008, +0xe5191008, 0xe1a0b10b, 0xe28bb000, 0x000a0000, @@ -3798,19 +3983,19 @@ static const unsigned int build_actionlist[5200] = { 0xe1c120d0, 0xe5d6c000, 0xe496e004, -0xe18420fa, +0xe18920fa, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x00000000, -0xe5141008, +0xe5191008, 0xe1a0a0aa, 0xe28aa000, 0x000a0000, 0xe1a0b18b, 0xe791100a, -0xe18420db, +0xe18920db, 0xe551c000, 0x000d8180, 0xe551b000, @@ -3829,7 +4014,7 @@ static const unsigned int build_actionlist[5200] = { 0xe5d6c000, 0xe496e004, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x0006000c, @@ -3843,12 +4028,21 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0xe31b0000, 0x000a0000, +0x00000000, +0x0a000000, +0x0005000b, +0xe1a0b009, +0xeb000000, +0x00030031, +0xe1a0900b, +0x00000000, 0x1b000000, 0x00030031, +0x00000000, 0xea000000, 0x0005000b, 0x00000000, -0xe5141008, +0xe5191008, 0xe1a0a0aa, 0xe28aa000, 0x000a0000, @@ -3874,7 +4068,7 @@ static const unsigned int build_actionlist[5200] = { 0xe5d6c000, 0xe496e004, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x0006000c, @@ -3883,12 +4077,21 @@ static const unsigned int build_actionlist[5200] = { 0x135b0000, 0xe2470000, 0x000a0000, +0x00000000, +0x0a000000, +0x0005000b, +0xe1a0b009, +0xeb000000, +0x00030031, +0xe1a0900b, +0x00000000, 0x1b000000, 0x00030031, +0x00000000, 0xea000000, 0x0005000b, 0x00000000, -0xe5141008, +0xe5191008, 0xe1a0a0aa, 0xe28aa000, 0x000a0000, @@ -3901,11 +4104,11 @@ static const unsigned int build_actionlist[5200] = { 0xe496e004, 0xe1c120f0, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x00000000, -0xe5141008, +0xe5191008, 0xe1a0a0aa, 0xe28aa000, 0x000a0000, @@ -3917,51 +4120,51 @@ static const unsigned int build_actionlist[5200] = { 0xe496e004, 0xe581b004, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x00000000, 0xe5182000, 0x000d8180, 0xe086b10b, -0xe5084000, +0xe5089000, 0x000d8180, 0xe3520000, 0xe24b6b80, 0x0a000000, 0x00050001, 0xe1a00008, -0xe084100a, +0xe089100a, 0xeb000000, 0x00030032, -0xe5184000, +0xe5189000, 0x000d8180, 0x0006000b, 0xe5d6c000, 0xe496e004, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x00000000, 0xe1e0b00b, -0xe5084000, +0xe5089000, 0x000d8180, 0xe795110b, 0xe58d6008, -0xe5142008, +0xe5192008, 0xe1a00008, 0xeb000000, 0x00030033, -0xe5184000, +0xe5189000, 0x000d8180, 0xe3e01000, 0x000a0000, 0xe5d6c000, 0xe496e004, -0xe18400fa, +0xe18900fa, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x00000000, @@ -3971,7 +4174,7 @@ static const unsigned int build_actionlist[5200] = { 0x000d8180, 0xe5173000, 0x000d8180, -0xe5084000, +0xe5089000, 0x000d8180, 0xe58d6008, 0xe1520003, @@ -3993,15 +4196,15 @@ static const unsigned int build_actionlist[5200] = { 0xeb000000, 0x00030035, 0x00000000, -0xe5184000, +0xe5189000, 0x000d8180, 0xe3e01000, 0x000a0000, 0xe5d6c000, 0xe496e004, -0xe18400fa, +0xe18900fa, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x0006000f, @@ -4011,7 +4214,7 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x0005000b, 0x00000000, -0xe5141008, +0xe5191008, 0xe1e0b00b, 0xe5110000, 0x000d8180, @@ -4023,10 +4226,10 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x0005009f, 0x00000000, -0xe009caae, -0xe009b6ae, -0xe18400dc, -0xe18420db, +0xe004caae, +0xe004b6ae, +0xe18900dc, +0xe18920db, 0xe3710000, 0x000a0000, 0x1a000000, @@ -4051,9 +4254,9 @@ static const unsigned int build_actionlist[5200] = { 0x00050005, 0x0006000b, 0xe496e004, -0xe18420fa, +0xe18920fa, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x0006000f, @@ -4068,7 +4271,7 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0x1a000000, 0x0005000b, -0xe009caae, +0xe004caae, 0xea000000, 0x0005002f, 0x00060013, @@ -4080,9 +4283,9 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x0005002f, 0x00000000, -0xe009caae, +0xe004caae, 0xe20bb0ff, -0xe18400dc, +0xe18900dc, 0xe1e0b00b, 0xe795b10b, 0xe3710000, @@ -4119,9 +4322,9 @@ static const unsigned int build_actionlist[5200] = { 0x0006000d, 0xe5d6c000, 0xe496e004, -0xe18420fa, +0xe18920fa, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x0006000e, @@ -4147,9 +4350,9 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x0005002d, 0x00000000, -0xe009caae, +0xe004caae, 0xe20bb0ff, -0xe18400dc, +0xe18900dc, 0xe3710000, 0x000a0000, 0x1a000000, @@ -4170,9 +4373,9 @@ static const unsigned int build_actionlist[5200] = { 0x00050005, 0x0006000b, 0xe496e004, -0xe18420fa, +0xe18920fa, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x0006000f, @@ -4190,10 +4393,10 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x0005002e, 0x00000000, -0xe009caae, -0xe009b6ae, -0xe18400dc, -0xe18420db, +0xe004caae, +0xe004b6ae, +0xe18900dc, +0xe18920db, 0xe3710000, 0x000a0000, 0x1a000000, @@ -4216,7 +4419,7 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0xe550e000, 0x000d8180, -0xe18420da, +0xe18920da, 0x0a000000, 0x00050005, 0x0006000b, @@ -4228,7 +4431,7 @@ static const unsigned int build_actionlist[5200] = { 0x0006000c, 0xe496e004, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x0006000f, @@ -4244,8 +4447,8 @@ static const unsigned int build_actionlist[5200] = { 0x1a000000, 0x0005000b, 0xe516e004, -0xe009caae, -0xe009a2ae, +0xe004caae, +0xe004a2ae, 0xea000000, 0x00050033, 0x00060011, @@ -4271,9 +4474,9 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x00050033, 0x00000000, -0xe009caae, +0xe004caae, 0xe20bb0ff, -0xe18400dc, +0xe18900dc, 0xe1e0b00b, 0xe795b10b, 0xe3710000, @@ -4310,7 +4513,7 @@ static const unsigned int build_actionlist[5200] = { 0x000d8180, 0xe3730000, 0x000a0000, -0xe18420da, +0xe18920da, 0x0a000000, 0x00050004, 0x0006000c, @@ -4324,7 +4527,7 @@ static const unsigned int build_actionlist[5200] = { 0xe5d6c000, 0xe496e004, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x0006000e, @@ -4351,7 +4554,7 @@ static const unsigned int build_actionlist[5200] = { 0xe1a0200d, 0xe58d6008, 0xe3500000, -0xe5084000, +0xe5089000, 0x000d8180, 0x15501000, 0x000d8180, @@ -4370,9 +4573,9 @@ static const unsigned int build_actionlist[5200] = { 0xe58d3004, 0xeb000000, 0x00030037, -0xe5184000, +0xe5189000, 0x000d8180, -0xe18420da, +0xe18920da, 0xe1c020f0, 0xea000000, 0x0005000d, @@ -4391,9 +4594,9 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x0005000d, 0x00000000, -0xe009caae, +0xe004caae, 0xe20bb0ff, -0xe18400dc, +0xe18900dc, 0xe3710000, 0x000a0000, 0x1a000000, @@ -4412,7 +4615,7 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0xe550e000, 0x000d8180, -0xe18420da, +0xe18920da, 0x0a000000, 0x00050005, 0x0006000b, @@ -4424,7 +4627,7 @@ static const unsigned int build_actionlist[5200] = { 0x0006000c, 0xe496e004, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x0006000f, @@ -4457,7 +4660,7 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x0005000c, 0x00000000, -0xe084a00a, +0xe089a00a, 0x0006000b, 0xe59dc004, 0xe51a1008, @@ -4491,16 +4694,20 @@ static const unsigned int build_actionlist[5200] = { 0xe5d6c000, 0xe496e004, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x0006000f, -0xe5084000, +0xe5089000, 0x000d8180, 0xe1a00008, 0xe58d6008, 0xeb000000, 0x00030038, +0x00000000, +0xe5189000, +0x000d8180, +0x00000000, 0xea000000, 0x0005000b, 0x00060011, @@ -4518,29 +4725,29 @@ static const unsigned int build_actionlist[5200] = { 0x0005000e, 0x00000000, 0xe59d0004, -0xe009b6ae, +0xe004b6ae, 0xe08bb000, 0xea000000, 0x000500a0, 0x00000000, -0xe009b6ae, +0xe004b6ae, 0x000600a0, -0xe1a0c004, -0xe1a420da, +0xe1a0c009, +0xe1a920da, 0xe24bb008, -0xe2844008, +0xe2899008, 0xe3730000, 0x000a0000, 0x1a000000, 0x00050025, -0xe5046004, +0xe5096004, 0xe5126000, 0x000d8180, 0xe5d6c000, 0xe496e004, 0xe797c10c, -0xe009a2ae, -0xe08aa004, +0xe004a2ae, +0xe08aa009, 0xe12fff1c, 0x00000000, 0xe59d0004, @@ -4550,14 +4757,14 @@ static const unsigned int build_actionlist[5200] = { 0x00000000, 0xe1a0b18b, 0x000600a1, -0xe1aa20d4, +0xe1aa20d9, 0xe24bb008, 0xe28aa008, 0xe3730000, 0x000a0000, 0x1a000000, 0x00050040, -0xe5146004, +0xe5196004, 0x00060041, 0xe3a0c000, 0xe5523000, @@ -4567,7 +4774,7 @@ static const unsigned int build_actionlist[5200] = { 0x1a000000, 0x00050007, 0x0006000b, -0xe5042008, +0xe5092008, 0xe35b0000, 0x0a000000, 0x00050003, @@ -4575,7 +4782,7 @@ static const unsigned int build_actionlist[5200] = { 0xe18a00dc, 0xe28ce008, 0xe15e000b, -0xe18400fc, +0xe18900fc, 0xe1a0c00e, 0x1a000000, 0x0005000c, @@ -4589,13 +4796,13 @@ static const unsigned int build_actionlist[5200] = { 0xe5d6c000, 0xe496e004, 0xe797c10c, -0xe009a2ae, -0xe08aa004, +0xe004a2ae, +0xe08aa009, 0xe12fff1c, 0x0006000f, 0xe516e004, -0xe009a2ae, -0xe044000a, +0xe004a2ae, +0xe049000a, 0xe5100010, 0xe5100000, 0x000d8180, @@ -4612,19 +4819,19 @@ static const unsigned int build_actionlist[5200] = { 0x13a03000, 0x1a000000, 0x0005000b, -0xe0444006, -0xe5146004, +0xe0499006, +0xe5196004, 0xe3160000, 0x000a0000, 0x13a03000, 0xea000000, 0x0005000b, 0x00000000, -0xe084a00a, -0xe1a0c004, +0xe089a00a, +0xe1a0c009, 0xe14a21d0, 0xe14a00d8, -0xe28a4008, +0xe28a9008, 0xe1ca20f8, 0xe1ca01f0, 0xe14a21d8, @@ -4634,17 +4841,17 @@ static const unsigned int build_actionlist[5200] = { 0x000a0000, 0x1a000000, 0x00050025, -0xe5046004, +0xe5096004, 0xe5126000, 0x000d8180, 0xe5d6c000, 0xe496e004, 0xe797c10c, -0xe009a2ae, -0xe08aa004, +0xe004a2ae, +0xe08aa009, 0xe12fff1c, 0x00000000, -0xe084a00a, +0xe089a00a, 0xe51ac010, 0xe51a0008, 0xe51ce000, @@ -4676,7 +4883,7 @@ static const unsigned int build_actionlist[5200] = { 0xe5d6c000, 0xe496e004, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x0006000f, @@ -4709,7 +4916,7 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x0005000d, 0x00000000, -0xe084a00a, +0xe089a00a, 0xe086b10b, 0xe14a01d8, 0xe51a200c, @@ -4733,7 +4940,7 @@ static const unsigned int build_actionlist[5200] = { 0xe50a0008, 0x0006000b, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x0006000f, @@ -4748,15 +4955,15 @@ static const unsigned int build_actionlist[5200] = { 0xea000000, 0x0005000b, 0x00000000, -0xe009caae, -0xe009b6ae, -0xe5140004, -0xe084b00b, -0xe084a00a, +0xe004caae, +0xe004b6ae, +0xe5190004, +0xe089b00b, +0xe089a00a, 0xe28bb000, 0x000a0000, 0xe08a300c, -0xe2442008, +0xe2492008, 0xe04bb000, 0xe35c0000, 0xe042000b, @@ -4776,7 +4983,7 @@ static const unsigned int build_actionlist[5200] = { 0xe5d6c000, 0xe496e004, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x0006000f, @@ -4805,31 +5012,31 @@ static const unsigned int build_actionlist[5200] = { 0xe508a000, 0x000d8180, 0xe1a00008, -0xe5084000, +0xe5089000, 0x000d8180, -0xe04bb004, +0xe04bb009, 0xe58d6008, -0xe04aa004, +0xe04aa009, 0xeb000000, 0x00030000, -0xe5184000, +0xe5189000, 0x000d8180, -0xe084a00a, -0xe084b00b, -0xe2442008, +0xe089a00a, +0xe089b00b, +0xe2492008, 0xea000000, 0x00050010, 0x00000000, 0xe59d0004, -0xe5146004, -0xe084a00a, +0xe5196004, +0xe089a00a, 0xe080b18b, 0xea000000, 0x000500a2, 0x00000000, -0xe5146004, +0xe5196004, 0xe1a0b18b, -0xe084a00a, +0xe089a00a, 0x000600a2, 0xe58db004, 0x0006000b, @@ -4842,26 +5049,26 @@ static const unsigned int build_actionlist[5200] = { 0x00060017, 0xe516e004, 0xe25b3008, -0xe2442008, +0xe2492008, 0x0a000000, 0x00050003, 0x0006000c, 0xe0ca00d8, -0xe2844008, +0xe2899008, 0xe2533008, -0xe14401f0, +0xe14901f0, 0x1a000000, 0x0005000c, 0x0006000d, -0xe009a2ae, +0xe004a2ae, 0xe042300a, -0xe009caae, +0xe004caae, 0xe5130008, 0x0006000f, 0xe15c000b, 0x8a000000, 0x00050006, -0xe1a04003, +0xe1a09003, 0xe5101000, 0x000d8180, 0xe5d6c000, @@ -4869,30 +5076,30 @@ static const unsigned int build_actionlist[5200] = { 0xe5115000, 0x000d8180, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x00060010, 0xe3e01000, 0x000a0000, -0xe2844008, +0xe2899008, 0xe28bb008, -0xe504100c, +0xe509100c, 0xea000000, 0x0005000f, 0x000600a4, -0xe084a00a, +0xe089a00a, 0x000600a3, 0xe3110000, 0x000a0000, 0x1a000000, 0x00050018, -0xe0444001, -0xe5146004, +0xe0499001, +0xe5196004, 0xea000000, 0x0005000b, 0x00000000, -0xe5146004, +0xe5196004, 0xe1a0b18b, 0xe58db004, 0xe2160000, @@ -4903,16 +5110,16 @@ static const unsigned int build_actionlist[5200] = { 0x1a000000, 0x000500a4, 0x00000000, -0xe18400da, +0xe18900da, 0x00000000, -0xe2443008, -0xe009a2ae, +0xe2493008, +0xe004a2ae, 0x00000000, 0xe1c300f0, 0x00000000, -0xe043400a, -0xe009caae, -0xe5140008, +0xe043900a, +0xe004caae, +0xe5190008, 0x0006000f, 0xe15c000b, 0x8a000000, @@ -4924,7 +5131,7 @@ static const unsigned int build_actionlist[5200] = { 0xe5115000, 0x000d8180, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x00060010, @@ -4938,7 +5145,7 @@ static const unsigned int build_actionlist[5200] = { 0x00000000, 0xe7f001f0, 0x00000000, -0xe1aa00d4, +0xe1aa00d9, 0xe086b10b, 0x00000000, 0xe1ca20d8, @@ -4993,7 +5200,7 @@ static const unsigned int build_actionlist[5200] = { 0xe1ca01f8, 0x0006000d, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x0006000e, @@ -5058,7 +5265,7 @@ static const unsigned int build_actionlist[5200] = { 0x00000000, 0xe7f001f0, 0x00000000, -0xe1aa00d4, +0xe1aa00d9, 0x00000000, 0xe7f001f0, 0x00000000, @@ -5071,7 +5278,7 @@ static const unsigned int build_actionlist[5200] = { 0xe5d6c000, 0xe496e004, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x00000000, @@ -5080,7 +5287,7 @@ static const unsigned int build_actionlist[5200] = { 0xe5d6c000, 0xe496e004, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x00000000, @@ -5091,7 +5298,7 @@ static const unsigned int build_actionlist[5200] = { 0xe5d6c000, 0xe496e004, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x00000000, @@ -5118,12 +5325,12 @@ static const unsigned int build_actionlist[5200] = { 0xe7f001f0, 0x00000000, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x00000000, 0x0006000d, -0xe18420fb, +0xe18920fb, 0xe28bb008, 0xea000000, 0x0005000c, @@ -5132,7 +5339,7 @@ static const unsigned int build_actionlist[5200] = { 0x00000000, 0xe5180000, 0x000d8180, -0xe084300b, +0xe089300b, 0xe08aa00b, 0xe5832000, 0xe28b1000, @@ -5145,10 +5352,10 @@ static const unsigned int build_actionlist[5200] = { 0x00050020, 0xe556c000, 0x000d8180, -0xe1a0a004, +0xe1a0a009, 0xe1a0b003, 0xe35c0000, -0xe2834008, +0xe2839008, 0x0a000000, 0x00050003, 0xe3e02000, @@ -5167,7 +5374,7 @@ static const unsigned int build_actionlist[5200] = { 0xe5d6c000, 0xe496e004, 0xe797c10c, -0xe009a2ae, +0xe004a2ae, 0xe1a0b82e, 0xe12fff1c, 0x00000000, @@ -5180,8 +5387,8 @@ static const unsigned int build_actionlist[5200] = { 0xe08a100b, 0xe5180000, 0x000d8180, -0xe084b00b, -0xe5084000, +0xe089b00b, +0xe5089000, 0x000d8180, 0xe1510000, 0xe508b000, @@ -5198,7 +5405,7 @@ static const unsigned int build_actionlist[5200] = { 0xe5072000, 0x000d8180, 0xe12fff33, -0xe5184000, +0xe5189000, 0x000d8180, 0xe3e02000, 0x000a0000, @@ -5207,7 +5414,7 @@ static const unsigned int build_actionlist[5200] = { 0xe1a0b180, 0xe5072000, 0x000d8180, -0xe5146004, +0xe5196004, 0xe041a00b, 0xea000000, 0x00050016, @@ -5604,122 +5811,341 @@ static void build_subroutines(BuildCtx *ctx) 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)); 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); dasm_put(Dst, 306, Dt7(->field_pc), ~LJ_TNIL, PC2PROTO(k), Dt1(->base), -DISPATCH_GL(tmptv), ~LJ_TTAB, ~LJ_TSTR, ~LJ_TISNUM); - dasm_put(Dst, 377, Dt1(->base), FRAME_CONT, Dt1(->top), -DISPATCH_GL(tmptv), ~LJ_TTAB, ~LJ_TSTR, ~LJ_TISNUM, Dt1(->base)); - dasm_put(Dst, 444, FRAME_CONT, Dt1(->top), Dt1(->base), ~LJ_TTRUE, -LJ_TFALSE); - dasm_put(Dst, 520, Dt1(->base)); -#if LJ_HASFFI - dasm_put(Dst, 531, Dt1(->base)); -#endif - dasm_put(Dst, 542, Dt1(->base), FRAME_CONT, Dt1(->base), Dt1(->base), Dt7(->field_pc)); - dasm_put(Dst, 615, Dt1(->base), Dt1(->base)); -#if LJ_HASJIT - dasm_put(Dst, 644); -#endif - dasm_put(Dst, 646); -#if LJ_HASJIT - dasm_put(Dst, 648, BC_JFORI); -#endif - dasm_put(Dst, 651); -#if LJ_HASJIT - dasm_put(Dst, 654, BC_JFORI); -#endif - dasm_put(Dst, 657, BC_FORI, -LJ_TTRUE, -LJ_TISNUM, ~LJ_TISNUM, (int)(offsetof(GCfuncC, upvalue)>>3)-1, -LJ_TTAB, -LJ_TUDATA, Dt6(->metatable)); - dasm_put(Dst, 714, ~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); - dasm_put(Dst, 762, ~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); - dasm_put(Dst, 814, -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); - dasm_put(Dst, 869, ~LJ_TNIL, -LJ_TTAB, Dt1(->base), Dt1(->top), ~LJ_TNIL, (2+1)*8, -LJ_TTAB); -#ifdef LUAJIT_ENABLE_LUA52COMPAT - dasm_put(Dst, 917, Dt6(->metatable)); -#endif - dasm_put(Dst, 920, Dt8(->upvalue[0])); -#ifdef LUAJIT_ENABLE_LUA52COMPAT - dasm_put(Dst, 924); -#endif - dasm_put(Dst, 928, ~LJ_TNIL, (3+1)*8, -LJ_TTAB, -LJ_TISNUM, Dt6(->asize), Dt6(->array), (0+1)*8, -LJ_TNIL, (2+1)*8, Dt6(->hmask)); - dasm_put(Dst, 987, -LJ_TTAB); -#ifdef LUAJIT_ENABLE_LUA52COMPAT - dasm_put(Dst, 996, Dt6(->metatable)); -#endif - dasm_put(Dst, 999, Dt8(->upvalue[0])); -#ifdef LUAJIT_ENABLE_LUA52COMPAT - dasm_put(Dst, 1003); -#endif - dasm_put(Dst, 1007, ~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); - dasm_put(Dst, 1066, 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); - dasm_put(Dst, 1125, Dt1(->base), Dt1(->maxstack), Dt1(->top), ~LJ_TTRUE, FRAME_TYPE, ~LJ_TFALSE, (2+1)*8, Dt1(->top)); - dasm_put(Dst, 1185, 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); - dasm_put(Dst, 1241, Dt1(->base), Dt1(->maxstack), Dt1(->top), FRAME_TYPE, Dt1(->cframe), Dt1(->base), CFRAME_RESUME, Dt1(->top)); - dasm_put(Dst, 1300, LUA_YIELD, Dt1(->cframe), Dt1(->status), -LJ_TISNUM, ~LJ_TISNUM, ~LJ_TISNUM); - dasm_put(Dst, 1366, -LJ_TISNUM, ~LJ_TISNUM, ~LJ_TISNUM); - dasm_put(Dst, 1430, -LJ_TISNUM, (1+1)*8, FRAME_TYPE, ~LJ_TNIL); - dasm_put(Dst, 1494, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM); - dasm_put(Dst, 1543, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM); - dasm_put(Dst, 1593, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM); - dasm_put(Dst, 1642, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM); - dasm_put(Dst, 1692, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, Dt8(->upvalue[0]), -LJ_TISNUM, -LJ_TISNUM); - dasm_put(Dst, 1741, -LJ_TISNUM, ~LJ_TISNUM, (2+1)*8, -LJ_TISNUM, (2+1)*8, -LJ_TISNUM); - dasm_put(Dst, 1797, -LJ_TISNUM, -LJ_TISNUM); - dasm_put(Dst, 1850, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM); - dasm_put(Dst, 1903, -LJ_TSTR, Dt5(->len), ~LJ_TISNUM, -LJ_TSTR, Dt5(->len), Dt5([1]), ~LJ_TISNUM, (0+1)*8, (1+1)*8, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); - dasm_put(Dst, 1955, -LJ_TISNUM, Dt1(->base), Dt1(->base), ~LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), -LJ_TISNUM, -LJ_TSTR, Dt5(->len), -LJ_TISNUM); - dasm_put(Dst, 2014, sizeof(GCstr)-1, -DISPATCH_GL(strempty), ~LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), -LJ_TSTR, -LJ_TISNUM, Dt5(->len), DISPATCH_GL(tmpbuf.sz), DISPATCH_GL(tmpbuf.buf), Dt5([1])); - dasm_put(Dst, 2078, 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)); - dasm_put(Dst, 2133, -LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), DISPATCH_GL(tmpbuf.buf), sizeof(GCstr), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), -LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), DISPATCH_GL(tmpbuf.buf), sizeof(GCstr)); - dasm_put(Dst, 2191, -LJ_TTAB, ~LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM); - dasm_put(Dst, 2264, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM); - dasm_put(Dst, 2325, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM); - dasm_put(Dst, 2380, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM); - dasm_put(Dst, 2437, -LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM, Dt1(->maxstack), Dt1(->top), Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->base)); - dasm_put(Dst, 2495, Dt1(->top), Dt7(->field_pc), FRAME_TYPE, FRAME_TYPEP, LUA_MINSTACK, Dt1(->base), Dt1(->base), Dt1(->top), Dt1(->base)); -#if LJ_HASJIT - dasm_put(Dst, 2554); -#endif - dasm_put(Dst, 2556, 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)); - dasm_put(Dst, 2602, GG_DISP2STATIC); -#if LJ_HASJIT - dasm_put(Dst, 2618); -#endif - dasm_put(Dst, 2620); -#if LJ_HASJIT - dasm_put(Dst, 2623); -#endif - dasm_put(Dst, 2626); -#if LJ_HASJIT - dasm_put(Dst, 2628); -#endif - dasm_put(Dst, 2631, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); -#if LJ_HASJIT - dasm_put(Dst, 2653); -#endif - dasm_put(Dst, 2655); -#if LJ_HASJIT - dasm_put(Dst, 2657); -#endif - dasm_put(Dst, 2659); -#if LJ_HASJIT - dasm_put(Dst, 2664); -#else - dasm_put(Dst, 2667); -#endif - dasm_put(Dst, 2669); - { - int i; - for (i = 31; i >= 0; i--) { - dasm_put(Dst, 2705, i, i); - } + dasm_put(Dst, 377, Dt1(->base)); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 387, Dt1(->base)); } - dasm_put(Dst, 2710); -#if LJ_HASJIT - dasm_put(Dst, 2719); + dasm_put(Dst, 390, FRAME_CONT, Dt1(->top), -DISPATCH_GL(tmptv), ~LJ_TTAB, ~LJ_TSTR, ~LJ_TISNUM, Dt1(->base)); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 452, Dt1(->base)); + } + dasm_put(Dst, 455, FRAME_CONT, Dt1(->top), Dt1(->base)); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 491, Dt1(->base)); + } + dasm_put(Dst, 494, ~LJ_TTRUE, -LJ_TFALSE, Dt1(->base)); +#if LJ_HASFFI + dasm_put(Dst, 541, Dt1(->base)); #endif - dasm_put(Dst, 2721); + dasm_put(Dst, 552, Dt1(->base)); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 589, Dt1(->base)); + } + dasm_put(Dst, 592, FRAME_CONT, Dt1(->base)); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 613, Dt1(->base)); + } + dasm_put(Dst, 616, Dt1(->base)); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 626); + } + dasm_put(Dst, 628); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 631); + } + dasm_put(Dst, 633, Dt7(->field_pc), Dt1(->base)); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 654, Dt1(->base)); + } + dasm_put(Dst, 657, Dt1(->base)); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 671, Dt1(->base)); + } +#if LJ_HASJIT + dasm_put(Dst, 674); +#endif + dasm_put(Dst, 676); +#if LJ_HASJIT + dasm_put(Dst, 678, BC_JFORI); +#endif + dasm_put(Dst, 681); +#if LJ_HASJIT + dasm_put(Dst, 684, BC_JFORI); +#endif + dasm_put(Dst, 687, BC_FORI, -LJ_TTRUE, -LJ_TISNUM, ~LJ_TISNUM, (int)(offsetof(GCfuncC, upvalue)>>3)-1, -LJ_TTAB, -LJ_TUDATA, Dt6(->metatable)); + 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); + 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); + dasm_put(Dst, 844); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 849); + } + dasm_put(Dst, 851); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 854); + } + 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); + dasm_put(Dst, 908, ~LJ_TNIL, -LJ_TTAB, Dt1(->base), Dt1(->top)); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 931, Dt1(->base)); + } + dasm_put(Dst, 934, ~LJ_TNIL, (2+1)*8, -LJ_TTAB); +#ifdef LUAJIT_ENABLE_LUA52COMPAT + dasm_put(Dst, 957, Dt6(->metatable)); +#endif + dasm_put(Dst, 960, Dt8(->upvalue[0])); +#ifdef LUAJIT_ENABLE_LUA52COMPAT + dasm_put(Dst, 964); +#endif + 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)); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1018); + } + dasm_put(Dst, 1020); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1023); + } + dasm_put(Dst, 1025, -LJ_TTAB); +#ifdef LUAJIT_ENABLE_LUA52COMPAT + dasm_put(Dst, 1041, Dt6(->metatable)); +#endif + dasm_put(Dst, 1044, Dt8(->upvalue[0])); +#ifdef LUAJIT_ENABLE_LUA52COMPAT + dasm_put(Dst, 1048); +#endif + 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); + 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); + dasm_put(Dst, 1170, Dt1(->base), Dt1(->maxstack), Dt1(->top), ~LJ_TTRUE, FRAME_TYPE, ~LJ_TFALSE, (2+1)*8, Dt1(->top)); + 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); + dasm_put(Dst, 1286, Dt1(->base), Dt1(->maxstack), Dt1(->top), FRAME_TYPE, Dt1(->cframe), Dt1(->base), CFRAME_RESUME, Dt1(->top)); + dasm_put(Dst, 1345, LUA_YIELD, Dt1(->cframe), Dt1(->status), -LJ_TISNUM, ~LJ_TISNUM, ~LJ_TISNUM); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1411); + } + dasm_put(Dst, 1413); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1416); + } + dasm_put(Dst, 1418, -LJ_TISNUM, ~LJ_TISNUM, ~LJ_TISNUM); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1478); + } + dasm_put(Dst, 1480); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1483); + } + dasm_put(Dst, 1485, -LJ_TISNUM, (1+1)*8, FRAME_TYPE, ~LJ_TNIL); + dasm_put(Dst, 1549, -LJ_TISNUM); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1554); + } + dasm_put(Dst, 1556); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1559); + } + dasm_put(Dst, 1561, -LJ_TISNUM); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1573); + } + dasm_put(Dst, 1575); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1578); + } + dasm_put(Dst, 1580, -LJ_TISNUM); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1592); + } + dasm_put(Dst, 1594); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1597); + } + dasm_put(Dst, 1599, -LJ_TISNUM); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1611); + } + dasm_put(Dst, 1613); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1616); + } + dasm_put(Dst, 1618, -LJ_TISNUM); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1630); + } + dasm_put(Dst, 1632); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1635); + } + dasm_put(Dst, 1637, -LJ_TISNUM); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1649); + } + dasm_put(Dst, 1651); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1654); + } + dasm_put(Dst, 1656, -LJ_TISNUM); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1668); + } + dasm_put(Dst, 1670); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1673); + } + dasm_put(Dst, 1675, -LJ_TISNUM); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1687); + } + dasm_put(Dst, 1689); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1692); + } + dasm_put(Dst, 1694, -LJ_TISNUM); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1706); + } + dasm_put(Dst, 1708); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1711); + } + dasm_put(Dst, 1713, -LJ_TISNUM); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1725); + } + dasm_put(Dst, 1727); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1730); + } + dasm_put(Dst, 1732, -LJ_TISNUM); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1744); + } + dasm_put(Dst, 1746); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1749); + } + dasm_put(Dst, 1751, -LJ_TISNUM); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1763); + } + dasm_put(Dst, 1765); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1768); + } + dasm_put(Dst, 1770, -LJ_TISNUM); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1782); + } + dasm_put(Dst, 1784); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1787); + } + dasm_put(Dst, 1789, -LJ_TISNUM, -LJ_TISNUM); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1804); + } + dasm_put(Dst, 1806); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1809); + } + dasm_put(Dst, 1811, -LJ_TISNUM, -LJ_TISNUM); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1826); + } + dasm_put(Dst, 1828); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1831); + } + dasm_put(Dst, 1833, -LJ_TISNUM, -LJ_TISNUM); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1848); + } + dasm_put(Dst, 1850); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1853); + } + dasm_put(Dst, 1855, -LJ_TISNUM, Dt8(->upvalue[0]), -LJ_TISNUM, -LJ_TISNUM); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1888); + } + dasm_put(Dst, 1890); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1893); + } + dasm_put(Dst, 1895, -LJ_TISNUM); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1908); + } + dasm_put(Dst, 1910); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1913); + } + dasm_put(Dst, 1915, ~LJ_TISNUM, (2+1)*8, -LJ_TISNUM); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1937); + } + dasm_put(Dst, 1939); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 1942); + } + dasm_put(Dst, 1944, (2+1)*8, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 1995, -LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 2049, -LJ_TISNUM, -LJ_TSTR, Dt5(->len), ~LJ_TISNUM, -LJ_TSTR, Dt5(->len), Dt5([1])); + 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)); + 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)); + 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)); + 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)); + dasm_put(Dst, 2337, -LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), DISPATCH_GL(tmpbuf.buf), sizeof(GCstr), -LJ_TTAB); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 2375); + } + dasm_put(Dst, 2377); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 2380); + } + dasm_put(Dst, 2382, ~LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 2453, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM); + dasm_put(Dst, 2513, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 2569, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM); + 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); + dasm_put(Dst, 2689, LUA_MINSTACK, Dt1(->base), Dt1(->base), Dt1(->top), Dt1(->base)); #if LJ_HASJIT dasm_put(Dst, 2723); #endif - dasm_put(Dst, 2725); + dasm_put(Dst, 2725, 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)); + dasm_put(Dst, 2771, GG_DISP2STATIC); +#if LJ_HASJIT + dasm_put(Dst, 2787); +#endif + dasm_put(Dst, 2789); +#if LJ_HASJIT + dasm_put(Dst, 2792); +#endif + dasm_put(Dst, 2795); +#if LJ_HASJIT + dasm_put(Dst, 2797); +#endif + dasm_put(Dst, 2800, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); +#if LJ_HASJIT + dasm_put(Dst, 2822); +#endif + dasm_put(Dst, 2824); +#if LJ_HASJIT + dasm_put(Dst, 2826); +#endif + dasm_put(Dst, 2828); +#if LJ_HASJIT + dasm_put(Dst, 2833); +#else + dasm_put(Dst, 2836); +#endif + dasm_put(Dst, 2838); + { + int i; + for (i = 31; i >= 0; i--) { + dasm_put(Dst, 2874, i, i); + } + } + dasm_put(Dst, 2879); +#if LJ_HASJIT + dasm_put(Dst, 2888); +#endif + dasm_put(Dst, 2890); +#if LJ_HASJIT + dasm_put(Dst, 2892); +#endif + dasm_put(Dst, 2894); #if LJ_HASFFI #define DtE(_V) (int)(ptrdiff_t)&(((CCallState *)0)_V) - dasm_put(Dst, 2749, 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])); + dasm_put(Dst, 2918, 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])); #endif } @@ -5727,7 +6153,7 @@ static void build_subroutines(BuildCtx *ctx) static void build_ins(BuildCtx *ctx, BCOp op, int defop) { int vk = 0; - dasm_put(Dst, 2787, defop); + dasm_put(Dst, 2956, defop); switch (op) { @@ -5736,542 +6162,576 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) /* Remember: all ops branch for a true comparison, fall through otherwise. */ case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: - dasm_put(Dst, 2789, -LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 2958, -LJ_TISNUM, -LJ_TISNUM); if (op == BC_ISLT) { - dasm_put(Dst, 2805); + dasm_put(Dst, 2974); } else if (op == BC_ISGE) { - dasm_put(Dst, 2807); + dasm_put(Dst, 2976); } else if (op == BC_ISLE) { - dasm_put(Dst, 2809); + dasm_put(Dst, 2978); } else { - dasm_put(Dst, 2811); + dasm_put(Dst, 2980); } - dasm_put(Dst, 2813, -LJ_TISNUM); + dasm_put(Dst, 2982, -LJ_TISNUM); if (op == BC_ISLT) { - dasm_put(Dst, 2849); + dasm_put(Dst, 3018); } else if (op == BC_ISGE) { - dasm_put(Dst, 2851); + dasm_put(Dst, 3020); } else if (op == BC_ISLE) { - dasm_put(Dst, 2853); + dasm_put(Dst, 3022); } else { - dasm_put(Dst, 2855); + dasm_put(Dst, 3024); } - dasm_put(Dst, 2857); + dasm_put(Dst, 3026); break; case BC_ISEQV: case BC_ISNEV: vk = op == BC_ISEQV; - dasm_put(Dst, 2860, -LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 3029, -LJ_TISNUM, -LJ_TISNUM); if (vk) { - dasm_put(Dst, 2871); + dasm_put(Dst, 3040); } else { - dasm_put(Dst, 2874); + dasm_put(Dst, 3043); } if (LJ_HASFFI) { - dasm_put(Dst, 2877, -LJ_TCDATA, -LJ_TCDATA); + dasm_put(Dst, 3046, -LJ_TCDATA, -LJ_TCDATA); } - dasm_put(Dst, 2884, -LJ_TISPRI); + dasm_put(Dst, 3053, -LJ_TISPRI); if (vk) { - dasm_put(Dst, 2893, -LJ_TISTABUD); + dasm_put(Dst, 3062, -LJ_TISTABUD); } else { - dasm_put(Dst, 2910, -LJ_TISTABUD); + dasm_put(Dst, 3079, -LJ_TISTABUD); } - dasm_put(Dst, 2917, Dt6(->metatable)); + dasm_put(Dst, 3086, Dt6(->metatable)); if (vk) { - dasm_put(Dst, 2921); + dasm_put(Dst, 3090); } else { - dasm_put(Dst, 2924); + dasm_put(Dst, 3093); } - dasm_put(Dst, 2927, Dt6(->nomm), 1-vk, 1<nomm), 1-vk, 1<len), ~LJ_TISNUM, -LJ_TTAB); + dasm_put(Dst, 3327, -LJ_TSTR, Dt5(->len), ~LJ_TISNUM, -LJ_TTAB); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 3351); + } + dasm_put(Dst, 3353); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 3356); + } + dasm_put(Dst, 3358); break; /* -- Binary ops -------------------------------------------------------- */ case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: - dasm_put(Dst, 3186); + dasm_put(Dst, 3361); vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); switch (vk) { case 0: - dasm_put(Dst, 3189); + dasm_put(Dst, 3364); break; case 1: - dasm_put(Dst, 3192); + dasm_put(Dst, 3367); break; default: - dasm_put(Dst, 3195); + dasm_put(Dst, 3370); break; } - dasm_put(Dst, 3198); + dasm_put(Dst, 3373); if (vk == 1) { - dasm_put(Dst, 3200, -LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 3375, -LJ_TISNUM, -LJ_TISNUM); } else { - dasm_put(Dst, 3205, -LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 3380, -LJ_TISNUM, -LJ_TISNUM); } - dasm_put(Dst, 3210); + dasm_put(Dst, 3385); switch (vk) { case 0: - dasm_put(Dst, 3214); + dasm_put(Dst, 3389); break; case 1: - dasm_put(Dst, 3217); + dasm_put(Dst, 3392); break; default: - dasm_put(Dst, 3220); + dasm_put(Dst, 3395); break; } - dasm_put(Dst, 3223); + dasm_put(Dst, 3398); switch (vk) { case 0: if (vk == 1) { - dasm_put(Dst, 3232, -LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 3407, -LJ_TISNUM, -LJ_TISNUM); } else { - dasm_put(Dst, 3237, -LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 3412, -LJ_TISNUM, -LJ_TISNUM); } - dasm_put(Dst, 3242); + dasm_put(Dst, 3417); break; case 1: if (vk == 1) { - dasm_put(Dst, 3245, -LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 3420, -LJ_TISNUM, -LJ_TISNUM); } else { - dasm_put(Dst, 3250, -LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 3425, -LJ_TISNUM, -LJ_TISNUM); } - dasm_put(Dst, 3255); + dasm_put(Dst, 3430); break; default: if (vk == 1) { - dasm_put(Dst, 3258, -LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 3433, -LJ_TISNUM, -LJ_TISNUM); } else { - dasm_put(Dst, 3263, -LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 3438, -LJ_TISNUM, -LJ_TISNUM); } - dasm_put(Dst, 3268); + dasm_put(Dst, 3443); break; } - dasm_put(Dst, 3271); + dasm_put(Dst, 3446); break; case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: - dasm_put(Dst, 3277); + dasm_put(Dst, 3452); vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); switch (vk) { case 0: - dasm_put(Dst, 3280); + dasm_put(Dst, 3455); break; case 1: - dasm_put(Dst, 3283); + dasm_put(Dst, 3458); break; default: - dasm_put(Dst, 3286); + dasm_put(Dst, 3461); break; } - dasm_put(Dst, 3289); + dasm_put(Dst, 3464); if (vk == 1) { - dasm_put(Dst, 3291, -LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 3466, -LJ_TISNUM, -LJ_TISNUM); } else { - dasm_put(Dst, 3296, -LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 3471, -LJ_TISNUM, -LJ_TISNUM); } - dasm_put(Dst, 3301); + dasm_put(Dst, 3476); switch (vk) { case 0: - dasm_put(Dst, 3305); + dasm_put(Dst, 3480); break; case 1: - dasm_put(Dst, 3308); + dasm_put(Dst, 3483); break; default: - dasm_put(Dst, 3311); + dasm_put(Dst, 3486); break; } - dasm_put(Dst, 3314); + dasm_put(Dst, 3489); switch (vk) { case 0: if (vk == 1) { - dasm_put(Dst, 3323, -LJ_TISNUM, -LJ_TISNUM); - } else { - dasm_put(Dst, 3328, -LJ_TISNUM, -LJ_TISNUM); - } - dasm_put(Dst, 3333); - break; - case 1: - if (vk == 1) { - dasm_put(Dst, 3336, -LJ_TISNUM, -LJ_TISNUM); - } else { - dasm_put(Dst, 3341, -LJ_TISNUM, -LJ_TISNUM); - } - dasm_put(Dst, 3346); - break; - default: - if (vk == 1) { - dasm_put(Dst, 3349, -LJ_TISNUM, -LJ_TISNUM); - } else { - dasm_put(Dst, 3354, -LJ_TISNUM, -LJ_TISNUM); - } - dasm_put(Dst, 3359); - break; - } - dasm_put(Dst, 3362); - break; - case BC_MULVN: case BC_MULNV: case BC_MULVV: - dasm_put(Dst, 3368); - vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); - switch (vk) { - case 0: - dasm_put(Dst, 3371); - break; - case 1: - dasm_put(Dst, 3374); - break; - default: - dasm_put(Dst, 3377); - break; - } - dasm_put(Dst, 3380); - if (vk == 1) { - dasm_put(Dst, 3382, -LJ_TISNUM, -LJ_TISNUM); - } else { - dasm_put(Dst, 3387, -LJ_TISNUM, -LJ_TISNUM); - } - dasm_put(Dst, 3392); - switch (vk) { - case 0: - dasm_put(Dst, 3397); - break; - case 1: - dasm_put(Dst, 3400); - break; - default: - dasm_put(Dst, 3403); - break; - } - dasm_put(Dst, 3406); - switch (vk) { - case 0: - if (vk == 1) { - dasm_put(Dst, 3415, -LJ_TISNUM, -LJ_TISNUM); - } else { - dasm_put(Dst, 3420, -LJ_TISNUM, -LJ_TISNUM); - } - dasm_put(Dst, 3425); - break; - case 1: - if (vk == 1) { - dasm_put(Dst, 3428, -LJ_TISNUM, -LJ_TISNUM); - } else { - dasm_put(Dst, 3433, -LJ_TISNUM, -LJ_TISNUM); - } - dasm_put(Dst, 3438); - break; - default: - if (vk == 1) { - dasm_put(Dst, 3441, -LJ_TISNUM, -LJ_TISNUM); - } else { - dasm_put(Dst, 3446, -LJ_TISNUM, -LJ_TISNUM); - } - dasm_put(Dst, 3451); - break; - } - dasm_put(Dst, 3454); - break; - case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: - dasm_put(Dst, 3460); - vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); - switch (vk) { - case 0: - dasm_put(Dst, 3463); - break; - case 1: - dasm_put(Dst, 3466); - break; - default: - dasm_put(Dst, 3469); - break; - } - switch (vk) { - case 0: - if (vk == 1) { - dasm_put(Dst, 3472, -LJ_TISNUM, -LJ_TISNUM); - } else { - dasm_put(Dst, 3477, -LJ_TISNUM, -LJ_TISNUM); - } - dasm_put(Dst, 3482); - break; - case 1: - if (vk == 1) { - dasm_put(Dst, 3485, -LJ_TISNUM, -LJ_TISNUM); - } else { - dasm_put(Dst, 3490, -LJ_TISNUM, -LJ_TISNUM); - } - dasm_put(Dst, 3495); - break; - default: - if (vk == 1) { dasm_put(Dst, 3498, -LJ_TISNUM, -LJ_TISNUM); } else { dasm_put(Dst, 3503, -LJ_TISNUM, -LJ_TISNUM); } dasm_put(Dst, 3508); break; + case 1: + if (vk == 1) { + dasm_put(Dst, 3511, -LJ_TISNUM, -LJ_TISNUM); + } else { + dasm_put(Dst, 3516, -LJ_TISNUM, -LJ_TISNUM); } - dasm_put(Dst, 3511); + dasm_put(Dst, 3521); + break; + default: + if (vk == 1) { + dasm_put(Dst, 3524, -LJ_TISNUM, -LJ_TISNUM); + } else { + dasm_put(Dst, 3529, -LJ_TISNUM, -LJ_TISNUM); + } + dasm_put(Dst, 3534); + break; + } + dasm_put(Dst, 3537); + break; + case BC_MULVN: case BC_MULNV: case BC_MULVV: + dasm_put(Dst, 3543); + vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); + switch (vk) { + case 0: + dasm_put(Dst, 3546); + break; + case 1: + dasm_put(Dst, 3549); + break; + default: + dasm_put(Dst, 3552); + break; + } + dasm_put(Dst, 3555); + if (vk == 1) { + dasm_put(Dst, 3557, -LJ_TISNUM, -LJ_TISNUM); + } else { + dasm_put(Dst, 3562, -LJ_TISNUM, -LJ_TISNUM); + } + dasm_put(Dst, 3567); + switch (vk) { + case 0: + dasm_put(Dst, 3572); + break; + case 1: + dasm_put(Dst, 3575); + break; + default: + dasm_put(Dst, 3578); + break; + } + dasm_put(Dst, 3581); + switch (vk) { + case 0: + if (vk == 1) { + dasm_put(Dst, 3590, -LJ_TISNUM, -LJ_TISNUM); + } else { + dasm_put(Dst, 3595, -LJ_TISNUM, -LJ_TISNUM); + } + dasm_put(Dst, 3600); + break; + case 1: + if (vk == 1) { + dasm_put(Dst, 3603, -LJ_TISNUM, -LJ_TISNUM); + } else { + dasm_put(Dst, 3608, -LJ_TISNUM, -LJ_TISNUM); + } + dasm_put(Dst, 3613); + break; + default: + if (vk == 1) { + dasm_put(Dst, 3616, -LJ_TISNUM, -LJ_TISNUM); + } else { + dasm_put(Dst, 3621, -LJ_TISNUM, -LJ_TISNUM); + } + dasm_put(Dst, 3626); + break; + } + dasm_put(Dst, 3629); + break; + case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: + dasm_put(Dst, 3635); + vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); + switch (vk) { + case 0: + dasm_put(Dst, 3638); + break; + case 1: + dasm_put(Dst, 3641); + break; + default: + dasm_put(Dst, 3644); + break; + } + switch (vk) { + case 0: + if (vk == 1) { + dasm_put(Dst, 3647, -LJ_TISNUM, -LJ_TISNUM); + } else { + dasm_put(Dst, 3652, -LJ_TISNUM, -LJ_TISNUM); + } + dasm_put(Dst, 3657); + break; + case 1: + if (vk == 1) { + dasm_put(Dst, 3660, -LJ_TISNUM, -LJ_TISNUM); + } else { + dasm_put(Dst, 3665, -LJ_TISNUM, -LJ_TISNUM); + } + dasm_put(Dst, 3670); + break; + default: + if (vk == 1) { + dasm_put(Dst, 3673, -LJ_TISNUM, -LJ_TISNUM); + } else { + dasm_put(Dst, 3678, -LJ_TISNUM, -LJ_TISNUM); + } + dasm_put(Dst, 3683); + break; + } + dasm_put(Dst, 3686); break; case BC_MODVN: case BC_MODNV: case BC_MODVV: - dasm_put(Dst, 3521); + dasm_put(Dst, 3696); vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); switch (vk) { case 0: - dasm_put(Dst, 3524); + dasm_put(Dst, 3699); break; case 1: - dasm_put(Dst, 3527); + dasm_put(Dst, 3702); break; default: - dasm_put(Dst, 3530); + dasm_put(Dst, 3705); break; } if (vk == 1) { - dasm_put(Dst, 3533, -LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 3708, -LJ_TISNUM, -LJ_TISNUM); } else { - dasm_put(Dst, 3538, -LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 3713, -LJ_TISNUM, -LJ_TISNUM); } - dasm_put(Dst, 3543); + dasm_put(Dst, 3718); switch (vk) { case 0: - dasm_put(Dst, 3547); + dasm_put(Dst, 3722); break; case 1: - dasm_put(Dst, 3550); + dasm_put(Dst, 3725); break; default: - dasm_put(Dst, 3553); + dasm_put(Dst, 3728); break; } - dasm_put(Dst, 3556, ~LJ_TISNUM); + dasm_put(Dst, 3731, ~LJ_TISNUM); switch (vk) { case 0: if (vk == 1) { - dasm_put(Dst, 3570, -LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 3745, -LJ_TISNUM, -LJ_TISNUM); } else { - dasm_put(Dst, 3575, -LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 3750, -LJ_TISNUM, -LJ_TISNUM); } - dasm_put(Dst, 3580); + dasm_put(Dst, 3755); break; case 1: if (vk == 1) { - dasm_put(Dst, 3583, -LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 3758, -LJ_TISNUM, -LJ_TISNUM); } else { - dasm_put(Dst, 3588, -LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 3763, -LJ_TISNUM, -LJ_TISNUM); } - dasm_put(Dst, 3593); + dasm_put(Dst, 3768); break; default: if (vk == 1) { - dasm_put(Dst, 3596, -LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 3771, -LJ_TISNUM, -LJ_TISNUM); } else { - dasm_put(Dst, 3601, -LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 3776, -LJ_TISNUM, -LJ_TISNUM); } - dasm_put(Dst, 3606); + dasm_put(Dst, 3781); break; } - dasm_put(Dst, 3609); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 3784); + } + dasm_put(Dst, 3786); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 3789); + } + dasm_put(Dst, 3791); break; case BC_POW: - dasm_put(Dst, 3614); + dasm_put(Dst, 3794); vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); switch (vk) { case 0: - dasm_put(Dst, 3617); + dasm_put(Dst, 3797); break; case 1: - dasm_put(Dst, 3620); + dasm_put(Dst, 3800); break; default: - dasm_put(Dst, 3623); + dasm_put(Dst, 3803); break; } switch (vk) { case 0: if (vk == 1) { - dasm_put(Dst, 3626, -LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 3806, -LJ_TISNUM, -LJ_TISNUM); } else { - dasm_put(Dst, 3631, -LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 3811, -LJ_TISNUM, -LJ_TISNUM); } - dasm_put(Dst, 3636); + dasm_put(Dst, 3816); break; case 1: if (vk == 1) { - dasm_put(Dst, 3639, -LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 3819, -LJ_TISNUM, -LJ_TISNUM); } else { - dasm_put(Dst, 3644, -LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 3824, -LJ_TISNUM, -LJ_TISNUM); } - dasm_put(Dst, 3649); + dasm_put(Dst, 3829); break; default: if (vk == 1) { - dasm_put(Dst, 3652, -LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 3832, -LJ_TISNUM, -LJ_TISNUM); } else { - dasm_put(Dst, 3657, -LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 3837, -LJ_TISNUM, -LJ_TISNUM); } - dasm_put(Dst, 3662); + dasm_put(Dst, 3842); break; } - dasm_put(Dst, 3665); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 3845); + } + dasm_put(Dst, 3847); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 3850); + } + dasm_put(Dst, 3852); break; case BC_CAT: - dasm_put(Dst, 3675, Dt1(->base), Dt1(->base)); + dasm_put(Dst, 3860, Dt1(->base), Dt1(->base)); break; /* -- Constant ops ------------------------------------------------------ */ case BC_KSTR: - dasm_put(Dst, 3701, ~LJ_TSTR); + dasm_put(Dst, 3886, ~LJ_TSTR); break; case BC_KCDATA: #if LJ_HASFFI - dasm_put(Dst, 3713, ~LJ_TCDATA); + dasm_put(Dst, 3898, ~LJ_TCDATA); #endif break; case BC_KSHORT: - dasm_put(Dst, 3725, ~LJ_TISNUM); + dasm_put(Dst, 3910, ~LJ_TISNUM); break; case BC_KNUM: - dasm_put(Dst, 3736); + dasm_put(Dst, 3921); break; case BC_KPRI: - dasm_put(Dst, 3746); + dasm_put(Dst, 3931); break; case BC_KNIL: - dasm_put(Dst, 3756, ~LJ_TNIL); + dasm_put(Dst, 3941, ~LJ_TNIL); break; /* -- Upvalue and function ops ------------------------------------------ */ case BC_UGET: - dasm_put(Dst, 3775, offsetof(GCfuncL, uvptr), DtA(->v)); + dasm_put(Dst, 3960, offsetof(GCfuncL, uvptr), DtA(->v)); break; case BC_USETV: - dasm_put(Dst, 3791, 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); + dasm_put(Dst, 3976, 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); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 4016); + } else { + dasm_put(Dst, 4023); + } + dasm_put(Dst, 4026); break; case BC_USETS: - dasm_put(Dst, 3835, offsetof(GCfuncL, uvptr), ~LJ_TSTR, DtA(->marked), DtA(->v), DtA(->closed), LJ_GC_BLACK, Dt5(->marked), LJ_GC_WHITES, -GG_DISP2G); + dasm_put(Dst, 4029, offsetof(GCfuncL, uvptr), ~LJ_TSTR, DtA(->marked), DtA(->v), DtA(->closed), LJ_GC_BLACK, Dt5(->marked), LJ_GC_WHITES, -GG_DISP2G); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 4065); + } else { + dasm_put(Dst, 4072); + } + dasm_put(Dst, 4075); break; case BC_USETN: - dasm_put(Dst, 3875, offsetof(GCfuncL, uvptr), DtA(->v)); + dasm_put(Dst, 4078, offsetof(GCfuncL, uvptr), DtA(->v)); break; case BC_USETP: - dasm_put(Dst, 3892, offsetof(GCfuncL, uvptr), DtA(->v)); + dasm_put(Dst, 4095, offsetof(GCfuncL, uvptr), DtA(->v)); break; case BC_UCLO: - dasm_put(Dst, 3908, Dt1(->openupval), Dt1(->base), Dt1(->base)); + dasm_put(Dst, 4111, Dt1(->openupval), Dt1(->base), Dt1(->base)); break; case BC_FNEW: - dasm_put(Dst, 3931, Dt1(->base), Dt1(->base), ~LJ_TFUNC); + dasm_put(Dst, 4134, Dt1(->base), Dt1(->base), ~LJ_TFUNC); break; /* -- Table ops --------------------------------------------------------- */ @@ -6279,111 +6739,115 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) case BC_TNEW: case BC_TDUP: if (op == BC_TDUP) { - dasm_put(Dst, 3952); + dasm_put(Dst, 4155); } - dasm_put(Dst, 3954, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base)); + dasm_put(Dst, 4157, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base)); if (op == BC_TNEW) { - dasm_put(Dst, 3967); + dasm_put(Dst, 4170); } else { - dasm_put(Dst, 3976); + dasm_put(Dst, 4179); } - dasm_put(Dst, 3980, Dt1(->base), ~LJ_TTAB); + dasm_put(Dst, 4183, Dt1(->base), ~LJ_TTAB); break; case BC_GGET: case BC_GSET: - dasm_put(Dst, 3998, Dt7(->env)); + dasm_put(Dst, 4201, Dt7(->env)); if (op == BC_GGET) { - dasm_put(Dst, 4004); + dasm_put(Dst, 4207); } else { - dasm_put(Dst, 4007); + dasm_put(Dst, 4210); } break; case BC_TGETV: - dasm_put(Dst, 4010, -LJ_TTAB, -LJ_TISNUM, Dt6(->array), Dt6(->asize), -LJ_TNIL, Dt6(->metatable), Dt6(->nomm), 1<array), Dt6(->asize), -LJ_TNIL, Dt6(->metatable), Dt6(->nomm), 1<hmask), Dt5(->hash), Dt6(->node), DtB(->key), DtB(->val), DtB(->next), -LJ_TSTR, -LJ_TNIL, Dt6(->metatable), ~LJ_TNIL, Dt6(->nomm)); - dasm_put(Dst, 4127, 1<hmask), Dt5(->hash), Dt6(->node), DtB(->key), DtB(->val), DtB(->next), -LJ_TSTR, -LJ_TNIL, Dt6(->metatable), ~LJ_TNIL, Dt6(->nomm)); + dasm_put(Dst, 4330, 1<asize), Dt6(->array), -LJ_TNIL, Dt6(->metatable), Dt6(->nomm), 1<asize), Dt6(->array), -LJ_TNIL, Dt6(->metatable), Dt6(->nomm), 1<array), Dt6(->asize), -LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->nomm), 1<marked), Dt6(->gclist), -LJ_TSTR); + dasm_put(Dst, 4380, -LJ_TTAB, -LJ_TISNUM, Dt6(->array), Dt6(->asize), -LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->nomm), 1<marked), Dt6(->gclist), -LJ_TSTR); break; case BC_TSETS: - dasm_put(Dst, 4258, -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)); - dasm_put(Dst, 4316, Dt6(->metatable), Dt6(->nomm), 1<metatable), Dt1(->base), Dt6(->nomm), 1<base), DISPATCH_GL(gc.grayagain), LJ_GC_BLACK); - dasm_put(Dst, 4369, DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist)); + dasm_put(Dst, 4461, -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)); + dasm_put(Dst, 4519, Dt6(->metatable), Dt6(->nomm), 1<metatable), Dt1(->base), Dt6(->nomm), 1<base), DISPATCH_GL(gc.grayagain), LJ_GC_BLACK); + dasm_put(Dst, 4572, DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist)); break; case BC_TSETB: - dasm_put(Dst, 4378, -LJ_TTAB, Dt6(->asize), Dt6(->array), -LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->nomm), 1<marked), Dt6(->gclist)); + dasm_put(Dst, 4581, -LJ_TTAB, Dt6(->asize), Dt6(->array), -LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->nomm), 1<marked), Dt6(->gclist)); break; case BC_TSETM: - dasm_put(Dst, 4444, Dt6(->asize), Dt6(->array), Dt6(->marked), LJ_GC_BLACK, Dt1(->base), DISPATCH_GL(gc.grayagain), LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist)); + dasm_put(Dst, 4647, Dt6(->asize), Dt6(->array), Dt6(->marked), LJ_GC_BLACK, Dt1(->base)); + if (LJ_TARGET_OSX) { + dasm_put(Dst, 4692, Dt1(->base)); + } + dasm_put(Dst, 4695, DISPATCH_GL(gc.grayagain), LJ_GC_BLACK, DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist)); break; /* -- Calls and vararg handling ----------------------------------------- */ case BC_CALLM: - dasm_put(Dst, 4504); + dasm_put(Dst, 4711); break; case BC_CALL: - dasm_put(Dst, 4510, -LJ_TFUNC, Dt7(->field_pc)); + dasm_put(Dst, 4717, -LJ_TFUNC, Dt7(->field_pc)); break; case BC_CALLMT: - dasm_put(Dst, 4530); + dasm_put(Dst, 4737); break; case BC_CALLT: - dasm_put(Dst, 4535, -LJ_TFUNC, Dt7(->ffid), FRAME_TYPE, Dt7(->field_pc), Dt7(->field_pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP); - dasm_put(Dst, 4596, FRAME_TYPE); + dasm_put(Dst, 4742, -LJ_TFUNC, Dt7(->ffid), FRAME_TYPE, Dt7(->field_pc), Dt7(->field_pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP); + dasm_put(Dst, 4803, FRAME_TYPE); break; case BC_ITERC: - dasm_put(Dst, 4607, -LJ_TFUNC, Dt7(->field_pc)); + dasm_put(Dst, 4814, -LJ_TFUNC, Dt7(->field_pc)); break; case BC_ITERN: #if LJ_HASJIT #endif - dasm_put(Dst, 4631, Dt6(->asize), Dt6(->array), -LJ_TNIL, ~LJ_TISNUM, Dt6(->hmask), Dt6(->node), DtB(->val), -LJ_TNIL, DtB(->key)); + dasm_put(Dst, 4838, Dt6(->asize), Dt6(->array), -LJ_TNIL, ~LJ_TISNUM, Dt6(->hmask), Dt6(->node), DtB(->val), -LJ_TNIL, DtB(->key)); break; case BC_ISNEXT: - dasm_put(Dst, 4696, -LJ_TFUNC, Dt8(->ffid), -LJ_TTAB, -LJ_TNIL, FF_next_N, BC_JMP, BC_ITERC); + dasm_put(Dst, 4903, -LJ_TFUNC, Dt8(->ffid), -LJ_TTAB, -LJ_TNIL, FF_next_N, BC_JMP, BC_ITERC); break; case BC_VARG: - dasm_put(Dst, 4735, FRAME_VARG, ~LJ_TNIL, Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->base)); + dasm_put(Dst, 4942, FRAME_VARG, ~LJ_TNIL, Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->base)); break; /* -- Returns ----------------------------------------------------------- */ case BC_RETM: - dasm_put(Dst, 4807); + dasm_put(Dst, 5014); break; case BC_RET: - dasm_put(Dst, 4814, FRAME_TYPE, FRAME_VARG, Dt7(->field_pc), PC2PROTO(k), ~LJ_TNIL, FRAME_TYPEP); + dasm_put(Dst, 5021, FRAME_TYPE, FRAME_VARG, Dt7(->field_pc), PC2PROTO(k), ~LJ_TNIL, FRAME_TYPEP); break; case BC_RET0: case BC_RET1: - dasm_put(Dst, 4879, FRAME_TYPE, FRAME_VARG); + dasm_put(Dst, 5086, FRAME_TYPE, FRAME_VARG); if (op == BC_RET1) { - dasm_put(Dst, 4890); + dasm_put(Dst, 5097); } - dasm_put(Dst, 4892); + dasm_put(Dst, 5099); if (op == BC_RET1) { - dasm_put(Dst, 4895); + dasm_put(Dst, 5102); } - dasm_put(Dst, 4897, Dt7(->field_pc), PC2PROTO(k), ~LJ_TNIL); + dasm_put(Dst, 5104, Dt7(->field_pc), PC2PROTO(k), ~LJ_TNIL); break; /* -- Loops and branches ------------------------------------------------ */ @@ -6391,7 +6855,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) case BC_FORL: #if LJ_HASJIT - dasm_put(Dst, 4923); + dasm_put(Dst, 5130); #endif break; @@ -6403,63 +6867,63 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) case BC_FORI: case BC_IFORL: vk = (op == BC_IFORL || op == BC_JFORL); - dasm_put(Dst, 4925); + dasm_put(Dst, 5132); if (!vk) { - dasm_put(Dst, 4928, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 5135, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM); } else { - dasm_put(Dst, 4946, -LJ_TISNUM); + dasm_put(Dst, 5153, -LJ_TISNUM); if (op == BC_IFORL) { - dasm_put(Dst, 4954); + dasm_put(Dst, 5161); } else { - dasm_put(Dst, 4956); + dasm_put(Dst, 5163); } - dasm_put(Dst, 4958); + dasm_put(Dst, 5165); } - dasm_put(Dst, 4963); + dasm_put(Dst, 5170); if (op == BC_FORI) { - dasm_put(Dst, 4965); + dasm_put(Dst, 5172); } else if (op == BC_JFORI) { - dasm_put(Dst, 4967); + dasm_put(Dst, 5174); } else if (op == BC_IFORL) { - dasm_put(Dst, 4969); + dasm_put(Dst, 5176); } else { - dasm_put(Dst, 4971); + dasm_put(Dst, 5178); } if (vk) { - dasm_put(Dst, 4973); + dasm_put(Dst, 5180); } - dasm_put(Dst, 4975); + dasm_put(Dst, 5182); if (!vk) { - dasm_put(Dst, 4985); + dasm_put(Dst, 5192); } else { - dasm_put(Dst, 4987); + dasm_put(Dst, 5194); } - dasm_put(Dst, 4989); + dasm_put(Dst, 5196); if (!vk) { - dasm_put(Dst, 4993, -LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 5200, -LJ_TISNUM, -LJ_TISNUM); } else { - dasm_put(Dst, 5005); + dasm_put(Dst, 5212); } - dasm_put(Dst, 5014); + dasm_put(Dst, 5221); if (op == BC_FORI) { - dasm_put(Dst, 5018); + dasm_put(Dst, 5225); } else if (op == BC_JFORI) { - dasm_put(Dst, 5020); + dasm_put(Dst, 5227); } else if (op == BC_IFORL) { - dasm_put(Dst, 5022); + dasm_put(Dst, 5229); } else { - dasm_put(Dst, 5024); + dasm_put(Dst, 5231); } - dasm_put(Dst, 5026); + dasm_put(Dst, 5233); if (vk) { - dasm_put(Dst, 5032); + dasm_put(Dst, 5239); } - dasm_put(Dst, 5037); + dasm_put(Dst, 5244); break; case BC_ITERL: #if LJ_HASJIT - dasm_put(Dst, 5043); + dasm_put(Dst, 5250); #endif break; @@ -6468,40 +6932,40 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) break; #endif case BC_IITERL: - dasm_put(Dst, 5045); + dasm_put(Dst, 5252); if (op == BC_JITERL) { - dasm_put(Dst, 5047); + dasm_put(Dst, 5254); } else { - dasm_put(Dst, 5049, -LJ_TNIL); + dasm_put(Dst, 5256, -LJ_TNIL); } - dasm_put(Dst, 5055); + dasm_put(Dst, 5262); break; case BC_LOOP: #if LJ_HASJIT - dasm_put(Dst, 5062); + dasm_put(Dst, 5269); #endif break; case BC_ILOOP: - dasm_put(Dst, 5064); + dasm_put(Dst, 5271); break; case BC_JLOOP: #if LJ_HASJIT - dasm_put(Dst, 5071); + dasm_put(Dst, 5278); #endif break; case BC_JMP: - dasm_put(Dst, 5073); + dasm_put(Dst, 5280); break; /* -- Function headers -------------------------------------------------- */ case BC_FUNCF: #if LJ_HASJIT - dasm_put(Dst, 5082); + dasm_put(Dst, 5289); #endif case BC_FUNCV: /* NYI: compiled vararg functions. */ break; @@ -6511,38 +6975,38 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) break; #endif case BC_IFUNCF: - dasm_put(Dst, 5084, Dt1(->maxstack), -4+PC2PROTO(numparams), -4+PC2PROTO(k), ~LJ_TNIL); + dasm_put(Dst, 5291, Dt1(->maxstack), -4+PC2PROTO(numparams), -4+PC2PROTO(k), ~LJ_TNIL); if (op == BC_JFUNCF) { - dasm_put(Dst, 5102); + dasm_put(Dst, 5309); } else { - dasm_put(Dst, 5104); + dasm_put(Dst, 5311); } - dasm_put(Dst, 5109); + dasm_put(Dst, 5316); break; case BC_JFUNCV: #if !LJ_HASJIT break; #endif - dasm_put(Dst, 5115); + dasm_put(Dst, 5322); break; /* NYI: compiled vararg functions. */ case BC_IFUNCV: - dasm_put(Dst, 5117, Dt1(->maxstack), 8+FRAME_VARG, -4+PC2PROTO(k), -4+PC2PROTO(numparams), ~LJ_TNIL); + dasm_put(Dst, 5324, Dt1(->maxstack), 8+FRAME_VARG, -4+PC2PROTO(k), -4+PC2PROTO(numparams), ~LJ_TNIL); break; case BC_FUNCC: case BC_FUNCCW: if (op == BC_FUNCC) { - dasm_put(Dst, 5158, Dt8(->f)); + dasm_put(Dst, 5365, Dt8(->f)); } else { - dasm_put(Dst, 5161, DISPATCH_GL(wrapf)); + dasm_put(Dst, 5368, DISPATCH_GL(wrapf)); } - dasm_put(Dst, 5164, Dt1(->maxstack), Dt1(->base), Dt1(->top)); + dasm_put(Dst, 5371, Dt1(->maxstack), Dt1(->base), Dt1(->top)); if (op == BC_FUNCCW) { - dasm_put(Dst, 5174, Dt8(->f)); + dasm_put(Dst, 5381, Dt8(->f)); } - dasm_put(Dst, 5177, LJ_VMST_C, DISPATCH_GL(vmstate), Dt1(->base), LJ_VMST_INTERP, Dt1(->top), DISPATCH_GL(vmstate)); + dasm_put(Dst, 5384, LJ_VMST_C, DISPATCH_GL(vmstate), Dt1(->base), LJ_VMST_INTERP, Dt1(->top), DISPATCH_GL(vmstate)); break; /* ---------------------------------------------------------------------- */ @@ -6562,7 +7026,7 @@ static int build_backend(BuildCtx *ctx) build_subroutines(ctx); - dasm_put(Dst, 5199); + dasm_put(Dst, 5406); for (op = 0; op < BC__MAX; op++) build_ins(ctx, (BCOp)op, op); diff --git a/src/lj_arch.h b/src/lj_arch.h index f179cf80..b361e3dc 100644 --- a/src/lj_arch.h +++ b/src/lj_arch.h @@ -194,8 +194,8 @@ #if defined(__ARMEB__) #error "No support for big-endian ARM" #endif -#if !__ARM_EABI__ -#error "Only ARM EABI is supported" +#if !(__ARM_EABI__ || LJ_TARGET_OSX) +#error "Only ARM EABI or iOS 3.0+ ABI is supported" #endif #elif LJ_TARGET_PPC #if defined(_SOFT_FLOAT) || defined(_SOFT_DOUBLE)

CPU / OSLinux or
Android
*BSD, otherOSX
10.3-10.6
Linux or
Android
*BSD, OtherOSX 10.3+ or
iOS 3.0+
Windows
98/XP/Vista/7
MSVC + SDK v7.0
WinSDK v7.0
ARMARMv5+
ARM9E+
GCC 4.2+ GCC 4.2+ GCC 4.2+