From 1377b54b9e55c491bca1cb86a63c50a382af0ee3 Mon Sep 17 00:00:00 2001 From: "Markus F.X.J. Oberhumer" Date: Sun, 4 Mar 2007 15:20:09 +0100 Subject: [PATCH] dos/exe: optimize M_PIA_small. --- src/stub/i086-dos16.exe.h | 50 ++++++++++++++++----------------- src/stub/src/arch/i086/lzma_m.h | 2 +- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/src/stub/i086-dos16.exe.h b/src/stub/i086-dos16.exe.h index af55577d..5f4e532f 100644 --- a/src/stub/i086-dos16.exe.h +++ b/src/stub/i086-dos16.exe.h @@ -29,8 +29,8 @@ #define STUB_I086_DOS16_EXE_SIZE 29811 -#define STUB_I086_DOS16_EXE_ADLER32 0x228cea46 -#define STUB_I086_DOS16_EXE_CRC32 0x94573977 +#define STUB_I086_DOS16_EXE_ADLER32 0x7a31e9e4 +#define STUB_I086_DOS16_EXE_CRC32 0x9633192c unsigned char stub_i086_dos16_exe[29811] = { 127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 0 */ @@ -103,7 +103,7 @@ unsigned char stub_i086_dos16_exe[29811] = { 19,137,211,209,227, 3, 94,222,199, 7, 0, 4,131,194, 1,131, /* 0x 430 */ 208, 0,235,227,139, 94, 10,137, 94,244,139, 70, 12,137, 70,246, /* 0x 440 */ 137,216,139, 86, 12,139, 94, 14,139, 78, 16, 1,216,131,209, 0, /* 0x 450 */ -137,203,177, 12,211,227, 1,218,137, 70,226,137, 86,228, 49,192, /* 0x 460 */ +136,203,177, 4,210,227, 0,222,137, 70,226,137, 86,228, 49,192, /* 0x 460 */ 137, 70,250,137, 70,252,190,255,255,137,247,137, 70,184,235, 64, /* 0x 470 */ 196, 94,244, 38,138, 7,136, 70,166,198, 70,167, 0,139, 70,250, /* 0x 480 */ 139, 86,252,136,214,136,226,136,196, 48,192,139, 94,166, 9,195, /* 0x 490 */ @@ -131,8 +131,8 @@ unsigned char stub_i086_dos16_exe[29811] = { 193,137,208,247,227,145,247,227, 1,202,209,224,209,210,139, 86, /* 0x 5f0 */ 222,129,194,108, 14, 1,194,137, 86,242,131,126,240, 7,125, 3, /* 0x 600 */ 233, 57, 1,139, 94,236, 43, 94,154,139, 78,238, 27, 78,156,139, /* 0x 610 */ - 70, 20,139, 86, 22, 1,216,131,209, 0,137,203,177, 12,211,227, /* 0x 620 */ - 1,218,137,195,142,194, 38,138, 7, 48,228,137, 70,180,209,102, /* 0x 630 */ + 70, 20,139, 86, 22, 1,216,131,209, 0,136,203,177, 4,210,227, /* 0x 620 */ + 0,222,137,195,142,194, 38,138, 7, 48,228,137, 70,180,209,102, /* 0x 630 */ 180,139, 70,180, 48,192,128,228, 1,137, 70,190,209,224,139, 86, /* 0x 640 */ 242,128,198, 2, 1,194,139, 70,230,209,224, 1,194,137, 86,210, /* 0x 650 */ 129,255, 0, 1,115, 87,139, 70,244,139, 86,246,139, 94,226,139, /* 0x 660 */ @@ -166,8 +166,8 @@ unsigned char stub_i086_dos16_exe[29811] = { 250, 25, 86,252,177, 5,139, 94,216,139, 7,211,232, 41, 7,139, /* 0x 820 */ 70,230, 1,192, 64,137, 70,230,233, 17,255,138, 70,230,136, 70, /* 0x 830 */ 254,139, 94,236,139, 78,238,131, 70,236, 1,131, 86,238, 0,139, /* 0x 840 */ - 70, 20,139, 86, 22, 1,216,131,209, 0,137,203,177, 12,211,227, /* 0x 850 */ - 1,218,137,195,142,194,138, 70,230, 38,136, 7,139, 70,240,131, /* 0x 860 */ + 70, 20,139, 86, 22, 1,216,131,209, 0,136,203,177, 4,210,227, /* 0x 850 */ + 0,222,137,195,142,194,138, 70,230, 38,136, 7,139, 70,240,131, /* 0x 860 */ 248, 4,125, 8, 49,192,137, 70,240,233, 94,252,131,248, 10,125, /* 0x 870 */ 7,131,110,240, 3,233, 82,252,131,110,240, 6,233, 75,252, 43, /* 0x 880 */ 118,248, 25,215,139, 70,248, 41, 70,250, 25, 86,252,177, 5,139, /* 0x 890 */ @@ -218,10 +218,10 @@ unsigned char stub_i086_dos16_exe[29811] = { 238, 11, 70,236,117, 3,233,107,249,131,126,240, 7,125, 7,184, /* 0x b60 */ 9, 0,235, 5,235, 93,184, 11, 0,137, 70,240,139, 94,236, 43, /* 0x b70 */ 94,154,139, 78,238, 27, 78,156,139, 70, 20,139, 86, 22, 1,216, /* 0x b80 */ -131,209, 0,137,203,177, 12,211,227, 1,218,137,195,142,194, 38, /* 0x b90 */ +131,209, 0,136,203,177, 4,210,227, 0,222,137,195,142,194, 38, /* 0x b90 */ 138, 7,136, 70,254,139, 94,236,139, 78,238,131, 70,236, 1,131, /* 0x ba0 */ - 86,238, 0,139, 70, 20,139, 86, 22, 1,216,131,209, 0,137,203, /* 0x bb0 */ -177, 12,211,227, 1,218,137,195,142,194,138, 70,254, 38,136, 7, /* 0x bc0 */ + 86,238, 0,139, 70, 20,139, 86, 22, 1,216,131,209, 0,136,203, /* 0x bb0 */ +177, 4,210,227, 0,222,137,195,142,194,138, 70,254, 38,136, 7, /* 0x bc0 */ 233, 7,249, 43,118,248, 25,215,139, 70,248, 41, 70,250, 25, 86, /* 0x bd0 */ 252,177, 5,139, 94,242,139, 7,211,232, 41, 7,233, 10, 2, 43, /* 0x be0 */ 118,248, 27,126,162,139, 70,248, 41, 70,250,139, 70,162, 25, 70, /* 0x bf0 */ @@ -359,11 +359,11 @@ unsigned char stub_i086_dos16_exe[29811] = { 139, 70,156, 11, 70,154,117, 3,233,141, 0,131, 70,232, 2,139, /* 0x1430 */ 70,156, 59, 70,238,118, 3,233,138,240,117, 8,139, 70,154, 59, /* 0x1440 */ 70,236,119,243,139, 94,236, 43, 94,154,139, 78,238, 27, 78,156, /* 0x1450 */ -139, 70, 20,139, 86, 22, 1,216,131,209, 0,137,203,177, 12,211, /* 0x1460 */ -227, 1,218,137,195,142,194, 38,138, 7,136, 70,254,139, 94,236, /* 0x1470 */ +139, 70, 20,139, 86, 22, 1,216,131,209, 0,136,203,177, 4,210, /* 0x1460 */ +227, 0,222,137,195,142,194, 38,138, 7,136, 70,254,139, 94,236, /* 0x1470 */ 139, 78,238,255, 78,232,131, 70,236, 1,131, 86,238, 0,139, 70, /* 0x1480 */ - 20,139, 86, 22, 1,216,131,209, 0,137,203,177, 12,211,227, 1, /* 0x1490 */ -218,137,195,142,194,138, 70,254, 38,136, 7,131,126,232, 0,117, /* 0x14a0 */ + 20,139, 86, 22, 1,216,131,209, 0,136,203,177, 4,210,227, 0, /* 0x1490 */ +222,137,195,142,194,138, 70,254, 38,136, 7,131,126,232, 0,117, /* 0x14a0 */ 3,233, 38,240,139, 70,238, 59, 70, 26,114,152,117,243,139, 70, /* 0x14b0 */ 236, 59, 70, 24,114,142,235,233,129,255, 0, 1,115, 41,139, 70, /* 0x14c0 */ 244,139, 86,246,139, 94,226,139, 78,228, 57,216,117, 7, 57,202, /* 0x14d0 */ @@ -385,7 +385,7 @@ unsigned char stub_i086_dos16_exe[29811] = { 23, 57,242,115, 19,137,211,209,227, 3, 94,222,199, 7, 0, 4, /* 0x15d0 */ 131,194, 1,131,208, 0,235,227,139, 94, 10,137, 94,244,139, 70, /* 0x15e0 */ 12,137, 70,246,137,216,139, 86, 12,139, 94, 14,139, 78, 16, 1, /* 0x15f0 */ -216,131,209, 0,137,203,177, 12,211,227, 1,218,137, 70,226,137, /* 0x1600 */ +216,131,209, 0,136,203,177, 4,210,227, 0,222,137, 70,226,137, /* 0x1600 */ 86,228, 49,192,137, 70,250,137, 70,252,190,255,255,137,247,137, /* 0x1610 */ 70,184,235, 64,196, 94,244, 38,138, 7,136, 70,166,198, 70,167, /* 0x1620 */ 0,139, 70,250,139, 86,252,136,214,136,226,136,196, 48,192,139, /* 0x1630 */ @@ -413,8 +413,8 @@ unsigned char stub_i086_dos16_exe[29811] = { 187, 0, 3,137,193,137,208,247,227,145,247,227, 1,202,209,224, /* 0x1790 */ 209,210,139, 86,222,129,194,108, 14, 1,194,137, 86,242,131,126, /* 0x17a0 */ 240, 7,125, 3,233, 57, 1,139, 94,236, 43, 94,154,139, 78,238, /* 0x17b0 */ - 27, 78,156,139, 70, 20,139, 86, 22, 1,216,131,209, 0,137,203, /* 0x17c0 */ -177, 12,211,227, 1,218,137,195,142,194, 38,138, 7, 48,228,137, /* 0x17d0 */ + 27, 78,156,139, 70, 20,139, 86, 22, 1,216,131,209, 0,136,203, /* 0x17c0 */ +177, 4,210,227, 0,222,137,195,142,194, 38,138, 7, 48,228,137, /* 0x17d0 */ 70,180,209,102,180,139, 70,180, 48,192,128,228, 1,137, 70,190, /* 0x17e0 */ 209,224,139, 86,242,128,198, 2, 1,194,139, 70,230,209,224, 1, /* 0x17f0 */ 194,137, 86,210,129,255, 0, 1,115, 87,139, 70,244,139, 86,246, /* 0x1800 */ @@ -448,8 +448,8 @@ unsigned char stub_i086_dos16_exe[29811] = { 70,248, 41, 70,250, 25, 86,252,177, 5,139, 94,216,139, 7,211, /* 0x19c0 */ 232, 41, 7,139, 70,230, 1,192, 64,137, 70,230,233, 17,255,138, /* 0x19d0 */ 70,230,136, 70,254,139, 94,236,139, 78,238,131, 70,236, 1,131, /* 0x19e0 */ - 86,238, 0,139, 70, 20,139, 86, 22, 1,216,131,209, 0,137,203, /* 0x19f0 */ -177, 12,211,227, 1,218,137,195,142,194,138, 70,230, 38,136, 7, /* 0x1a00 */ + 86,238, 0,139, 70, 20,139, 86, 22, 1,216,131,209, 0,136,203, /* 0x19f0 */ +177, 4,210,227, 0,222,137,195,142,194,138, 70,230, 38,136, 7, /* 0x1a00 */ 139, 70,240,131,248, 4,125, 8, 49,192,137, 70,240,233, 94,252, /* 0x1a10 */ 131,248, 10,125, 7,131,110,240, 3,233, 82,252,131,110,240, 6, /* 0x1a20 */ 233, 75,252, 43,118,248, 25,215,139, 70,248, 41, 70,250, 25, 86, /* 0x1a30 */ @@ -500,10 +500,10 @@ unsigned char stub_i086_dos16_exe[29811] = { 1, 7,139, 70,238, 11, 70,236,117, 3,233,107,249,131,126,240, /* 0x1d00 */ 7,125, 7,184, 9, 0,235, 5,235, 93,184, 11, 0,137, 70,240, /* 0x1d10 */ 139, 94,236, 43, 94,154,139, 78,238, 27, 78,156,139, 70, 20,139, /* 0x1d20 */ - 86, 22, 1,216,131,209, 0,137,203,177, 12,211,227, 1,218,137, /* 0x1d30 */ + 86, 22, 1,216,131,209, 0,136,203,177, 4,210,227, 0,222,137, /* 0x1d30 */ 195,142,194, 38,138, 7,136, 70,254,139, 94,236,139, 78,238,131, /* 0x1d40 */ 70,236, 1,131, 86,238, 0,139, 70, 20,139, 86, 22, 1,216,131, /* 0x1d50 */ -209, 0,137,203,177, 12,211,227, 1,218,137,195,142,194,138, 70, /* 0x1d60 */ +209, 0,136,203,177, 4,210,227, 0,222,137,195,142,194,138, 70, /* 0x1d60 */ 254, 38,136, 7,233, 7,249, 43,118,248, 25,215,139, 70,248, 41, /* 0x1d70 */ 70,250, 25, 86,252,177, 5,139, 94,242,139, 7,211,232, 41, 7, /* 0x1d80 */ 233, 10, 2, 43,118,248, 27,126,162,139, 70,248, 41, 70,250,139, /* 0x1d90 */ @@ -641,11 +641,11 @@ unsigned char stub_i086_dos16_exe[29811] = { 131, 86,156, 0,139, 70,156, 11, 70,154,117, 3,233,141, 0,131, /* 0x25d0 */ 70,232, 2,139, 70,156, 59, 70,238,118, 3,233,138,240,117, 8, /* 0x25e0 */ 139, 70,154, 59, 70,236,119,243,139, 94,236, 43, 94,154,139, 78, /* 0x25f0 */ -238, 27, 78,156,139, 70, 20,139, 86, 22, 1,216,131,209, 0,137, /* 0x2600 */ -203,177, 12,211,227, 1,218,137,195,142,194, 38,138, 7,136, 70, /* 0x2610 */ +238, 27, 78,156,139, 70, 20,139, 86, 22, 1,216,131,209, 0,136, /* 0x2600 */ +203,177, 4,210,227, 0,222,137,195,142,194, 38,138, 7,136, 70, /* 0x2610 */ 254,139, 94,236,139, 78,238,255, 78,232,131, 70,236, 1,131, 86, /* 0x2620 */ -238, 0,139, 70, 20,139, 86, 22, 1,216,131,209, 0,137,203,177, /* 0x2630 */ - 12,211,227, 1,218,137,195,142,194,138, 70,254, 38,136, 7,131, /* 0x2640 */ +238, 0,139, 70, 20,139, 86, 22, 1,216,131,209, 0,136,203,177, /* 0x2630 */ + 4,210,227, 0,222,137,195,142,194,138, 70,254, 38,136, 7,131, /* 0x2640 */ 126,232, 0,117, 3,233, 38,240,139, 70,238, 59, 70, 26,114,152, /* 0x2650 */ 117,243,139, 70,236, 59, 70, 24,114,142,235,233,129,255, 0, 1, /* 0x2660 */ 115, 41,139, 70,244,139, 86,246,139, 94,226,139, 78,228, 57,216, /* 0x2670 */ diff --git a/src/stub/src/arch/i086/lzma_m.h b/src/stub/src/arch/i086/lzma_m.h index 43bbd093..fef1cdbd 100644 --- a/src/stub/src/arch/i086/lzma_m.h +++ b/src/stub/src/arch/i086/lzma_m.h @@ -43,7 +43,7 @@ .macro M_PIA_small add ax, bx adc cx, 0 -#if 1 +#if 0 // code size: 8 bytes // i086: 2+4+56+3 == 65 clocks // i286: 2+2+17+2 == 23 clocks