diff --git a/src/p_lx_elf.cpp b/src/p_lx_elf.cpp index 5d78991b..1b7b42a2 100644 --- a/src/p_lx_elf.cpp +++ b/src/p_lx_elf.cpp @@ -823,12 +823,12 @@ PackLinuxElf32ppc::addStubEntrySections(Filter const *) addLoader("ELFMAINX", NULL); //addLoader(getDecompressorSections(), NULL); addLoader( - ( M_IS_NRV2E(ph.method) ? "NRV_COMMON,NRV2E" - : M_IS_NRV2D(ph.method) ? "NRV_COMMON,NRV2D" - : M_IS_NRV2B(ph.method) ? "NRV_COMMON,NRV2B" + ( M_IS_NRV2E(ph.method) ? "NRV_HEAD,NRV2E,NRV_TAIL" + : M_IS_NRV2D(ph.method) ? "NRV_HEAD,NRV2D,NRV_TAIL" + : M_IS_NRV2B(ph.method) ? "NRV_HEAD,NRV2B,NRV_TAIL" : M_IS_LZMA(ph.method) ? "LZMA_ELF00,LZMA_DEC20,LZMA_DEC30" : NULL), NULL); - addLoader("ELFMAINY,IDENTSTR,ELFMAINZ,FOLDEXEC", NULL); + addLoader("ELFMAINY,IDENTSTR,+40,ELFMAINZ,FOLDEXEC", NULL); } void diff --git a/src/stub/powerpc-linux.elf-entry.h b/src/stub/powerpc-linux.elf-entry.h index 5365f42d..c33e0494 100644 --- a/src/stub/powerpc-linux.elf-entry.h +++ b/src/stub/powerpc-linux.elf-entry.h @@ -1,4 +1,4 @@ -/* powerpc-linux.elf-entry.h -- created from powerpc-linux.elf-entry.bin, 9316 (0x2464) bytes +/* powerpc-linux.elf-entry.h -- created from powerpc-linux.elf-entry.bin, 9492 (0x2514) bytes This file is part of the UPX executable compressor. @@ -27,15 +27,15 @@ */ -#define LINUX_ELFPPC32_LOADER_SIZE 9316 -#define LINUX_ELFPPC32_LOADER_ADLER32 0xf98c7322 -#define LINUX_ELFPPC32_LOADER_CRC32 0xfe9cda55 +#define LINUX_ELFPPC32_LOADER_SIZE 9492 +#define LINUX_ELFPPC32_LOADER_ADLER32 0xae478fa2 +#define LINUX_ELFPPC32_LOADER_CRC32 0x3b23b398 -unsigned char linux_elfppc32_loader[9316] = { +unsigned char linux_elfppc32_loader[9492] = { 127, 69, 76, 70, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 0 */ 0, 1, 0, 20, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 10 */ - 0, 0, 23,160, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, /* 0x 20 */ - 0, 20, 0, 17, 72, 0, 0,125,124, 0, 41,236,125,168, 2,166, /* 0x 30 */ + 0, 0, 23,168, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, /* 0x 20 */ + 0, 21, 0, 18, 72, 0, 0,125,124, 0, 41,236,125,168, 2,166, /* 0x 30 */ 40, 7, 0, 8, 64,130, 1, 60,144,166, 0, 0,124,132, 26, 20, /* 0x 40 */ 60, 0,128, 0, 61, 32,128, 0, 56, 99,255,255, 56,165,255,255, /* 0x 50 */ 57, 64,255,255, 72, 0, 1, 12, 57, 32, 0, 1,125, 41, 28, 44, /* 0x 60 */ @@ -71,13 +71,13 @@ unsigned char linux_elfppc32_loader[9316] = { 65,160,255,244, 32, 74,242,255,125, 8, 57, 20,124,234, 42, 20, /* 0x 240 */ 125, 9, 3,166,141, 7, 0, 1,157, 5, 0, 1, 66, 0,255,248, /* 0x 250 */ 56,224, 1, 0,124, 7, 41,236,124, 7, 26, 44, 75,255,255,112, /* 0x 260 */ -124,128, 0, 8, 40, 7, 0, 14, 64,130, 0, 12,124, 8, 2,166, /* 0x 270 */ + 40, 7, 0, 14, 64,130, 0, 16,124, 8, 2,166,124,201, 51,120, /* 0x 270 */ 129, 6, 0, 0,124,167, 43,120, 56,164,255,254, 56,131, 0, 2, /* 0x 280 */ 144, 1, 0, 4,136, 3, 0, 0, 84, 11,232,254, 84, 2, 7,126, /* 0x 290 */ - 56, 96,250, 0,124, 99, 88, 48, 56, 99,241,128,124, 38, 11,120, /* 0x 2a0 */ -124, 33, 26, 20, 84, 33, 0, 52,124,195, 51,120, 56, 0, 0, 0, /* 0x 2b0 */ -148, 3,255,252,124, 1, 24, 64, 65,128,255,248,144,193, 0, 0, /* 0x 2c0 */ -136, 4,255,255, 57, 33, 0, 8, 56,193, 0, 12, 56, 97, 0, 16, /* 0x 2d0 */ + 56, 96,250, 0,124, 99, 88, 48, 56, 99,241,132,124, 38, 11,120, /* 0x 2a0 */ +124, 33, 26, 20, 84, 33, 0, 52, 56, 0, 0, 0,124,195, 51,120, /* 0x 2b0 */ +144, 9, 0, 0,148, 3,255,252,124, 1, 24, 64, 65,128,255,248, /* 0x 2c0 */ +144,193, 0, 0,136, 4,255,255, 56,193, 0, 8, 56, 97, 0, 12, /* 0x 2d0 */ 84, 11,225, 62, 84, 0, 7, 62,152, 67, 0, 2,153, 99, 0, 1, /* 0x 2e0 */ 152, 3, 0, 0,124, 8, 2,166,148, 33,255,160,189,193, 0, 24, /* 0x 2f0 */ 144, 1, 0,100, 59, 32, 0, 0,137, 67, 0, 2,137, 99, 0, 1, /* 0x 300 */ @@ -387,232 +387,243 @@ unsigned char linux_elfppc32_loader[9316] = { 72, 0, 0, 28, 57,140, 0, 1,125, 40, 2,166,124, 19, 96, 80, /* 0x1600 */ 144, 14, 0, 0, 56, 96, 0, 0,147, 41, 0, 0,128, 1, 0,100, /* 0x1610 */ 185,193, 0, 24,124, 8, 3,166, 56, 33, 0, 96,128, 33, 0, 0, /* 0x1620 */ -128, 1, 0, 4,124, 8, 3,166,128, 6, 0, 0,125,168, 3,166, /* 0x1630 */ - 56,165, 0, 1, 56, 99, 0, 1,124,160, 40, 80,124,100, 24, 80, /* 0x1640 */ -144,166, 0, 0, 78,128, 0, 32, 72, 0, 0, 1, 80, 82, 79, 84, /* 0x1650 */ - 95, 69, 88, 69, 67,124, 80, 82, 79, 84, 95, 87, 82, 73, 84, 69, /* 0x1660 */ - 32,102, 97,105,108,101,100, 46, 10, 0, 0, 0, 56,160, 0, 30, /* 0x1670 */ -124,136, 2,166, 56, 96, 0, 2, 56, 0, 0, 4, 68, 0, 0, 2, /* 0x1680 */ - 56, 96, 0,127, 56, 0, 0, 1, 68, 0, 0, 2,127,200, 2,166, /* 0x1690 */ - 57, 0, 0, 0, 56,224,255,255,128,126, 0, 4, 56,192, 0, 50, /* 0x16a0 */ - 56,160, 0, 7, 56,128, 16, 0,124, 99,242, 20, 56, 0, 0, 90, /* 0x16b0 */ - 56, 99, 16, 11, 84, 99, 0, 38, 68, 0, 0, 2, 65,131, 0, 32, /* 0x16c0 */ -127,233, 3,166,128, 30, 0, 0,136,254, 0, 8, 56,193, 0,124, /* 0x16d0 */ -144, 1, 0,124,124,101, 27,120,124,104, 3,166,128,158, 0, 4, /* 0x16e0 */ - 56,126, 0, 12, 78,128, 4, 32,148, 33,255,128,188, 65, 0, 4, /* 0x16f0 */ -127,232, 2,166, 75,255,255,153, 0, 46,115,121,109,116, 97, 98, /* 0x1700 */ - 0, 46,115,116,114,116, 97, 98, 0, 46,115,104,115,116,114,116, /* 0x1710 */ - 97, 98, 0, 46,114,101,108, 97, 69, 76, 70, 77, 65, 73, 78, 88, /* 0x1720 */ - 0, 78, 82, 86, 95, 67, 79, 77, 77, 79, 78, 0, 46,114,101,108, /* 0x1730 */ +128, 1, 0, 4,124, 8, 3,166, 78,128, 0, 32,128, 6, 0, 0, /* 0x1630 */ +125,168, 3,166, 56,165, 0, 1, 56, 99, 0, 1,124,160, 40, 80, /* 0x1640 */ +124,100, 24, 80,144,166, 0, 0, 78,128, 0, 32, 72, 0, 0, 1, /* 0x1650 */ + 80, 82, 79, 84, 95, 69, 88, 69, 67,124, 80, 82, 79, 84, 95, 87, /* 0x1660 */ + 82, 73, 84, 69, 32,102, 97,105,108,101,100, 46, 10, 0, 56,160, /* 0x1670 */ + 0, 30,124,136, 2,166, 56, 96, 0, 2, 56, 0, 0, 4, 68, 0, /* 0x1680 */ + 0, 2, 56, 96, 0,127, 56, 0, 0, 1, 68, 0, 0, 2,127,200, /* 0x1690 */ + 2,166, 57, 0, 0, 0, 56,224,255,255,128,126, 0, 4, 56,192, /* 0x16a0 */ + 0, 50, 56,160, 0, 7, 56,128, 16, 0,124, 99,242, 20, 56, 0, /* 0x16b0 */ + 0, 90, 56, 99, 16, 11, 84, 99, 0, 38, 68, 0, 0, 2, 65,131, /* 0x16c0 */ + 0, 0,127,233, 3,166,128, 30, 0, 0,136,254, 0, 8, 56,193, /* 0x16d0 */ + 0,124,144, 1, 0,124,124,101, 27,120,124,104, 3,166,128,158, /* 0x16e0 */ + 0, 4, 56,126, 0, 12, 78,128, 4, 32,148, 33,255,128,188, 65, /* 0x16f0 */ + 0, 4,127,232, 2,166, 75,255,255,153, 0, 46,115,121,109,116, /* 0x1700 */ + 97, 98, 0, 46,115,116,114,116, 97, 98, 0, 46,115,104,115,116, /* 0x1710 */ +114,116, 97, 98, 0, 46,114,101,108, 97, 69, 76, 70, 77, 65, 73, /* 0x1720 */ + 78, 88, 0, 78, 82, 86, 95, 72, 69, 65, 68, 0, 46,114,101,108, /* 0x1730 */ 97, 78, 82, 86, 50, 69, 0, 46,114,101,108, 97, 78, 82, 86, 50, /* 0x1740 */ 66, 0, 46,114,101,108, 97, 76, 90, 77, 65, 95, 69, 76, 70, 48, /* 0x1750 */ 48, 0, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 0, 76, 90, 77, /* 0x1760 */ 65, 95, 68, 69, 67, 50, 48, 0, 76, 90, 77, 65, 95, 68, 69, 67, /* 0x1770 */ - 51, 48, 0, 46,114,101,108, 97, 69, 76, 70, 77, 65, 73, 78, 89, /* 0x1780 */ - 0, 46,114,101,108, 97, 69, 76, 70, 77, 65, 73, 78, 90, 0, 0, /* 0x1790 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x17a0 */ + 51, 48, 0, 78, 82, 86, 95, 84, 65, 73, 76, 0, 46,114,101,108, /* 0x1780 */ + 97, 69, 76, 70, 77, 65, 73, 78, 89, 0, 46,114,101,108, 97, 69, /* 0x1790 */ + 76, 70, 77, 65, 73, 78, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x17a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x17b0 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 1, /* 0x17c0 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 4, /* 0x17d0 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, /* 0x17e0 */ - 0, 0, 0, 27, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x17f0 */ - 0, 0, 27,136, 0, 0, 0, 12, 0, 0, 0, 18, 0, 0, 0, 1, /* 0x1800 */ - 0, 0, 0, 4, 0, 0, 0, 12, 0, 0, 0, 41, 0, 0, 0, 1, /* 0x1810 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 0, /* 0x1820 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, /* 0x1830 */ - 0, 0, 0, 57, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1840 */ - 0, 0, 0, 56, 0, 0, 1, 72, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1850 */ - 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 4, /* 0x1860 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,148, 0, 0, 0, 12, /* 0x1870 */ - 0, 0, 0, 18, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 12, /* 0x1880 */ - 0, 0, 0, 68, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1890 */ - 0, 0, 1,128, 0, 0, 0,240, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x18a0 */ - 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 4, /* 0x18b0 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,160, 0, 0, 0, 12, /* 0x18c0 */ - 0, 0, 0, 18, 0, 0, 0, 6, 0, 0, 0, 4, 0, 0, 0, 12, /* 0x18d0 */ - 0, 0, 0, 79, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x18e0 */ - 0, 0, 2,112, 0, 0, 0,132, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x18f0 */ - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 4, /* 0x1900 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,172, 0, 0, 0, 12, /* 0x1910 */ - 0, 0, 0, 18, 0, 0, 0, 8, 0, 0, 0, 4, 0, 0, 0, 12, /* 0x1920 */ - 0, 0, 0, 90, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1930 */ - 0, 0, 2,244, 0, 0, 9,156, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1940 */ - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,101, 0, 0, 0, 1, /* 0x1950 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12,144, 0, 0, 9,156, /* 0x1960 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x1970 */ - 0, 0, 0,112, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1980 */ - 0, 0, 22, 44, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1990 */ - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 1, /* 0x19a0 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 56, 0, 0, 0, 68, /* 0x19b0 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, /* 0x19c0 */ - 0, 0, 0,123, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x19d0 */ - 0, 0, 27,184, 0, 0, 0, 12, 0, 0, 0, 18, 0, 0, 0, 13, /* 0x19e0 */ - 0, 0, 0, 4, 0, 0, 0, 12, 0, 0, 0,142, 0, 0, 0, 1, /* 0x19f0 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22,124, 0, 0, 0,140, /* 0x1a00 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, /* 0x1a10 */ - 0, 0, 0,137, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1a20 */ - 0, 0, 27,196, 0, 0, 0, 12, 0, 0, 0, 18, 0, 0, 0, 15, /* 0x1a30 */ - 0, 0, 0, 4, 0, 0, 0, 12, 0, 0, 0, 17, 0, 0, 0, 3, /* 0x1a40 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 8, 0, 0, 0,151, /* 0x1a50 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x1a60 */ - 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1a70 */ - 0, 0, 26,192, 0, 0, 0,192, 0, 0, 0, 19, 0, 0, 0, 11, /* 0x1a80 */ - 0, 0, 0, 4, 0, 0, 0, 16, 0, 0, 0, 9, 0, 0, 0, 3, /* 0x1a90 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,128, 0, 0, 0, 8, /* 0x1aa0 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x1ab0 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1ac0 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 12, /* 0x1ad0 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 13, /* 0x1ae0 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 15, /* 0x1af0 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 1, /* 0x1b00 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 3, /* 0x1b10 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 4, /* 0x1b20 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 6, /* 0x1b30 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 8, /* 0x1b40 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 10, /* 0x1b50 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 11, /* 0x1b60 */ - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 1, /* 0x1b70 */ - 0, 95,115,116, 97,114,116, 0, 0, 0, 0, 0, 0, 0, 3, 10, /* 0x1b80 */ - 0, 0, 0,124, 0, 0, 0,180, 0, 0, 2, 11, 0, 0, 0, 0, /* 0x1b90 */ - 0, 0, 0,144, 0, 0, 2, 11, 0, 0, 0, 0, 0, 0, 0, 8, /* 0x1ba0 */ - 0, 0, 1, 11, 0, 0, 0, 12, 0, 0, 0, 32, 0, 0, 3, 10, /* 0x1bb0 */ - 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 2, 11, 0, 0, 0, 32, /* 0x1bc0 */ - 10,116,109,112, 47,112,111,119,101,114,112, 99, 45,108,105,110, /* 0x1bd0 */ -117,120, 46,101,108,102, 45,101,110,116,114,121, 46, 98,105,110, /* 0x1be0 */ - 58, 32, 32, 32, 32, 32,102,105,108,101, 32,102,111,114,109, 97, /* 0x1bf0 */ -116, 32,101,108,102, 51, 50, 45,112,111,119,101,114,112, 99, 10, /* 0x1c00 */ - 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, 32, 78, /* 0x1c10 */ - 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122, /* 0x1c20 */ -101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, /* 0x1c30 */ - 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32, /* 0x1c40 */ -111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, /* 0x1c50 */ - 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, /* 0x1c60 */ - 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 52, 32, 32, 48, 48, 48, /* 0x1c70 */ - 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1c80 */ - 32, 48, 48, 48, 48, 48, 48, 51, 52, 32, 32, 50, 42, 42, 50, 32, /* 0x1c90 */ - 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, /* 0x1ca0 */ - 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, 32, 78, /* 0x1cb0 */ - 82, 86, 95, 67, 79, 77, 77, 79, 78, 32, 32, 32, 32, 48, 48, 48, /* 0x1cc0 */ - 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1cd0 */ - 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x1ce0 */ - 48, 51, 56, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, /* 0x1cf0 */ - 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, /* 0x1d00 */ - 50, 32, 78, 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1d10 */ - 48, 48, 48, 48, 48, 49, 52, 56, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1d20 */ - 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1d30 */ - 48, 48, 48, 48, 51, 56, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, /* 0x1d40 */ - 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, /* 0x1d50 */ - 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 51, 32, 78, 82, 86, 50, /* 0x1d60 */ - 66, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1d70 */ -102, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1d80 */ - 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 56, 48, /* 0x1d90 */ - 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, /* 0x1da0 */ - 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, /* 0x1db0 */ - 89, 10, 32, 32, 52, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, /* 0x1dc0 */ - 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 56, 52, 32, 32, 48, 48, /* 0x1dd0 */ - 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1de0 */ - 32, 32, 48, 48, 48, 48, 48, 50, 55, 48, 32, 32, 50, 42, 42, 48, /* 0x1df0 */ - 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, /* 0x1e00 */ - 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, 32, /* 0x1e10 */ - 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 32, 32, 32, 48, 48, /* 0x1e20 */ - 48, 48, 48, 57, 57, 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1e30 */ - 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1e40 */ - 48, 50,102, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, /* 0x1e50 */ - 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, /* 0x1e60 */ - 32, 54, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 32, 32, /* 0x1e70 */ - 32, 48, 48, 48, 48, 48, 57, 57, 99, 32, 32, 48, 48, 48, 48, 48, /* 0x1e80 */ - 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x1e90 */ - 48, 48, 48, 48, 99, 57, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, /* 0x1ea0 */ - 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, /* 0x1eb0 */ - 89, 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, /* 0x1ec0 */ - 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 99, 32, 32, 48, 48, /* 0x1ed0 */ - 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1ee0 */ - 32, 32, 48, 48, 48, 48, 49, 54, 50, 99, 32, 32, 50, 42, 42, 48, /* 0x1ef0 */ - 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, /* 0x1f00 */ - 79, 78, 76, 89, 10, 32, 32, 56, 32, 69, 76, 70, 77, 65, 73, 78, /* 0x1f10 */ - 89, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 52, 52, 32, /* 0x1f20 */ - 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x1f30 */ - 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 54, 51, 56, 32, 32, 50, /* 0x1f40 */ - 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, /* 0x1f50 */ - 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, /* 0x1f60 */ - 32, 57, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, /* 0x1f70 */ - 32, 48, 48, 48, 48, 48, 48, 56, 99, 32, 32, 48, 48, 48, 48, 48, /* 0x1f80 */ - 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x1f90 */ - 48, 48, 48, 49, 54, 55, 99, 32, 32, 50, 42, 42, 50, 32, 32, 67, /* 0x1fa0 */ - 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, /* 0x1fb0 */ - 82, 69, 65, 68, 79, 78, 76, 89, 10, 83, 89, 77, 66, 79, 76, 32, /* 0x1fc0 */ - 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1fd0 */ -108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, /* 0x1fe0 */ - 51, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, /* 0x1ff0 */ - 95, 68, 69, 67, 51, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2000 */ -108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, /* 0x2010 */ - 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, /* 0x2020 */ - 78, 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, /* 0x2030 */ - 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 9, 48, 48, 48, /* 0x2040 */ - 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, /* 0x2050 */ - 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, /* 0x2060 */ - 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x2070 */ - 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, /* 0x2080 */ - 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, /* 0x2090 */ - 67, 79, 77, 77, 79, 78, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x20a0 */ - 78, 82, 86, 95, 67, 79, 77, 77, 79, 78, 10, 48, 48, 48, 48, 48, /* 0x20b0 */ - 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, /* 0x20c0 */ - 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 69, /* 0x20d0 */ - 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, /* 0x20e0 */ - 32, 32, 78, 82, 86, 50, 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x20f0 */ - 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2100 */ -108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, /* 0x2110 */ - 48, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, /* 0x2120 */ - 95, 69, 76, 70, 48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2130 */ -108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, /* 0x2140 */ - 49, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, /* 0x2150 */ - 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2160 */ -108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, /* 0x2170 */ - 50, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, /* 0x2180 */ - 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2190 */ -103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, /* 0x21a0 */ - 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 95,115,116, 97,114,116, /* 0x21b0 */ - 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, /* 0x21c0 */ - 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, /* 0x21d0 */ - 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, /* 0x21e0 */ - 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x21f0 */ - 32, 86, 65, 76, 85, 69, 32, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2200 */ - 32, 82, 95, 80, 80, 67, 95, 82, 69, 76, 50, 52, 32, 32, 32, 32, /* 0x2210 */ - 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 43, 48,120, 48, 48, /* 0x2220 */ - 48, 48, 48, 48, 55, 99, 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, /* 0x2230 */ - 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, /* 0x2240 */ - 91, 78, 82, 86, 50, 69, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, /* 0x2250 */ - 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2260 */ - 32, 32, 32, 32, 86, 65, 76, 85, 69, 32, 10, 48, 48, 48, 48, 48, /* 0x2270 */ - 48, 98, 52, 32, 82, 95, 80, 80, 67, 95, 82, 69, 76, 49, 52, 32, /* 0x2280 */ - 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 10, /* 0x2290 */ - 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, /* 0x22a0 */ - 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 66, 93, 58, /* 0x22b0 */ - 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, /* 0x22c0 */ - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, /* 0x22d0 */ - 69, 32, 10, 48, 48, 48, 48, 48, 48, 57, 48, 32, 82, 95, 80, 80, /* 0x22e0 */ - 67, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 32, 32, 69, 76, /* 0x22f0 */ - 70, 77, 65, 73, 78, 89, 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, /* 0x2300 */ - 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, /* 0x2310 */ - 91, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 93, 58, 10, 79, 70, /* 0x2320 */ - 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, /* 0x2330 */ - 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 32, 10, /* 0x2340 */ - 48, 48, 48, 48, 48, 48, 48, 56, 32, 82, 95, 80, 80, 67, 95, 82, /* 0x2350 */ - 69, 76, 49, 52, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, /* 0x2360 */ - 68, 69, 67, 51, 48, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 99, /* 0x2370 */ - 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, /* 0x2380 */ - 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, /* 0x2390 */ - 73, 78, 89, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, /* 0x23a0 */ - 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x23b0 */ - 32, 86, 65, 76, 85, 69, 32, 10, 48, 48, 48, 48, 48, 48, 50, 48, /* 0x23c0 */ - 32, 82, 95, 80, 80, 67, 95, 82, 69, 76, 50, 52, 32, 32, 32, 32, /* 0x23d0 */ - 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 10, 10, 82, 69, /* 0x23e0 */ - 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, /* 0x23f0 */ - 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 90, 93, 58, /* 0x2400 */ - 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, /* 0x2410 */ - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, /* 0x2420 */ - 69, 32, 10, 48, 48, 48, 48, 48, 48, 53, 48, 32, 82, 95, 80, 80, /* 0x2430 */ - 67, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 32, 32, 69, 76, /* 0x2440 */ - 70, 77, 65, 73, 78, 89, 43, 48,120, 48, 48, 48, 48, 48, 48, 50, /* 0x2450 */ - 48, 10, 10, 10 /* 0x2460 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x17c0 */ + 0, 0, 0, 32, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x17d0 */ + 0, 0, 0, 52, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x17e0 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 4, /* 0x17f0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,200, 0, 0, 0, 12, /* 0x1800 */ + 0, 0, 0, 19, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 12, /* 0x1810 */ + 0, 0, 0, 41, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1820 */ + 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1830 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 1, /* 0x1840 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 1, 72, /* 0x1850 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x1860 */ + 0, 0, 0, 50, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1870 */ + 0, 0, 27,212, 0, 0, 0, 12, 0, 0, 0, 19, 0, 0, 0, 4, /* 0x1880 */ + 0, 0, 0, 4, 0, 0, 0, 12, 0, 0, 0, 66, 0, 0, 0, 1, /* 0x1890 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,128, 0, 0, 0,240, /* 0x18a0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x18b0 */ + 0, 0, 0, 61, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x18c0 */ + 0, 0, 27,224, 0, 0, 0, 12, 0, 0, 0, 19, 0, 0, 0, 6, /* 0x18d0 */ + 0, 0, 0, 4, 0, 0, 0, 12, 0, 0, 0, 77, 0, 0, 0, 1, /* 0x18e0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,112, 0, 0, 0,132, /* 0x18f0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x1900 */ + 0, 0, 0, 72, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1910 */ + 0, 0, 27,236, 0, 0, 0, 12, 0, 0, 0, 19, 0, 0, 0, 8, /* 0x1920 */ + 0, 0, 0, 4, 0, 0, 0, 12, 0, 0, 0, 88, 0, 0, 0, 1, /* 0x1930 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,244, 0, 0, 9,156, /* 0x1940 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x1950 */ + 0, 0, 0, 99, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1960 */ + 0, 0, 12,144, 0, 0, 9,156, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1970 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,110, 0, 0, 0, 1, /* 0x1980 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 44, 0, 0, 0, 16, /* 0x1990 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x19a0 */ + 0, 0, 0,121, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x19b0 */ + 0, 0, 22, 60, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x19c0 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,135, 0, 0, 0, 1, /* 0x19d0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 92, 0, 0, 0, 34, /* 0x19e0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x19f0 */ + 0, 0, 0,130, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1a00 */ + 0, 0, 27,248, 0, 0, 0, 12, 0, 0, 0, 19, 0, 0, 0, 14, /* 0x1a10 */ + 0, 0, 0, 4, 0, 0, 0, 12, 0, 0, 0,149, 0, 0, 0, 1, /* 0x1a20 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22,126, 0, 0, 0,140, /* 0x1a30 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x1a40 */ + 0, 0, 0,144, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1a50 */ + 0, 0, 28, 4, 0, 0, 0, 12, 0, 0, 0, 19, 0, 0, 0, 16, /* 0x1a60 */ + 0, 0, 0, 4, 0, 0, 0, 12, 0, 0, 0, 17, 0, 0, 0, 3, /* 0x1a70 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 10, 0, 0, 0,158, /* 0x1a80 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x1a90 */ + 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1aa0 */ + 0, 0, 26,240, 0, 0, 0,208, 0, 0, 0, 20, 0, 0, 0, 12, /* 0x1ab0 */ + 0, 0, 0, 4, 0, 0, 0, 16, 0, 0, 0, 9, 0, 0, 0, 3, /* 0x1ac0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,192, 0, 0, 0, 8, /* 0x1ad0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x1ae0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1af0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 12, /* 0x1b00 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 13, /* 0x1b10 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 14, /* 0x1b20 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 16, /* 0x1b30 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 1, /* 0x1b40 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 3, /* 0x1b50 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 4, /* 0x1b60 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 6, /* 0x1b70 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 8, /* 0x1b80 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 10, /* 0x1b90 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 11, /* 0x1ba0 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 1, /* 0x1bb0 */ + 0, 95,115,116, 97,114,116, 0, 0, 0, 0, 0, 0, 0, 4, 10, /* 0x1bc0 */ + 0, 0, 0,124, 0, 0, 0,180, 0, 0, 2, 11, 0, 0, 0, 0, /* 0x1bd0 */ + 0, 0, 0,144, 0, 0, 2, 11, 0, 0, 0, 0, 0, 0, 0, 4, /* 0x1be0 */ + 0, 0, 1, 11, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 4, 10, /* 0x1bf0 */ + 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 3, 11, 0, 0, 0, 0, /* 0x1c00 */ + 10,116,109,112, 47,112,111,119,101,114,112, 99, 45,108,105,110, /* 0x1c10 */ +117,120, 46,101,108,102, 45,101,110,116,114,121, 46, 98,105,110, /* 0x1c20 */ + 58, 32, 32, 32, 32, 32,102,105,108,101, 32,102,111,114,109, 97, /* 0x1c30 */ +116, 32,101,108,102, 51, 50, 45,112,111,119,101,114,112, 99, 10, /* 0x1c40 */ + 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, 32, 78, /* 0x1c50 */ + 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122, /* 0x1c60 */ +101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, /* 0x1c70 */ + 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32, /* 0x1c80 */ +111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, /* 0x1c90 */ + 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, /* 0x1ca0 */ + 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 52, 32, 32, 48, 48, 48, /* 0x1cb0 */ + 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1cc0 */ + 32, 48, 48, 48, 48, 48, 48, 51, 52, 32, 32, 50, 42, 42, 48, 32, /* 0x1cd0 */ + 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, /* 0x1ce0 */ + 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, 32, 78, /* 0x1cf0 */ + 82, 86, 95, 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, /* 0x1d00 */ + 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1d10 */ + 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x1d20 */ + 48, 51, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, /* 0x1d30 */ + 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, /* 0x1d40 */ + 50, 32, 78, 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1d50 */ + 48, 48, 48, 48, 48, 49, 52, 56, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1d60 */ + 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1d70 */ + 48, 48, 48, 48, 51, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, /* 0x1d80 */ + 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, /* 0x1d90 */ + 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 51, 32, 78, 82, 86, 50, /* 0x1da0 */ + 66, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1db0 */ +102, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1dc0 */ + 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 56, 48, /* 0x1dd0 */ + 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, /* 0x1de0 */ + 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, /* 0x1df0 */ + 89, 10, 32, 32, 52, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, /* 0x1e00 */ + 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 56, 52, 32, 32, 48, 48, /* 0x1e10 */ + 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1e20 */ + 32, 32, 48, 48, 48, 48, 48, 50, 55, 48, 32, 32, 50, 42, 42, 48, /* 0x1e30 */ + 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, /* 0x1e40 */ + 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, 32, /* 0x1e50 */ + 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 32, 32, 32, 48, 48, /* 0x1e60 */ + 48, 48, 48, 57, 57, 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1e70 */ + 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1e80 */ + 48, 50,102, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, /* 0x1e90 */ + 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, /* 0x1ea0 */ + 32, 54, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 32, 32, /* 0x1eb0 */ + 32, 48, 48, 48, 48, 48, 57, 57, 99, 32, 32, 48, 48, 48, 48, 48, /* 0x1ec0 */ + 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x1ed0 */ + 48, 48, 48, 48, 99, 57, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, /* 0x1ee0 */ + 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, /* 0x1ef0 */ + 89, 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, /* 0x1f00 */ + 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, 48, 32, 32, 48, 48, /* 0x1f10 */ + 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1f20 */ + 32, 32, 48, 48, 48, 48, 49, 54, 50, 99, 32, 32, 50, 42, 42, 48, /* 0x1f30 */ + 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, /* 0x1f40 */ + 79, 78, 76, 89, 10, 32, 32, 56, 32, 78, 82, 86, 95, 84, 65, 73, /* 0x1f50 */ + 76, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 48, 32, /* 0x1f60 */ + 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x1f70 */ + 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 54, 51, 99, 32, 32, 50, /* 0x1f80 */ + 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, /* 0x1f90 */ + 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, 69, 76, 70, 77, /* 0x1fa0 */ + 65, 73, 78, 89, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1fb0 */ + 50, 50, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1fc0 */ + 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 54, 53, 99, /* 0x1fd0 */ + 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, /* 0x1fe0 */ + 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, /* 0x1ff0 */ + 89, 10, 32, 49, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 32, /* 0x2000 */ + 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 56, 99, 32, 32, 48, 48, /* 0x2010 */ + 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2020 */ + 32, 32, 48, 48, 48, 48, 49, 54, 55,101, 32, 32, 50, 42, 42, 48, /* 0x2030 */ + 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, /* 0x2040 */ + 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 83, 89, 77, 66, /* 0x2050 */ + 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, /* 0x2060 */ + 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, /* 0x2070 */ + 68, 69, 67, 51, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, /* 0x2080 */ + 90, 77, 65, 95, 68, 69, 67, 51, 48, 10, 48, 48, 48, 48, 48, 48, /* 0x2090 */ + 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 84, /* 0x20a0 */ + 65, 73, 76, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, /* 0x20b0 */ + 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, /* 0x20c0 */ + 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 9, /* 0x20d0 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, /* 0x20e0 */ + 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x20f0 */ +100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 9, 48, 48, 48, 48, /* 0x2100 */ + 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, /* 0x2110 */ + 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, /* 0x2120 */ + 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2130 */ + 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, /* 0x2140 */ + 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 72, /* 0x2150 */ + 69, 65, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, /* 0x2160 */ + 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, /* 0x2170 */ + 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 69, 9, 48, 48, 48, /* 0x2180 */ + 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, /* 0x2190 */ + 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, /* 0x21a0 */ + 50, 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, /* 0x21b0 */ + 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x21c0 */ +100, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 9, 48, 48, /* 0x21d0 */ + 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, /* 0x21e0 */ + 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x21f0 */ +100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, /* 0x2200 */ + 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, /* 0x2210 */ + 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x2220 */ +100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 9, 48, 48, /* 0x2230 */ + 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, /* 0x2240 */ + 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, /* 0x2250 */ + 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, /* 0x2260 */ + 48, 48, 48, 48, 32, 95,115,116, 97,114,116, 10, 10, 10, 82, 69, /* 0x2270 */ + 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, /* 0x2280 */ + 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, /* 0x2290 */ + 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, /* 0x22a0 */ + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, /* 0x22b0 */ + 69, 32, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 82, 95, 80, 80, /* 0x22c0 */ + 67, 95, 82, 69, 76, 50, 52, 32, 32, 32, 32, 32, 32, 32, 69, 76, /* 0x22d0 */ + 70, 77, 65, 73, 78, 90, 43, 48,120, 48, 48, 48, 48, 48, 48, 55, /* 0x22e0 */ + 99, 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, /* 0x22f0 */ + 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, /* 0x2300 */ + 69, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, /* 0x2310 */ + 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, /* 0x2320 */ + 65, 76, 85, 69, 32, 10, 48, 48, 48, 48, 48, 48, 98, 52, 32, 82, /* 0x2330 */ + 95, 80, 80, 67, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 32, /* 0x2340 */ + 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 10, 82, 69, 76, 79, /* 0x2350 */ + 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, /* 0x2360 */ + 79, 82, 32, 91, 78, 82, 86, 50, 66, 93, 58, 10, 79, 70, 70, 83, /* 0x2370 */ + 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, /* 0x2380 */ + 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 32, 10, 48, 48, /* 0x2390 */ + 48, 48, 48, 48, 57, 48, 32, 82, 95, 80, 80, 67, 95, 82, 69, 76, /* 0x23a0 */ + 49, 52, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, /* 0x23b0 */ + 76, 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, /* 0x23c0 */ + 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, /* 0x23d0 */ + 95, 69, 76, 70, 48, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, /* 0x23e0 */ + 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x23f0 */ + 32, 32, 32, 32, 86, 65, 76, 85, 69, 32, 10, 48, 48, 48, 48, 48, /* 0x2400 */ + 48, 48, 52, 32, 82, 95, 80, 80, 67, 95, 82, 69, 76, 49, 52, 32, /* 0x2410 */ + 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, /* 0x2420 */ + 43, 48,120, 48, 48, 48, 48, 48, 48, 49, 48, 10, 10, 10, 82, 69, /* 0x2430 */ + 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, /* 0x2440 */ + 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 89, 93, 58, /* 0x2450 */ + 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, /* 0x2460 */ + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, /* 0x2470 */ + 69, 32, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 82, 95, 80, 80, /* 0x2480 */ + 67, 95, 82, 69, 76, 50, 52, 32, 32, 32, 32, 32, 32, 32, 69, 76, /* 0x2490 */ + 70, 77, 65, 73, 78, 90, 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, /* 0x24a0 */ + 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, /* 0x24b0 */ + 91, 69, 76, 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, /* 0x24c0 */ + 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, /* 0x24d0 */ + 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 32, 10, 48, 48, /* 0x24e0 */ + 48, 48, 48, 48, 53, 48, 32, 82, 95, 80, 80, 67, 95, 82, 69, 76, /* 0x24f0 */ + 49, 52, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, /* 0x2500 */ + 89, 10, 10, 10 /* 0x2510 */ }; diff --git a/src/stub/src/arch/powerpc/32/lzma_d.S b/src/stub/src/arch/powerpc/32/lzma_d.S index 10c4e6bc..5d9efdd4 100644 --- a/src/stub/src/arch/powerpc/32/lzma_d.S +++ b/src/stub/src/arch/powerpc/32/lzma_d.S @@ -1,5 +1,5 @@ /* -; lzma_d.S -- 64-bit PowerPC assembly +; lzma_d.S -- 32-bit PowerPC assembly ; ; This file is part of the UPX executable compressor. ; @@ -40,14 +40,9 @@ #define ldst a3 /* Out: actually a reference: &len_dst */ #define meth a4 -// ELFMAINX has already done this for us: -// pushq %rbp; push %rbx // C callable -// pushq ldst -// pushq dst -// addq src,lsrc; push lsrc // &input_eof +//// teq r0,r0 // debugging #define M_LZMA 14 - teq r0,r0 // debugging cmpli cr0,meth,M_LZMA bne cr0,not_lzma mflr r0 @@ -57,6 +52,7 @@ // a1= inp, a2= inSize, a3= &inSizeProcessed, // a4= outp, a5= outSize, a6= &outSizeProcessed //) + mr a6,ldst // &outSizeProcessed lwz a5,0(ldst) // outSize mr a4,dst // outp @@ -74,14 +70,15 @@ li a0,-2*LZMA_LIT_SIZE slw a0,a0,t1 // -2*LZMA_LIT_SIZE << (lit_context_bits + lit_pos_bits) - addi a0,a0,-2*4 -(2*szSizeT +4) - 2*LZMA_BASE_SIZE -// alloca{sp,ra, inSizeProcessed, outSizeProcessed, *_bits, CLzmaDecoderState} + addi a0,a0,-2*4 -(szSizeT +4) - 2*LZMA_BASE_SIZE +// alloca{sp,ra, inSizeProcessed,*_bits, CLzmaDecoderState} mr a3,sp add sp,sp,a0 rlwinm sp,sp,0,0,32-6 // (1<<6) byte align - mr a0,a3 // old sp li r0,0 + mr a0,a3 // old sp + stw r0,0(a6) // outSizeProcessed= 0; 1: stwu r0,-4(a0) // clear CLZmaDecoderState on stack cmpl cr0,sp,a0 // compare logical ==> compare unsigned @@ -89,9 +86,8 @@ stw a3,0(sp) // frame chain lbz r0,-1(a1) // second byte, replaces LzmaDecodeProperties() - la a6,2*4 (sp) // &outSizeProcessed - la a3,2*4+1*szSizeT(sp) // &inSizeProcessed - la a0,2*4+2*szSizeT(sp) // &CLzmaDecoderState + la a3,2*4 (sp) // &inSizeProcessed + la a0,2*4+szSizeT(sp) // &CLzmaDecoderState rlwinm t1,r0,32-4,4,31 // t1= (r0>>4)==lit_pos_bits rlwinm r0,r0,0,32-4,31 // r0= (0xf& r0)==lit_context_bits stb t0,2(a0) // pos_bits @@ -108,6 +104,8 @@ lwz sp,0(sp) // old sp lwz r0,4(sp) // ret.addr mtlr r0 + blr + not_lzma: // vi:ts=8:et diff --git a/src/stub/src/powerpc-linux.elf-entry.S b/src/stub/src/powerpc-linux.elf-entry.S index 899fbce9..f242b226 100644 --- a/src/stub/src/powerpc-linux.elf-entry.S +++ b/src/stub/src/powerpc-linux.elf-entry.S @@ -54,15 +54,13 @@ __NR_exit = 1 __NR_mmap = 90 section ELFMAINX - .balign 4 _start: .globl _start call main // must be exactly 1 instruction; link_register= &decompress /* Returns 0 on success; non-zero on failure. */ decompress: // (uchar const *src, size_t lsrc, uchar *dst, size_t &ldst, uint method) - section NRV_COMMON - .balign 4 + section NRV_HEAD SZ_DLINE=128 # size of data cache line in Apple G5 /* PowerPC has no 'cmplis': compare logical [unsigned] immediate shifted [by 16] */ @@ -80,17 +78,14 @@ SZ_DLINE=128 # size of data cache line in Apple G5 #define disp a7 section NRV2E - .balign 4 #include "arch/powerpc/32/nrv2e_d.S" section NRV2B - .balign 4 #include "arch/powerpc/32/nrv2b_d.S" #include "arch/powerpc/32/lzma_d.S" - section ELFMAINY - .balign 4 + section NRV_TAIL eof_nrv: #define tmp r0 /* hibit is dead */ lwz tmp,0(ldst) // original dst @@ -103,6 +98,7 @@ eof_nrv: stw dst,0(ldst) ret + section ELFMAINY msg_SELinux: call L72 L70: @@ -111,7 +107,6 @@ L71: // IDENTSTR goes here section ELFMAINZ - .balign 4 L72: li a2,L71 - L70 // length mflr a1 // message text