From 54994ef7be48063406490774776a4c3715136463 Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Sun, 17 Apr 2011 02:35:12 +0200 Subject: [PATCH] ARM: Enable ARM port. --- src/Makefile | 4 +- src/buildvm_arm.h | 6528 +++++++++++++++++++++++++++++++++++++++++++++ src/lj_arch.h | 1 - 3 files changed, 6530 insertions(+), 3 deletions(-) create mode 100644 src/buildvm_arm.h diff --git a/src/Makefile b/src/Makefile index 00a4d7b3..5fa92af8 100644 --- a/src/Makefile +++ b/src/Makefile @@ -354,8 +354,8 @@ LUAJIT_T= luajit ALL_T= $(LUAJIT_T) $(LUAJIT_A) $(LUAJIT_SO) $(BUILDVM_T) ALL_HDRGEN= lj_bcdef.h lj_ffdef.h lj_libdef.h lj_recdef.h lj_folddef.h ALL_GEN= $(LJVM_S) $(ALL_HDRGEN) $(LIB_VMDEFP) -ALL_DYNGEN= buildvm_x86.h buildvm_x64.h buildvm_x64win.h buildvm_ppcspe.h -###ALL_DYNGEN+= buildvm_arm.h +ALL_DYNGEN= buildvm_x86.h buildvm_x64.h buildvm_x64win.h buildvm_arm.h \ + buildvm_ppcspe.h WIN_RM= *.obj *.lib *.exp *.dll *.exe *.manifest *.pdb *.ilk ALL_RM= $(ALL_T) $(ALL_GEN) *.o $(WIN_RM) diff --git a/src/buildvm_arm.h b/src/buildvm_arm.h new file mode 100644 index 00000000..738d293a --- /dev/null +++ b/src/buildvm_arm.h @@ -0,0 +1,6528 @@ +/* +** This file has been pre-processed with DynASM. +** http://luajit.org/dynasm.html +** DynASM version 1.2.2, DynASM arm version 1.2.2 +** DO NOT EDIT! The original file is in "buildvm_arm.dasc". +*/ + +#if DASM_VERSION != 10202 +#error "Version mismatch between DynASM and included encoding engine" +#endif + +#define DASM_SECTION_CODE_OP 0 +#define DASM_SECTION_CODE_SUB 1 +#define DASM_MAXSECTION 2 +static const unsigned int build_actionlist[5145] = { +0x00010001, +0x00060014, +0xe3160000, +0x000a0000, +0x0a000000, +0x00050015, +0xe51c6004, +0xe3e01000, +0x000a0000, +0xe1a0400c, +0xe50a1004, +0xe24aa008, +0x00060016, +0xe28bb008, +0xe2160000, +0x000a0000, +0xe58db004, +0x0a000000, +0x00050017, +0x00060018, +0xe3c6c000, +0x000a0000, +0xe3500000, +0x000a0000, +0xe044c00c, +0x1a000000, +0x00050014, +0xe508c000, +0x000d8180, +0xe59d5014, +0xe3e03000, +0x000a0000, +0xe2444008, +0xe25b2008, +0xe1a05185, +0xe5073000, +0x000d8180, +0x0a000000, +0x00050002, +0x0006000b, +0xe2522008, +0xe0ca00d8, +0xe0c400f8, +0x1a000000, +0x0005000b, +0x0006000c, +0xe155000b, +0x1a000000, +0x00050006, +0x0006000d, +0xe5084000, +0x000d8180, +0x00060019, +0x00000000, +0xe59db010, +0xe3a00000, +0xe508b000, +0x000d8180, +0x0006001a, +0xe28dd01c, +0xe8bd8ff0, +0x00060010, +0xba000000, +0x00050007, +0xe5182000, +0x000d8180, +0xe3e01000, +0x000a0000, +0xe1540002, +0x2a000000, +0x00050008, +0xe5841004, +0xe28bb008, +0xe2844008, +0xea000000, +0x0005000c, +0x00060011, +0xe04b0005, +0xe3550000, +0x10444000, +0xea000000, +0x0005000d, +0x00060012, +0xe5084000, +0x000d8180, +0xe1a01005, +0xe1a00008, +0xeb000000, +0x00030000, +0xe5184000, +0x000d8180, +0xea000000, +0x0005000c, +0x0006001b, +0xe1a0d000, +0xe1a00001, +0x0006001c, +0xe59d800c, +0xe3e03000, +0x000a0000, +0xe5182000, +0x000d8180, +0xe5023000, +0x000d8180, +0xea000000, +0x0005001a, +0x0006001d, +0x00000000, +0xe3c0d000, +0x000a0000, +0x0006001e, +0xe59d800c, +0xe3a090ff, +0xe3a0b010, +0xe1a09189, +0xe5184000, +0x000d8180, +0xe5187000, +0x000d8180, +0xe3e00000, +0x000a0000, +0xe244a008, +0xe5146004, +0xe2877000, +0x000a0000, +0xe3e01000, +0x000a0000, +0xe5040004, +0xe5071000, +0x000d8180, +0xea000000, +0x00050016, +0x0006001f, +0xe3a01000, +0x000a0000, +0xea000000, +0x00050002, +0x00060020, +0xe084b00b, +0xe04aa004, +0xe1a00008, +0xe5084000, +0x000d8180, +0xe2866004, +0xe508b000, +0x000d8180, +0xe1a021aa, +0x0006000c, +0xe58d6008, +0xeb000000, +0x00030000, +0xe5184000, +0x000d8180, +0xe518b000, +0x000d8180, +0xe5142008, +0xe04bb004, +0xe5126000, +0x000d8180, +0xe5d6c000, +0xe496e004, +0xe797c10c, +0xe009a2ae, +0xe08aa004, +0xe12fff1c, +0x00060021, +0xe92d4ff0, +0xe24dd01c, +0xe1a08000, +0xe5107000, +0x000d8180, +0x00000000, +0xe1a04001, +0xe2877000, +0x000a0000, +0xe58d800c, +0xe3a06000, +0x000a0000, +0xe58d2014, +0xe28d1000, +0x000a0000, +0xe5580000, +0x000d8180, +0xe58d2018, +0xe5081000, +0x000d8180, +0xe58d2010, +0xe3500000, +0xe58d8008, +0x0a000000, +0x00050003, +0xe1a0a004, +0xe5184000, +0x000d8180, +0xe5180000, +0x000d8180, +0xe3a090ff, +0xe5482000, +0x000d8180, +0xe040b004, +0xe5146004, +0xe1a09189, +0xe3e01000, +0x000a0000, +0xe28bb008, +0xe2160000, +0x000a0000, +0xe5071000, +0x000d8180, +0xe58db004, +0x0a000000, +0x00050017, +0xea000000, +0x00050018, +0x00060022, +0xe92d4ff0, +0xe24dd01c, +0xe3a06000, +0x000a0000, +0xe58d3018, +0xea000000, +0x00050001, +0x00060023, +0xe92d4ff0, +0xe24dd01c, +0xe3a06000, +0x000a0000, +0x0006000b, +0xe510b000, +0x000d8180, +0xe58d2014, +0xe1a08000, +0xe58d000c, +0xe1a04001, +0xe508d000, +0x000d8180, +0x00000000, +0xe5187000, +0x000d8180, +0xe58d0008, +0xe58db010, +0xe2877000, +0x000a0000, +0x0006000d, +0xe518c000, +0x000d8180, +0xe5180000, +0x000d8180, +0xe3a090ff, +0xe0866004, +0xe1a09189, +0xe046600c, +0xe3e01000, +0x000a0000, +0xe040b004, +0xe5071000, +0x000d8180, +0x00060024, +0xe14420d8, +0xe3730000, +0x000a0000, +0x1a000000, +0x00050025, +0x00060026, +0xe5046004, +0xe5126000, +0x000d8180, +0xe5d6c000, +0xe496e004, +0xe797c10c, +0xe009a2ae, +0xe08aa004, +0xe12fff1c, +0x00060027, +0xe92d4ff0, +0xe24dd01c, +0xe1a08000, +0xe510a000, +0x000d8180, +0xe58d000c, +0xe518c000, +0x000d8180, +0xe58d0008, +0xe518b000, +0x000d8180, +0xe04aa00c, +0xe508d000, +0x000d8180, +0xe3a0c000, +0xe58da014, +0xe58dc018, +0xe58db010, +0xe12fff33, +0xe5187000, +0x000d8180, +0xe1b04000, +0xe3a06000, +0x000a0000, +0xe2877000, +0x000a0000, +0x1a000000, +0x0005000d, +0xea000000, +0x00050019, +0x00060015, +0x00000000, +0xe51c2008, +0xe5140010, +0xe1a03004, +0xe1a0400c, +0xe3500000, +0xe513600c, +0x0a000000, +0x00050001, +0xe5122000, +0x000d8180, +0xe3e0e000, +0x000a0000, +0xe08a100b, +0xe501e004, +0xe5125000, +0x000d8180, +0xe12fff10, +0x0006000b, +0xe5142008, +0xe2433010, +0xe043b004, +0xea000000, +0x00050028, +0x00060029, +0xe516e004, +0xe2431010, +0xe1ca20d0, +0xe5084000, +0x000d8180, +0xe009baae, +0xe009a2ae, +0xe084000b, +0xe0510000, +0x11c120f0, +0x11a02000, +0x1a000000, +0x0005002a, +0xe18420fa, +0xea000000, +0x0005002b, +0x0006002c, +0xe084100c, +0xea000000, +0x00050002, +0x0006002d, +0xe2471000, +0x000a0000, +0xe3e03000, +0x000a0000, +0xe581c000, +0xe5813004, +0x0006000c, +0xe3e03000, +0x000a0000, +0xe58db000, +0xe58d3004, +0xe1a0200d, +0xea000000, +0x00050001, +0x0006002e, +0xe009caae, +0xe58db000, +0xe3e03000, +0x000a0000, +0xe084100c, +0xe58d3004, +0xe1a0200d, +0xea000000, +0x00050001, +0x0006002f, +0x00000000, +0xe084100c, +0xe084200b, +0x0006000b, +0xe5084000, +0x000d8180, +0xe1a00008, +0xe58d6008, +0xeb000000, +0x00030001, +0xe3500000, +0x0a000000, +0x00050003, +0xe1c020d0, +0xe5d6c000, +0xe496e004, +0xe18420fa, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x0006000d, +0xe2640000, +0x000a0000, +0xe5184000, +0x000d8180, +0xe3a0b010, +0xe504600c, +0xe0806004, +0xe5142008, +0xea000000, +0x00050026, +0x00060030, +0xe084100c, +0xea000000, +0x00050002, +0x00060031, +0xe2471000, +0x000a0000, +0xe3e03000, +0x000a0000, +0xe581c000, +0xe5813004, +0x0006000c, +0xe3e03000, +0x000a0000, +0xe58db000, +0xe58d3004, +0xe1a0200d, +0xea000000, +0x00050001, +0x00060032, +0xe009caae, +0xe58db000, +0xe3e03000, +0x000a0000, +0xe084100c, +0xe58d3004, +0xe1a0200d, +0xea000000, +0x00050001, +0x00060033, +0xe084100c, +0xe084200b, +0x0006000b, +0xe5084000, +0x000d8180, +0x00000000, +0xe1a00008, +0xe58d6008, +0xeb000000, +0x00030002, +0xe3500000, +0xe18420da, +0x0a000000, +0x00050003, +0xe5d6c000, +0xe1c020f0, +0xe496e004, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x0006000d, +0xe2640000, +0x000a0000, +0xe5184000, +0x000d8180, +0xe3a0b018, +0xe1c421f0, +0xe504600c, +0xe0806004, +0xe5142008, +0xea000000, +0x00050026, +0x00060034, +0xe1a00008, +0xe2466004, +0xe1a0100a, +0xe5084000, +0x000d8180, +0xe1a0200b, +0xe58d6008, +0xe20e30ff, +0xeb000000, +0x00030003, +0x0006000d, +0xe3500001, +0x8a000000, +0x00050035, +0x0006000e, +0xe1d6c0b2, +0xe2866004, +0xe086c10c, +0x224c6b80, +0x0006002b, +0xe5d6c000, +0xe496e004, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x00060036, +0xe516e004, +0xe1ca00d0, +0xe00922ae, +0xe18400f2, +0xea000000, +0x0005002b, +0x00060037, +0xe59a1004, +0xe3e00000, +0x000a0000, +0xe1500001, +0xea000000, +0x0005000e, +0x00060038, +0xe59a1004, +0xe3710000, +0x000a0000, +0xea000000, +0x0005000e, +0x00060039, +0x00000000, +0xe2466004, +0xe5084000, +0x000d8180, +0xe1a00008, +0xe58d6008, +0xeb000000, +0x00030004, +0xea000000, +0x0005000d, +0x0006003a, +0xe009caae, +0xe009b6ae, +0xe084200c, +0xe085300b, +0xea000000, +0x00050001, +0x0006003b, +0xe009caae, +0xe009b6ae, +0xe084300c, +0xe085200b, +0xea000000, +0x00050001, +0x0006003c, +0xe516e008, +0xe2466004, +0xe084200b, +0xe084300b, +0xea000000, +0x00050001, +0x0006003d, +0xe009caae, +0xe009b6ae, +0xe084200c, +0xe084300b, +0x0006000b, +0xe20ec0ff, +0xe084100a, +0xe5084000, +0x000d8180, +0xe1a00008, +0xe58d6008, +0xe58dc000, +0xeb000000, +0x00030005, +0xe3500000, +0x0a000000, +0x0005002b, +0x00060035, +0xe0401004, +0xe500600c, +0xe2816000, +0x000a0000, +0xe1a04000, +0xe3a0b010, +0xea000000, +0x00050024, +0x0006003e, +0xe084100b, +0xe5084000, +0x000d8180, +0xe1a00008, +0xe58d6008, +0xeb000000, +0x00030006, +0xea000000, +0x00050035, +0x00060025, +0x00000000, +0xe1a00008, +0xe508c000, +0x000d8180, +0xe2441008, +0xe58d6008, +0xe084200b, +0xeb000000, +0x00030007, +0xe5142008, +0xe28bb008, +0xe5046004, +0xe5126000, +0x000d8180, +0xe5d6c000, +0xe496e004, +0xe797c10c, +0xe009a2ae, +0xe08aa004, +0xe12fff1c, +0x0006003f, +0xe1a00008, +0xe5084000, +0x000d8180, +0xe24a1008, +0xe58d6008, +0xe08a200b, +0xeb000000, +0x00030007, +0xe51a2008, +0xe5146004, +0xe28bb008, +0xea000000, +0x00050040, +0x00060041, +0xe1a00008, +0xe5084000, +0x000d8180, +0xe1a0100a, +0xe58d6008, +0xeb000000, +0x00030008, +0x00000000, +0xe556c004, +0x00000000, +0xe516e004, +0x00000000, +0xe35c0000, +0x000a0000, +0x00000000, +0xe009a2ae, +0xe1a0b82e, +0x00000000, +0x0a000000, +0x00070000, +0x00000000, +0xea000000, +0x00070000, +0x00060042, +0xe1c400d0, +0xe35b0008, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x8a000000, +0x00050043, +0xe5146004, +0xe14400f8, +0xe1a0c004, +0xe25ba008, +0xe28bb008, +0x0a000000, +0x00050044, +0x0006000b, +0xe1cc00d8, +0xe25aa008, +0xe0cc00f8, +0x1a000000, +0x0005000b, +0xea000000, +0x00050044, +0x00060045, +0xe5941004, +0xe35b0008, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x33e01000, +0x000a0000, +0xe2613000, +0x000a0000, +0xe1a03183, +0xe18200d3, +0xea000000, +0x00050046, +0x00060047, +0xe1c400d0, +0xe35b0008, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x13710000, +0x000a0000, +0x1a000000, +0x00050006, +0x0006000b, +0xe510c000, +0x000d8180, +0x0006000c, +0x00000000, +0xe3e01000, +0x000a0000, +0xe517b000, +0x000d8180, +0xe35c0000, +0x0a000000, +0x00050046, +0xe51c2000, +0x000d8180, +0xe51b3000, +0x000d8180, +0xe51ce000, +0x000d8180, +0xe0022003, +0xe0822082, +0xe08ee182, +0x0006000d, +0xe14e20d0, +0x000c8100, +0xe14e00d0, +0x000c8100, +0xe51ee000, +0x000d8180, +0xe152000b, +0x03730000, +0x000a0000, +0x0a000000, +0x00050005, +0xe35e0000, +0x1a000000, +0x0005000d, +0x0006000e, +0xe1a0000c, +0xe3e01000, +0x000a0000, +0xea000000, +0x00050046, +0x0006000f, +0xe3710000, +0x000a0000, +0x1a000000, +0x00050046, +0xea000000, +0x0005000e, +0x00060010, +0xe3710000, +0x000a0000, +0x00000000, +0x21e01001, +0x33a01000, +0x000a0000, +0xe0873101, +0xe513c000, +0x000d8180, +0xea000000, +0x0005000c, +0x00060048, +0xe1c400d0, +0xe1c420d8, +0xe35b0010, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x0510c000, +0x000d8180, +0x03730000, +0x000a0000, +0x05503000, +0x000d8180, +0x035c0000, +0x1a000000, +0x00050043, +0xe3130000, +0x000a0000, +0xe5002000, +0x000d8180, +0x0a000000, +0x00050046, +0xe5172000, +0x000d8180, +0xe3c33000, +0x000a0000, +0xe5070000, +0x000d8180, +0xe5403000, +0x000d8180, +0xe5002000, +0x000d8180, +0xea000000, +0x00050046, +0x00060049, +0xe1c420d0, +0xe35b0010, +0x3a000000, +0x00050043, +0xe1a01002, +0xe3730000, +0x000a0000, +0x00000000, +0x1a000000, +0x00050043, +0xe1a00008, +0xe2842008, +0xeb000000, +0x00030009, +0xe1c000d0, +0xea000000, +0x00050046, +0x0006004a, +0xe1c400d0, +0xe35b0008, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x9a000000, +0x00050046, +0xea000000, +0x00050043, +0x0006004b, +0xe1c400d0, +0xe35b0008, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x0a000000, +0x00050046, +0xe5173000, +0x000d8180, +0xe5084000, +0x000d8180, +0xe3710000, +0x000a0000, +0x93530000, +0xe58d6008, +0x8a000000, +0x00050043, +0xe5170000, +0x000d8180, +0xe5171000, +0x000d8180, +0xe1500001, +0xab000000, +0x0005004c, +0xe1a00008, +0xe1a01004, +0xeb000000, +0x0003000a, +0xe5184000, +0x000d8180, +0xe3e01000, +0x000a0000, +0x00000000, +0xea000000, +0x00050046, +0x0006004d, +0xe1c400d0, +0xe35b0008, +0x3a000000, +0x00050043, +0xe3e03000, +0x000a0000, +0xe3710000, +0x000a0000, +0x1a000000, +0x00050043, +0xe18420fb, +0xe5146004, +0xe1a01000, +0xe5084000, +0x000d8180, +0xe1a00008, +0xe5084000, +0x000d8180, +0xe2842008, +0xe58d6008, +0xeb000000, +0x0003000b, +0xe3500000, +0x03e01000, +0x000a0000, +0x0a000000, +0x00050046, +0xe1c400d8, +0xe1c421d0, +0xe3a0b000, +0x000a0000, +0xe14400f8, +0xe1c420f0, +0xea000000, +0x00050044, +0x0006004e, +0xe1c400d0, +0xe35b0008, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x1a000000, +0x00050043, +0x00000000, +0xe510c000, +0x000d8180, +0x00000000, +0xe14220d0, +0x000c8100, +0xe5146004, +0x00000000, +0xe35c0000, +0x1a000000, +0x00050043, +0x00000000, +0xe3e01000, +0x000a0000, +0xe3a0b000, +0x000a0000, +0xe14420f8, +0xe584100c, +0xea000000, +0x00050044, +0x0006004f, +0xe1c400d0, +0xe1c420d8, +0xe35b0010, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x03730000, +0x000a0000, +0x1a000000, +0x00050043, +0xe510c000, +0x000d8180, +0xe510b000, +0x000d8180, +0xe2822001, +0xe5146004, +0xe152000c, +0xe08bb182, +0xe14420f8, +0x31cb00d0, +0xe3a0b000, +0x000a0000, +0x2a000000, +0x00050002, +0x0006000b, +0xe3710000, +0x000a0000, +0x13a0b000, +0x000a0000, +0x11c400f0, +0xea000000, +0x00050044, +0x0006000c, +0xe510c000, +0x000d8180, +0xe1a01002, +0xe35c0000, +0x0a000000, +0x00050044, +0xeb000000, +0x0003000c, +0xe3500000, +0x0a000000, +0x00050044, +0xe1c000d0, +0xea000000, +0x0005000b, +0x00060050, +0x00000000, +0xe1c400d0, +0xe35b0008, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x1a000000, +0x00050043, +0x00000000, +0xe510c000, +0x000d8180, +0x00000000, +0xe14220d0, +0x000c8100, +0xe5146004, +0x00000000, +0xe35c0000, +0x1a000000, +0x00050043, +0x00000000, +0xe3a00000, +0xe3e01000, +0x000a0000, +0xe3a0b000, +0x000a0000, +0xe14420f8, +0xe1c400f8, +0xea000000, +0x00050044, +0x00060051, +0xe557a000, +0x000d8180, +0xe35b0008, +0x3a000000, +0x00050043, +0xe31a0000, +0x000a0000, +0xe1a0c004, +0xe2844008, +0x03a06000, +0x000a0000, +0x13a06000, +0x000a0000, +0xe24bb008, +0xea000000, +0x00050024, +0x00060052, +0xe1c400d0, +0xe1c420d8, +0xe35b0010, +0x3a000000, +0x00050043, +0xe557a000, +0x000d8180, +0xe3730000, +0x000a0000, +0x1a000000, +0x00050043, +0xe1a0c004, +0xe1c400f8, +0xe1c420f0, +0xe31a0000, +0x000a0000, +0xe2844010, +0x03a06000, +0x000a0000, +0x13a06000, +0x000a0000, +0xe24bb010, +0xea000000, +0x00050024, +0x00060053, +0xe1c400d0, +0xe35b0008, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x00000000, +0x1a000000, +0x00050043, +0xe5146004, +0xe5084000, +0x000d8180, +0xe5101000, +0x000d8180, +0xe550a000, +0x000d8180, +0xe510c000, +0x000d8180, +0xe081200b, +0xe081300a, +0xe58d6008, +0xe153000c, +0x0a000000, +0x00050043, +0xe5103000, +0x000d8180, +0xe510c000, +0x000d8180, +0xe35a0000, +0x000a0000, +0x91520003, +0x935c0000, +0x8a000000, +0x00050043, +0x0006000b, +0xe2422008, +0xe2844008, +0xe24bb008, +0xe5002000, +0x000d8180, +0xe5084000, +0x000d8180, +0x0006000c, +0xe18420dc, +0xe15c000b, +0x118120fc, +0xe28cc008, +0x1a000000, +0x0005000c, +0xe3a02000, +0xe1a0a000, +0xe3a03000, +0xeb000000, +0x00050021, +0x0006000e, +0xe51a2000, +0x000d8180, +0xe3e01000, +0x000a0000, +0xe51a3000, +0x000d8180, +0xe5071000, +0x000d8180, +0xe3500000, +0x000a0000, +0x00000000, +0xe5184000, +0x000d8180, +0x8a000000, +0x00050008, +0xe053b002, +0xe5180000, +0x000d8180, +0xe084100b, +0x0a000000, +0x00050006, +0xe1510000, +0xe3a0c000, +0x8a000000, +0x00050009, +0xe24b3008, +0xe50a2000, +0x000d8180, +0x0006000f, +0xe18200dc, +0xe15c0003, +0xe18400fc, +0xe28cc008, +0x1a000000, +0x0005000f, +0x00060010, +0xe3e02000, +0x000a0000, +0xe28bb010, +0x00060011, +0xe5042004, +0xe244a008, +0xe2160000, +0x000a0000, +0xe58d6008, +0xe58db004, +0x0a000000, +0x00050017, +0xea000000, +0x00050018, +0x00060012, +0xe16300d8, +0xe3e02000, +0x000a0000, +0xe3a0b000, +0x000a0000, +0xe50a3000, +0x000d8180, +0xe1c400f0, +0xea000000, +0x00050011, +0x00060013, +0xe1a00008, +0xe1a011ab, +0xeb000000, +0x00030000, +0xe3a00000, +0xea000000, +0x0005000e, +0x00060054, +0x00000000, +0xe5120000, +0x000d8180, +0xe5146004, +0xe5084000, +0x000d8180, +0xe5101000, +0x000d8180, +0xe550a000, +0x000d8180, +0xe510c000, +0x000d8180, +0xe081200b, +0xe081300a, +0xe58d6008, +0xe153000c, +0x0a000000, +0x00050043, +0xe5103000, +0x000d8180, +0xe510c000, +0x000d8180, +0xe35a0000, +0x000a0000, +0x91520003, +0x935c0000, +0x8a000000, +0x00050043, +0x0006000b, +0xe5002000, +0x000d8180, +0xe5084000, +0x000d8180, +0x0006000c, +0xe18420dc, +0xe15c000b, +0x118120fc, +0xe28cc008, +0x1a000000, +0x0005000c, +0xe3a02000, +0xe1a0a000, +0xe3a03000, +0xeb000000, +0x00050021, +0x0006000e, +0xe51a2000, +0x000d8180, +0xe3e01000, +0x000a0000, +0xe51a3000, +0x000d8180, +0xe5071000, +0x000d8180, +0xe3500000, +0x000a0000, +0x00000000, +0xe5184000, +0x000d8180, +0x8a000000, +0x00050008, +0xe053b002, +0xe5180000, +0x000d8180, +0xe084100b, +0x0a000000, +0x00050006, +0xe1510000, +0xe3a0c000, +0x8a000000, +0x00050009, +0xe24b3008, +0xe50a2000, +0x000d8180, +0x0006000f, +0xe18200dc, +0xe15c0003, +0xe18400fc, +0xe28cc008, +0x1a000000, +0x0005000f, +0x00060010, +0xe1a0a004, +0xe28bb008, +0xe2160000, +0x000a0000, +0xe58d6008, +0xe58db004, +0x0a000000, +0x00050017, +0xea000000, +0x00050018, +0x00060012, +0xe1a00008, +0xe1a0100a, +0xeb000000, +0x0003000d, +0x00060013, +0xe1a00008, +0xe1a011ab, +0xeb000000, +0x00030000, +0xe3a00000, +0xea000000, +0x0005000e, +0x00060055, +0xe5180000, +0x000d8180, +0xe084100b, +0xe5084000, +0x000d8180, +0xe3100000, +0x000a0000, +0xe5081000, +0x000d8180, +0x00000000, +0xe3a00000, +0x000a0000, +0xe3a02000, +0x0a000000, +0x00050043, +0xe5082000, +0x000d8180, +0xe5480000, +0x000d8180, +0xea000000, +0x0005001a, +0x00060056, +0xe1c400d0, +0xe35b0008, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x0a000000, +0x00050046, +0x8a000000, +0x00050043, +0xe1a02081, +0xe292c980, +0x5a000000, +0x00050002, +0xe3e03ff8, +0xe053cacc, +0xe1a03581, +0xe1a02580, +0xe3833480, +0xe26ce020, +0xe1833aa0, +0x9a000000, +0x00050003, +0xe1822e13, +0xe1a00c33, +0xe1120fc1, +0x12800001, +0xe3510000, +0xb2600000, +0x0006000b, +0xe3e01000, +0x000a0000, +0xea000000, +0x00050046, +0x0006000c, +0xe1822000, +0xe1120fc1, +0x03a00000, +0x13e00000, +0xe3e01000, +0x000a0000, +0xea000000, +0x00050046, +0x0006000d, +0x03530480, +0x03520000, +0x1a000000, +0x00050004, +0xe3510000, +0x43a00480, +0x4a000000, +0x0005000b, +0x0006000e, +0x00000000, +0xeb000000, +0x0003000e, +0xea000000, +0x00050046, +0x00060057, +0xe1c400d0, +0xe35b0008, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x0a000000, +0x00050046, +0x8a000000, +0x00050043, +0xe1a02081, +0xe292c980, +0x5a000000, +0x00050002, +0xe3e03ff8, +0xe053cacc, +0xe1a03581, +0xe1a02580, +0xe3833480, +0xe26ce020, +0xe1833aa0, +0x9a000000, +0x00050003, +0xe1822e13, +0xe1a00c33, +0xe1d22fc1, +0x12900001, +0x614f00d0, +0x00051809, +0x6a000000, +0x00050046, +0xe3510000, +0xb2600000, +0x0006000b, +0xe3e01000, +0x000a0000, +0xea000000, +0x00050046, +0x0006000c, +0xe1822000, +0xe1d22fc1, +0x03a00000, +0x13a00001, +0xe3e01000, +0x000a0000, +0xea000000, +0x00050046, +0x0006000d, +0x03530480, +0x1a000000, +0x00050004, +0xe3510000, +0x43a00480, +0x4a000000, +0x0005000b, +0x0006000e, +0xeb000000, +0x0003000f, +0x00000000, +0xea000000, +0x00050046, +0x00040007, +0x00060013, +0x00020000, +0x00000000, +0x41e00000, +0x00060058, +0xe1c400d0, +0xe35b0008, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x8a000000, +0x00050043, +0x13c11480, +0x1a000000, +0x00050046, +0xe3500000, +0xb2700000, +0x614f00d0, +0x00051813, +0x00060046, +0xe5146004, +0xe14400f8, +0x00060059, +0xe3a0b000, +0x000a0000, +0x00060044, +0xe2160000, +0x000a0000, +0x0516e004, +0xe58db004, +0xe244a008, +0x1a000000, +0x00050018, +0xe009caae, +0x0006000f, +0xe15c000b, +0x8a000000, +0x00050006, +0xe00902ae, +0xe5d6c000, +0xe496e004, +0xe04a4000, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x00060010, +0xe08a100b, +0xe3e00000, +0x000a0000, +0xe28bb008, +0xe5010004, +0xea000000, +0x0005000f, +0x0006005a, +0xe1c400d0, +0xe35b0008, +0x3a000000, +0x00050043, +0x00000000, +0xe3710000, +0x000a0000, +0x2a000000, +0x00050043, +0xeb000000, +0x00030010, +0xea000000, +0x00050046, +0x0006005b, +0xe1c400d0, +0xe35b0008, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x2a000000, +0x00050043, +0xeb000000, +0x00030011, +0xea000000, +0x00050046, +0x0006005c, +0xe1c400d0, +0xe35b0008, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x2a000000, +0x00050043, +0xeb000000, +0x00030012, +0xea000000, +0x00050046, +0x0006005d, +0xe1c400d0, +0xe35b0008, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x2a000000, +0x00050043, +0xeb000000, +0x00030013, +0xea000000, +0x00050046, +0x0006005e, +0x00000000, +0xe1c400d0, +0xe35b0008, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x2a000000, +0x00050043, +0xeb000000, +0x00030014, +0xea000000, +0x00050046, +0x0006005f, +0xe1c400d0, +0xe35b0008, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x2a000000, +0x00050043, +0xeb000000, +0x00030015, +0xea000000, +0x00050046, +0x00060060, +0xe1c400d0, +0xe35b0008, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x2a000000, +0x00050043, +0xeb000000, +0x00030016, +0xea000000, +0x00050046, +0x00060061, +0xe1c400d0, +0xe35b0008, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x2a000000, +0x00050043, +0xeb000000, +0x00030017, +0x00000000, +0xea000000, +0x00050046, +0x00060062, +0xe1c400d0, +0xe35b0008, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x2a000000, +0x00050043, +0xeb000000, +0x00030018, +0xea000000, +0x00050046, +0x00060063, +0xe1c400d0, +0xe35b0008, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x2a000000, +0x00050043, +0xeb000000, +0x00030019, +0xea000000, +0x00050046, +0x00060064, +0xe1c400d0, +0xe35b0008, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x2a000000, +0x00050043, +0xeb000000, +0x0003001a, +0xea000000, +0x00050046, +0x00060065, +0xe1c400d0, +0xe35b0008, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x00000000, +0x2a000000, +0x00050043, +0xeb000000, +0x0003001b, +0xea000000, +0x00050046, +0x00060066, +0xe1c400d0, +0xe35b0008, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x2a000000, +0x00050043, +0xeb000000, +0x0003001c, +0xea000000, +0x00050046, +0x00060067, +0xe1c400d0, +0xe1c420d8, +0xe35b0010, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x33730000, +0x000a0000, +0x2a000000, +0x00050043, +0xeb000000, +0x0003001d, +0xea000000, +0x00050046, +0x00060068, +0xe1c400d0, +0xe1c420d8, +0xe35b0010, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x33730000, +0x000a0000, +0x2a000000, +0x00050043, +0xeb000000, +0x0003001e, +0x00000000, +0xea000000, +0x00050046, +0x00060069, +0xe1c400d0, +0xe1c420d8, +0xe35b0010, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x33730000, +0x000a0000, +0x2a000000, +0x00050043, +0xeb000000, +0x0003001f, +0xea000000, +0x00050046, +0x0006006a, +0x0006006b, +0xe1c400d0, +0xe35b0008, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x2a000000, +0x00050043, +0xe14220d0, +0x000c8100, +0xeb000000, +0x00030020, +0xea000000, +0x00050046, +0x0006006c, +0xe1c400d0, +0xe1c420d8, +0xe35b0010, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x2a000000, +0x00050043, +0xe3730000, +0x000a0000, +0x1a000000, +0x00050043, +0x00000000, +0xeb000000, +0x00030021, +0xea000000, +0x00050046, +0x0006006d, +0xe1c400d0, +0xe35b0008, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x2a000000, +0x00050043, +0xe1a0200d, +0xeb000000, +0x00030022, +0xe59d2000, +0xe3e03000, +0x000a0000, +0xe5146004, +0xe14400f8, +0xe3a0b000, +0x000a0000, +0xe1c420f0, +0xea000000, +0x00050044, +0x0006006e, +0xe1c400d0, +0xe35b0008, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x2a000000, +0x00050043, +0xe2442008, +0xe5146004, +0xeb000000, +0x00030023, +0xe3a0b000, +0x000a0000, +0xe1c400f0, +0xea000000, +0x00050044, +0x0006006f, +0xe1c400d0, +0xe35b0008, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0xe3a0a008, +0x1a000000, +0x00050004, +0x0006000b, +0x00000000, +0xe18420da, +0xe15a000b, +0x2a000000, +0x00050046, +0xe3730000, +0x000a0000, +0x1a000000, +0x00050003, +0xe1500002, +0xe28aa008, +0xc1a00002, +0xea000000, +0x0005000b, +0x0006000d, +0x8a000000, +0x00050043, +0xeb000000, +0x00030024, +0xe18420da, +0xea000000, +0x00050006, +0x0006000e, +0x8a000000, +0x00050043, +0x0006000f, +0xe18420da, +0xe15a000b, +0x2a000000, +0x00050046, +0xe3730000, +0x000a0000, +0x2a000000, +0x00050007, +0x00060010, +0xeb000000, +0x00030025, +0xe28aa008, +0x81a00002, +0x81a01003, +0xea000000, +0x0005000f, +0x00060011, +0x8a000000, +0x00050043, +0xe1cd00f0, +0xe1a00002, +0xeb000000, +0x00030024, +0xe1cd20d0, +0xea000000, +0x00050010, +0x00060070, +0x00000000, +0xe1c400d0, +0xe35b0008, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0xe3a0a008, +0x1a000000, +0x00050004, +0x0006000b, +0xe18420da, +0xe15a000b, +0x2a000000, +0x00050046, +0xe3730000, +0x000a0000, +0x1a000000, +0x00050003, +0xe1500002, +0xe28aa008, +0xb1a00002, +0xea000000, +0x0005000b, +0x0006000d, +0x8a000000, +0x00050043, +0xeb000000, +0x00030024, +0xe18420da, +0xea000000, +0x00050006, +0x0006000e, +0x8a000000, +0x00050043, +0x0006000f, +0xe18420da, +0xe15a000b, +0x2a000000, +0x00050046, +0xe3730000, +0x000a0000, +0x2a000000, +0x00050007, +0x00060010, +0xeb000000, +0x00030025, +0xe28aa008, +0x31a00002, +0x31a01003, +0xea000000, +0x0005000f, +0x00060011, +0x00000000, +0x8a000000, +0x00050043, +0xe1cd00f0, +0xe1a00002, +0xeb000000, +0x00030024, +0xe1cd20d0, +0xea000000, +0x00050010, +0x00060071, +0xe1c400d0, +0xe35b0008, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x1a000000, +0x00050043, +0xe5100000, +0x000d8180, +0xe3e01000, +0x000a0000, +0xea000000, +0x00050046, +0x00060072, +0xe1c400d0, +0xe5146004, +0xe35b0008, +0x03710000, +0x000a0000, +0x1a000000, +0x00050043, +0xe5102000, +0x000d8180, +0xe5500000, +0x000d8180, +0xe3e01000, +0x000a0000, +0xe3520000, +0x03a0b000, +0x000a0000, +0x13a0b000, +0x000a0000, +0xe14400f8, +0xea000000, +0x00050044, +0x00060073, +0xe5170000, +0x000d8180, +0xe5171000, +0x000d8180, +0x00000000, +0xe1500001, +0xab000000, +0x0005004c, +0xe1c400d0, +0xe5146004, +0xe35b0008, +0x03710000, +0x000a0000, +0x03d030ff, +0xe3a02001, +0x1a000000, +0x00050043, +0xe58d0000, +0xe1a0100d, +0x00060074, +0xe5084000, +0x000d8180, +0xe1a00008, +0xe58d6008, +0xeb000000, +0x00030026, +0xe5184000, +0x000d8180, +0xe3e01000, +0x000a0000, +0xea000000, +0x00050046, +0x00060075, +0xe5170000, +0x000d8180, +0xe5171000, +0x000d8180, +0xe1500001, +0xab000000, +0x0005004c, +0xe1c400d0, +0xe1c421d0, +0xe35b0010, +0xe3e0c000, +0x0a000000, +0x00050001, +0x3a000000, +0x00050043, +0xe3730000, +0x000a0000, +0xe1a0c002, +0x1a000000, +0x00050043, +0x0006000b, +0xe5942008, +0xe3710000, +0x000a0000, +0x05101000, +0x000d8180, +0x03730000, +0x000a0000, +0x1a000000, +0x00050043, +0x00000000, +0xe2813001, +0xe3520000, +0xb0822003, +0xe3520001, +0xb3a02001, +0xe35c0000, +0xb08cc003, +0xe1cccfcc, +0xe15c0001, +0xe2800000, +0x000a0000, +0xc1a0c001, +0xe0801002, +0xe05c2002, +0xe2822001, +0xaa000000, +0x00050074, +0x00060076, +0xe2470000, +0x000a0000, +0xe3e01000, +0x000a0000, +0xea000000, +0x00050046, +0x00060077, +0xe5170000, +0x000d8180, +0xe5171000, +0x000d8180, +0xe1500001, +0xab000000, +0x0005004c, +0xe1c400d0, +0xe1c420d8, +0xe35b0010, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x03730000, +0x000a0000, +0x1a000000, +0x00050043, +0xe2523001, +0xe5101000, +0x000d8180, +0xba000000, +0x00050076, +0xe3510001, +0x3a000000, +0x00050076, +0x1a000000, +0x00050043, +0xe517c000, +0x000d8180, +0xe5171000, +0x000d8180, +0xe5100000, +0x000d8180, +0xe15c0002, +0x3a000000, +0x00050043, +0x0006000b, +0x00000000, +0xe7c10003, +0xe2533001, +0xaa000000, +0x0005000b, +0xea000000, +0x00050074, +0x00060078, +0xe5170000, +0x000d8180, +0xe5171000, +0x000d8180, +0xe1500001, +0xab000000, +0x0005004c, +0xe1c400d0, +0xe35b0008, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x1a000000, +0x00050043, +0xe5102000, +0x000d8180, +0xe517c000, +0x000d8180, +0xe5171000, +0x000d8180, +0xe1a03002, +0xe2800000, +0x000a0000, +0xe15c0002, +0x3a000000, +0x00050043, +0x0006000b, +0xe4d0c001, +0xe2533001, +0xba000000, +0x00050074, +0xe7c1c003, +0xea000000, +0x0005000b, +0x00060079, +0xe5170000, +0x000d8180, +0xe5171000, +0x000d8180, +0xe1500001, +0xab000000, +0x0005004c, +0xe1c400d0, +0xe35b0008, +0x3a000000, +0x00050043, +0x00000000, +0xe3710000, +0x000a0000, +0x1a000000, +0x00050043, +0xe5102000, +0x000d8180, +0xe517c000, +0x000d8180, +0xe5171000, +0x000d8180, +0xe3a03000, +0xe2800000, +0x000a0000, +0xe15c0002, +0x3a000000, +0x00050043, +0x0006000b, +0xe7d0c003, +0xe1530002, +0x2a000000, +0x00050074, +0xe24cb041, +0xe35b001a, +0x322cc020, +0xe7c1c003, +0xe2833001, +0xea000000, +0x0005000b, +0x0006007a, +0xe5170000, +0x000d8180, +0xe5171000, +0x000d8180, +0xe1500001, +0xab000000, +0x0005004c, +0xe1c400d0, +0xe35b0008, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x1a000000, +0x00050043, +0xe5102000, +0x000d8180, +0xe517c000, +0x000d8180, +0xe5171000, +0x000d8180, +0xe3a03000, +0xe2800000, +0x000a0000, +0xe15c0002, +0x3a000000, +0x00050043, +0x0006000b, +0x00000000, +0xe7d0c003, +0xe1530002, +0x2a000000, +0x00050074, +0xe24cb061, +0xe35b001a, +0x322cc020, +0xe7c1c003, +0xe2833001, +0xea000000, +0x0005000b, +0x0006007b, +0xe1c400d0, +0xe35b0008, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x1a000000, +0x00050043, +0xeb000000, +0x00030027, +0xe3e01000, +0x000a0000, +0xea000000, +0x00050046, +0x0006007c, +0x8a000000, +0x00050043, +0x0006007d, +0xe1a0c081, +0xe29cc980, +0x53a00000, +0x512fff1e, +0xe3e03ff8, +0xe053cacc, +0x4a000000, +0x00050001, +0xe1a03581, +0xe3833480, +0xe1833aa0, +0xe3510000, +0xe1a00c33, +0xb2600000, +0xe12fff1e, +0x0006000b, +0xe28cc015, +0xe1a03c30, +0xe26cc014, +0xe1a00601, +0xe3510000, +0xe1830c10, +0xb2600000, +0xe12fff1e, +0x0006007e, +0xe1c400d0, +0xe35b0008, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x1b000000, +0x0005007c, +0xe3e01000, +0x000a0000, +0xea000000, +0x00050046, +0x0006007f, +0xe1c400d0, +0xe35b0008, +0x3a000000, +0x00050043, +0x00000000, +0xe3710000, +0x000a0000, +0x1b000000, +0x0005007c, +0xe1a02000, +0xe3a0a008, +0x0006000b, +0xe18400da, +0xe15a000b, +0xe28aa008, +0xaa000000, +0x00050002, +0xe3710000, +0x000a0000, +0x1b000000, +0x0005007c, +0xe0022000, +0xea000000, +0x0005000b, +0x00060080, +0xe1c400d0, +0xe35b0008, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x1b000000, +0x0005007c, +0xe1a02000, +0xe3a0a008, +0x0006000b, +0xe18400da, +0xe15a000b, +0xe28aa008, +0xaa000000, +0x00050002, +0xe3710000, +0x000a0000, +0x1b000000, +0x0005007c, +0xe1822000, +0xea000000, +0x0005000b, +0x00060081, +0xe1c400d0, +0xe35b0008, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x1b000000, +0x0005007c, +0xe1a02000, +0xe3a0a008, +0x0006000b, +0xe18400da, +0xe15a000b, +0xe28aa008, +0xaa000000, +0x00050002, +0x00000000, +0xe3710000, +0x000a0000, +0x1b000000, +0x0005007c, +0xe0222000, +0xea000000, +0x0005000b, +0x0006000c, +0xe3e03000, +0x000a0000, +0xe5146004, +0xe14420f8, +0xea000000, +0x00050059, +0x00060082, +0xe1c400d0, +0xe35b0008, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x1b000000, +0x0005007c, +0xe0202860, +0xe3c228ff, +0xe1a00460, +0xe3e01000, +0x000a0000, +0xe0200422, +0xea000000, +0x00050046, +0x00060083, +0xe1c400d0, +0xe35b0008, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x1b000000, +0x0005007c, +0xe1e00000, +0xe3e01000, +0x000a0000, +0xea000000, +0x00050046, +0x00060084, +0xe1c400d8, +0xe35b0010, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x1b000000, +0x0005007c, +0x00000000, +0xe200a01f, +0xe1c400d0, +0xe3710000, +0x000a0000, +0x1b000000, +0x0005007c, +0xe1a00a10, +0xe3e01000, +0x000a0000, +0xea000000, +0x00050046, +0x00060085, +0xe1c400d8, +0xe35b0010, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x1b000000, +0x0005007c, +0xe200a01f, +0xe1c400d0, +0xe3710000, +0x000a0000, +0x1b000000, +0x0005007c, +0xe1a00a30, +0xe3e01000, +0x000a0000, +0xea000000, +0x00050046, +0x00060086, +0xe1c400d8, +0xe35b0010, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x1b000000, +0x0005007c, +0xe200a01f, +0xe1c400d0, +0xe3710000, +0x000a0000, +0x1b000000, +0x0005007c, +0xe1a00a50, +0xe3e01000, +0x000a0000, +0xea000000, +0x00050046, +0x00060087, +0xe1c400d8, +0xe35b0010, +0x3a000000, +0x00050043, +0x00000000, +0xe3710000, +0x000a0000, +0x1b000000, +0x0005007c, +0xe260a000, +0xe1c400d0, +0xe3710000, +0x000a0000, +0x1b000000, +0x0005007c, +0xe1a00a70, +0xe3e01000, +0x000a0000, +0xea000000, +0x00050046, +0x00060088, +0xe1c400d8, +0xe35b0010, +0x3a000000, +0x00050043, +0xe3710000, +0x000a0000, +0x1b000000, +0x0005007c, +0xe200a01f, +0xe1c400d0, +0xe3710000, +0x000a0000, +0x1b000000, +0x0005007c, +0xe1a00a70, +0xe3e01000, +0x000a0000, +0xea000000, +0x00050046, +0x00060043, +0xe5142008, +0xe5181000, +0x000d8180, +0xe084000b, +0xe5146004, +0xe5080000, +0x000d8180, +0xe5122000, +0x000d8180, +0xe5084000, +0x000d8180, +0xe2800000, +0x000a0000, +0xe58d6008, +0xe1500001, +0xe1a00008, +0x8a000000, +0x00050005, +0xe12fff32, +0xe5184000, +0x000d8180, +0x00000000, +0xe3500000, +0xe1a0b180, +0xe244a008, +0xca000000, +0x00050044, +0x0006000b, +0xe5180000, +0x000d8180, +0xe5142008, +0xe040b004, +0x1a000000, +0x00050028, +0xe5126000, +0x000d8180, +0xe5d6c000, +0xe496e004, +0xe797c10c, +0xe009a2ae, +0xe08aa004, +0xe12fff1c, +0x00060028, +0xe2160000, +0x000a0000, +0xe3c61000, +0x000a0000, +0x0516e004, +0x00020000, +0x000912ae, +0xe044c001, +0xea000000, +0x00050024, +0x0006000f, +0xe3a01000, +0x000a0000, +0xeb000000, +0x00030000, +0xe5184000, +0x000d8180, +0xe1500000, +0xea000000, +0x0005000b, +0x0006004c, +0xe1a0a00e, +0xe5084000, +0x000d8180, +0xe084100b, +0xe58d6008, +0xe5081000, +0x000d8180, +0xe1a00008, +0xeb000000, +0x00030028, +0xe5184000, +0x000d8180, +0xe1a0e00a, +0xe5142008, +0xe12fff1e, +0x00060089, +0x00000000, +0xe7f001f0, +0x00000000, +0x0006008a, +0xe5570000, +0x000d8180, +0xe3100000, +0x000a0000, +0x0a000000, +0x00050001, +0x0006000f, +0xe20ec0ff, +0xe087c10c, +0xe51cf000, +0x000d8180, +0x0006008b, +0xe5570000, +0x000d8180, +0xe5171000, +0x000d8180, +0xe3100000, +0x000a0000, +0x1a000000, +0x0005000f, +0xe3100000, +0x000a0000, +0x0a000000, +0x0005000f, +0xe2511001, +0xe5071000, +0x000d8180, +0x0a000000, +0x00050001, +0xe3100000, +0x000a0000, +0x0a000000, +0x0005000f, +0x0006000b, +0xe1a00008, +0xe5084000, +0x000d8180, +0xe1a01006, +0xeb000000, +0x00030029, +0x0006000d, +0xe5184000, +0x000d8180, +0x0006000e, +0x00000000, +0xe556c004, +0xe516e004, +0xe087c10c, +0xe51cc000, +0x000d8180, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x0006008c, +0xe5130018, +0xe2866004, +0xe58d0004, +0xea000000, +0x0005000e, +0x0006008d, +0x00000000, +0xe7f001f0, +0x00000000, +0x0006008e, +0xe1a01006, +0x00000000, +0xea000000, +0x00050001, +0x00000000, +0x0006008f, +0x00000000, +0xe3861001, +0x0006000b, +0x00000000, +0xe084300b, +0xe58d6008, +0xe1a00008, +0xe5084000, +0x000d8180, +0xe04aa004, +0xe5083000, +0x000d8180, +0xeb000000, +0x0003002a, +0xe5184000, +0x000d8180, +0xe5183000, +0x000d8180, +0xe3a01000, +0xe084a00a, +0xe043b004, +0xe58d1008, +0xe5142008, +0xe12fff10, +0x00060090, +0x00000000, +0xe7f001f0, +0x00000000, +0x00060091, +0x00000000, +0xe7f001f0, +0x00000000, +0x00060092, +0xe7f001f0, +0x00060093, +0xe7f001f0, +0x00000000, +0x00060094, +0xe7f001f0, +0x00000000, +0x00060094, +0x00000000, +0x00060095, +0xe92d401f, +0xeb000000, +0x0003002b, +0xeb000000, +0x0003000e, +0xe1cd20d8, +0xeb000000, +0x00030020, +0xe1cd20d0, +0xe2211480, +0xeb000000, +0x0003002c, +0xe28dd014, +0xe8bd8000, +0x00060096, +0xe210c480, +0x42600000, +0xe02cc0c1, +0xe3510000, +0x42611000, +0xe2513001, +0x11500001, +0x03a00000, +0x81110003, +0x00020000, +0x00000003, +0x9a000000, +0x00050001, +0xe16f2f10, +0xe16f3f11, +0xe0433002, +0xe273201f, +0x108ff182, +0xe1a00000, +0x00000000, +0xe1500001, +0x000900a7, +0x20400001, +0x000900a7, +0x00000000, +0x0006000b, +0xe3500000, +0x135c0000, +0x40400001, +0xe030108c, +0x42600000, +0xe12fff1e, +0x00060097, +0x00000000, +0xe7f001f0, +0x00000000, +0x00060098, +0x00000000, +0xe7f001f0, +0x00000000, +0x00060099, +0xe59dc000, +0xe35c0001, +0x3a000000, +0x0003002c, +0x0a000000, +0x0003002d, +0xe35c0003, +0x3a000000, +0x00030020, +0x0a000000, +0x0003002b, +0xe35c0005, +0x3a000000, +0x00050095, +0x0a000000, +0x0003001d, +0xe35c0007, +0x32211480, +0x03c11480, +0x912fff1e, +0xe7f001f0, +0x0006009a, +0x00000000, +0xe92d4830, +0xe1a04000, +0xe5100000, +0x000d8180, +0xe5541000, +0x000d8180, +0xe2842000, +0x000a0000, +0xe1a0b00d, +0xe04dd000, +0xe2511001, +0xe514c000, +0x000d8180, +0x4a000000, +0x00050002, +0x0006000b, +0xe7923101, +0xe78d3101, +0xe2511001, +0x5a000000, +0x0005000b, +0x0006000c, +0xe5140000, +0x000d8180, +0xe5141000, +0x000d8180, +0xe5142000, +0x000d8180, +0xe5143000, +0x000d8180, +0xe12fff3c, +0xe1a0d00b, +0xe5040000, +0x000d8180, +0xe5041000, +0x000d8180, +0xe8bd8830, +0x00000000, +0x00080000, +0x00000000, +0xe1a0b18b, +0xe1aa00d4, +0xe1d6c0b2, +0xe1ab20d4, +0xe2866004, +0xe086c10c, +0xe3710000, +0x000a0000, +0x1a000000, +0x00050003, +0xe3730000, +0x000a0000, +0x1a000000, +0x00050004, +0xe1500002, +0x00000000, +0xb24c6b80, +0x00000000, +0xa24c6b80, +0x00000000, +0xd24c6b80, +0x00000000, +0xc24c6b80, +0x00000000, +0x0006000b, +0xe5d6c000, +0xe496e004, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x0006000d, +0x8a000000, +0x00050034, +0xe3730000, +0x000a0000, +0x31a0a00c, +0x3a000000, +0x00050005, +0xe1a00002, +0xe1a0b00a, +0xe1a0a00c, +0xeb000000, +0x00030024, +0xe1a02000, +0xe1a03001, +0xe1cb00d0, +0xea000000, +0x00050005, +0x0006000e, +0x8a000000, +0x00050034, +0xe1a0a00c, +0xeb000000, +0x00030024, +0xe1cb20d0, +0x0006000f, +0xeb000000, +0x00030025, +0x00000000, +0x324a6b80, +0x00000000, +0x224a6b80, +0x00000000, +0x924a6b80, +0x00000000, +0x824a6b80, +0x00000000, +0xea000000, +0x0005000b, +0x00000000, +0xe1a0b18b, +0xe1aa00d4, +0xe1d6c0b2, +0xe1ab20d4, +0xe2866004, +0xe086c10c, +0xe3710000, +0x000a0000, +0x93730000, +0x000a0000, +0x00000000, +0x9a000000, +0x0005009b, +0x00000000, +0x9a000000, +0x0005009c, +0x00000000, +0xe1510003, +0x1a000000, +0x00050002, +0xe3710000, +0x000a0000, +0x2a000000, +0x00050001, +0xe1500002, +0x00000000, +0x1a000000, +0x00050003, +0x0006000b, +0xe24c6b80, +0x0006000c, +0xe5d6c000, +0xe496e004, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x0006000d, +0xe3710000, +0x000a0000, +0x8a000000, +0x0005000c, +0x00000000, +0x0a000000, +0x00050001, +0xe3710000, +0x000a0000, +0x8a000000, +0x00050002, +0x00000000, +0xe510a000, +0x000d8180, +0xe35a0000, +0x00000000, +0x0a000000, +0x0005000c, +0x00000000, +0x0a000000, +0x00050002, +0x00000000, +0xe55aa000, +0x000d8180, +0xe3a03000, +0x000a0000, +0xe1a01000, +0xe31a0000, +0x000a0000, +0x0a000000, +0x00050039, +0x00000000, +0x0006000c, +0xe24c6b80, +0x0006000b, +0xe5d6c000, +0xe496e004, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x00000000, +0xe1e0b00b, +0xe18400da, +0xe1d6c0b2, +0xe795210b, +0xe2866004, +0xe086c10c, +0xe3710000, +0x000a0000, +0x01500002, +0x00000000, +0x024c6b80, +0x00000000, +0x124c6b80, +0x00000000, +0xe5d6c000, +0xe496e004, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x00000000, +0xe1a0b18b, +0xe1aa00d4, +0xe1d6c0b2, +0xe1ab20d5, +0xe2866004, +0xe086c10c, +0x00000000, +0x0006009b, +0x00000000, +0x0006009c, +0x00000000, +0xe3710000, +0x000a0000, +0x1a000000, +0x00050003, +0xe3730000, +0x000a0000, +0x1a000000, +0x00050004, +0xe1500002, +0x00000000, +0x024c6b80, +0x00000000, +0x124c6b80, +0x00000000, +0x0006000b, +0xe5d6c000, +0xe496e004, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x0006000d, +0x00000000, +0x824c6b80, +0x00000000, +0x8a000000, +0x0005000b, +0xe3730000, +0x000a0000, +0x31a0a00c, +0x3a000000, +0x00050005, +0xe1a00002, +0xe1a0b00a, +0x0006000e, +0xe1a0a00c, +0xeb000000, +0x00030024, +0xe1cb20d0, +0x0006000f, +0xeb000000, +0x0003002e, +0x00000000, +0x024a6b80, +0x00000000, +0x124a6b80, +0x00000000, +0xea000000, +0x0005000b, +0x00000000, +0xe18400da, +0xe1d6c0b2, +0xe2866004, +0xe1e0b00b, +0xe086c10c, +0xe151000b, +0x00000000, +0x024c6b80, +0x00000000, +0x124c6b80, +0x00000000, +0xe5d6c000, +0xe496e004, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x00000000, +0xe084b18b, +0xe1d6c0b2, +0xe1cb00d0, +0xe2866004, +0xe086c10c, +0xe3710000, +0x000a0000, +0x00000000, +0x924c6b80, +0x00000000, +0x918400fa, +0x00000000, +0x824c6b80, +0x00000000, +0x818400fa, +0x00000000, +0xe5d6c000, +0xe496e004, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x00000000, +0xe1a0b18b, +0xe5d6c000, +0xe18400db, +0xe496e004, +0xe18400fa, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x00000000, +0xe084b18b, +0xe5d6c000, +0xe59b0004, +0xe084a00a, +0xe496e004, +0xe3700000, +0x000a0000, +0x93e01000, +0x000a0000, +0x83e01000, +0x000a0000, +0xe58a1004, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x00000000, +0xe1a0b18b, +0xe18400db, +0xe5d6c000, +0xe496e004, +0xe3710000, +0x000a0000, +0x8a000000, +0x0005003c, +0x12211480, +0x1a000000, +0x00050005, +0x02700000, +0x614f00d0, +0x00051809, +0x0006000f, +0xe18400fa, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x00040007, +0x00060013, +0x00020000, +0x00000000, +0x41e00000, +0x00000000, +0xe1a0b18b, +0xe18400db, +0xe3710000, +0x000a0000, +0x1a000000, +0x00050002, +0xe5100000, +0x000d8180, +0x0006000b, +0xe3e01000, +0x000a0000, +0xe5d6c000, +0xe496e004, +0xe18400fa, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x0006000c, +0xe3710000, +0x000a0000, +0x1a000000, +0x0005003e, +0xeb000000, +0x00030027, +0xea000000, +0x0005000b, +0x00000000, +0xe009caae, +0xe009b6ae, +0x00000000, +0xe18400dc, +0xe18520db, +0x00000000, +0xe18420dc, +0xe18500db, +0x00000000, +0xe18400dc, +0xe18420db, +0x00000000, +0xe5d6c000, +0x00000000, +0xe3730000, +0x000a0000, +0x03710000, +0x000a0000, +0x00000000, +0xe3710000, +0x000a0000, +0x03730000, +0x000a0000, +0x00000000, +0x1a000000, +0x00050005, +0xe0900002, +0x00000000, +0x6a000000, +0x0005003a, +0x00000000, +0x6a000000, +0x0005003b, +0x00000000, +0x6a000000, +0x0005003d, +0x00000000, +0x0006000e, +0xe496e004, +0xe18400fa, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x0006000f, +0x00000000, +0xe3730000, +0x000a0000, +0x33710000, +0x000a0000, +0x00000000, +0xe3710000, +0x000a0000, +0x33730000, +0x000a0000, +0x00000000, +0x2a000000, +0x0005003a, +0x00000000, +0xe3730000, +0x000a0000, +0x33710000, +0x000a0000, +0x00000000, +0xe3710000, +0x000a0000, +0x33730000, +0x000a0000, +0x00000000, +0x2a000000, +0x0005003b, +0x00000000, +0xe3730000, +0x000a0000, +0x33710000, +0x000a0000, +0x00000000, +0xe3710000, +0x000a0000, +0x33730000, +0x000a0000, +0x00000000, +0x2a000000, +0x0005003d, +0x00000000, +0xeb000000, +0x0003002c, +0xe5d6c000, +0xea000000, +0x0005000e, +0x00000000, +0xe009caae, +0xe009b6ae, +0x00000000, +0xe18400dc, +0xe18520db, +0x00000000, +0xe18420dc, +0xe18500db, +0x00000000, +0xe18400dc, +0xe18420db, +0x00000000, +0xe5d6c000, +0x00000000, +0xe3730000, +0x000a0000, +0x03710000, +0x000a0000, +0x00000000, +0xe3710000, +0x000a0000, +0x03730000, +0x000a0000, +0x00000000, +0x1a000000, +0x00050005, +0xe0500002, +0x00000000, +0x6a000000, +0x0005003a, +0x00000000, +0x6a000000, +0x0005003b, +0x00000000, +0x6a000000, +0x0005003d, +0x00000000, +0x0006000e, +0xe496e004, +0xe18400fa, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x0006000f, +0x00000000, +0xe3730000, +0x000a0000, +0x33710000, +0x000a0000, +0x00000000, +0xe3710000, +0x000a0000, +0x33730000, +0x000a0000, +0x00000000, +0x2a000000, +0x0005003a, +0x00000000, +0xe3730000, +0x000a0000, +0x33710000, +0x000a0000, +0x00000000, +0xe3710000, +0x000a0000, +0x33730000, +0x000a0000, +0x00000000, +0x2a000000, +0x0005003b, +0x00000000, +0xe3730000, +0x000a0000, +0x33710000, +0x000a0000, +0x00000000, +0xe3710000, +0x000a0000, +0x33730000, +0x000a0000, +0x00000000, +0x2a000000, +0x0005003d, +0x00000000, +0xeb000000, +0x0003002d, +0xe5d6c000, +0xea000000, +0x0005000e, +0x00000000, +0xe009caae, +0xe009b6ae, +0x00000000, +0xe18400dc, +0xe18520db, +0x00000000, +0xe18420dc, +0xe18500db, +0x00000000, +0xe18400dc, +0xe18420db, +0x00000000, +0xe5d6c000, +0x00000000, +0xe3730000, +0x000a0000, +0x03710000, +0x000a0000, +0x00000000, +0xe3710000, +0x000a0000, +0x03730000, +0x000a0000, +0x00000000, +0x1a000000, +0x00050005, +0xe0cb0092, +0xe15b0fc0, +0x00000000, +0x1a000000, +0x0005003a, +0x00000000, +0x1a000000, +0x0005003b, +0x00000000, +0x1a000000, +0x0005003d, +0x00000000, +0x0006000e, +0xe496e004, +0xe18400fa, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x0006000f, +0x00000000, +0xe3730000, +0x000a0000, +0x33710000, +0x000a0000, +0x00000000, +0xe3710000, +0x000a0000, +0x33730000, +0x000a0000, +0x00000000, +0x2a000000, +0x0005003a, +0x00000000, +0xe3730000, +0x000a0000, +0x33710000, +0x000a0000, +0x00000000, +0xe3710000, +0x000a0000, +0x33730000, +0x000a0000, +0x00000000, +0x2a000000, +0x0005003b, +0x00000000, +0xe3730000, +0x000a0000, +0x33710000, +0x000a0000, +0x00000000, +0xe3710000, +0x000a0000, +0x33730000, +0x000a0000, +0x00000000, +0x2a000000, +0x0005003d, +0x00000000, +0xeb000000, +0x00030020, +0xe5d6c000, +0xea000000, +0x0005000e, +0x00000000, +0xe009caae, +0xe009b6ae, +0x00000000, +0xe18400dc, +0xe18520db, +0x00000000, +0xe18420dc, +0xe18500db, +0x00000000, +0xe18400dc, +0xe18420db, +0x00000000, +0xe3730000, +0x000a0000, +0x33710000, +0x000a0000, +0x00000000, +0xe3710000, +0x000a0000, +0x33730000, +0x000a0000, +0x00000000, +0x2a000000, +0x0005003a, +0x00000000, +0xe3730000, +0x000a0000, +0x33710000, +0x000a0000, +0x00000000, +0xe3710000, +0x000a0000, +0x33730000, +0x000a0000, +0x00000000, +0x2a000000, +0x0005003b, +0x00000000, +0xe3730000, +0x000a0000, +0x33710000, +0x000a0000, +0x00000000, +0xe3710000, +0x000a0000, +0x33730000, +0x000a0000, +0x00000000, +0x2a000000, +0x0005003d, +0x00000000, +0xeb000000, +0x0003002b, +0xe5d6c000, +0xe496e004, +0xe18400fa, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x00000000, +0xe009caae, +0xe009b6ae, +0x00000000, +0xe18400dc, +0xe18520db, +0x00000000, +0xe18420dc, +0xe18500db, +0x00000000, +0xe18400dc, +0xe18420db, +0x00000000, +0xe3730000, +0x000a0000, +0x03710000, +0x000a0000, +0x00000000, +0xe3710000, +0x000a0000, +0x03730000, +0x000a0000, +0x00000000, +0x1a000000, +0x00050005, +0xe1b01002, +0x00000000, +0x0a000000, +0x0005003a, +0x00000000, +0x0a000000, +0x0005003b, +0x00000000, +0x0a000000, +0x0005003d, +0x00000000, +0xeb000000, +0x00050096, +0xe3e01000, +0x000a0000, +0x0006000e, +0xe5d6c000, +0xe496e004, +0xe18400fa, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x0006000f, +0x00000000, +0xe3730000, +0x000a0000, +0x33710000, +0x000a0000, +0x00000000, +0xe3710000, +0x000a0000, +0x33730000, +0x000a0000, +0x00000000, +0x2a000000, +0x0005003a, +0x00000000, +0xe3730000, +0x000a0000, +0x33710000, +0x000a0000, +0x00000000, +0xe3710000, +0x000a0000, +0x33730000, +0x000a0000, +0x00000000, +0x2a000000, +0x0005003b, +0x00000000, +0xe3730000, +0x000a0000, +0x33710000, +0x000a0000, +0x00000000, +0xe3710000, +0x000a0000, +0x33730000, +0x000a0000, +0x00000000, +0x2a000000, +0x0005003d, +0x00000000, +0xeb000000, +0x00050095, +0xea000000, +0x0005000e, +0x00000000, +0xe009caae, +0xe009b6ae, +0x00000000, +0xe18400dc, +0xe18520db, +0x00000000, +0xe18420dc, +0xe18500db, +0x00000000, +0xe18400dc, +0xe18420db, +0x00000000, +0xe3730000, +0x000a0000, +0x33710000, +0x000a0000, +0x00000000, +0xe3710000, +0x000a0000, +0x33730000, +0x000a0000, +0x00000000, +0x2a000000, +0x0005003a, +0x00000000, +0xe3730000, +0x000a0000, +0x33710000, +0x000a0000, +0x00000000, +0xe3710000, +0x000a0000, +0x33730000, +0x000a0000, +0x00000000, +0x2a000000, +0x0005003b, +0x00000000, +0xe3730000, +0x000a0000, +0x33710000, +0x000a0000, +0x00000000, +0xe3710000, +0x000a0000, +0x33730000, +0x000a0000, +0x00000000, +0x2a000000, +0x0005003d, +0x00000000, +0xeb000000, +0x0003001d, +0xe5d6c000, +0xe496e004, +0xe18400fa, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x00000000, +0xe009baae, +0xe009c6ae, +0xe04c200b, +0xe5084000, +0x000d8180, +0xe084100c, +0x0006002a, +0xe1a00008, +0xe58d6008, +0xe1a021a2, +0xeb000000, +0x0003002f, +0xe5184000, +0x000d8180, +0xe3500000, +0x1a000000, +0x00050035, +0xe18420db, +0xe5d6c000, +0xe496e004, +0xe18420fa, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x00000000, +0xe1e0b00b, +0xe5d6c000, +0xe795010b, +0xe3e01000, +0x000a0000, +0xe496e004, +0xe18400fa, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x00000000, +0xe1e0b00b, +0xe5d6c000, +0xe795010b, +0xe3e01000, +0x000a0000, +0xe496e004, +0xe18400fa, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x00000000, +0xe1a0084e, +0xe3e01000, +0x000a0000, +0xe5d6c000, +0xe496e004, +0xe18400fa, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x00000000, +0xe1a0b18b, +0xe5d6c000, +0xe18500db, +0xe496e004, +0xe18400fa, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x00000000, +0xe084a00a, +0xe1e0b00b, +0xe5d6c000, +0xe496e004, +0xe58ab004, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x00000000, +0xe084a00a, +0xe084b18b, +0xe3e00000, +0x000a0000, +0xe58a0004, +0xe28aa008, +0x0006000b, +0xe58a0004, +0xe15a000b, +0xe28aa008, +0xba000000, +0x0005000b, +0xe5d6c000, +0xe496e004, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x00000000, +0xe5141008, +0xe1a0b10b, +0xe28bb000, +0x000a0000, +0xe791100b, +0xe5111000, +0x000d8180, +0xe1c120d0, +0xe5d6c000, +0xe496e004, +0xe18420fa, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x00000000, +0xe5141008, +0xe1a0a0aa, +0xe28aa000, +0x000a0000, +0xe1a0b18b, +0xe791100a, +0xe18420db, +0xe551c000, +0x000d8180, +0xe551b000, +0x000d8180, +0xe5111000, +0x000d8180, +0xe31c0000, +0x000a0000, +0xe283c000, +0x000a0000, +0x135b0000, +0xe1c120f0, +0x1a000000, +0x00050002, +0x0006000b, +0xe5d6c000, +0xe496e004, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x0006000c, +0xe37c0000, +0x000a0000, +0x8552b000, +0x000d8180, +0x9a000000, +0x0005000b, +0xe2470000, +0x000a0000, +0xe31b0000, +0x000a0000, +0x1b000000, +0x00030030, +0xea000000, +0x0005000b, +0x00000000, +0xe5141008, +0xe1a0a0aa, +0xe28aa000, +0x000a0000, +0xe1e0b00b, +0xe791100a, +0xe795210b, +0xe3e03000, +0x000a0000, +0xe551c000, +0x000d8180, +0xe5111000, +0x000d8180, +0xe551b000, +0x000d8180, +0xe31c0000, +0x000a0000, +0xe552c000, +0x000d8180, +0xe1c120f0, +0x1a000000, +0x00050002, +0x0006000b, +0xe5d6c000, +0xe496e004, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x0006000c, +0xe31c0000, +0x000a0000, +0x135b0000, +0xe2470000, +0x000a0000, +0x1b000000, +0x00030030, +0xea000000, +0x0005000b, +0x00000000, +0xe5141008, +0xe1a0a0aa, +0xe28aa000, +0x000a0000, +0xe1a0b18b, +0xe791100a, +0xe18520db, +0xe5111000, +0x000d8180, +0xe5d6c000, +0xe496e004, +0xe1c120f0, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x00000000, +0xe5141008, +0xe1a0a0aa, +0xe28aa000, +0x000a0000, +0xe791100a, +0xe1e0b00b, +0xe5111000, +0x000d8180, +0xe5d6c000, +0xe496e004, +0xe581b004, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x00000000, +0xe5182000, +0x000d8180, +0xe086b10b, +0xe5084000, +0x000d8180, +0xe3520000, +0xe24b6b80, +0x0a000000, +0x00050001, +0xe1a00008, +0xe084100a, +0xeb000000, +0x00030031, +0xe5184000, +0x000d8180, +0x0006000b, +0xe5d6c000, +0xe496e004, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x00000000, +0xe1e0b00b, +0xe5084000, +0x000d8180, +0xe795110b, +0xe58d6008, +0xe5142008, +0xe1a00008, +0xeb000000, +0x00030032, +0xe5184000, +0x000d8180, +0xe3e01000, +0x000a0000, +0xe5d6c000, +0xe496e004, +0xe18400fa, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x00000000, +0xe1e0b00b, +0x00000000, +0xe5172000, +0x000d8180, +0xe5173000, +0x000d8180, +0xe5084000, +0x000d8180, +0xe58d6008, +0xe1520003, +0xe1a00008, +0x2a000000, +0x00050005, +0x0006000b, +0x00000000, +0xe1a01a8b, +0xe1a025ab, +0xe1a0bac1, +0xe1a01aa1, +0xe37b0001, +0x02811002, +0xeb000000, +0x00030033, +0x00000000, +0xe795110b, +0xeb000000, +0x00030034, +0x00000000, +0xe5184000, +0x000d8180, +0xe3e01000, +0x000a0000, +0xe5d6c000, +0xe496e004, +0xe18400fa, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x0006000f, +0xeb000000, +0x00030035, +0xe1a00008, +0xea000000, +0x0005000b, +0x00000000, +0xe5141008, +0xe1e0b00b, +0xe5110000, +0x000d8180, +0xe795b10b, +0x00000000, +0xea000000, +0x0005009d, +0x00000000, +0xea000000, +0x0005009e, +0x00000000, +0xe009caae, +0xe009b6ae, +0xe18400dc, +0xe18420db, +0xe3710000, +0x000a0000, +0x1a000000, +0x0005002f, +0xe3730000, +0x000a0000, +0x05103000, +0x000d8180, +0x05101000, +0x000d8180, +0x1a000000, +0x00050009, +0xe0833182, +0xe1520001, +0x31c320d0, +0x2a000000, +0x0005002f, +0xe5d6c000, +0xe3730000, +0x000a0000, +0x0a000000, +0x00050005, +0x0006000b, +0xe496e004, +0xe18420fa, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x0006000f, +0xe5101000, +0x000d8180, +0xe3510000, +0x0a000000, +0x0005000b, +0xe5511000, +0x000d8180, +0xe3110000, +0x000a0000, +0x1a000000, +0x0005000b, +0xe009caae, +0xea000000, +0x0005002f, +0x00060013, +0xe3730000, +0x000a0000, +0x01a0b002, +0x0a000000, +0x0005009d, +0xea000000, +0x0005002f, +0x00000000, +0xe009caae, +0xe20bb0ff, +0xe18400dc, +0xe1e0b00b, +0xe795b10b, +0xe3710000, +0x000a0000, +0x1a000000, +0x0005002c, +0x0006009d, +0xe5102000, +0x000d8180, +0xe51b3000, +0x000d8180, +0xe510e000, +0x000d8180, +0xe1a0c000, +0xe0022003, +0xe0822082, +0xe08ee182, +0x0006000b, +0xe14e00d0, +0x000c8100, +0xe14e20d0, +0x000c8100, +0xe51ee000, +0x000d8180, +0xe150000b, +0x03710000, +0x000a0000, +0x1a000000, +0x00050004, +0xe3730000, +0x000a0000, +0x0a000000, +0x00050005, +0x0006000d, +0xe5d6c000, +0xe496e004, +0xe18420fa, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x0006000e, +0xe35e0000, +0x1a000000, +0x0005000b, +0x0006000f, +0xe51c0000, +0x000d8180, +0xe3a02000, +0xe3e03000, +0x000a0000, +0xe3500000, +0x0a000000, +0x0005000d, +0xe5501000, +0x000d8180, +0x00000000, +0xe3110000, +0x000a0000, +0x1a000000, +0x0005000d, +0xea000000, +0x0005002d, +0x00000000, +0xe009caae, +0xe20bb0ff, +0xe18400dc, +0xe3710000, +0x000a0000, +0x1a000000, +0x0005002e, +0xe5102000, +0x000d8180, +0xe5103000, +0x000d8180, +0xe1a0118b, +0xe15b0002, +0x318320d1, +0x2a000000, +0x0005002e, +0xe5d6c000, +0xe3730000, +0x000a0000, +0x0a000000, +0x00050005, +0x0006000b, +0xe496e004, +0xe18420fa, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x0006000f, +0xe5101000, +0x000d8180, +0xe3510000, +0x0a000000, +0x0005000b, +0xe5511000, +0x000d8180, +0xe3110000, +0x000a0000, +0x1a000000, +0x0005000b, +0xea000000, +0x0005002e, +0x00000000, +0xe009caae, +0xe009b6ae, +0xe18400dc, +0xe18420db, +0xe3710000, +0x000a0000, +0x1a000000, +0x00050033, +0xe3730000, +0x000a0000, +0x05101000, +0x000d8180, +0x05103000, +0x000d8180, +0x1a000000, +0x00050009, +0xe0811182, +0xe1520003, +0x3591e004, +0x2a000000, +0x00050033, +0xe5d6c000, +0xe37e0000, +0x000a0000, +0xe550e000, +0x000d8180, +0xe18420da, +0x0a000000, +0x00050005, +0x0006000b, +0xe31e0000, +0x000a0000, +0xe1c120f0, +0x1a000000, +0x00050007, +0x0006000c, +0xe496e004, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x0006000f, +0xe510a000, +0x000d8180, +0xe35a0000, +0x0a000000, +0x0005000b, +0xe55aa000, +0x000d8180, +0xe31a0000, +0x000a0000, +0x1a000000, +0x0005000b, +0xe516e004, +0xe009caae, +0xe009a2ae, +0xea000000, +0x00050033, +0x00060011, +0x00000000, +0xe5172000, +0x000d8180, +0xe3cee000, +0x000a0000, +0xe5070000, +0x000d8180, +0xe540e000, +0x000d8180, +0xe5002000, +0x000d8180, +0xea000000, +0x0005000c, +0x00060013, +0xe3730000, +0x000a0000, +0x01a0b002, +0x0a000000, +0x0005009e, +0xea000000, +0x00050033, +0x00000000, +0xe009caae, +0xe20bb0ff, +0xe18400dc, +0xe1e0b00b, +0xe795b10b, +0xe3710000, +0x000a0000, +0x1a000000, +0x00050030, +0x0006009e, +0xe5102000, +0x000d8180, +0xe51b3000, +0x000d8180, +0xe510e000, +0x000d8180, +0xe1a0c000, +0xe0022003, +0xe0822082, +0xe3a03000, +0xe08ee182, +0xe54c3000, +0x000d8180, +0x0006000b, +0xe14e00d0, +0x000c8100, +0xe51e3000, +0x000d8180, +0xe51e2000, +0x000d8180, +0xe150000b, +0x03710000, +0x000a0000, +0x1a000000, +0x00050005, +0xe55c1000, +0x000d8180, +0xe3730000, +0x000a0000, +0xe18420da, +0x0a000000, +0x00050004, +0x0006000c, +0xe3110000, +0x000a0000, +0xe14e20f0, +0x000c8100, +0x1a000000, +0x00050007, +0x0006000d, +0xe5d6c000, +0xe496e004, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x0006000e, +0x00000000, +0xe51c0000, +0x000d8180, +0xe3500000, +0x0a000000, +0x0005000c, +0xe5500000, +0x000d8180, +0xe3100000, +0x000a0000, +0x1a000000, +0x0005000c, +0xea000000, +0x00050031, +0x0006000f, +0xe1b0e002, +0x1a000000, +0x0005000b, +0xe51c0000, +0x000d8180, +0xe1a0200d, +0xe58d6008, +0xe3500000, +0xe5084000, +0x000d8180, +0x15501000, +0x000d8180, +0xe1a00008, +0x0a000000, +0x00050006, +0xe3110000, +0x000a0000, +0x0a000000, +0x00050031, +0x00060010, +0xe3e03000, +0x000a0000, +0xe58db000, +0xe1a0100c, +0xe58d3004, +0xeb000000, +0x00030036, +0xe5184000, +0x000d8180, +0xe18420da, +0xe1c020f0, +0xea000000, +0x0005000d, +0x00060011, +0xe5172000, +0x000d8180, +0xe3c11000, +0x000a0000, +0x00000000, +0xe507c000, +0x000d8180, +0xe54c1000, +0x000d8180, +0xe50c2000, +0x000d8180, +0xea000000, +0x0005000d, +0x00000000, +0xe009caae, +0xe20bb0ff, +0xe18400dc, +0xe3710000, +0x000a0000, +0x1a000000, +0x00050032, +0xe5102000, +0x000d8180, +0xe510c000, +0x000d8180, +0xe1a0118b, +0xe15b0002, +0x31a120dc, +0x2a000000, +0x00050032, +0xe5d6c000, +0xe3730000, +0x000a0000, +0xe550e000, +0x000d8180, +0xe18420da, +0x0a000000, +0x00050005, +0x0006000b, +0xe31e0000, +0x000a0000, +0xe1c120f0, +0x1a000000, +0x00050007, +0x0006000c, +0xe496e004, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x0006000f, +0xe510a000, +0x000d8180, +0xe35a0000, +0x0a000000, +0x0005000b, +0xe55aa000, +0x000d8180, +0xe31a0000, +0x000a0000, +0x1a000000, +0x0005000b, +0xe516e004, +0xea000000, +0x00050032, +0x00060011, +0xe5172000, +0x000d8180, +0xe3cee000, +0x000a0000, +0x00000000, +0xe5070000, +0x000d8180, +0xe540e000, +0x000d8180, +0xe5002000, +0x000d8180, +0xea000000, +0x0005000c, +0x00000000, +0xe084a00a, +0x0006000b, +0xe59dc004, +0xe51a1008, +0xe795018b, +0xe25cc008, +0xe5113000, +0x000d8180, +0x0a000000, +0x00050004, +0xe08021ac, +0xe1520003, +0xe5113000, +0x000d8180, +0xe08ac00c, +0x8a000000, +0x00050005, +0xe083e180, +0xe5510000, +0x000d8180, +0x0006000d, +0xe0ca20d8, +0xe0ce20f8, +0xe15a000c, +0x3a000000, +0x0005000d, +0xe3100000, +0x000a0000, +0x1a000000, +0x00050007, +0x0006000e, +0xe5d6c000, +0xe496e004, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x0006000f, +0xe5084000, +0x000d8180, +0xe1a00008, +0xe58d6008, +0xeb000000, +0x00030037, +0xea000000, +0x0005000b, +0x00060011, +0xe5171000, +0x000d8180, +0xe3c00000, +0x000a0000, +0xe507c000, +0x000d8180, +0xe54c0000, +0x000d8180, +0xe50c1000, +0x000d8180, +0xea000000, +0x0005000e, +0x00000000, +0xe59d0004, +0xe009b6ae, +0xe08bb000, +0xea000000, +0x0005009f, +0x00000000, +0xe009b6ae, +0x0006009f, +0xe1a0c004, +0xe1a420da, +0xe24bb008, +0xe2844008, +0xe3730000, +0x000a0000, +0x1a000000, +0x00050025, +0xe5046004, +0xe5126000, +0x000d8180, +0xe5d6c000, +0xe496e004, +0xe797c10c, +0xe009a2ae, +0xe08aa004, +0xe12fff1c, +0x00000000, +0xe59d0004, +0xe080b18b, +0xea000000, +0x000500a0, +0x00000000, +0xe1a0b18b, +0x000600a0, +0xe1aa20d4, +0xe24bb008, +0xe28aa008, +0xe3730000, +0x000a0000, +0x1a000000, +0x0005003f, +0xe5146004, +0x00060040, +0xe3a0c000, +0xe5523000, +0x000d8180, +0xe3160000, +0x000a0000, +0x1a000000, +0x00050007, +0x0006000b, +0xe5042008, +0xe35b0000, +0x0a000000, +0x00050003, +0x0006000c, +0xe18a00dc, +0xe28ce008, +0xe15e000b, +0xe18400fc, +0xe1a0c00e, +0x1a000000, +0x0005000c, +0x0006000d, +0xe3530001, +0x8a000000, +0x00050005, +0x0006000e, +0xe5126000, +0x000d8180, +0xe5d6c000, +0xe496e004, +0xe797c10c, +0xe009a2ae, +0xe08aa004, +0xe12fff1c, +0x0006000f, +0xe516e004, +0xe009a2ae, +0xe044000a, +0xe5100010, +0xe5100000, +0x000d8180, +0xe5105000, +0x000d8180, +0xea000000, +0x0005000e, +0x00060011, +0xe2266000, +0x000a0000, +0xe3160000, +0x000a0000, +0x00000000, +0x13a03000, +0x1a000000, +0x0005000b, +0xe0444006, +0xe5146004, +0xe3160000, +0x000a0000, +0x13a03000, +0xea000000, +0x0005000b, +0x00000000, +0xe084a00a, +0xe1a0c004, +0xe14a21d0, +0xe14a00d8, +0xe28a4008, +0xe1ca20f8, +0xe1ca01f0, +0xe14a21d8, +0xe3a0b010, +0xe1ca20f0, +0xe3730000, +0x000a0000, +0x1a000000, +0x00050025, +0xe5046004, +0xe5126000, +0x000d8180, +0xe5d6c000, +0xe496e004, +0xe797c10c, +0xe009a2ae, +0xe08aa004, +0xe12fff1c, +0x00000000, +0xe084a00a, +0xe51ac010, +0xe51a0008, +0xe51ce000, +0x000d8180, +0xe51c1000, +0x000d8180, +0xe2866004, +0x0006000b, +0xe050b00e, +0xe0812180, +0x2a000000, +0x00050005, +0xe1c220d0, +0xe3730000, +0x000a0000, +0x02800001, +0x0a000000, +0x0005000b, +0xe156b0b2, +0xe3e01000, +0x000a0000, +0xe1ca20f8, +0xe086b10b, +0xe280c001, +0xe1ca00f0, +0xe24b6b80, +0xe50ac008, +0x0006000d, +0xe5d6c000, +0xe496e004, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x0006000f, +0xe51c3000, +0x000d8180, +0xe51cc000, +0x000d8180, +0x00060010, +0xe08b008b, +0xe15b0003, +0xe08c2180, +0x8a000000, +0x0005000d, +0xe14200d0, +0x000c8100, +0xe3710000, +0x000a0000, +0xe28bb001, +0x0a000000, +0x00050010, +0xe156c0b2, +0xe08bb00e, +0xe14220d0, +0x000c8100, +0xe50ab008, +0xe1ca00f8, +0xe086b10c, +0xe24b6b80, +0xe1ca20f0, +0xea000000, +0x0005000d, +0x00000000, +0xe084a00a, +0xe086b10b, +0xe14a01d8, +0xe51a200c, +0xe51a3004, +0xe3710000, +0x000a0000, +0x05500000, +0x000d8180, +0x03720000, +0x000a0000, +0x03730000, +0x000a0000, +0x03500000, +0x000a0000, +0x024b6b80, +0x1a000000, +0x00050005, +0xe5d6c000, +0xe496e004, +0xe3a00000, +0xe50a0008, +0x0006000b, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x0006000f, +0xe3a00000, +0x000a0000, +0xe3a0c000, +0x000a0000, +0xe5460004, +0xe24b6b80, +0xe5c6c000, +0xe496e004, +0xea000000, +0x0005000b, +0x00000000, +0xe009caae, +0xe009b6ae, +0xe5140004, +0xe084b00b, +0xe084a00a, +0xe28bb000, +0x000a0000, +0xe08a300c, +0xe2442008, +0xe04bb000, +0xe35c0000, +0xe042000b, +0x0a000000, +0x00050005, +0xe2433010, +0x0006000b, +0xe15b0002, +0x30cb00d8, +0x23e01000, +0x000a0000, +0xe15a0003, +0xe0ca00f8, +0x3a000000, +0x0005000b, +0x0006000c, +0xe5d6c000, +0xe496e004, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x0006000f, +0xe5183000, +0x000d8180, +0xe3500000, +0xd3a0c008, +0xc280c008, +0xe08a1000, +0xe58dc004, +0xda000000, +0x0005000c, +0xe1510003, +0x8a000000, +0x00050007, +0x00060010, +0xe0cb00d8, +0xe0ca00f8, +0xe15b0002, +0x3a000000, +0x00050010, +0xea000000, +0x0005000c, +0x00060011, +0xe1a011a0, +0xe508a000, +0x000d8180, +0xe1a00008, +0xe5084000, +0x000d8180, +0xe04bb004, +0xe58d6008, +0xe04aa004, +0xeb000000, +0x00030000, +0xe5184000, +0x000d8180, +0xe084a00a, +0xe084b00b, +0xe2442008, +0xea000000, +0x00050010, +0x00000000, +0xe59d0004, +0xe5146004, +0xe084a00a, +0xe080b18b, +0xea000000, +0x000500a1, +0x00000000, +0xe5146004, +0xe1a0b18b, +0xe084a00a, +0x000600a1, +0xe58db004, +0x0006000b, +0xe2160000, +0x000a0000, +0xe2261000, +0x000a0000, +0x1a000000, +0x000500a2, +0x00060017, +0xe516e004, +0xe25b3008, +0xe2442008, +0x0a000000, +0x00050003, +0x0006000c, +0xe0ca00d8, +0xe2844008, +0xe2533008, +0xe14401f0, +0x1a000000, +0x0005000c, +0x0006000d, +0xe009a2ae, +0xe042300a, +0xe009caae, +0xe5130008, +0x0006000f, +0xe15c000b, +0x8a000000, +0x00050006, +0xe1a04003, +0xe5101000, +0x000d8180, +0xe5d6c000, +0xe496e004, +0xe5115000, +0x000d8180, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x00060010, +0xe3e01000, +0x000a0000, +0xe2844008, +0xe28bb008, +0xe504100c, +0xea000000, +0x0005000f, +0x000600a3, +0xe084a00a, +0x000600a2, +0xe3110000, +0x000a0000, +0x1a000000, +0x00050018, +0xe0444001, +0xe5146004, +0xea000000, +0x0005000b, +0x00000000, +0xe5146004, +0xe1a0b18b, +0xe58db004, +0xe2160000, +0x000a0000, +0xe2261000, +0x000a0000, +0x0516e004, +0x1a000000, +0x000500a3, +0x00000000, +0xe18400da, +0x00000000, +0xe2443008, +0xe009a2ae, +0x00000000, +0xe1c300f0, +0x00000000, +0xe043400a, +0xe009caae, +0xe5140008, +0x0006000f, +0xe15c000b, +0x8a000000, +0x00050006, +0xe5101000, +0x000d8180, +0xe5d6c000, +0xe496e004, +0xe5115000, +0x000d8180, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x00060010, +0xe2431004, +0xe3e02000, +0x000a0000, +0xe781200b, +0xe28bb008, +0xea000000, +0x0005000f, +0x00000000, +0xe7f001f0, +0x00000000, +0xe1aa00d4, +0xe086b10b, +0x00000000, +0xe1ca20d8, +0xe3710000, +0x000a0000, +0xe59ac014, +0x1a000000, +0x00050005, +0xe3730000, +0x000a0000, +0xe59a3010, +0x037c0000, +0x000a0000, +0x1a000000, +0x00050041, +0xe3530000, +0xba000000, +0x00050004, +0xe1500002, +0x00000000, +0xe1ca21d0, +0xe3710000, +0x000a0000, +0x1a000000, +0x00050005, +0xe0900002, +0xe59a3008, +0x00000000, +0x6286bb80, +0x00000000, +0xe7f001f0, +0x00000000, +0xe3520000, +0xba000000, +0x00050004, +0xe1500003, +0x00000000, +0x0006000b, +0x00000000, +0xc24b6b80, +0x00000000, +0xe7f001f0, +0x00000000, +0xd24b6b80, +0x00000000, +0xe7f001f0, +0x00000000, +0xe1ca00f0, +0x00000000, +0xe5d6c000, +0xe496e004, +0xe1ca01f8, +0x0006000d, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x0006000e, +0x00000000, +0xe1520000, +0x00000000, +0xe1530000, +0x00000000, +0xea000000, +0x0005000b, +0x0006000f, +0x00000000, +0x33730000, +0x000a0000, +0x337c0000, +0x000a0000, +0x2a000000, +0x00050041, +0xe35c0000, +0xe1ca00f0, +0xe1ca01f8, +0xba000000, +0x00050008, +0x00000000, +0xe3530000, +0xba000000, +0x00050008, +0xeb000000, +0x0003002c, +0xe1ca00f0, +0xe1ca20d8, +0xe1ca01f8, +0x00000000, +0x00060010, +0xeb000000, +0x00030025, +0x00000000, +0x824b6b80, +0x00000000, +0xe7f001f0, +0x00000000, +0x924b6b80, +0x00000000, +0xe7f001f0, +0x00000000, +0xe5d6c000, +0xe496e004, +0xea000000, +0x0005000d, +0x00060012, +0x00000000, +0xeb000000, +0x0003002c, +0xe1ca00f0, +0xe1ca01f8, +0x00000000, +0xe1a02000, +0xe1a03001, +0xe1ca00d8, +0xea000000, +0x00050010, +0x00000000, +0xe7f001f0, +0x00000000, +0xe1aa00d4, +0x00000000, +0xe7f001f0, +0x00000000, +0xe086b10b, +0xe3710000, +0x000a0000, +0x124b6b80, +0x114a00f8, +0x00000000, +0xe5d6c000, +0xe496e004, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x00000000, +0xe7f001f0, +0x00000000, +0xe5d6c000, +0xe496e004, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x00000000, +0xe7f001f0, +0x00000000, +0xe086b10b, +0xe24b6b80, +0xe5d6c000, +0xe496e004, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x00000000, +0xe7f001f0, +0x00000000, +0xe5180000, +0x000d8180, +0xe5561000, +0x000d8180, +0xe5165000, +0x000d8180, +0xe15a0000, +0x8a000000, +0x00050020, +0xe5d6c000, +0xe496e004, +0x0006000c, +0xe15b0181, +0xe3e03000, +0x000a0000, +0xda000000, +0x00050003, +0x00000000, +0xe7f001f0, +0x00000000, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x00000000, +0x0006000d, +0xe18420fb, +0xe28bb008, +0xea000000, +0x0005000c, +0x00000000, +0xe7f001f0, +0x00000000, +0xe5180000, +0x000d8180, +0xe084300b, +0xe08aa00b, +0xe5832000, +0xe28b1000, +0x000a0000, +0xe5165000, +0x000d8180, +0xe15a0000, +0xe5831004, +0x2a000000, +0x00050020, +0xe556c000, +0x000d8180, +0xe1a0a004, +0xe1a0b003, +0xe35c0000, +0xe2834008, +0x0a000000, +0x00050003, +0xe3e02000, +0x000a0000, +0x0006000b, +0xe15a000b, +0x30ca00d8, +0x21a01002, +0x350a2004, +0x0006000c, +0xe25cc001, +0xe1e300f8, +0x1a000000, +0x0005000b, +0x0006000d, +0xe5d6c000, +0xe496e004, +0xe797c10c, +0xe009a2ae, +0xe1a0b82e, +0xe12fff1c, +0x00000000, +0xe5123000, +0x000d8180, +0x00000000, +0xe5173000, +0x000d8180, +0x00000000, +0xe08a100b, +0xe5180000, +0x000d8180, +0xe084b00b, +0xe5084000, +0x000d8180, +0xe1510000, +0xe508b000, +0x000d8180, +0x00000000, +0xe5121000, +0x000d8180, +0x00000000, +0xe3e02000, +0x000a0000, +0xe1a00008, +0x8a000000, +0x0005001f, +0xe5072000, +0x000d8180, +0xe12fff33, +0xe5184000, +0x000d8180, +0xe3e02000, +0x000a0000, +0xe5181000, +0x000d8180, +0xe1a0b180, +0xe5072000, +0x000d8180, +0xe5146004, +0xe041a00b, +0xea000000, +0x00050016, +0x00000000, +0x00010000 +}; + +enum { + GLOB_vm_returnp, + GLOB_cont_dispatch, + GLOB_vm_returnc, + GLOB_BC_RET_Z, + GLOB_vm_return, + GLOB_vm_leave_cp, + GLOB_vm_leave_unw, + GLOB_vm_unwind_c, + GLOB_vm_unwind_c_eh, + GLOB_vm_unwind_ff, + GLOB_vm_unwind_ff_eh, + GLOB_vm_growstack_c, + GLOB_vm_growstack_l, + GLOB_vm_resume, + GLOB_vm_pcall, + GLOB_vm_call, + GLOB_vm_call_dispatch, + GLOB_vmeta_call, + GLOB_vm_call_dispatch_f, + GLOB_vm_cpcall, + GLOB_vm_call_tail, + GLOB_cont_cat, + GLOB_BC_CAT_Z, + GLOB_cont_nop, + GLOB_vmeta_tgets1, + GLOB_vmeta_tgets, + GLOB_vmeta_tgetb, + GLOB_vmeta_tgetv, + GLOB_vmeta_tsets1, + GLOB_vmeta_tsets, + GLOB_vmeta_tsetb, + GLOB_vmeta_tsetv, + GLOB_vmeta_comp, + GLOB_vmeta_binop, + GLOB_cont_ra, + GLOB_cont_condt, + GLOB_cont_condf, + GLOB_vmeta_equal, + GLOB_vmeta_arith_vn, + GLOB_vmeta_arith_nv, + GLOB_vmeta_unm, + GLOB_vmeta_arith_vv, + GLOB_vmeta_len, + GLOB_vmeta_callt, + GLOB_BC_CALLT2_Z, + GLOB_vmeta_for, + GLOB_ff_assert, + GLOB_fff_fallback, + GLOB_fff_res, + GLOB_ff_type, + GLOB_fff_restv, + GLOB_ff_getmetatable, + GLOB_ff_setmetatable, + GLOB_ff_rawget, + GLOB_ff_tonumber, + GLOB_ff_tostring, + GLOB_fff_gcstep, + GLOB_ff_next, + GLOB_ff_pairs, + GLOB_ff_ipairs_aux, + GLOB_ff_ipairs, + GLOB_ff_pcall, + GLOB_ff_xpcall, + GLOB_ff_coroutine_resume, + GLOB_ff_coroutine_wrap_aux, + GLOB_ff_coroutine_yield, + GLOB_ff_math_floor, + GLOB_ff_math_ceil, + GLOB_ff_math_abs, + GLOB_fff_res1, + GLOB_ff_math_sqrt, + GLOB_ff_math_log, + GLOB_ff_math_log10, + GLOB_ff_math_exp, + GLOB_ff_math_sin, + GLOB_ff_math_cos, + GLOB_ff_math_tan, + GLOB_ff_math_asin, + GLOB_ff_math_acos, + GLOB_ff_math_atan, + GLOB_ff_math_sinh, + GLOB_ff_math_cosh, + GLOB_ff_math_tanh, + GLOB_ff_math_pow, + GLOB_ff_math_atan2, + GLOB_ff_math_fmod, + GLOB_ff_math_deg, + GLOB_ff_math_rad, + GLOB_ff_math_ldexp, + GLOB_ff_math_frexp, + GLOB_ff_math_modf, + GLOB_ff_math_min, + GLOB_ff_math_max, + GLOB_ff_string_len, + GLOB_ff_string_byte, + GLOB_ff_string_char, + GLOB_fff_newstr, + GLOB_ff_string_sub, + GLOB_fff_emptystr, + GLOB_ff_string_rep, + GLOB_ff_string_reverse, + GLOB_ff_string_lower, + GLOB_ff_string_upper, + GLOB_ff_table_getn, + GLOB_vm_tobit_fb, + GLOB_vm_tobit, + GLOB_ff_bit_tobit, + GLOB_ff_bit_band, + GLOB_ff_bit_bor, + GLOB_ff_bit_bxor, + GLOB_ff_bit_bswap, + GLOB_ff_bit_bnot, + GLOB_ff_bit_lshift, + GLOB_ff_bit_rshift, + GLOB_ff_bit_arshift, + GLOB_ff_bit_rol, + GLOB_ff_bit_ror, + GLOB_vm_record, + GLOB_vm_rethook, + GLOB_vm_inshook, + GLOB_cont_hook, + GLOB_vm_hotloop, + GLOB_vm_callhook, + GLOB_vm_hotcall, + GLOB_vm_exit_handler, + GLOB_vm_exit_interp, + GLOB_vm_floor, + GLOB_vm_ceil, + GLOB_vm_trunc, + GLOB_vm_mod, + GLOB_vm_modi, + GLOB_vm_powi, + GLOB_vm_foldfpm, + GLOB_vm_foldarith, + GLOB_vm_ffi_call, + GLOB_BC_ISEQN_Z, + GLOB_BC_ISNEN_Z, + GLOB_BC_TGETS_Z, + GLOB_BC_TSETS_Z, + GLOB_BC_CALL_Z, + GLOB_BC_CALLT1_Z, + GLOB_BC_RETM_Z, + GLOB_BC_RETV2_Z, + GLOB_BC_RETV1_Z, + GLOB__MAX +}; +static const char *const globnames[] = { + "vm_returnp", + "cont_dispatch", + "vm_returnc", + "BC_RET_Z", + "vm_return", + "vm_leave_cp", + "vm_leave_unw", + "vm_unwind_c", + "vm_unwind_c_eh", + "vm_unwind_ff", + "vm_unwind_ff_eh", + "vm_growstack_c", + "vm_growstack_l", + "vm_resume", + "vm_pcall", + "vm_call", + "vm_call_dispatch", + "vmeta_call", + "vm_call_dispatch_f", + "vm_cpcall", + "vm_call_tail", + "cont_cat", + "BC_CAT_Z", + "cont_nop", + "vmeta_tgets1", + "vmeta_tgets", + "vmeta_tgetb", + "vmeta_tgetv", + "vmeta_tsets1", + "vmeta_tsets", + "vmeta_tsetb", + "vmeta_tsetv", + "vmeta_comp", + "vmeta_binop", + "cont_ra", + "cont_condt", + "cont_condf", + "vmeta_equal", + "vmeta_arith_vn", + "vmeta_arith_nv", + "vmeta_unm", + "vmeta_arith_vv", + "vmeta_len", + "vmeta_callt", + "BC_CALLT2_Z", + "vmeta_for", + "ff_assert", + "fff_fallback", + "fff_res", + "ff_type", + "fff_restv", + "ff_getmetatable", + "ff_setmetatable", + "ff_rawget", + "ff_tonumber", + "ff_tostring", + "fff_gcstep", + "ff_next", + "ff_pairs", + "ff_ipairs_aux", + "ff_ipairs", + "ff_pcall", + "ff_xpcall", + "ff_coroutine_resume", + "ff_coroutine_wrap_aux", + "ff_coroutine_yield", + "ff_math_floor", + "ff_math_ceil", + "ff_math_abs", + "fff_res1", + "ff_math_sqrt", + "ff_math_log", + "ff_math_log10", + "ff_math_exp", + "ff_math_sin", + "ff_math_cos", + "ff_math_tan", + "ff_math_asin", + "ff_math_acos", + "ff_math_atan", + "ff_math_sinh", + "ff_math_cosh", + "ff_math_tanh", + "ff_math_pow", + "ff_math_atan2", + "ff_math_fmod", + "ff_math_deg", + "ff_math_rad", + "ff_math_ldexp", + "ff_math_frexp", + "ff_math_modf", + "ff_math_min", + "ff_math_max", + "ff_string_len", + "ff_string_byte", + "ff_string_char", + "fff_newstr", + "ff_string_sub", + "fff_emptystr", + "ff_string_rep", + "ff_string_reverse", + "ff_string_lower", + "ff_string_upper", + "ff_table_getn", + "vm_tobit_fb", + "vm_tobit", + "ff_bit_tobit", + "ff_bit_band", + "ff_bit_bor", + "ff_bit_bxor", + "ff_bit_bswap", + "ff_bit_bnot", + "ff_bit_lshift", + "ff_bit_rshift", + "ff_bit_arshift", + "ff_bit_rol", + "ff_bit_ror", + "vm_record", + "vm_rethook", + "vm_inshook", + "cont_hook", + "vm_hotloop", + "vm_callhook", + "vm_hotcall", + "vm_exit_handler", + "vm_exit_interp", + "vm_floor", + "vm_ceil", + "vm_trunc", + "vm_mod", + "vm_modi", + "vm_powi", + "vm_foldfpm", + "vm_foldarith", + "vm_ffi_call", + "BC_ISEQN_Z", + "BC_ISNEN_Z", + "BC_TGETS_Z", + "BC_TSETS_Z", + "BC_CALL_Z", + "BC_CALLT1_Z", + "BC_RETM_Z", + "BC_RETV2_Z", + "BC_RETV1_Z", + (const char *)0 +}; +static const char *const extnames[] = { + "lj_state_growstack", + "lj_meta_tget", + "lj_meta_tset", + "lj_meta_comp", + "lj_meta_equal", + "lj_meta_arith", + "lj_meta_len", + "lj_meta_call", + "lj_meta_for", + "lj_tab_get", + "lj_str_fromnumber", + "lj_tab_next", + "lj_tab_getinth", + "lj_ffh_coroutine_wrap_err", + "floor", + "ceil", + "sqrt", + "log", + "log10", + "exp", + "sin", + "cos", + "tan", + "asin", + "acos", + "atan", + "sinh", + "cosh", + "tanh", + "pow", + "atan2", + "fmod", + "__aeabi_dmul", + "ldexp", + "frexp", + "modf", + "__aeabi_i2d", + "__aeabi_cdcmple", + "lj_str_new", + "lj_tab_len", + "lj_gc_step", + "lj_dispatch_ins", + "lj_dispatch_call", + "__aeabi_ddiv", + "__aeabi_dadd", + "__aeabi_dsub", + "__aeabi_cdcmpeq", + "lj_meta_cat", + "lj_gc_barrieruv", + "lj_func_closeuv", + "lj_func_newL_gc", + "lj_tab_new", + "lj_tab_dup", + "lj_gc_step_fixtop", + "lj_tab_newkey", + "lj_tab_reasize", + (const char *)0 +}; +#define Dt1(_V) (int)(ptrdiff_t)&(((lua_State *)0)_V) +#define Dt2(_V) (int)(ptrdiff_t)&(((global_State *)0)_V) +#define Dt3(_V) (int)(ptrdiff_t)&(((TValue *)0)_V) +#define Dt4(_V) (int)(ptrdiff_t)&(((GCobj *)0)_V) +#define Dt5(_V) (int)(ptrdiff_t)&(((GCstr *)0)_V) +#define Dt6(_V) (int)(ptrdiff_t)&(((GCtab *)0)_V) +#define Dt7(_V) (int)(ptrdiff_t)&(((GCfuncL *)0)_V) +#define Dt8(_V) (int)(ptrdiff_t)&(((GCfuncC *)0)_V) +#define Dt9(_V) (int)(ptrdiff_t)&(((GCproto *)0)_V) +#define DtA(_V) (int)(ptrdiff_t)&(((GCupval *)0)_V) +#define DtB(_V) (int)(ptrdiff_t)&(((Node *)0)_V) +#define DtC(_V) (int)(ptrdiff_t)&(((int *)0)_V) +#define DtD(_V) (int)(ptrdiff_t)&(((GCtrace *)0)_V) +#define field_pc pc +#define DISPATCH_GL(field) (GG_DISP2G + (int)offsetof(global_State, field)) +#define DISPATCH_J(field) (GG_DISP2J + (int)offsetof(jit_State, field)) +#define PC2PROTO(field) ((int)offsetof(GCproto, field)-(int)sizeof(GCproto)) + +#if !LJ_DUALNUM +#error "Only dual-number mode supported for ARM target" +#endif + +/* Generate subroutines used by opcodes and other parts of the VM. */ +/* The .code_sub section should be last to help static branch prediction. */ +static void build_subroutines(BuildCtx *ctx) +{ + dasm_put(Dst, 0); + dasm_put(Dst, 1, FRAME_P, ~LJ_TTRUE, FRAME_TYPE, FRAME_TYPEP, FRAME_C, Dt1(->base), LJ_VMST_C, DISPATCH_GL(vmstate), Dt1(->top)); + dasm_put(Dst, 54, Dt1(->cframe), Dt1(->maxstack), ~LJ_TNIL, Dt1(->top), Dt1(->top), LJ_VMST_C, Dt1(->glref), Dt2(->vmstate)); + dasm_put(Dst, 108, ~CFRAME_RAWMASK, Dt1(->base), Dt1(->glref), ~LJ_TFALSE, GG_G2DISP, LJ_VMST_INTERP, DISPATCH_GL(vmstate), LUA_MINSTACK, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top), Dt7(->field_pc), Dt1(->glref)); + 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), Dt1(->base), FRAME_CONT, Dt1(->base)); + dasm_put(Dst, 589, Dt1(->base), Dt7(->field_pc), Dt1(->base), Dt1(->base)); +#if LJ_HASJIT + dasm_put(Dst, 631); +#endif + dasm_put(Dst, 633); +#if LJ_HASJIT + dasm_put(Dst, 635, BC_JFORI); +#endif + dasm_put(Dst, 638); +#if LJ_HASJIT + dasm_put(Dst, 641, BC_JFORI); +#endif + dasm_put(Dst, 644, BC_FORI, -LJ_TTRUE, -LJ_TISNUM, ~LJ_TISNUM, (int)(offsetof(GCfuncC, upvalue)>>3)-1, -LJ_TTAB, -LJ_TUDATA, Dt6(->metatable)); + dasm_put(Dst, 701, ~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, 749, ~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, 801, -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, 856, ~LJ_TNIL, -LJ_TTAB, Dt1(->base), Dt1(->top), ~LJ_TNIL, (2+1)*8, -LJ_TTAB); +#ifdef LUAJIT_ENABLE_LUA52COMPAT + dasm_put(Dst, 904, Dt6(->metatable)); +#endif + dasm_put(Dst, 907, Dt8(->upvalue[0])); +#ifdef LUAJIT_ENABLE_LUA52COMPAT + dasm_put(Dst, 911); +#endif + dasm_put(Dst, 915, ~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, 974, -LJ_TTAB); +#ifdef LUAJIT_ENABLE_LUA52COMPAT + dasm_put(Dst, 983, Dt6(->metatable)); +#endif + dasm_put(Dst, 986, Dt8(->upvalue[0])); +#ifdef LUAJIT_ENABLE_LUA52COMPAT + dasm_put(Dst, 990); +#endif + dasm_put(Dst, 994, ~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, 1053, 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, 1112, Dt1(->base), Dt1(->maxstack), Dt1(->top), ~LJ_TTRUE, FRAME_TYPE, ~LJ_TFALSE, (2+1)*8, Dt1(->top)); + dasm_put(Dst, 1172, 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, 1228, Dt1(->base), Dt1(->maxstack), Dt1(->top), FRAME_TYPE, Dt1(->cframe), Dt1(->base), CFRAME_RESUME, Dt1(->top)); + dasm_put(Dst, 1287, LUA_YIELD, Dt1(->cframe), Dt1(->status), -LJ_TISNUM, ~LJ_TISNUM, ~LJ_TISNUM); + dasm_put(Dst, 1353, -LJ_TISNUM, ~LJ_TISNUM, ~LJ_TISNUM); + dasm_put(Dst, 1417, -LJ_TISNUM, (1+1)*8, FRAME_TYPE, ~LJ_TNIL); + dasm_put(Dst, 1481, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 1530, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 1580, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 1629, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 1679, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, Dt8(->upvalue[0]), -LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 1728, -LJ_TISNUM, ~LJ_TISNUM, (2+1)*8, -LJ_TISNUM, (2+1)*8, -LJ_TISNUM); + dasm_put(Dst, 1784, -LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 1837, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 1890, -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, 1942, -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, 2001, 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, 2065, 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, 2120, -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, 2178, -LJ_TTAB, ~LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM); + dasm_put(Dst, 2251, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 2312, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM); + dasm_put(Dst, 2367, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM, ~LJ_TISNUM); + dasm_put(Dst, 2424, -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, 2482, 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, 2541); +#endif + dasm_put(Dst, 2543, 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, 2589, GG_DISP2STATIC); +#if LJ_HASJIT + dasm_put(Dst, 2605); +#endif + dasm_put(Dst, 2607); +#if LJ_HASJIT + dasm_put(Dst, 2610); +#endif + dasm_put(Dst, 2613); +#if LJ_HASJIT + dasm_put(Dst, 2615); +#endif + dasm_put(Dst, 2618, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); +#if LJ_HASJIT + dasm_put(Dst, 2640); +#endif + dasm_put(Dst, 2642); +#if LJ_HASJIT + dasm_put(Dst, 2644); +#endif + dasm_put(Dst, 2646); +#if LJ_HASJIT + dasm_put(Dst, 2651); +#else + dasm_put(Dst, 2654); +#endif + dasm_put(Dst, 2656); + { + int i; + for (i = 31; i >= 0; i--) { + dasm_put(Dst, 2692, i, i); + } + } + dasm_put(Dst, 2697); +#if LJ_HASJIT + dasm_put(Dst, 2706); +#endif + dasm_put(Dst, 2708); +#if LJ_HASJIT + dasm_put(Dst, 2710); +#endif + dasm_put(Dst, 2712); +#if LJ_HASFFI +#define DtE(_V) (int)(ptrdiff_t)&(((CCallState *)0)_V) + dasm_put(Dst, 2736, 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 +} + +/* Generate the code for a single instruction. */ +static void build_ins(BuildCtx *ctx, BCOp op, int defop) +{ + int vk = 0; + dasm_put(Dst, 2774, defop); + + switch (op) { + + /* -- Comparison ops ---------------------------------------------------- */ + + /* 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, 2776, -LJ_TISNUM, -LJ_TISNUM); + if (op == BC_ISLT) { + dasm_put(Dst, 2792); + } else if (op == BC_ISGE) { + dasm_put(Dst, 2794); + } else if (op == BC_ISLE) { + dasm_put(Dst, 2796); + } else { + dasm_put(Dst, 2798); + } + dasm_put(Dst, 2800, -LJ_TISNUM); + if (op == BC_ISLT) { + dasm_put(Dst, 2836); + } else if (op == BC_ISGE) { + dasm_put(Dst, 2838); + } else if (op == BC_ISLE) { + dasm_put(Dst, 2840); + } else { + dasm_put(Dst, 2842); + } + dasm_put(Dst, 2844); + break; + + case BC_ISEQV: case BC_ISNEV: + vk = op == BC_ISEQV; + dasm_put(Dst, 2847, -LJ_TISNUM, -LJ_TISNUM); + if (vk) { + dasm_put(Dst, 2858); + } else { + dasm_put(Dst, 2861); + } + dasm_put(Dst, 2864, -LJ_TISPRI); + if (vk) { + dasm_put(Dst, 2873, -LJ_TISTABUD); + } else { + dasm_put(Dst, 2890, -LJ_TISTABUD); + } + dasm_put(Dst, 2897, Dt6(->metatable)); + if (vk) { + dasm_put(Dst, 2901); + } else { + dasm_put(Dst, 2904); + } + dasm_put(Dst, 2907, Dt6(->nomm), 1-vk, 1<len), ~LJ_TISNUM, -LJ_TTAB); + break; + + /* -- Binary ops -------------------------------------------------------- */ + + + case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: + dasm_put(Dst, 3131); + vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); + switch (vk) { + case 0: + dasm_put(Dst, 3134); + break; + case 1: + dasm_put(Dst, 3137); + break; + default: + dasm_put(Dst, 3140); + break; + } + dasm_put(Dst, 3143); + if (vk == 1) { + dasm_put(Dst, 3145, -LJ_TISNUM, -LJ_TISNUM); + } else { + dasm_put(Dst, 3150, -LJ_TISNUM, -LJ_TISNUM); + } + dasm_put(Dst, 3155); + switch (vk) { + case 0: + dasm_put(Dst, 3159); + break; + case 1: + dasm_put(Dst, 3162); + break; + default: + dasm_put(Dst, 3165); + break; + } + dasm_put(Dst, 3168); + switch (vk) { + case 0: + if (vk == 1) { + dasm_put(Dst, 3177, -LJ_TISNUM, -LJ_TISNUM); + } else { + dasm_put(Dst, 3182, -LJ_TISNUM, -LJ_TISNUM); + } + dasm_put(Dst, 3187); + break; + case 1: + if (vk == 1) { + dasm_put(Dst, 3190, -LJ_TISNUM, -LJ_TISNUM); + } else { + dasm_put(Dst, 3195, -LJ_TISNUM, -LJ_TISNUM); + } + dasm_put(Dst, 3200); + break; + default: + if (vk == 1) { + dasm_put(Dst, 3203, -LJ_TISNUM, -LJ_TISNUM); + } else { + dasm_put(Dst, 3208, -LJ_TISNUM, -LJ_TISNUM); + } + dasm_put(Dst, 3213); + break; + } + dasm_put(Dst, 3216); + break; + case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: + dasm_put(Dst, 3222); + vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); + switch (vk) { + case 0: + dasm_put(Dst, 3225); + break; + case 1: + dasm_put(Dst, 3228); + break; + default: + dasm_put(Dst, 3231); + break; + } + dasm_put(Dst, 3234); + if (vk == 1) { + dasm_put(Dst, 3236, -LJ_TISNUM, -LJ_TISNUM); + } else { + dasm_put(Dst, 3241, -LJ_TISNUM, -LJ_TISNUM); + } + dasm_put(Dst, 3246); + switch (vk) { + case 0: + dasm_put(Dst, 3250); + break; + case 1: + dasm_put(Dst, 3253); + break; + default: + dasm_put(Dst, 3256); + break; + } + dasm_put(Dst, 3259); + switch (vk) { + case 0: + if (vk == 1) { + dasm_put(Dst, 3268, -LJ_TISNUM, -LJ_TISNUM); + } else { + dasm_put(Dst, 3273, -LJ_TISNUM, -LJ_TISNUM); + } + dasm_put(Dst, 3278); + break; + case 1: + if (vk == 1) { + dasm_put(Dst, 3281, -LJ_TISNUM, -LJ_TISNUM); + } else { + dasm_put(Dst, 3286, -LJ_TISNUM, -LJ_TISNUM); + } + dasm_put(Dst, 3291); + break; + default: + if (vk == 1) { + dasm_put(Dst, 3294, -LJ_TISNUM, -LJ_TISNUM); + } else { + dasm_put(Dst, 3299, -LJ_TISNUM, -LJ_TISNUM); + } + dasm_put(Dst, 3304); + break; + } + dasm_put(Dst, 3307); + break; + case BC_MULVN: case BC_MULNV: case BC_MULVV: + dasm_put(Dst, 3313); + vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); + switch (vk) { + case 0: + dasm_put(Dst, 3316); + break; + case 1: + dasm_put(Dst, 3319); + break; + default: + dasm_put(Dst, 3322); + break; + } + dasm_put(Dst, 3325); + if (vk == 1) { + dasm_put(Dst, 3327, -LJ_TISNUM, -LJ_TISNUM); + } else { + dasm_put(Dst, 3332, -LJ_TISNUM, -LJ_TISNUM); + } + dasm_put(Dst, 3337); + switch (vk) { + case 0: + dasm_put(Dst, 3342); + break; + case 1: + dasm_put(Dst, 3345); + break; + default: + dasm_put(Dst, 3348); + break; + } + dasm_put(Dst, 3351); + switch (vk) { + case 0: + if (vk == 1) { + dasm_put(Dst, 3360, -LJ_TISNUM, -LJ_TISNUM); + } else { + dasm_put(Dst, 3365, -LJ_TISNUM, -LJ_TISNUM); + } + dasm_put(Dst, 3370); + break; + case 1: + if (vk == 1) { + dasm_put(Dst, 3373, -LJ_TISNUM, -LJ_TISNUM); + } else { + dasm_put(Dst, 3378, -LJ_TISNUM, -LJ_TISNUM); + } + dasm_put(Dst, 3383); + break; + default: + if (vk == 1) { + dasm_put(Dst, 3386, -LJ_TISNUM, -LJ_TISNUM); + } else { + dasm_put(Dst, 3391, -LJ_TISNUM, -LJ_TISNUM); + } + dasm_put(Dst, 3396); + break; + } + dasm_put(Dst, 3399); + break; + case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: + dasm_put(Dst, 3405); + vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); + switch (vk) { + case 0: + dasm_put(Dst, 3408); + break; + case 1: + dasm_put(Dst, 3411); + break; + default: + dasm_put(Dst, 3414); + break; + } + switch (vk) { + case 0: + if (vk == 1) { + dasm_put(Dst, 3417, -LJ_TISNUM, -LJ_TISNUM); + } else { + dasm_put(Dst, 3422, -LJ_TISNUM, -LJ_TISNUM); + } + dasm_put(Dst, 3427); + break; + case 1: + if (vk == 1) { + dasm_put(Dst, 3430, -LJ_TISNUM, -LJ_TISNUM); + } else { + dasm_put(Dst, 3435, -LJ_TISNUM, -LJ_TISNUM); + } + dasm_put(Dst, 3440); + break; + default: + if (vk == 1) { + dasm_put(Dst, 3443, -LJ_TISNUM, -LJ_TISNUM); + } else { + dasm_put(Dst, 3448, -LJ_TISNUM, -LJ_TISNUM); + } + dasm_put(Dst, 3453); + break; + } + dasm_put(Dst, 3456); + break; + case BC_MODVN: case BC_MODNV: case BC_MODVV: + dasm_put(Dst, 3466); + vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); + switch (vk) { + case 0: + dasm_put(Dst, 3469); + break; + case 1: + dasm_put(Dst, 3472); + break; + default: + dasm_put(Dst, 3475); + break; + } + if (vk == 1) { + dasm_put(Dst, 3478, -LJ_TISNUM, -LJ_TISNUM); + } else { + dasm_put(Dst, 3483, -LJ_TISNUM, -LJ_TISNUM); + } + dasm_put(Dst, 3488); + switch (vk) { + case 0: + dasm_put(Dst, 3492); + break; + case 1: + dasm_put(Dst, 3495); + break; + default: + dasm_put(Dst, 3498); + break; + } + dasm_put(Dst, 3501, ~LJ_TISNUM); + switch (vk) { + case 0: + if (vk == 1) { + dasm_put(Dst, 3515, -LJ_TISNUM, -LJ_TISNUM); + } else { + dasm_put(Dst, 3520, -LJ_TISNUM, -LJ_TISNUM); + } + dasm_put(Dst, 3525); + break; + case 1: + if (vk == 1) { + dasm_put(Dst, 3528, -LJ_TISNUM, -LJ_TISNUM); + } else { + dasm_put(Dst, 3533, -LJ_TISNUM, -LJ_TISNUM); + } + dasm_put(Dst, 3538); + break; + default: + if (vk == 1) { + dasm_put(Dst, 3541, -LJ_TISNUM, -LJ_TISNUM); + } else { + dasm_put(Dst, 3546, -LJ_TISNUM, -LJ_TISNUM); + } + dasm_put(Dst, 3551); + break; + } + dasm_put(Dst, 3554); + break; + case BC_POW: + dasm_put(Dst, 3559); + vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); + switch (vk) { + case 0: + dasm_put(Dst, 3562); + break; + case 1: + dasm_put(Dst, 3565); + break; + default: + dasm_put(Dst, 3568); + break; + } + switch (vk) { + case 0: + if (vk == 1) { + dasm_put(Dst, 3571, -LJ_TISNUM, -LJ_TISNUM); + } else { + dasm_put(Dst, 3576, -LJ_TISNUM, -LJ_TISNUM); + } + dasm_put(Dst, 3581); + break; + case 1: + if (vk == 1) { + dasm_put(Dst, 3584, -LJ_TISNUM, -LJ_TISNUM); + } else { + dasm_put(Dst, 3589, -LJ_TISNUM, -LJ_TISNUM); + } + dasm_put(Dst, 3594); + break; + default: + if (vk == 1) { + dasm_put(Dst, 3597, -LJ_TISNUM, -LJ_TISNUM); + } else { + dasm_put(Dst, 3602, -LJ_TISNUM, -LJ_TISNUM); + } + dasm_put(Dst, 3607); + break; + } + dasm_put(Dst, 3610); + break; + + case BC_CAT: + dasm_put(Dst, 3620, Dt1(->base), Dt1(->base)); + break; + + /* -- Constant ops ------------------------------------------------------ */ + + case BC_KSTR: + dasm_put(Dst, 3646, ~LJ_TSTR); + break; + case BC_KCDATA: +#if LJ_HASFFI + dasm_put(Dst, 3658, ~LJ_TCDATA); +#endif + break; + case BC_KSHORT: + dasm_put(Dst, 3670, ~LJ_TISNUM); + break; + case BC_KNUM: + dasm_put(Dst, 3681); + break; + case BC_KPRI: + dasm_put(Dst, 3691); + break; + case BC_KNIL: + dasm_put(Dst, 3701, ~LJ_TNIL); + break; + + /* -- Upvalue and function ops ------------------------------------------ */ + + case BC_UGET: + dasm_put(Dst, 3720, offsetof(GCfuncL, uvptr), DtA(->v)); + break; + case BC_USETV: + dasm_put(Dst, 3736, 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); + break; + case BC_USETS: + dasm_put(Dst, 3780, offsetof(GCfuncL, uvptr), ~LJ_TSTR, DtA(->marked), DtA(->v), DtA(->closed), LJ_GC_BLACK, Dt5(->marked), LJ_GC_WHITES, -GG_DISP2G); + break; + case BC_USETN: + dasm_put(Dst, 3820, offsetof(GCfuncL, uvptr), DtA(->v)); + break; + case BC_USETP: + dasm_put(Dst, 3837, offsetof(GCfuncL, uvptr), DtA(->v)); + break; + + case BC_UCLO: + dasm_put(Dst, 3853, Dt1(->openupval), Dt1(->base), Dt1(->base)); + break; + + case BC_FNEW: + dasm_put(Dst, 3876, Dt1(->base), Dt1(->base), ~LJ_TFUNC); + break; + + /* -- Table ops --------------------------------------------------------- */ + + case BC_TNEW: + case BC_TDUP: + if (op == BC_TDUP) { + dasm_put(Dst, 3897); + } + dasm_put(Dst, 3899, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base)); + if (op == BC_TNEW) { + dasm_put(Dst, 3912); + } else { + dasm_put(Dst, 3921); + } + dasm_put(Dst, 3925, Dt1(->base), ~LJ_TTAB); + break; + + case BC_GGET: + case BC_GSET: + dasm_put(Dst, 3943, Dt7(->env)); + if (op == BC_GGET) { + dasm_put(Dst, 3949); + } else { + dasm_put(Dst, 3952); + } + break; + + case BC_TGETV: + dasm_put(Dst, 3955, -LJ_TTAB, -LJ_TISNUM, Dt6(->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, 4072, 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); + break; + case BC_TSETS: + dasm_put(Dst, 4203, -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, 4261, Dt6(->metatable), Dt6(->nomm), 1<metatable), Dt1(->base), Dt6(->nomm), 1<base), DISPATCH_GL(gc.grayagain), LJ_GC_BLACK); + dasm_put(Dst, 4314, DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist)); + break; + case BC_TSETB: + dasm_put(Dst, 4323, -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, 4389, 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)); + break; + + /* -- Calls and vararg handling ----------------------------------------- */ + + case BC_CALLM: + dasm_put(Dst, 4449); + break; + case BC_CALL: + dasm_put(Dst, 4455, -LJ_TFUNC, Dt7(->field_pc)); + break; + + case BC_CALLMT: + dasm_put(Dst, 4475); + break; + case BC_CALLT: + dasm_put(Dst, 4480, -LJ_TFUNC, Dt7(->ffid), FRAME_TYPE, Dt7(->field_pc), Dt7(->field_pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP); + dasm_put(Dst, 4541, FRAME_TYPE); + break; + + case BC_ITERC: + dasm_put(Dst, 4552, -LJ_TFUNC, Dt7(->field_pc)); + break; + + case BC_ITERN: +#if LJ_HASJIT +#endif + dasm_put(Dst, 4576, 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, 4641, -LJ_TFUNC, Dt8(->ffid), -LJ_TTAB, -LJ_TNIL, FF_next_N, BC_JMP, BC_ITERC); + break; + + case BC_VARG: + dasm_put(Dst, 4680, FRAME_VARG, ~LJ_TNIL, Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->base)); + break; + + /* -- Returns ----------------------------------------------------------- */ + + case BC_RETM: + dasm_put(Dst, 4752); + break; + + case BC_RET: + dasm_put(Dst, 4759, FRAME_TYPE, FRAME_VARG, Dt7(->field_pc), PC2PROTO(k), ~LJ_TNIL, FRAME_TYPEP); + break; + + case BC_RET0: case BC_RET1: + dasm_put(Dst, 4824, FRAME_TYPE, FRAME_VARG); + if (op == BC_RET1) { + dasm_put(Dst, 4835); + } + dasm_put(Dst, 4837); + if (op == BC_RET1) { + dasm_put(Dst, 4840); + } + dasm_put(Dst, 4842, Dt7(->field_pc), PC2PROTO(k), ~LJ_TNIL); + break; + + /* -- Loops and branches ------------------------------------------------ */ + + + case BC_FORL: +#if LJ_HASJIT + dasm_put(Dst, 4868); +#endif + break; + + case BC_JFORI: + case BC_JFORL: +#if !LJ_HASJIT + break; +#endif + case BC_FORI: + case BC_IFORL: + vk = (op == BC_IFORL || op == BC_JFORL); + dasm_put(Dst, 4870); + if (!vk) { + dasm_put(Dst, 4873, -LJ_TISNUM, -LJ_TISNUM, -LJ_TISNUM); + } else { + dasm_put(Dst, 4891, -LJ_TISNUM); + if (op == BC_IFORL) { + dasm_put(Dst, 4899); + } else { + dasm_put(Dst, 4901); + } + dasm_put(Dst, 4903); + } + dasm_put(Dst, 4908); + if (op == BC_FORI) { + dasm_put(Dst, 4910); + } else if (op == BC_JFORI) { + dasm_put(Dst, 4912); + } else if (op == BC_IFORL) { + dasm_put(Dst, 4914); + } else { + dasm_put(Dst, 4916); + } + if (vk) { + dasm_put(Dst, 4918); + } + dasm_put(Dst, 4920); + if (!vk) { + dasm_put(Dst, 4930); + } else { + dasm_put(Dst, 4932); + } + dasm_put(Dst, 4934); + if (!vk) { + dasm_put(Dst, 4938, -LJ_TISNUM, -LJ_TISNUM); + } else { + dasm_put(Dst, 4950); + } + dasm_put(Dst, 4959); + if (op == BC_FORI) { + dasm_put(Dst, 4963); + } else if (op == BC_JFORI) { + dasm_put(Dst, 4965); + } else if (op == BC_IFORL) { + dasm_put(Dst, 4967); + } else { + dasm_put(Dst, 4969); + } + dasm_put(Dst, 4971); + if (vk) { + dasm_put(Dst, 4977); + } + dasm_put(Dst, 4982); + break; + + case BC_ITERL: +#if LJ_HASJIT + dasm_put(Dst, 4988); +#endif + break; + + case BC_JITERL: +#if !LJ_HASJIT + break; +#endif + case BC_IITERL: + dasm_put(Dst, 4990); + if (op == BC_JITERL) { + dasm_put(Dst, 4992); + } else { + dasm_put(Dst, 4994, -LJ_TNIL); + } + dasm_put(Dst, 5000); + break; + + case BC_LOOP: +#if LJ_HASJIT + dasm_put(Dst, 5007); +#endif + break; + + case BC_ILOOP: + dasm_put(Dst, 5009); + break; + + case BC_JLOOP: +#if LJ_HASJIT + dasm_put(Dst, 5016); +#endif + break; + + case BC_JMP: + dasm_put(Dst, 5018); + break; + + /* -- Function headers -------------------------------------------------- */ + + case BC_FUNCF: +#if LJ_HASJIT + dasm_put(Dst, 5027); +#endif + case BC_FUNCV: /* NYI: compiled vararg functions. */ + break; + + case BC_JFUNCF: +#if !LJ_HASJIT + break; +#endif + case BC_IFUNCF: + dasm_put(Dst, 5029, Dt1(->maxstack), -4+PC2PROTO(numparams), -4+PC2PROTO(k), ~LJ_TNIL); + if (op == BC_JFUNCF) { + dasm_put(Dst, 5047); + } else { + dasm_put(Dst, 5049); + } + dasm_put(Dst, 5054); + break; + + case BC_JFUNCV: +#if !LJ_HASJIT + break; +#endif + dasm_put(Dst, 5060); + break; /* NYI: compiled vararg functions. */ + + case BC_IFUNCV: + dasm_put(Dst, 5062, 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, 5103, Dt8(->f)); + } else { + dasm_put(Dst, 5106, DISPATCH_GL(wrapf)); + } + dasm_put(Dst, 5109, Dt1(->maxstack), Dt1(->base), Dt1(->top)); + if (op == BC_FUNCCW) { + dasm_put(Dst, 5119, Dt8(->f)); + } + dasm_put(Dst, 5122, LJ_VMST_C, DISPATCH_GL(vmstate), Dt1(->base), LJ_VMST_INTERP, Dt1(->top), DISPATCH_GL(vmstate)); + break; + + /* ---------------------------------------------------------------------- */ + + default: + fprintf(stderr, "Error: undefined opcode BC_%s\n", bc_names[op]); + exit(2); + break; + } +} + +static int build_backend(BuildCtx *ctx) +{ + int op; + + dasm_growpc(Dst, BC__MAX); + + build_subroutines(ctx); + + dasm_put(Dst, 5144); + for (op = 0; op < BC__MAX; op++) + build_ins(ctx, (BCOp)op, op); + + return BC__MAX; +} + +/* Emit pseudo frame-info for all assembler functions. */ +static void emit_asm_debug(BuildCtx *ctx) +{ + int i; + switch (ctx->mode) { + case BUILD_elfasm: + fprintf(ctx->fp, "\t.section .debug_frame,\"\",%%progbits\n"); + fprintf(ctx->fp, + ".Lframe0:\n" + "\t.long .LECIE0-.LSCIE0\n" + ".LSCIE0:\n" + "\t.long 0xffffffff\n" + "\t.byte 0x1\n" + "\t.string \"\"\n" + "\t.uleb128 0x1\n" + "\t.sleb128 -4\n" + "\t.byte 0xe\n" /* Return address is in lr. */ + "\t.byte 0xc\n\t.uleb128 0xd\n\t.uleb128 0\n" /* def_cfa sp */ + "\t.align 2\n" + ".LECIE0:\n\n"); + fprintf(ctx->fp, + ".LSFDE0:\n" + "\t.long .LEFDE0-.LASFDE0\n" + ".LASFDE0:\n" + "\t.long .Lframe0\n" + "\t.long .Lbegin\n" + "\t.long %d\n" + "\t.byte 0xe\n\t.uleb128 %d\n" /* def_cfa_offset */ + "\t.byte 0x8e\n\t.uleb128 1\n", /* Restore lr. */ + (int)ctx->codesz, CFRAME_SIZE); + for (i = 11; i >= 4; i--) /* Restore r4-r11. */ + fprintf(ctx->fp, "\t.byte %d\n\t.uleb128 %d\n", 0x80+i, 2+(11-i)); + fprintf(ctx->fp, + "\t.align 2\n" + ".LEFDE0:\n\n"); + /* NYI: emit ARM.exidx. */ + break; + default: + break; + } +} + diff --git a/src/lj_arch.h b/src/lj_arch.h index ca5b0df4..43774a7d 100644 --- a/src/lj_arch.h +++ b/src/lj_arch.h @@ -125,7 +125,6 @@ #elif LUAJIT_TARGET == LUAJIT_ARCH_ARM -#error "No support for ARM CPUs (yet)" #define LJ_ARCH_NAME "arm" #define LJ_ARCH_BITS 32 #define LJ_ARCH_ENDIAN LUAJIT_LE