From c0c47f41becbafc53045066eba3c40d2de98438d Mon Sep 17 00:00:00 2001 From: "Markus F.X.J. Oberhumer" Date: Wed, 23 Aug 2006 13:58:16 +0200 Subject: [PATCH] Added initial lzma support for m68k. --- src/stub/src/arch/m68k/m68000/Makefile.extra | 48 +++++++ src/stub/src/arch/m68k/m68000/lzma_d_c.c | 69 +++++++++ src/stub/src/arch/m68k/m68000/lzma_d_cf.S | 139 +++++++++++++++++++ src/stub/src/arch/m68k/m68000/lzma_d_cs.S | 139 +++++++++++++++++++ src/stub/src/arch/m68k/m68020/Makefile.extra | 47 +++++++ src/stub/src/arch/m68k/m68020/lzma_d_c.c | 69 +++++++++ src/stub/src/arch/m68k/m68020/lzma_d_cf.S | 128 +++++++++++++++++ src/stub/src/arch/m68k/m68020/lzma_d_cs.S | 128 +++++++++++++++++ 8 files changed, 767 insertions(+) create mode 100644 src/stub/src/arch/m68k/m68000/Makefile.extra create mode 100644 src/stub/src/arch/m68k/m68000/lzma_d_c.c create mode 100644 src/stub/src/arch/m68k/m68000/lzma_d_cf.S create mode 100644 src/stub/src/arch/m68k/m68000/lzma_d_cs.S create mode 100644 src/stub/src/arch/m68k/m68020/Makefile.extra create mode 100644 src/stub/src/arch/m68k/m68020/lzma_d_c.c create mode 100644 src/stub/src/arch/m68k/m68020/lzma_d_cf.S create mode 100644 src/stub/src/arch/m68k/m68020/lzma_d_cs.S diff --git a/src/stub/src/arch/m68k/m68000/Makefile.extra b/src/stub/src/arch/m68k/m68000/Makefile.extra new file mode 100644 index 00000000..fe7a1989 --- /dev/null +++ b/src/stub/src/arch/m68k/m68000/Makefile.extra @@ -0,0 +1,48 @@ +MAKEFLAGS += -rR +.SUFFIXES: +.SECONDEXPANSION: + +ifndef top_srcdir +__dir_list = . .. ../.. ../../.. ../../../.. ../../../../.. +__dir_list += ../../../../../.. ../../../../../../.. ../../../../../../../.. +__dir_search = $(firstword $(foreach v,$1,$(if $(wildcard $v/$2),$v)) $3) +top_srcdir := $(call __dir_search,$(__dir_list),src/bele.h,NOT_FOUND) +endif + +default.targets = all +STUBS = NO_STUBS +include $(top_srcdir)/src/stub/Makefile +STUBS = + + +# /*********************************************************************** +# // m68k-lzma +# ************************************************************************/ + +ifneq ($(wildcard $(UPX_LZMADIR)/C/7zip/.),) + +STUBS += lzma_d_cf.S lzma_d_cs.S + +lzma_d_c%.S : tc_list = m68k-lzma default +lzma_d_c%.S : tc_bfdname = elf32-m68k + +tc.m68k-lzma.gcc = $(tc.m68k-atari.tos.gcc) +# FIXME / TODO: we still generate references to __mulsi3 +##tc.m68k-lzma.gcc += -m68020 +tc.m68k-lzma.gcc += -Os -fomit-frame-pointer +tc.m68k-lzma.gcc += -ffunction-sections +tc.m68k-lzma.gcc += -I$(UPX_LZMADIR) +tc.m68k-lzma.gcc += -I$(top_srcdir)/src + +lzma_d_c%.S : lzma_d_c.c + $(call tc,gcc) $(PP_FLAGS) -c $< -o tmp/$T.o + $(call tc,objstrip) tmp/$T.o + $(call tc,objcopy) -O binary --only-section .text.LzmaDecode tmp/$T.o tmp/$T.bin + head -c-2 tmp/$T.bin > tmp/$T.out + $(call tc,objdump) -b binary -m m68k -D tmp/$T.out | $(RTRIM) > tmp/$T.out.disasm + $(call tc,bin2h) --mode=gas tmp/$T.out $@ + +lzma_d_cf.% : PP_FLAGS = -DFAST +lzma_d_cs.% : PP_FLAGS = -DSMALL + +endif diff --git a/src/stub/src/arch/m68k/m68000/lzma_d_c.c b/src/stub/src/arch/m68k/m68000/lzma_d_c.c new file mode 100644 index 00000000..9d2c2c96 --- /dev/null +++ b/src/stub/src/arch/m68k/m68000/lzma_d_c.c @@ -0,0 +1,69 @@ +/* lzma_d.c -- + + This file is part of the UPX executable compressor. + + Copyright (C) 2006-2006 Markus Franz Xaver Johannes Oberhumer + All Rights Reserved. + + UPX and the UCL library are free software; you can redistribute them + and/or modify them under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. + If not, write to the Free Software Foundation, Inc., + 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + Markus F.X.J. Oberhumer + + */ + + +/************************************************************************* +// +**************************************************************************/ + +#define ACC_LIBC_NAKED +#define ACC_OS_FREESTANDING +#include "miniacc.h" + +#undef _LZMA_IN_CB +#undef _LZMA_OUT_READ +#undef _LZMA_PROB32 +#undef _LZMA_LOC_OPT + +#if 0 + +#include "C/7zip/Compress/LZMA_C/LzmaDecode.h" +#include "C/7zip/Compress/LZMA_C/LzmaDecode.c" +ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(CLzmaDecoderState) == 16) + +#else + +#define CLzmaDecoderState CLzmaDecoderState_dummy +#define LzmaDecode LzmaDecode_dummy +#include "C/7zip/Compress/LZMA_C/LzmaDecode.h" +#undef CLzmaDecoderState +#undef LzmaDecode +typedef struct { + struct { unsigned char lc, lp, pb, dummy; } Properties; + CProb Probs[6]; +// CProb *Probs; +} CLzmaDecoderState; +ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(CLzmaDecoderState) == 16) +#define CLzmaDecoderState const CLzmaDecoderState +#include "C/7zip/Compress/LZMA_C/LzmaDecode.c" + +#endif + + +/* +vi:ts=4:et:nowrap +*/ + diff --git a/src/stub/src/arch/m68k/m68000/lzma_d_cf.S b/src/stub/src/arch/m68k/m68000/lzma_d_cf.S new file mode 100644 index 00000000..e448202a --- /dev/null +++ b/src/stub/src/arch/m68k/m68000/lzma_d_cf.S @@ -0,0 +1,139 @@ +.byte 79,239,255,196, 72,231, 63, 62, 32,111, 0,108, 67,232, 0, 4 /* 0x0000 */ +.byte 47, 73, 0, 50,114, 0, 18, 40, 0, 2,112, 1, 36, 0,227,170 /* 0x0010 */ +.byte 34, 2, 83,129, 47, 65, 0, 60,114, 0, 18, 40, 0, 1,227,168 /* 0x0020 */ +.byte 83,128, 47, 64, 0, 64,118, 0, 22, 16, 47, 67, 0, 68, 34,111 /* 0x0030 */ +.byte 0,120, 66,145, 34,111, 0,132, 66,145,114, 0, 18, 40, 0, 1 /* 0x0040 */ +.byte 210,131, 32, 60, 0, 0, 3, 0,227,168, 6,128, 0, 0, 7, 54 /* 0x0050 */ +.byte 32,111, 0, 50,114, 0, 96, 6, 48,252, 4, 0, 82,129,176,129 /* 0x0060 */ +.byte 102,246, 32, 47, 0,112,208,175, 0,116, 47, 64, 0, 88, 40,111 /* 0x0070 */ +.byte 0,112,122, 0,114, 0, 32, 47, 0, 88,144,175, 0,112,176,129 /* 0x0080 */ +.byte 103, 0, 8, 18,225,141,138, 28, 82,129,116, 5,180,129,102,230 /* 0x0090 */ +.byte 66,175, 0, 54, 66, 47, 0, 59, 66,175, 0, 72,118, 1, 47, 67 /* 0x00a0 */ +.byte 0,100, 47, 67, 0, 76, 47, 67, 0, 80, 47, 67, 0, 84,120,255 /* 0x00b0 */ +.byte 96, 0, 7,176, 12,132, 0,255,255,255, 98, 14,185,239, 0, 88 /* 0x00c0 */ +.byte 103, 0, 7,210,225,140,225,141,138, 28, 44, 47, 0, 54,204,175 /* 0x00d0 */ +.byte 0, 60, 46, 47, 0, 72,233,143, 32, 6,208,135, 32, 64,209,192 /* 0x00e0 */ +.byte 36,111, 0, 50,213,200, 52, 18, 32, 4,114, 11,226,168,118, 0 /* 0x00f0 */ +.byte 54, 2, 75,249, 0, 0, 0, 0, 47, 3, 47, 0, 78,149, 80,143 /* 0x0100 */ +.byte 32, 64,176,133, 99, 0, 1,162, 32, 60, 0, 0, 8, 0,144,131 /* 0x0110 */ +.byte 234,128,212, 64, 52,130, 34, 47, 0, 54,194,175, 0, 64, 36, 47 /* 0x0120 */ +.byte 0, 68,229,169,112, 0, 16, 47, 0, 59,116, 8,148,175, 0, 68 /* 0x0130 */ +.byte 228,160,210,128, 32, 1,208,129,208,129,118, 9,231,168,208,175 /* 0x0140 */ +.byte 0, 50, 44, 64, 77,238, 14,108,112, 6,176,175, 0, 72,109, 8 /* 0x0150 */ +.byte 40, 8,126, 1, 96, 0, 1, 14, 32, 47, 0, 54,144,175, 0,100 /* 0x0160 */ +.byte 34,111, 0,124, 16, 49, 8, 0, 2,128, 0, 0, 0,255, 38, 64 /* 0x0170 */ +.byte 40, 8,126, 1, 12,132, 0,255,255,255, 98, 14,185,239, 0, 88 /* 0x0180 */ +.byte 103, 0, 7, 18,225,140,225,141,138, 28,215,203, 38, 11, 2,131 /* 0x0190 */ +.byte 0, 0, 1, 0, 32, 3,208,131,208,142, 42, 71,219,199, 65,245 /* 0x01a0 */ +.byte 8, 0, 69,232, 2, 0, 52, 18, 32, 4,114, 11,226,168,124, 0 /* 0x01b0 */ +.byte 60, 2, 47, 6, 47, 0, 97,255, 0, 0, 0, 0, 80,143, 34, 0 /* 0x01c0 */ +.byte 176,133, 99, 24, 32, 60, 0, 0, 8, 0,144,134,234,128,212, 64 /* 0x01d0 */ +.byte 52,130, 46, 13, 74,131,102,116, 40, 1, 96, 24,152,128,154,128 /* 0x01e0 */ +.byte 48, 2,234, 72,148, 64, 52,130, 32, 71, 65,240,120, 1, 46, 8 /* 0x01f0 */ +.byte 74,131,103,112, 12,135, 0, 0, 0,255,110,104, 96, 0,255,118 /* 0x0200 */ +.byte 12,132, 0,255,255,255, 98, 14,185,239, 0, 88,103, 0, 6,134 /* 0x0210 */ +.byte 225,140,225,141,138, 28, 44, 7,220,135, 69,246,104, 0, 52, 18 /* 0x0220 */ +.byte 32, 4,114, 11,226,168,118, 0, 54, 2, 47, 3, 47, 0, 97,255 /* 0x0230 */ +.byte 0, 0, 0, 0, 80,143, 34, 0,176,133, 99, 20, 32, 60, 0, 0 /* 0x0240 */ +.byte 8, 0,144,131,234,128,212, 64, 52,130, 46, 6, 40, 1, 96, 20 /* 0x0250 */ +.byte 152,128,154,128, 48, 2,234, 72,148, 64, 52,130, 32, 71, 65,240 /* 0x0260 */ +.byte 120, 1, 46, 8, 12,135, 0, 0, 0,255,111,148, 31, 71, 0, 59 /* 0x0270 */ +.byte 32, 47, 0,124, 34,111, 0, 54, 19,135, 8, 0, 36, 9, 82,130 /* 0x0280 */ +.byte 114, 3,178,175, 0, 72,109, 8, 66,175, 0, 72, 96, 0, 5,208 /* 0x0290 */ +.byte 118, 9,182,175, 0, 72,109, 8, 87,175, 0, 72, 96, 0, 5,192 /* 0x02a0 */ +.byte 93,175, 0, 72, 96, 0, 5,184, 38, 4,150,128,154,128, 48, 2 /* 0x02b0 */ +.byte 234, 72,148, 64, 52,130, 12,131, 0,255,255,255, 98, 14,185,239 /* 0x02c0 */ +.byte 0, 88,103, 0, 5,208,225,139,225,141,138, 28, 32, 47, 0, 72 /* 0x02d0 */ +.byte 208,128, 38,111, 0, 50,215,192, 69,235, 1,128, 52, 18, 32, 3 /* 0x02e0 */ +.byte 114, 11,226,168,120, 0, 56, 2, 47, 4, 47, 0, 78,149, 80,143 /* 0x02f0 */ +.byte 34, 0,176,133, 99, 66, 32, 60, 0, 0, 8, 0,144,132,234,128 /* 0x0300 */ +.byte 212, 64, 52,130,116, 6,180,175, 0, 72,109, 6, 66,175, 0, 72 /* 0x0310 */ +.byte 96, 6,118, 3, 47, 67, 0, 72, 38,111, 0, 50, 71,235, 6,100 /* 0x0320 */ +.byte 47,111, 0, 80, 0, 84, 47,111, 0, 76, 0, 80, 47,111, 0,100 /* 0x0330 */ +.byte 0, 76, 36, 1, 96, 0, 2, 4,150,128,154,128, 48, 2,234, 72 /* 0x0340 */ +.byte 148, 64, 52,130, 12,131, 0,255,255,255, 98, 14,185,239, 0, 88 /* 0x0350 */ +.byte 103, 0, 5, 66,225,139,225,141,138, 28, 69,235, 1,152, 52, 18 /* 0x0360 */ +.byte 32, 3,114, 11,226,168,120, 0, 56, 2, 47, 4, 47, 0, 78,149 /* 0x0370 */ +.byte 80,143, 34, 0,176,133, 99, 0, 0,192, 32, 60, 0, 0, 8, 0 /* 0x0380 */ +.byte 144,132,234,128,212, 64, 52,130, 12,129, 0,255,255,255, 99, 4 /* 0x0390 */ +.byte 36, 1, 96, 16,185,239, 0, 88,103, 0, 4,250, 36, 1,225,138 /* 0x03a0 */ +.byte 225,141,138, 28, 32, 7,208,135,208,175, 0, 50, 34, 6,210,134 /* 0x03b0 */ +.byte 32, 64,209,193, 69,232, 1,224, 54, 18, 32, 2,114, 11,226,168 /* 0x03c0 */ +.byte 120, 0, 56, 3, 47, 4, 47, 0, 97,255, 0, 0, 0, 0, 80,143 /* 0x03d0 */ +.byte 34, 0,176,133, 99, 82, 32, 60, 0, 0, 8, 0,144,132,234,128 /* 0x03e0 */ +.byte 214, 64, 52,131, 74,175, 0, 54,103, 0, 4,170,116, 6,180,175 /* 0x03f0 */ +.byte 0, 72,109, 8,118, 9, 47, 67, 0, 72, 96, 6,112, 11, 47, 64 /* 0x0400 */ +.byte 0, 72, 32, 47, 0, 54,144,175, 0,100, 32,111, 0,124, 31,112 /* 0x0410 */ +.byte 8, 0, 0, 59, 34,111, 0, 54, 19,175, 0, 59,136, 0, 36, 9 /* 0x0420 */ +.byte 82,130, 40, 1, 96, 0, 4, 56,148,128,154,128, 48, 3,234, 72 /* 0x0430 */ +.byte 150, 64, 52,131, 96, 0, 0,230,150,128,154,128, 48, 2,234, 72 /* 0x0440 */ +.byte 148, 64, 52,130, 12,131, 0,255,255,255, 98, 14,185,239, 0, 88 /* 0x0450 */ +.byte 103, 0, 4, 66,225,139,225,141,138, 28, 69,235, 1,176, 52, 18 /* 0x0460 */ +.byte 32, 3,114, 11,226,168,120, 0, 56, 2, 47, 4, 47, 0, 78,149 /* 0x0470 */ +.byte 80,143, 34, 0,176,133, 99, 20, 32, 60, 0, 0, 8, 0,144,132 /* 0x0480 */ +.byte 234,128,212, 64, 52,130, 32, 47, 0, 76, 96, 90, 40, 3,152,128 /* 0x0490 */ +.byte 154,128, 48, 2,234, 72,148, 64, 52,130, 12,132, 0,255,255,255 /* 0x04a0 */ +.byte 98, 14,185,239, 0, 88,103, 0, 3,236,225,140,225,141,138, 28 /* 0x04b0 */ +.byte 69,235, 1,200, 54, 18, 32, 4,116, 11,228,168,116, 0, 52, 3 /* 0x04c0 */ +.byte 47, 2, 47, 0, 78,149, 80,143, 34, 0,176,133, 99, 38, 32, 60 /* 0x04d0 */ +.byte 0, 0, 8, 0,144,130,234,128,214, 64, 52,131, 32, 47, 0, 80 /* 0x04e0 */ +.byte 47,111, 0, 76, 0, 80, 47,111, 0,100, 0, 76, 47, 64, 0,100 /* 0x04f0 */ +.byte 36, 1, 96, 40, 36, 4,148,128,154,128, 48, 3,234, 72,150, 64 /* 0x0500 */ +.byte 52,131, 32, 47, 0, 84, 47,111, 0, 80, 0, 84, 47,111, 0, 76 /* 0x0510 */ +.byte 0, 80, 47,111, 0,100, 0, 76, 47, 64, 0,100,118, 6,182,175 /* 0x0520 */ +.byte 0, 72,109, 8,112, 8, 47, 64, 0, 72, 96, 6,114, 11, 47, 65 /* 0x0530 */ +.byte 0, 72, 38,111, 0, 50, 71,235, 10,104, 12,130, 0,255,255,255 /* 0x0540 */ +.byte 98, 14,185,239, 0, 88,103, 0, 3, 76,225,138,225,141,138, 28 /* 0x0550 */ +.byte 54, 19, 32, 2,114, 11,226,168,120, 0, 56, 3, 75,249, 0, 0 /* 0x0560 */ +.byte 0, 0, 47, 4, 47, 0, 78,149, 80,143, 34, 0,176,133, 99, 30 /* 0x0570 */ +.byte 32, 60, 0, 0, 8, 0,144,132,234,128,214, 64, 54,131,233,142 /* 0x0580 */ +.byte 77,243,104, 4, 40, 1, 48,124, 0, 3,126, 0, 96,122, 40, 2 /* 0x0590 */ +.byte 152,128,154,128, 48, 3,234, 72,150, 64, 54,131, 12,132, 0,255 /* 0x05a0 */ +.byte 255,255, 98, 14,185,239, 0, 88,103, 0, 2,234,225,140,225,141 /* 0x05b0 */ +.byte 138, 28, 69,235, 0, 2, 52, 18, 32, 4,118, 11,230,168,118, 0 /* 0x05c0 */ +.byte 54, 2, 47, 3, 47, 0, 78,149, 80,143, 34, 0,176,133, 99, 34 /* 0x05d0 */ +.byte 32, 60, 0, 0, 8, 0,144,131,234,128,212, 64, 52,130,233,142 /* 0x05e0 */ +.byte 65,243,104, 0, 77,232, 1, 4, 40, 1, 48,124, 0, 3,126, 8 /* 0x05f0 */ +.byte 96, 22,152,128,154,128, 48, 2,234, 72,148, 64, 52,130, 77,235 /* 0x0600 */ +.byte 2, 4, 48,124, 0, 8,126, 16, 44, 8, 54,124, 0, 1, 12,132 /* 0x0610 */ +.byte 0,255,255,255, 98, 14,185,239, 0, 88,103, 0, 2,120,225,140 /* 0x0620 */ +.byte 225,141,138, 28, 75,243,184, 0, 69,246,216, 0, 52, 18, 32, 4 /* 0x0630 */ +.byte 114, 11,226,168,118, 0, 54, 2, 47, 3, 47, 0, 47, 72, 0, 54 /* 0x0640 */ +.byte 97,255, 0, 0, 0, 0, 80,143, 34, 0, 32,111, 0, 46,176,133 /* 0x0650 */ +.byte 99, 20, 32, 60, 0, 0, 8, 0,144,131,234,128,212, 64, 52,130 /* 0x0660 */ +.byte 38, 77, 40, 1, 96, 16,152,128,154,128, 48, 2,234, 72,148, 64 /* 0x0670 */ +.byte 52,130, 71,243,184, 1, 83,134,102,148,112, 1, 36, 8,229,168 /* 0x0680 */ +.byte 151,192,215,199, 47, 75, 0, 96,118, 3,182,175, 0, 72,109, 0 /* 0x0690 */ +.byte 1,132, 32, 11,182,139,108, 2,112, 3,239,136,208,175, 0, 50 /* 0x06a0 */ +.byte 46, 0, 6,135, 0, 0, 3, 96, 54,124, 0, 1,124, 6, 12,132 /* 0x06b0 */ +.byte 0,255,255,255, 98, 14,185,239, 0, 88,103, 0, 1,216,225,140 /* 0x06c0 */ +.byte 225,141,138, 28, 75,243,184, 0, 69,245,120, 0, 52, 18, 32, 4 /* 0x06d0 */ +.byte 114, 11,226,168,118, 0, 54, 2, 47, 3, 47, 0, 97,255, 0, 0 /* 0x06e0 */ +.byte 0, 0, 80,143, 34, 0,176,133, 99, 20, 32, 60, 0, 0, 8, 0 /* 0x06f0 */ +.byte 144,131,234,128,212, 64, 52,130, 38, 77, 40, 1, 96, 16,152,128 /* 0x0700 */ +.byte 154,128, 48, 2,234, 72,148, 64, 52,130, 71,243,184, 1, 83,134 /* 0x0710 */ +.byte 102,156,114,192,210,139,116, 3,180,129,108, 0, 0,234, 36, 1 /* 0x0720 */ +.byte 226,130, 46, 2, 83,135,112, 1,192,129,118, 2,128,131, 22, 60 /* 0x0730 */ +.byte 0, 13,182,129,109, 28, 38, 0,239,171, 32, 3,208,131,208,175 /* 0x0740 */ +.byte 0, 50,210,129,144,129, 6,128, 0, 0, 5, 94, 47, 64, 0, 92 /* 0x0750 */ +.byte 96, 62, 34, 2, 91,129, 12,132, 0,255,255,255, 98, 14,185,239 /* 0x0760 */ +.byte 0, 88,103, 0, 1, 48,225,140,225,141,138, 28,226,140,208,128 /* 0x0770 */ +.byte 184,133, 98, 6,154,132,116, 1,128,130, 83,129,102,216, 32,111 /* 0x0780 */ +.byte 0, 50, 65,232, 6, 68, 47, 72, 0, 92, 38, 0,233,139,126, 4 /* 0x0790 */ +.byte 60,124, 0, 1, 54,124, 0, 1, 12,132, 0,255,255,255, 98, 14 /* 0x07a0 */ +.byte 185,239, 0, 88,103, 0, 0,238,225,140,225,141,138, 28, 75,243 /* 0x07b0 */ +.byte 184, 0, 36,111, 0, 92,213,205, 52, 18, 32, 4,114, 11,226,168 /* 0x07c0 */ +.byte 124, 0, 60, 2, 47, 6, 47, 0, 97,255, 0, 0, 0, 0, 80,143 /* 0x07d0 */ +.byte 34, 0,176,133, 99, 20, 32, 60, 0, 0, 8, 0,144,134,234,128 /* 0x07e0 */ +.byte 212, 64, 52,130, 38, 77, 40, 1, 96, 20,152,128,154,128, 48, 2 /* 0x07f0 */ +.byte 234, 72,148, 64, 52,130, 71,243,184, 1, 36, 14,134,130, 83,135 /* 0x0800 */ +.byte 103, 6,221,206, 96,146, 38, 1, 82,131, 47, 67, 0,100,103, 94 /* 0x0810 */ +.byte 94,175, 0, 72, 38, 47, 0,100,182,175, 0, 54, 98,118, 32, 47 /* 0x0820 */ +.byte 0, 54,144,131, 34,111, 0,124,211,192, 32,111, 0,124,209,239 /* 0x0830 */ +.byte 0, 54, 36, 47, 0, 54,114, 0, 31, 81, 0, 59, 16,175, 0, 59 /* 0x0840 */ +.byte 82,130, 32, 47, 0, 96, 82,128,176,129,103, 18, 82,129, 82,137 /* 0x0850 */ +.byte 82,136, 32, 47, 0,128,144,175, 0, 54,176,129,102,218, 47, 66 /* 0x0860 */ +.byte 0, 54, 32, 47, 0, 54,176,175, 0,128,101, 0,248, 72, 12,132 /* 0x0870 */ +.byte 0,255,255,255, 98, 8,185,239, 0, 88,103, 24, 82,140,153,239 /* 0x0880 */ +.byte 0,112, 32,111, 0,120, 32,140, 34,111, 0,132, 34,175, 0, 54 /* 0x0890 */ +.byte 112, 0, 96, 2,112, 1, 76,223,124,252, 79,239, 0, 60 /* 0x08a0 */ diff --git a/src/stub/src/arch/m68k/m68000/lzma_d_cs.S b/src/stub/src/arch/m68k/m68000/lzma_d_cs.S new file mode 100644 index 00000000..e448202a --- /dev/null +++ b/src/stub/src/arch/m68k/m68000/lzma_d_cs.S @@ -0,0 +1,139 @@ +.byte 79,239,255,196, 72,231, 63, 62, 32,111, 0,108, 67,232, 0, 4 /* 0x0000 */ +.byte 47, 73, 0, 50,114, 0, 18, 40, 0, 2,112, 1, 36, 0,227,170 /* 0x0010 */ +.byte 34, 2, 83,129, 47, 65, 0, 60,114, 0, 18, 40, 0, 1,227,168 /* 0x0020 */ +.byte 83,128, 47, 64, 0, 64,118, 0, 22, 16, 47, 67, 0, 68, 34,111 /* 0x0030 */ +.byte 0,120, 66,145, 34,111, 0,132, 66,145,114, 0, 18, 40, 0, 1 /* 0x0040 */ +.byte 210,131, 32, 60, 0, 0, 3, 0,227,168, 6,128, 0, 0, 7, 54 /* 0x0050 */ +.byte 32,111, 0, 50,114, 0, 96, 6, 48,252, 4, 0, 82,129,176,129 /* 0x0060 */ +.byte 102,246, 32, 47, 0,112,208,175, 0,116, 47, 64, 0, 88, 40,111 /* 0x0070 */ +.byte 0,112,122, 0,114, 0, 32, 47, 0, 88,144,175, 0,112,176,129 /* 0x0080 */ +.byte 103, 0, 8, 18,225,141,138, 28, 82,129,116, 5,180,129,102,230 /* 0x0090 */ +.byte 66,175, 0, 54, 66, 47, 0, 59, 66,175, 0, 72,118, 1, 47, 67 /* 0x00a0 */ +.byte 0,100, 47, 67, 0, 76, 47, 67, 0, 80, 47, 67, 0, 84,120,255 /* 0x00b0 */ +.byte 96, 0, 7,176, 12,132, 0,255,255,255, 98, 14,185,239, 0, 88 /* 0x00c0 */ +.byte 103, 0, 7,210,225,140,225,141,138, 28, 44, 47, 0, 54,204,175 /* 0x00d0 */ +.byte 0, 60, 46, 47, 0, 72,233,143, 32, 6,208,135, 32, 64,209,192 /* 0x00e0 */ +.byte 36,111, 0, 50,213,200, 52, 18, 32, 4,114, 11,226,168,118, 0 /* 0x00f0 */ +.byte 54, 2, 75,249, 0, 0, 0, 0, 47, 3, 47, 0, 78,149, 80,143 /* 0x0100 */ +.byte 32, 64,176,133, 99, 0, 1,162, 32, 60, 0, 0, 8, 0,144,131 /* 0x0110 */ +.byte 234,128,212, 64, 52,130, 34, 47, 0, 54,194,175, 0, 64, 36, 47 /* 0x0120 */ +.byte 0, 68,229,169,112, 0, 16, 47, 0, 59,116, 8,148,175, 0, 68 /* 0x0130 */ +.byte 228,160,210,128, 32, 1,208,129,208,129,118, 9,231,168,208,175 /* 0x0140 */ +.byte 0, 50, 44, 64, 77,238, 14,108,112, 6,176,175, 0, 72,109, 8 /* 0x0150 */ +.byte 40, 8,126, 1, 96, 0, 1, 14, 32, 47, 0, 54,144,175, 0,100 /* 0x0160 */ +.byte 34,111, 0,124, 16, 49, 8, 0, 2,128, 0, 0, 0,255, 38, 64 /* 0x0170 */ +.byte 40, 8,126, 1, 12,132, 0,255,255,255, 98, 14,185,239, 0, 88 /* 0x0180 */ +.byte 103, 0, 7, 18,225,140,225,141,138, 28,215,203, 38, 11, 2,131 /* 0x0190 */ +.byte 0, 0, 1, 0, 32, 3,208,131,208,142, 42, 71,219,199, 65,245 /* 0x01a0 */ +.byte 8, 0, 69,232, 2, 0, 52, 18, 32, 4,114, 11,226,168,124, 0 /* 0x01b0 */ +.byte 60, 2, 47, 6, 47, 0, 97,255, 0, 0, 0, 0, 80,143, 34, 0 /* 0x01c0 */ +.byte 176,133, 99, 24, 32, 60, 0, 0, 8, 0,144,134,234,128,212, 64 /* 0x01d0 */ +.byte 52,130, 46, 13, 74,131,102,116, 40, 1, 96, 24,152,128,154,128 /* 0x01e0 */ +.byte 48, 2,234, 72,148, 64, 52,130, 32, 71, 65,240,120, 1, 46, 8 /* 0x01f0 */ +.byte 74,131,103,112, 12,135, 0, 0, 0,255,110,104, 96, 0,255,118 /* 0x0200 */ +.byte 12,132, 0,255,255,255, 98, 14,185,239, 0, 88,103, 0, 6,134 /* 0x0210 */ +.byte 225,140,225,141,138, 28, 44, 7,220,135, 69,246,104, 0, 52, 18 /* 0x0220 */ +.byte 32, 4,114, 11,226,168,118, 0, 54, 2, 47, 3, 47, 0, 97,255 /* 0x0230 */ +.byte 0, 0, 0, 0, 80,143, 34, 0,176,133, 99, 20, 32, 60, 0, 0 /* 0x0240 */ +.byte 8, 0,144,131,234,128,212, 64, 52,130, 46, 6, 40, 1, 96, 20 /* 0x0250 */ +.byte 152,128,154,128, 48, 2,234, 72,148, 64, 52,130, 32, 71, 65,240 /* 0x0260 */ +.byte 120, 1, 46, 8, 12,135, 0, 0, 0,255,111,148, 31, 71, 0, 59 /* 0x0270 */ +.byte 32, 47, 0,124, 34,111, 0, 54, 19,135, 8, 0, 36, 9, 82,130 /* 0x0280 */ +.byte 114, 3,178,175, 0, 72,109, 8, 66,175, 0, 72, 96, 0, 5,208 /* 0x0290 */ +.byte 118, 9,182,175, 0, 72,109, 8, 87,175, 0, 72, 96, 0, 5,192 /* 0x02a0 */ +.byte 93,175, 0, 72, 96, 0, 5,184, 38, 4,150,128,154,128, 48, 2 /* 0x02b0 */ +.byte 234, 72,148, 64, 52,130, 12,131, 0,255,255,255, 98, 14,185,239 /* 0x02c0 */ +.byte 0, 88,103, 0, 5,208,225,139,225,141,138, 28, 32, 47, 0, 72 /* 0x02d0 */ +.byte 208,128, 38,111, 0, 50,215,192, 69,235, 1,128, 52, 18, 32, 3 /* 0x02e0 */ +.byte 114, 11,226,168,120, 0, 56, 2, 47, 4, 47, 0, 78,149, 80,143 /* 0x02f0 */ +.byte 34, 0,176,133, 99, 66, 32, 60, 0, 0, 8, 0,144,132,234,128 /* 0x0300 */ +.byte 212, 64, 52,130,116, 6,180,175, 0, 72,109, 6, 66,175, 0, 72 /* 0x0310 */ +.byte 96, 6,118, 3, 47, 67, 0, 72, 38,111, 0, 50, 71,235, 6,100 /* 0x0320 */ +.byte 47,111, 0, 80, 0, 84, 47,111, 0, 76, 0, 80, 47,111, 0,100 /* 0x0330 */ +.byte 0, 76, 36, 1, 96, 0, 2, 4,150,128,154,128, 48, 2,234, 72 /* 0x0340 */ +.byte 148, 64, 52,130, 12,131, 0,255,255,255, 98, 14,185,239, 0, 88 /* 0x0350 */ +.byte 103, 0, 5, 66,225,139,225,141,138, 28, 69,235, 1,152, 52, 18 /* 0x0360 */ +.byte 32, 3,114, 11,226,168,120, 0, 56, 2, 47, 4, 47, 0, 78,149 /* 0x0370 */ +.byte 80,143, 34, 0,176,133, 99, 0, 0,192, 32, 60, 0, 0, 8, 0 /* 0x0380 */ +.byte 144,132,234,128,212, 64, 52,130, 12,129, 0,255,255,255, 99, 4 /* 0x0390 */ +.byte 36, 1, 96, 16,185,239, 0, 88,103, 0, 4,250, 36, 1,225,138 /* 0x03a0 */ +.byte 225,141,138, 28, 32, 7,208,135,208,175, 0, 50, 34, 6,210,134 /* 0x03b0 */ +.byte 32, 64,209,193, 69,232, 1,224, 54, 18, 32, 2,114, 11,226,168 /* 0x03c0 */ +.byte 120, 0, 56, 3, 47, 4, 47, 0, 97,255, 0, 0, 0, 0, 80,143 /* 0x03d0 */ +.byte 34, 0,176,133, 99, 82, 32, 60, 0, 0, 8, 0,144,132,234,128 /* 0x03e0 */ +.byte 214, 64, 52,131, 74,175, 0, 54,103, 0, 4,170,116, 6,180,175 /* 0x03f0 */ +.byte 0, 72,109, 8,118, 9, 47, 67, 0, 72, 96, 6,112, 11, 47, 64 /* 0x0400 */ +.byte 0, 72, 32, 47, 0, 54,144,175, 0,100, 32,111, 0,124, 31,112 /* 0x0410 */ +.byte 8, 0, 0, 59, 34,111, 0, 54, 19,175, 0, 59,136, 0, 36, 9 /* 0x0420 */ +.byte 82,130, 40, 1, 96, 0, 4, 56,148,128,154,128, 48, 3,234, 72 /* 0x0430 */ +.byte 150, 64, 52,131, 96, 0, 0,230,150,128,154,128, 48, 2,234, 72 /* 0x0440 */ +.byte 148, 64, 52,130, 12,131, 0,255,255,255, 98, 14,185,239, 0, 88 /* 0x0450 */ +.byte 103, 0, 4, 66,225,139,225,141,138, 28, 69,235, 1,176, 52, 18 /* 0x0460 */ +.byte 32, 3,114, 11,226,168,120, 0, 56, 2, 47, 4, 47, 0, 78,149 /* 0x0470 */ +.byte 80,143, 34, 0,176,133, 99, 20, 32, 60, 0, 0, 8, 0,144,132 /* 0x0480 */ +.byte 234,128,212, 64, 52,130, 32, 47, 0, 76, 96, 90, 40, 3,152,128 /* 0x0490 */ +.byte 154,128, 48, 2,234, 72,148, 64, 52,130, 12,132, 0,255,255,255 /* 0x04a0 */ +.byte 98, 14,185,239, 0, 88,103, 0, 3,236,225,140,225,141,138, 28 /* 0x04b0 */ +.byte 69,235, 1,200, 54, 18, 32, 4,116, 11,228,168,116, 0, 52, 3 /* 0x04c0 */ +.byte 47, 2, 47, 0, 78,149, 80,143, 34, 0,176,133, 99, 38, 32, 60 /* 0x04d0 */ +.byte 0, 0, 8, 0,144,130,234,128,214, 64, 52,131, 32, 47, 0, 80 /* 0x04e0 */ +.byte 47,111, 0, 76, 0, 80, 47,111, 0,100, 0, 76, 47, 64, 0,100 /* 0x04f0 */ +.byte 36, 1, 96, 40, 36, 4,148,128,154,128, 48, 3,234, 72,150, 64 /* 0x0500 */ +.byte 52,131, 32, 47, 0, 84, 47,111, 0, 80, 0, 84, 47,111, 0, 76 /* 0x0510 */ +.byte 0, 80, 47,111, 0,100, 0, 76, 47, 64, 0,100,118, 6,182,175 /* 0x0520 */ +.byte 0, 72,109, 8,112, 8, 47, 64, 0, 72, 96, 6,114, 11, 47, 65 /* 0x0530 */ +.byte 0, 72, 38,111, 0, 50, 71,235, 10,104, 12,130, 0,255,255,255 /* 0x0540 */ +.byte 98, 14,185,239, 0, 88,103, 0, 3, 76,225,138,225,141,138, 28 /* 0x0550 */ +.byte 54, 19, 32, 2,114, 11,226,168,120, 0, 56, 3, 75,249, 0, 0 /* 0x0560 */ +.byte 0, 0, 47, 4, 47, 0, 78,149, 80,143, 34, 0,176,133, 99, 30 /* 0x0570 */ +.byte 32, 60, 0, 0, 8, 0,144,132,234,128,214, 64, 54,131,233,142 /* 0x0580 */ +.byte 77,243,104, 4, 40, 1, 48,124, 0, 3,126, 0, 96,122, 40, 2 /* 0x0590 */ +.byte 152,128,154,128, 48, 3,234, 72,150, 64, 54,131, 12,132, 0,255 /* 0x05a0 */ +.byte 255,255, 98, 14,185,239, 0, 88,103, 0, 2,234,225,140,225,141 /* 0x05b0 */ +.byte 138, 28, 69,235, 0, 2, 52, 18, 32, 4,118, 11,230,168,118, 0 /* 0x05c0 */ +.byte 54, 2, 47, 3, 47, 0, 78,149, 80,143, 34, 0,176,133, 99, 34 /* 0x05d0 */ +.byte 32, 60, 0, 0, 8, 0,144,131,234,128,212, 64, 52,130,233,142 /* 0x05e0 */ +.byte 65,243,104, 0, 77,232, 1, 4, 40, 1, 48,124, 0, 3,126, 8 /* 0x05f0 */ +.byte 96, 22,152,128,154,128, 48, 2,234, 72,148, 64, 52,130, 77,235 /* 0x0600 */ +.byte 2, 4, 48,124, 0, 8,126, 16, 44, 8, 54,124, 0, 1, 12,132 /* 0x0610 */ +.byte 0,255,255,255, 98, 14,185,239, 0, 88,103, 0, 2,120,225,140 /* 0x0620 */ +.byte 225,141,138, 28, 75,243,184, 0, 69,246,216, 0, 52, 18, 32, 4 /* 0x0630 */ +.byte 114, 11,226,168,118, 0, 54, 2, 47, 3, 47, 0, 47, 72, 0, 54 /* 0x0640 */ +.byte 97,255, 0, 0, 0, 0, 80,143, 34, 0, 32,111, 0, 46,176,133 /* 0x0650 */ +.byte 99, 20, 32, 60, 0, 0, 8, 0,144,131,234,128,212, 64, 52,130 /* 0x0660 */ +.byte 38, 77, 40, 1, 96, 16,152,128,154,128, 48, 2,234, 72,148, 64 /* 0x0670 */ +.byte 52,130, 71,243,184, 1, 83,134,102,148,112, 1, 36, 8,229,168 /* 0x0680 */ +.byte 151,192,215,199, 47, 75, 0, 96,118, 3,182,175, 0, 72,109, 0 /* 0x0690 */ +.byte 1,132, 32, 11,182,139,108, 2,112, 3,239,136,208,175, 0, 50 /* 0x06a0 */ +.byte 46, 0, 6,135, 0, 0, 3, 96, 54,124, 0, 1,124, 6, 12,132 /* 0x06b0 */ +.byte 0,255,255,255, 98, 14,185,239, 0, 88,103, 0, 1,216,225,140 /* 0x06c0 */ +.byte 225,141,138, 28, 75,243,184, 0, 69,245,120, 0, 52, 18, 32, 4 /* 0x06d0 */ +.byte 114, 11,226,168,118, 0, 54, 2, 47, 3, 47, 0, 97,255, 0, 0 /* 0x06e0 */ +.byte 0, 0, 80,143, 34, 0,176,133, 99, 20, 32, 60, 0, 0, 8, 0 /* 0x06f0 */ +.byte 144,131,234,128,212, 64, 52,130, 38, 77, 40, 1, 96, 16,152,128 /* 0x0700 */ +.byte 154,128, 48, 2,234, 72,148, 64, 52,130, 71,243,184, 1, 83,134 /* 0x0710 */ +.byte 102,156,114,192,210,139,116, 3,180,129,108, 0, 0,234, 36, 1 /* 0x0720 */ +.byte 226,130, 46, 2, 83,135,112, 1,192,129,118, 2,128,131, 22, 60 /* 0x0730 */ +.byte 0, 13,182,129,109, 28, 38, 0,239,171, 32, 3,208,131,208,175 /* 0x0740 */ +.byte 0, 50,210,129,144,129, 6,128, 0, 0, 5, 94, 47, 64, 0, 92 /* 0x0750 */ +.byte 96, 62, 34, 2, 91,129, 12,132, 0,255,255,255, 98, 14,185,239 /* 0x0760 */ +.byte 0, 88,103, 0, 1, 48,225,140,225,141,138, 28,226,140,208,128 /* 0x0770 */ +.byte 184,133, 98, 6,154,132,116, 1,128,130, 83,129,102,216, 32,111 /* 0x0780 */ +.byte 0, 50, 65,232, 6, 68, 47, 72, 0, 92, 38, 0,233,139,126, 4 /* 0x0790 */ +.byte 60,124, 0, 1, 54,124, 0, 1, 12,132, 0,255,255,255, 98, 14 /* 0x07a0 */ +.byte 185,239, 0, 88,103, 0, 0,238,225,140,225,141,138, 28, 75,243 /* 0x07b0 */ +.byte 184, 0, 36,111, 0, 92,213,205, 52, 18, 32, 4,114, 11,226,168 /* 0x07c0 */ +.byte 124, 0, 60, 2, 47, 6, 47, 0, 97,255, 0, 0, 0, 0, 80,143 /* 0x07d0 */ +.byte 34, 0,176,133, 99, 20, 32, 60, 0, 0, 8, 0,144,134,234,128 /* 0x07e0 */ +.byte 212, 64, 52,130, 38, 77, 40, 1, 96, 20,152,128,154,128, 48, 2 /* 0x07f0 */ +.byte 234, 72,148, 64, 52,130, 71,243,184, 1, 36, 14,134,130, 83,135 /* 0x0800 */ +.byte 103, 6,221,206, 96,146, 38, 1, 82,131, 47, 67, 0,100,103, 94 /* 0x0810 */ +.byte 94,175, 0, 72, 38, 47, 0,100,182,175, 0, 54, 98,118, 32, 47 /* 0x0820 */ +.byte 0, 54,144,131, 34,111, 0,124,211,192, 32,111, 0,124,209,239 /* 0x0830 */ +.byte 0, 54, 36, 47, 0, 54,114, 0, 31, 81, 0, 59, 16,175, 0, 59 /* 0x0840 */ +.byte 82,130, 32, 47, 0, 96, 82,128,176,129,103, 18, 82,129, 82,137 /* 0x0850 */ +.byte 82,136, 32, 47, 0,128,144,175, 0, 54,176,129,102,218, 47, 66 /* 0x0860 */ +.byte 0, 54, 32, 47, 0, 54,176,175, 0,128,101, 0,248, 72, 12,132 /* 0x0870 */ +.byte 0,255,255,255, 98, 8,185,239, 0, 88,103, 24, 82,140,153,239 /* 0x0880 */ +.byte 0,112, 32,111, 0,120, 32,140, 34,111, 0,132, 34,175, 0, 54 /* 0x0890 */ +.byte 112, 0, 96, 2,112, 1, 76,223,124,252, 79,239, 0, 60 /* 0x08a0 */ diff --git a/src/stub/src/arch/m68k/m68020/Makefile.extra b/src/stub/src/arch/m68k/m68020/Makefile.extra new file mode 100644 index 00000000..074a180f --- /dev/null +++ b/src/stub/src/arch/m68k/m68020/Makefile.extra @@ -0,0 +1,47 @@ +MAKEFLAGS += -rR +.SUFFIXES: +.SECONDEXPANSION: + +ifndef top_srcdir +__dir_list = . .. ../.. ../../.. ../../../.. ../../../../.. +__dir_list += ../../../../../.. ../../../../../../.. ../../../../../../../.. +__dir_search = $(firstword $(foreach v,$1,$(if $(wildcard $v/$2),$v)) $3) +top_srcdir := $(call __dir_search,$(__dir_list),src/bele.h,NOT_FOUND) +endif + +default.targets = all +STUBS = NO_STUBS +include $(top_srcdir)/src/stub/Makefile +STUBS = + + +# /*********************************************************************** +# // m68k-lzma +# ************************************************************************/ + +ifneq ($(wildcard $(UPX_LZMADIR)/C/7zip/.),) + +STUBS += lzma_d_cf.S lzma_d_cs.S + +lzma_d_c%.S : tc_list = m68k-lzma default +lzma_d_c%.S : tc_bfdname = elf32-m68k + +tc.m68k-lzma.gcc = $(tc.m68k-atari.tos.gcc) +tc.m68k-lzma.gcc += -m68020-60 +tc.m68k-lzma.gcc += -Os -fomit-frame-pointer +tc.m68k-lzma.gcc += -ffunction-sections +tc.m68k-lzma.gcc += -I$(UPX_LZMADIR) +tc.m68k-lzma.gcc += -I$(top_srcdir)/src + +lzma_d_c%.S : lzma_d_c.c + $(call tc,gcc) $(PP_FLAGS) -c $< -o tmp/$T.o + $(call tc,objstrip) tmp/$T.o + $(call tc,objcopy) -O binary --only-section .text.LzmaDecode tmp/$T.o tmp/$T.bin + head -c-2 tmp/$T.bin > tmp/$T.out + $(call tc,objdump) -b binary -m m68k -D tmp/$T.out | $(RTRIM) > tmp/$T.out.disasm + $(call tc,bin2h) --mode=gas tmp/$T.out $@ + +lzma_d_cf.% : PP_FLAGS = -DFAST +lzma_d_cs.% : PP_FLAGS = -DSMALL + +endif diff --git a/src/stub/src/arch/m68k/m68020/lzma_d_c.c b/src/stub/src/arch/m68k/m68020/lzma_d_c.c new file mode 100644 index 00000000..9d2c2c96 --- /dev/null +++ b/src/stub/src/arch/m68k/m68020/lzma_d_c.c @@ -0,0 +1,69 @@ +/* lzma_d.c -- + + This file is part of the UPX executable compressor. + + Copyright (C) 2006-2006 Markus Franz Xaver Johannes Oberhumer + All Rights Reserved. + + UPX and the UCL library are free software; you can redistribute them + and/or modify them under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. + If not, write to the Free Software Foundation, Inc., + 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + Markus F.X.J. Oberhumer + + */ + + +/************************************************************************* +// +**************************************************************************/ + +#define ACC_LIBC_NAKED +#define ACC_OS_FREESTANDING +#include "miniacc.h" + +#undef _LZMA_IN_CB +#undef _LZMA_OUT_READ +#undef _LZMA_PROB32 +#undef _LZMA_LOC_OPT + +#if 0 + +#include "C/7zip/Compress/LZMA_C/LzmaDecode.h" +#include "C/7zip/Compress/LZMA_C/LzmaDecode.c" +ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(CLzmaDecoderState) == 16) + +#else + +#define CLzmaDecoderState CLzmaDecoderState_dummy +#define LzmaDecode LzmaDecode_dummy +#include "C/7zip/Compress/LZMA_C/LzmaDecode.h" +#undef CLzmaDecoderState +#undef LzmaDecode +typedef struct { + struct { unsigned char lc, lp, pb, dummy; } Properties; + CProb Probs[6]; +// CProb *Probs; +} CLzmaDecoderState; +ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(CLzmaDecoderState) == 16) +#define CLzmaDecoderState const CLzmaDecoderState +#include "C/7zip/Compress/LZMA_C/LzmaDecode.c" + +#endif + + +/* +vi:ts=4:et:nowrap +*/ + diff --git a/src/stub/src/arch/m68k/m68020/lzma_d_cf.S b/src/stub/src/arch/m68k/m68020/lzma_d_cf.S new file mode 100644 index 00000000..41cfe55c --- /dev/null +++ b/src/stub/src/arch/m68k/m68020/lzma_d_cf.S @@ -0,0 +1,128 @@ +.byte 222,252,255,216, 72,231, 63, 62, 32,111, 0, 88, 67,232, 0, 4 /* 0x0000 */ +.byte 47, 73, 0, 44, 66,129, 18, 40, 0, 2,112, 1, 36, 0,227,170 /* 0x0010 */ +.byte 34, 2, 83,129, 47, 65, 0, 48, 66,129, 18, 40, 0, 1,227,168 /* 0x0020 */ +.byte 83,128, 47, 64, 0, 52, 66,131, 22, 16, 47, 67, 0, 56, 34,111 /* 0x0030 */ +.byte 0,100, 66,145, 34,111, 0,112, 66,145, 66,129, 18, 40, 0, 1 /* 0x0040 */ +.byte 210,131, 32, 60, 0, 0, 3, 0,227,168, 6,128, 0, 0, 7, 54 /* 0x0050 */ +.byte 32,111, 0, 44, 66,129, 96, 6, 48,252, 4, 0, 82,129,176,129 /* 0x0060 */ +.byte 102,246, 40,111, 0, 92,217,239, 0, 96, 36,111, 0, 92, 66,133 /* 0x0070 */ +.byte 66,129, 32, 12,144,175, 0, 92,176,129,103, 0, 7, 92,225,141 /* 0x0080 */ +.byte 138, 26, 82,129,112, 5,176,129,102,232, 77,248, 0, 0, 66, 1 /* 0x0090 */ +.byte 66,175, 0, 60,116, 1, 47, 66, 0, 80, 47, 66, 0, 64, 47, 66 /* 0x00a0 */ +.byte 0, 68, 47, 66, 0, 72,120,255, 96, 0, 7, 4, 12,132, 0,255 /* 0x00b0 */ +.byte 255,255, 98, 12,185,202,103, 0, 7, 32,225,140,225,141,138, 26 /* 0x00c0 */ +.byte 46, 14,206,175, 0, 48, 44, 47, 0, 60,233,142, 32, 7,208,134 /* 0x00d0 */ +.byte 208,128, 32,111, 0, 44,209,192, 52, 16, 38, 4,112, 11,224,171 /* 0x00e0 */ +.byte 66,128, 48, 2, 76, 0, 56, 0,182,133, 99, 0, 1,132, 40, 60 /* 0x00f0 */ +.byte 0, 0, 8, 0,152,128, 32, 4,234,128,212, 64, 48,130, 32, 14 /* 0x0100 */ +.byte 192,175, 0, 52, 36, 47, 0, 56,229,168, 2,129, 0, 0, 0,255 /* 0x0110 */ +.byte 116, 8,148,175, 0, 56,228,161,208,129, 76, 60, 8, 0, 0, 0 /* 0x0120 */ +.byte 6, 0, 32,111, 0, 44, 71,240, 9, 32, 14,108,112, 6,176,175 /* 0x0130 */ +.byte 0, 60,109, 8, 40, 3,126, 1, 96, 0, 0,248, 32, 14,144,175 /* 0x0140 */ +.byte 0, 80, 32,111, 0,104, 16, 48, 8, 0, 2,128, 0, 0, 0,255 /* 0x0150 */ +.byte 34, 64, 40, 3,126, 1, 12,132, 0,255,255,255, 98, 12,185,202 /* 0x0160 */ +.byte 103, 0, 6,118,225,140,225,141,138, 26, 32, 9,208,128, 34, 64 /* 0x0170 */ +.byte 38, 0, 2,131, 0, 0, 1, 0, 32, 3,208,128, 65,243, 8, 0 /* 0x0180 */ +.byte 44, 7,220,134, 65,240,105, 32, 2, 0, 52, 16, 34, 4,112, 11 /* 0x0190 */ +.byte 224,169, 66,128, 48, 2, 76, 0, 24, 0,178,133, 99, 26, 40, 60 /* 0x01a0 */ +.byte 0, 0, 8, 0,152,128, 32, 4,234,128,212, 64, 48,130, 46, 6 /* 0x01b0 */ +.byte 74,131,102,104, 40, 1, 96, 22,152,129,154,129, 48, 2,234, 72 /* 0x01c0 */ +.byte 148, 64, 48,130, 32, 7, 82,128,222,128, 74,131,103,100, 12,135 /* 0x01d0 */ +.byte 0, 0, 0,255,110, 92, 96, 0,255,126, 12,132, 0,255,255,255 /* 0x01e0 */ +.byte 98, 12,185,202,103, 0, 5,242,225,140,225,141,138, 26, 38, 7 /* 0x01f0 */ +.byte 214,131, 65,243, 56, 0, 52, 16, 34, 4,112, 11,224,169, 66,128 /* 0x0200 */ +.byte 48, 2, 76, 0, 24, 0,178,133, 99, 22, 40, 60, 0, 0, 8, 0 /* 0x0210 */ +.byte 152,128, 32, 4,234,128,212, 64, 48,130, 46, 3, 40, 1, 96, 18 /* 0x0220 */ +.byte 152,129,154,129, 48, 2,234, 72,148, 64, 48,130, 32, 7, 82,128 /* 0x0230 */ +.byte 222,128, 12,135, 0, 0, 0,255,111,160, 18, 7, 32,111, 0,104 /* 0x0240 */ +.byte 29,135,136, 0, 38, 14, 82,131,112, 3,176,175, 0, 60,109, 8 /* 0x0250 */ +.byte 66,175, 0, 60, 96, 0, 5, 86,116, 9,180,175, 0, 60,109, 8 /* 0x0260 */ +.byte 87,175, 0, 60, 96, 0, 5, 70, 93,175, 0, 60, 96, 0, 5, 62 /* 0x0270 */ +.byte 152,131,154,131, 48, 2,234, 72,148, 64, 48,130, 12,132, 0,255 /* 0x0280 */ +.byte 255,255, 98, 12,185,202,103, 0, 5, 80,225,140,225,141,138, 26 /* 0x0290 */ +.byte 32, 47, 0, 60,208,128, 34,111, 0, 44,211,192, 65,233, 1,128 /* 0x02a0 */ +.byte 50, 16, 36, 4,118, 11,230,170, 66,128, 48, 1, 76, 0, 40, 0 /* 0x02b0 */ +.byte 180,133, 99, 68, 40, 60, 0, 0, 8, 0,152,128, 32, 4,234,128 /* 0x02c0 */ +.byte 210, 64, 48,129,112, 6,176,175, 0, 60,109, 6, 66,175, 0, 60 /* 0x02d0 */ +.byte 96, 6,114, 3, 47, 65, 0, 60, 34,111, 0, 44,210,252, 6,100 /* 0x02e0 */ +.byte 47,111, 0, 68, 0, 72, 47,111, 0, 64, 0, 68, 47,111, 0, 80 /* 0x02f0 */ +.byte 0, 64, 38, 2, 96, 0, 1,218, 38, 4,150,130,154,130, 48, 1 /* 0x0300 */ +.byte 234, 72,146, 64, 48,129, 12,131, 0,255,255,255, 98, 12,185,202 /* 0x0310 */ +.byte 103, 0, 4,198,225,139,225,141,138, 26, 65,233, 1,152, 52, 16 /* 0x0320 */ +.byte 34, 3,120, 11,232,169, 66,128, 48, 2, 76, 0, 24, 0,178,133 /* 0x0330 */ +.byte 99, 0, 0,172, 38, 60, 0, 0, 8, 0,150,128, 32, 3,234,128 /* 0x0340 */ +.byte 212, 64, 48,130, 12,129, 0,255,255,255, 99, 4, 38, 1, 96, 14 /* 0x0350 */ +.byte 185,202,103, 0, 4,132, 38, 1,225,139,225,141,138, 26,220,134 /* 0x0360 */ +.byte 32,111, 0, 44,209,198, 32, 7,208,128, 65,240, 9, 32, 1,224 /* 0x0370 */ +.byte 50, 16, 36, 3,120, 11,232,170, 66,128, 48, 1, 76, 0, 40, 0 /* 0x0380 */ +.byte 180,133, 99, 74, 38, 60, 0, 0, 8, 0,150,128, 32, 3,234,128 /* 0x0390 */ +.byte 210, 64, 48,129, 74,142,103, 0, 4, 64, 24, 60, 0, 6,184,175 /* 0x03a0 */ +.byte 0, 60,109, 8,112, 9, 47, 64, 0, 60, 96, 6,114, 11, 47, 65 /* 0x03b0 */ +.byte 0, 60, 32, 14,144,175, 0, 80, 32,111, 0,104, 18, 48, 8, 0 /* 0x03c0 */ +.byte 29,129,136, 0, 38, 14, 82,131, 40, 2, 96, 0, 3,224,150,130 /* 0x03d0 */ +.byte 154,130, 48, 1,234, 72,146, 64, 48,129, 96, 0, 0,214,150,129 /* 0x03e0 */ +.byte 154,129, 48, 2,234, 72,148, 64, 48,130, 12,131, 0,255,255,255 /* 0x03f0 */ +.byte 98, 12,185,202,103, 0, 3,226,225,139,225,141,138, 26, 65,233 /* 0x0400 */ +.byte 1,176, 52, 16, 34, 3,112, 11,224,169, 66,128, 48, 2, 76, 0 /* 0x0410 */ +.byte 24, 0,178,133, 99, 22, 38, 60, 0, 0, 8, 0,150,128, 32, 3 /* 0x0420 */ +.byte 234,128,212, 64, 48,130, 32, 47, 0, 64, 96, 82,150,129,154,129 /* 0x0430 */ +.byte 48, 2,234, 72,148, 64, 48,130, 12,131, 0,255,255,255, 98, 12 /* 0x0440 */ +.byte 185,202,103, 0, 3,148,225,139,225,141,138, 26, 65,233, 1,200 /* 0x0450 */ +.byte 52, 16, 34, 3,120, 11,232,169, 66,128, 48, 2, 76, 0, 24, 0 /* 0x0460 */ +.byte 178,133, 99, 40, 38, 60, 0, 0, 8, 0,150,128, 32, 3,234,128 /* 0x0470 */ +.byte 212, 64, 48,130, 32, 47, 0, 68, 47,111, 0, 64, 0, 68, 47,111 /* 0x0480 */ +.byte 0, 80, 0, 64, 47, 64, 0, 80, 38, 1, 96, 38,150,129,154,129 /* 0x0490 */ +.byte 48, 2,234, 72,148, 64, 48,130, 32, 47, 0, 72, 47,111, 0, 68 /* 0x04a0 */ +.byte 0, 72, 47,111, 0, 64, 0, 68, 47,111, 0, 80, 0, 64, 47, 64 /* 0x04b0 */ +.byte 0, 80,120, 6,184,175, 0, 60,109, 8,112, 8, 47, 64, 0, 60 /* 0x04c0 */ +.byte 96, 6,114, 11, 47, 65, 0, 60, 34,111, 0, 44,210,252, 10,104 /* 0x04d0 */ +.byte 12,131, 0,255,255,255, 98, 12,185,202,103, 0, 2,252,225,139 /* 0x04e0 */ +.byte 225,141,138, 26, 52, 17, 34, 3,120, 11,232,169, 66,128, 48, 2 /* 0x04f0 */ +.byte 76, 0, 24, 0,178,133, 99, 32, 38, 60, 0, 0, 8, 0,150,128 /* 0x0500 */ +.byte 32, 3,234,128,212, 64, 50,130,233,143, 71,241,120, 4, 40, 1 /* 0x0510 */ +.byte 58,124, 0, 3, 66,135, 96,114,150,129,154,129, 48, 2,234, 72 /* 0x0520 */ +.byte 148, 64, 50,130, 12,131, 0,255,255,255, 98, 12,185,202,103, 0 /* 0x0530 */ +.byte 2,168,225,139,225,141,138, 26, 65,233, 0, 2, 52, 16, 34, 3 /* 0x0540 */ +.byte 120, 11,232,169, 66,128, 48, 2, 76, 0, 24, 0,178,133, 99, 34 /* 0x0550 */ +.byte 38, 60, 0, 0, 8, 0,150,128, 32, 3,234,128,212, 64, 48,130 /* 0x0560 */ +.byte 233,143, 71,241,121, 32, 1, 4, 40, 1, 58,124, 0, 3,126, 8 /* 0x0570 */ +.byte 96, 24, 40, 3,152,129,154,129, 48, 2,234, 72,148, 64, 48,130 /* 0x0580 */ +.byte 71,233, 2, 4, 58,124, 0, 8,126, 16, 34, 77,118, 1, 12,132 /* 0x0590 */ +.byte 0,255,255,255, 98, 12,185,202,103, 0, 2, 62,225,140,225,141 /* 0x05a0 */ +.byte 138, 26, 44, 3,220,134, 65,243,104, 0, 52, 16, 34, 4,112, 11 /* 0x05b0 */ +.byte 224,169, 66,128, 48, 2, 76, 0, 24, 0,178,133, 99, 22, 38, 60 /* 0x05c0 */ +.byte 0, 0, 8, 0,150,128, 32, 3,234,128,212, 64, 48,130, 38, 6 /* 0x05d0 */ +.byte 40, 1, 96, 18,152,129,154,129, 48, 2,234, 72,148, 64, 48,130 /* 0x05e0 */ +.byte 32, 3, 82,128,214,128, 83,137, 74,137,102,162,112, 1, 34, 13 /* 0x05f0 */ +.byte 227,168,150,128,214,135, 47, 67, 0, 76,116, 3,180,175, 0, 60 /* 0x0600 */ +.byte 109, 0, 1,110, 32, 3,180,131,108, 2,112, 3,239,136, 32,111 /* 0x0610 */ +.byte 0, 44, 71,240, 9, 32, 3, 96,124, 1, 50,124, 0, 6, 12,132 /* 0x0620 */ +.byte 0,255,255,255, 98, 12,185,202,103, 0, 1,174,225,140,225,141 /* 0x0630 */ +.byte 138, 26, 38, 6,214,131, 65,243, 56, 0, 52, 16, 34, 4,112, 11 /* 0x0640 */ +.byte 224,169, 66,128, 48, 2, 76, 0, 24, 0,178,133, 99, 22, 40, 60 /* 0x0650 */ +.byte 0, 0, 8, 0,152,128, 32, 4,234,128,212, 64, 48,130, 44, 3 /* 0x0660 */ +.byte 40, 1, 96, 18,152,129,154,129, 48, 2,234, 72,148, 64, 48,130 /* 0x0670 */ +.byte 32, 6, 82,128,220,128, 83,137, 74,137,102,162,114,192,210,134 /* 0x0680 */ +.byte 112, 3,176,129,108, 0, 0,220, 36, 1,226,130, 46, 2, 83,135 /* 0x0690 */ +.byte 16, 60, 0, 1,192,129,118, 2,128,131, 22, 60, 0, 13,182,129 /* 0x06a0 */ +.byte 109, 24, 38, 0,239,171, 32, 3,208,128,208,175, 0, 44,210,129 /* 0x06b0 */ +.byte 144,129, 42, 64,218,252, 5, 94, 96, 56, 34, 2, 91,129, 12,132 /* 0x06c0 */ +.byte 0,255,255,255, 98, 12,185,202,103, 0, 1, 14,225,140,225,141 /* 0x06d0 */ +.byte 138, 26,226,140,208,128,184,133, 98, 6,154,132,116, 1,128,130 /* 0x06e0 */ +.byte 83,129,102,218, 42,111, 0, 44,218,252, 6, 68, 38, 0,233,139 /* 0x06f0 */ +.byte 126, 4, 54,124, 0, 1, 50,124, 0, 1, 12,132, 0,255,255,255 /* 0x0700 */ +.byte 98, 12,185,202,103, 0, 0,210,225,140,225,141,138, 26, 44, 9 /* 0x0710 */ +.byte 220,134, 65,245,104, 0, 52, 16, 34, 4,112, 11,224,169, 66,128 /* 0x0720 */ +.byte 48, 2, 76, 0, 24, 0,178,133, 99, 22, 40, 60, 0, 0, 8, 0 /* 0x0730 */ +.byte 152,128, 32, 4,234,128,212, 64, 48,130, 34, 70, 40, 1, 96, 22 /* 0x0740 */ +.byte 152,129,154,129, 48, 2,234, 72,148, 64, 48,130, 32, 9, 82,128 /* 0x0750 */ +.byte 211,192, 32, 11,134,128, 83,135,103, 10, 34, 11,210,129, 38, 65 /* 0x0760 */ +.byte 96,152, 38, 1, 82,131, 47, 67, 0, 80,103, 74, 94,175, 0, 60 /* 0x0770 */ +.byte 189,239, 0, 80,101, 98, 32, 14,144,175, 0, 80, 34,111, 0,104 /* 0x0780 */ +.byte 211,192, 32,111, 0,104,209,206, 38, 14, 66,130, 18, 17, 16,129 /* 0x0790 */ +.byte 82,131, 32, 47, 0, 76, 82,128,176,130,103, 16, 82,130, 82,137 /* 0x07a0 */ +.byte 82,136, 32, 47, 0,108,144,142,176,130,102,224, 44, 67,189,239 /* 0x07b0 */ +.byte 0,108,101, 0,248,248, 12,132, 0,255,255,255, 98, 6,185,202 /* 0x07c0 */ +.byte 103, 22, 82,138,149,239, 0, 92, 32,111, 0,100, 32,138, 34,111 /* 0x07d0 */ +.byte 0,112, 34,142, 66,128, 96, 2,112, 1, 76,223,124,252,222,252 /* 0x07e0 */ +.byte 0, 40 /* 0x07f0 */ diff --git a/src/stub/src/arch/m68k/m68020/lzma_d_cs.S b/src/stub/src/arch/m68k/m68020/lzma_d_cs.S new file mode 100644 index 00000000..41cfe55c --- /dev/null +++ b/src/stub/src/arch/m68k/m68020/lzma_d_cs.S @@ -0,0 +1,128 @@ +.byte 222,252,255,216, 72,231, 63, 62, 32,111, 0, 88, 67,232, 0, 4 /* 0x0000 */ +.byte 47, 73, 0, 44, 66,129, 18, 40, 0, 2,112, 1, 36, 0,227,170 /* 0x0010 */ +.byte 34, 2, 83,129, 47, 65, 0, 48, 66,129, 18, 40, 0, 1,227,168 /* 0x0020 */ +.byte 83,128, 47, 64, 0, 52, 66,131, 22, 16, 47, 67, 0, 56, 34,111 /* 0x0030 */ +.byte 0,100, 66,145, 34,111, 0,112, 66,145, 66,129, 18, 40, 0, 1 /* 0x0040 */ +.byte 210,131, 32, 60, 0, 0, 3, 0,227,168, 6,128, 0, 0, 7, 54 /* 0x0050 */ +.byte 32,111, 0, 44, 66,129, 96, 6, 48,252, 4, 0, 82,129,176,129 /* 0x0060 */ +.byte 102,246, 40,111, 0, 92,217,239, 0, 96, 36,111, 0, 92, 66,133 /* 0x0070 */ +.byte 66,129, 32, 12,144,175, 0, 92,176,129,103, 0, 7, 92,225,141 /* 0x0080 */ +.byte 138, 26, 82,129,112, 5,176,129,102,232, 77,248, 0, 0, 66, 1 /* 0x0090 */ +.byte 66,175, 0, 60,116, 1, 47, 66, 0, 80, 47, 66, 0, 64, 47, 66 /* 0x00a0 */ +.byte 0, 68, 47, 66, 0, 72,120,255, 96, 0, 7, 4, 12,132, 0,255 /* 0x00b0 */ +.byte 255,255, 98, 12,185,202,103, 0, 7, 32,225,140,225,141,138, 26 /* 0x00c0 */ +.byte 46, 14,206,175, 0, 48, 44, 47, 0, 60,233,142, 32, 7,208,134 /* 0x00d0 */ +.byte 208,128, 32,111, 0, 44,209,192, 52, 16, 38, 4,112, 11,224,171 /* 0x00e0 */ +.byte 66,128, 48, 2, 76, 0, 56, 0,182,133, 99, 0, 1,132, 40, 60 /* 0x00f0 */ +.byte 0, 0, 8, 0,152,128, 32, 4,234,128,212, 64, 48,130, 32, 14 /* 0x0100 */ +.byte 192,175, 0, 52, 36, 47, 0, 56,229,168, 2,129, 0, 0, 0,255 /* 0x0110 */ +.byte 116, 8,148,175, 0, 56,228,161,208,129, 76, 60, 8, 0, 0, 0 /* 0x0120 */ +.byte 6, 0, 32,111, 0, 44, 71,240, 9, 32, 14,108,112, 6,176,175 /* 0x0130 */ +.byte 0, 60,109, 8, 40, 3,126, 1, 96, 0, 0,248, 32, 14,144,175 /* 0x0140 */ +.byte 0, 80, 32,111, 0,104, 16, 48, 8, 0, 2,128, 0, 0, 0,255 /* 0x0150 */ +.byte 34, 64, 40, 3,126, 1, 12,132, 0,255,255,255, 98, 12,185,202 /* 0x0160 */ +.byte 103, 0, 6,118,225,140,225,141,138, 26, 32, 9,208,128, 34, 64 /* 0x0170 */ +.byte 38, 0, 2,131, 0, 0, 1, 0, 32, 3,208,128, 65,243, 8, 0 /* 0x0180 */ +.byte 44, 7,220,134, 65,240,105, 32, 2, 0, 52, 16, 34, 4,112, 11 /* 0x0190 */ +.byte 224,169, 66,128, 48, 2, 76, 0, 24, 0,178,133, 99, 26, 40, 60 /* 0x01a0 */ +.byte 0, 0, 8, 0,152,128, 32, 4,234,128,212, 64, 48,130, 46, 6 /* 0x01b0 */ +.byte 74,131,102,104, 40, 1, 96, 22,152,129,154,129, 48, 2,234, 72 /* 0x01c0 */ +.byte 148, 64, 48,130, 32, 7, 82,128,222,128, 74,131,103,100, 12,135 /* 0x01d0 */ +.byte 0, 0, 0,255,110, 92, 96, 0,255,126, 12,132, 0,255,255,255 /* 0x01e0 */ +.byte 98, 12,185,202,103, 0, 5,242,225,140,225,141,138, 26, 38, 7 /* 0x01f0 */ +.byte 214,131, 65,243, 56, 0, 52, 16, 34, 4,112, 11,224,169, 66,128 /* 0x0200 */ +.byte 48, 2, 76, 0, 24, 0,178,133, 99, 22, 40, 60, 0, 0, 8, 0 /* 0x0210 */ +.byte 152,128, 32, 4,234,128,212, 64, 48,130, 46, 3, 40, 1, 96, 18 /* 0x0220 */ +.byte 152,129,154,129, 48, 2,234, 72,148, 64, 48,130, 32, 7, 82,128 /* 0x0230 */ +.byte 222,128, 12,135, 0, 0, 0,255,111,160, 18, 7, 32,111, 0,104 /* 0x0240 */ +.byte 29,135,136, 0, 38, 14, 82,131,112, 3,176,175, 0, 60,109, 8 /* 0x0250 */ +.byte 66,175, 0, 60, 96, 0, 5, 86,116, 9,180,175, 0, 60,109, 8 /* 0x0260 */ +.byte 87,175, 0, 60, 96, 0, 5, 70, 93,175, 0, 60, 96, 0, 5, 62 /* 0x0270 */ +.byte 152,131,154,131, 48, 2,234, 72,148, 64, 48,130, 12,132, 0,255 /* 0x0280 */ +.byte 255,255, 98, 12,185,202,103, 0, 5, 80,225,140,225,141,138, 26 /* 0x0290 */ +.byte 32, 47, 0, 60,208,128, 34,111, 0, 44,211,192, 65,233, 1,128 /* 0x02a0 */ +.byte 50, 16, 36, 4,118, 11,230,170, 66,128, 48, 1, 76, 0, 40, 0 /* 0x02b0 */ +.byte 180,133, 99, 68, 40, 60, 0, 0, 8, 0,152,128, 32, 4,234,128 /* 0x02c0 */ +.byte 210, 64, 48,129,112, 6,176,175, 0, 60,109, 6, 66,175, 0, 60 /* 0x02d0 */ +.byte 96, 6,114, 3, 47, 65, 0, 60, 34,111, 0, 44,210,252, 6,100 /* 0x02e0 */ +.byte 47,111, 0, 68, 0, 72, 47,111, 0, 64, 0, 68, 47,111, 0, 80 /* 0x02f0 */ +.byte 0, 64, 38, 2, 96, 0, 1,218, 38, 4,150,130,154,130, 48, 1 /* 0x0300 */ +.byte 234, 72,146, 64, 48,129, 12,131, 0,255,255,255, 98, 12,185,202 /* 0x0310 */ +.byte 103, 0, 4,198,225,139,225,141,138, 26, 65,233, 1,152, 52, 16 /* 0x0320 */ +.byte 34, 3,120, 11,232,169, 66,128, 48, 2, 76, 0, 24, 0,178,133 /* 0x0330 */ +.byte 99, 0, 0,172, 38, 60, 0, 0, 8, 0,150,128, 32, 3,234,128 /* 0x0340 */ +.byte 212, 64, 48,130, 12,129, 0,255,255,255, 99, 4, 38, 1, 96, 14 /* 0x0350 */ +.byte 185,202,103, 0, 4,132, 38, 1,225,139,225,141,138, 26,220,134 /* 0x0360 */ +.byte 32,111, 0, 44,209,198, 32, 7,208,128, 65,240, 9, 32, 1,224 /* 0x0370 */ +.byte 50, 16, 36, 3,120, 11,232,170, 66,128, 48, 1, 76, 0, 40, 0 /* 0x0380 */ +.byte 180,133, 99, 74, 38, 60, 0, 0, 8, 0,150,128, 32, 3,234,128 /* 0x0390 */ +.byte 210, 64, 48,129, 74,142,103, 0, 4, 64, 24, 60, 0, 6,184,175 /* 0x03a0 */ +.byte 0, 60,109, 8,112, 9, 47, 64, 0, 60, 96, 6,114, 11, 47, 65 /* 0x03b0 */ +.byte 0, 60, 32, 14,144,175, 0, 80, 32,111, 0,104, 18, 48, 8, 0 /* 0x03c0 */ +.byte 29,129,136, 0, 38, 14, 82,131, 40, 2, 96, 0, 3,224,150,130 /* 0x03d0 */ +.byte 154,130, 48, 1,234, 72,146, 64, 48,129, 96, 0, 0,214,150,129 /* 0x03e0 */ +.byte 154,129, 48, 2,234, 72,148, 64, 48,130, 12,131, 0,255,255,255 /* 0x03f0 */ +.byte 98, 12,185,202,103, 0, 3,226,225,139,225,141,138, 26, 65,233 /* 0x0400 */ +.byte 1,176, 52, 16, 34, 3,112, 11,224,169, 66,128, 48, 2, 76, 0 /* 0x0410 */ +.byte 24, 0,178,133, 99, 22, 38, 60, 0, 0, 8, 0,150,128, 32, 3 /* 0x0420 */ +.byte 234,128,212, 64, 48,130, 32, 47, 0, 64, 96, 82,150,129,154,129 /* 0x0430 */ +.byte 48, 2,234, 72,148, 64, 48,130, 12,131, 0,255,255,255, 98, 12 /* 0x0440 */ +.byte 185,202,103, 0, 3,148,225,139,225,141,138, 26, 65,233, 1,200 /* 0x0450 */ +.byte 52, 16, 34, 3,120, 11,232,169, 66,128, 48, 2, 76, 0, 24, 0 /* 0x0460 */ +.byte 178,133, 99, 40, 38, 60, 0, 0, 8, 0,150,128, 32, 3,234,128 /* 0x0470 */ +.byte 212, 64, 48,130, 32, 47, 0, 68, 47,111, 0, 64, 0, 68, 47,111 /* 0x0480 */ +.byte 0, 80, 0, 64, 47, 64, 0, 80, 38, 1, 96, 38,150,129,154,129 /* 0x0490 */ +.byte 48, 2,234, 72,148, 64, 48,130, 32, 47, 0, 72, 47,111, 0, 68 /* 0x04a0 */ +.byte 0, 72, 47,111, 0, 64, 0, 68, 47,111, 0, 80, 0, 64, 47, 64 /* 0x04b0 */ +.byte 0, 80,120, 6,184,175, 0, 60,109, 8,112, 8, 47, 64, 0, 60 /* 0x04c0 */ +.byte 96, 6,114, 11, 47, 65, 0, 60, 34,111, 0, 44,210,252, 10,104 /* 0x04d0 */ +.byte 12,131, 0,255,255,255, 98, 12,185,202,103, 0, 2,252,225,139 /* 0x04e0 */ +.byte 225,141,138, 26, 52, 17, 34, 3,120, 11,232,169, 66,128, 48, 2 /* 0x04f0 */ +.byte 76, 0, 24, 0,178,133, 99, 32, 38, 60, 0, 0, 8, 0,150,128 /* 0x0500 */ +.byte 32, 3,234,128,212, 64, 50,130,233,143, 71,241,120, 4, 40, 1 /* 0x0510 */ +.byte 58,124, 0, 3, 66,135, 96,114,150,129,154,129, 48, 2,234, 72 /* 0x0520 */ +.byte 148, 64, 50,130, 12,131, 0,255,255,255, 98, 12,185,202,103, 0 /* 0x0530 */ +.byte 2,168,225,139,225,141,138, 26, 65,233, 0, 2, 52, 16, 34, 3 /* 0x0540 */ +.byte 120, 11,232,169, 66,128, 48, 2, 76, 0, 24, 0,178,133, 99, 34 /* 0x0550 */ +.byte 38, 60, 0, 0, 8, 0,150,128, 32, 3,234,128,212, 64, 48,130 /* 0x0560 */ +.byte 233,143, 71,241,121, 32, 1, 4, 40, 1, 58,124, 0, 3,126, 8 /* 0x0570 */ +.byte 96, 24, 40, 3,152,129,154,129, 48, 2,234, 72,148, 64, 48,130 /* 0x0580 */ +.byte 71,233, 2, 4, 58,124, 0, 8,126, 16, 34, 77,118, 1, 12,132 /* 0x0590 */ +.byte 0,255,255,255, 98, 12,185,202,103, 0, 2, 62,225,140,225,141 /* 0x05a0 */ +.byte 138, 26, 44, 3,220,134, 65,243,104, 0, 52, 16, 34, 4,112, 11 /* 0x05b0 */ +.byte 224,169, 66,128, 48, 2, 76, 0, 24, 0,178,133, 99, 22, 38, 60 /* 0x05c0 */ +.byte 0, 0, 8, 0,150,128, 32, 3,234,128,212, 64, 48,130, 38, 6 /* 0x05d0 */ +.byte 40, 1, 96, 18,152,129,154,129, 48, 2,234, 72,148, 64, 48,130 /* 0x05e0 */ +.byte 32, 3, 82,128,214,128, 83,137, 74,137,102,162,112, 1, 34, 13 /* 0x05f0 */ +.byte 227,168,150,128,214,135, 47, 67, 0, 76,116, 3,180,175, 0, 60 /* 0x0600 */ +.byte 109, 0, 1,110, 32, 3,180,131,108, 2,112, 3,239,136, 32,111 /* 0x0610 */ +.byte 0, 44, 71,240, 9, 32, 3, 96,124, 1, 50,124, 0, 6, 12,132 /* 0x0620 */ +.byte 0,255,255,255, 98, 12,185,202,103, 0, 1,174,225,140,225,141 /* 0x0630 */ +.byte 138, 26, 38, 6,214,131, 65,243, 56, 0, 52, 16, 34, 4,112, 11 /* 0x0640 */ +.byte 224,169, 66,128, 48, 2, 76, 0, 24, 0,178,133, 99, 22, 40, 60 /* 0x0650 */ +.byte 0, 0, 8, 0,152,128, 32, 4,234,128,212, 64, 48,130, 44, 3 /* 0x0660 */ +.byte 40, 1, 96, 18,152,129,154,129, 48, 2,234, 72,148, 64, 48,130 /* 0x0670 */ +.byte 32, 6, 82,128,220,128, 83,137, 74,137,102,162,114,192,210,134 /* 0x0680 */ +.byte 112, 3,176,129,108, 0, 0,220, 36, 1,226,130, 46, 2, 83,135 /* 0x0690 */ +.byte 16, 60, 0, 1,192,129,118, 2,128,131, 22, 60, 0, 13,182,129 /* 0x06a0 */ +.byte 109, 24, 38, 0,239,171, 32, 3,208,128,208,175, 0, 44,210,129 /* 0x06b0 */ +.byte 144,129, 42, 64,218,252, 5, 94, 96, 56, 34, 2, 91,129, 12,132 /* 0x06c0 */ +.byte 0,255,255,255, 98, 12,185,202,103, 0, 1, 14,225,140,225,141 /* 0x06d0 */ +.byte 138, 26,226,140,208,128,184,133, 98, 6,154,132,116, 1,128,130 /* 0x06e0 */ +.byte 83,129,102,218, 42,111, 0, 44,218,252, 6, 68, 38, 0,233,139 /* 0x06f0 */ +.byte 126, 4, 54,124, 0, 1, 50,124, 0, 1, 12,132, 0,255,255,255 /* 0x0700 */ +.byte 98, 12,185,202,103, 0, 0,210,225,140,225,141,138, 26, 44, 9 /* 0x0710 */ +.byte 220,134, 65,245,104, 0, 52, 16, 34, 4,112, 11,224,169, 66,128 /* 0x0720 */ +.byte 48, 2, 76, 0, 24, 0,178,133, 99, 22, 40, 60, 0, 0, 8, 0 /* 0x0730 */ +.byte 152,128, 32, 4,234,128,212, 64, 48,130, 34, 70, 40, 1, 96, 22 /* 0x0740 */ +.byte 152,129,154,129, 48, 2,234, 72,148, 64, 48,130, 32, 9, 82,128 /* 0x0750 */ +.byte 211,192, 32, 11,134,128, 83,135,103, 10, 34, 11,210,129, 38, 65 /* 0x0760 */ +.byte 96,152, 38, 1, 82,131, 47, 67, 0, 80,103, 74, 94,175, 0, 60 /* 0x0770 */ +.byte 189,239, 0, 80,101, 98, 32, 14,144,175, 0, 80, 34,111, 0,104 /* 0x0780 */ +.byte 211,192, 32,111, 0,104,209,206, 38, 14, 66,130, 18, 17, 16,129 /* 0x0790 */ +.byte 82,131, 32, 47, 0, 76, 82,128,176,130,103, 16, 82,130, 82,137 /* 0x07a0 */ +.byte 82,136, 32, 47, 0,108,144,142,176,130,102,224, 44, 67,189,239 /* 0x07b0 */ +.byte 0,108,101, 0,248,248, 12,132, 0,255,255,255, 98, 6,185,202 /* 0x07c0 */ +.byte 103, 22, 82,138,149,239, 0, 92, 32,111, 0,100, 32,138, 34,111 /* 0x07d0 */ +.byte 0,112, 34,142, 66,128, 96, 2,112, 1, 76,223,124,252,222,252 /* 0x07e0 */ +.byte 0, 40 /* 0x07f0 */