More work on lzma for dos/exe.
This commit is contained in:
+1549
-1637
File diff suppressed because it is too large
Load Diff
@@ -88,6 +88,7 @@ def create_bindump(bindump_fn, dump_fn):
|
|||||||
e = f[1], int(f[2], 16), int(f[5], 16), int(f[6][3:], 10), len(sections)
|
e = f[1], int(f[2], 16), int(f[5], 16), int(f[6][3:], 10), len(sections)
|
||||||
sections.append(e)
|
sections.append(e)
|
||||||
assert not section_names.has_key(e[0]), e
|
assert not section_names.has_key(e[0]), e
|
||||||
|
assert not e[0].endswith(":"), ("bad section name", e)
|
||||||
section_names[e[0]] = e
|
section_names[e[0]] = e
|
||||||
##print sections
|
##print sections
|
||||||
# preprocessSymbols
|
# preprocessSymbols
|
||||||
|
|||||||
@@ -1,13 +1,5 @@
|
|||||||
#
|
#
|
||||||
# highly experimental support for i086 using Open Watcom 1.6:
|
# highly experimental support for i086 using Open Watcom 1.6
|
||||||
#
|
|
||||||
# - download http://ftp.openwatcom.org/ftp/open-watcom-c-win32-1.6.exe
|
|
||||||
# - this .exe is actually a .zip, so unzip into a new diretory
|
|
||||||
# - the "binl" subdirectory does contain the (unofficial) Linux-hosted tools
|
|
||||||
# - set your envvar WATCOM to the main Watcom dir (see below)
|
|
||||||
#
|
|
||||||
# FIXME: how to convert the .obj to ELF ???
|
|
||||||
# FIXME: (we could use a Python script to convert the .disasm)
|
|
||||||
#
|
#
|
||||||
|
|
||||||
MAKEFLAGS += -rR
|
MAKEFLAGS += -rR
|
||||||
@@ -26,13 +18,7 @@ vpath %.c $(top_srcdir)/src/stub/src/c
|
|||||||
##export WATCOM ?= /opt/cc-i386-linux/watcom/open-watcom-1.6
|
##export WATCOM ?= /opt/cc-i386-linux/watcom/open-watcom-1.6
|
||||||
|
|
||||||
STUBS =
|
STUBS =
|
||||||
ifneq ($(wildcard $(UPX_LZMADIR)/C/7zip/.),)
|
|
||||||
ifneq ($(wildcard $(WATCOM)/binl/.),)
|
|
||||||
ifneq ($(wildcard $(VCLINK.exe)),)
|
|
||||||
STUBS += lzma_d_cf.S lzma_d_cs.S
|
STUBS += lzma_d_cf.S lzma_d_cs.S
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
default.targets = all
|
default.targets = all
|
||||||
ifeq ($(strip $(STUBS)),)
|
ifeq ($(strip $(STUBS)),)
|
||||||
@@ -46,12 +32,13 @@ include $(top_srcdir)/src/stub/Makefile
|
|||||||
# // method-lzma
|
# // method-lzma
|
||||||
# ************************************************************************/
|
# ************************************************************************/
|
||||||
|
|
||||||
lzma_d_c%.S : tc_list = method-lzma default
|
lzma_d_c% : tc_list = method-lzma default
|
||||||
lzma_d_c%.S : tc_bfdname =
|
lzma_d_c% : tc_bfdname =
|
||||||
|
|
||||||
|
# Open Watcom C/C++ 1.6
|
||||||
c := tc.method-lzma.wcc
|
c := tc.method-lzma.wcc
|
||||||
$c = $(WATCOM)/binl/wcc -zq -bt=dos
|
$c = $(WATCOM)/binl/wcc -zq -bt=dos
|
||||||
$c += -mc
|
$c += -mc -ecc
|
||||||
$c += -zm -zc
|
$c += -zm -zc
|
||||||
$c += -os -s -0 -d0
|
$c += -os -s -0 -d0
|
||||||
$c += -w5 -we -fr=/dev/null
|
$c += -w5 -we -fr=/dev/null
|
||||||
@@ -59,59 +46,38 @@ $c += -D__INT_MAX__=32767
|
|||||||
$c += -I$(UPX_LZMADIR)
|
$c += -I$(UPX_LZMADIR)
|
||||||
$c += -I$(top_srcdir)/src
|
$c += -I$(top_srcdir)/src
|
||||||
|
|
||||||
ifneq ($(wildcard $(BC502DIR)/bin/.),)
|
|
||||||
c := tc.method-lzma.bcc
|
|
||||||
$c = @$(WINEENV) CL='$(CL)' wine cmd.exe /c tmp/bcc.bat
|
|
||||||
$c += -mc
|
|
||||||
$c += -O1 -1
|
|
||||||
$c += -w
|
|
||||||
$c += -D__INT_MAX__=32767
|
|
||||||
##$c += -I$(subst \,/,$(shell winepath -s z:$(realpath $(UPX_LZMADIR))))
|
|
||||||
$c += -I$(subst \,/,$(shell winepath -s z:$(realpath $(UPX_LZMADIR)/C/7zip/Compress/LZMA_C)))
|
|
||||||
$c += -I$(top_srcdir)/src
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq ($(wildcard $(DM847DIR)/bin/.),)
|
|
||||||
c := tc.method-lzma.dmc
|
|
||||||
$c = @$(WINEENV) CFLAGS='$(DMC)' wine cmd.exe /c tmp/dmc.bat
|
|
||||||
$c += -mc
|
|
||||||
$c += -NS
|
|
||||||
$c += -w-
|
|
||||||
DMC := -o -0
|
|
||||||
DMC += -D__INT_MAX__=32767
|
|
||||||
DMC += -I$(shell winepath -s z:$(realpath $(UPX_LZMADIR)))
|
|
||||||
DMC += -I$(shell winepath -s z:$(realpath $(top_srcdir)/src))
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq ($(wildcard $(VC152DIR)/bin/.),)
|
|
||||||
c := tc.method-lzma.cl
|
|
||||||
$c = @$(WINEENV) CL='$(CL)' wine cmd.exe /c tmp/cl.bat
|
|
||||||
$c += -AC
|
|
||||||
$c += -Gy
|
|
||||||
$c += -O1 -Gf -Gs -G0
|
|
||||||
$c += -W4
|
|
||||||
CL := -nologo
|
|
||||||
CL += -D__INT_MAX__=32767
|
|
||||||
CL += -I$(shell winepath -s z:$(realpath $(UPX_LZMADIR)))
|
|
||||||
CL += -I$(shell winepath -s z:$(realpath $(top_srcdir)/src))
|
|
||||||
endif
|
|
||||||
|
|
||||||
tc.method-lzma.dmpobj = $(WATCOM)/binl/dmpobj
|
tc.method-lzma.dmpobj = $(WATCOM)/binl/dmpobj
|
||||||
tc.method-lzma.wdis = $(WATCOM)/binl/wdis
|
tc.method-lzma.wdis = $(WATCOM)/binl/wdis
|
||||||
tc.method-lzma.wdump = $(WATCOM)/binl/wdump
|
tc.method-lzma.wdump = $(WATCOM)/binl/wdump
|
||||||
|
|
||||||
lzma_d_c%.S : lzma_d_c.c cleanasm.py $(MAKEFILE_LIST)
|
lzma_d_c%.S : lzma_d_c%.i cleanasm.py $(MAKEFILE_LIST)
|
||||||
|
python cleanasm.py --label-prefix=$(LABEL_PREFIX) $< $@
|
||||||
|
|
||||||
|
ifneq ($(wildcard $(UPX_LZMADIR)/C/7zip/.),)
|
||||||
|
ifneq ($(wildcard $(WATCOM)/binl/.),)
|
||||||
|
ifneq ($(wildcard $(VCLINK.exe)),)
|
||||||
|
|
||||||
|
lzma_d_c%.i : lzma_d_c.c tmp/.tmp-stamp $(MAKEFILE_LIST)
|
||||||
|
rm -f tmp/$T.a tmp/$T.o tmp/$T.obj
|
||||||
|
# compile
|
||||||
$(call tc,wcc) $(PP_FLAGS) -fo=tmp/$T.obj $<
|
$(call tc,wcc) $(PP_FLAGS) -fo=tmp/$T.obj $<
|
||||||
## $(call tc,bcc) $(PP_FLAGS) -c -otmp/$T.obj $<
|
## $(call tc,bcc) $(PP_FLAGS) -c -otmp/$T.obj $<
|
||||||
## $(call tc,dmc) $(PP_FLAGS) -c -otmp/$T.obj $<
|
## $(call tc,dmc) $(PP_FLAGS) -c -otmp/$T.obj $<
|
||||||
## $(call tc,cl) $(PP_FLAGS) -c -Fotmp/$T.obj $<
|
## $(call tc,cl) $(PP_FLAGS) -c -Fotmp/$T.obj $<
|
||||||
$(call tc,wdis) tmp/$T.obj | $(RTRIM) > tmp/$T.obj.disasm
|
$(call tc,wdis) tmp/$T.obj | $(RTRIM) > tmp/$T.obj.disasm
|
||||||
cp tmp/$T.obj tmp/$T.o
|
# convert OMF to COFF because objdump does not support OMF
|
||||||
rm -f tmp/$T.lib
|
# TODO: should write a Python script wdis2gas.py and use that instead
|
||||||
cd tmp && $(WINEENV) wine $(VCLINK.exe) -lib -nologo -out:$T.lib $T.o
|
cp -p tmp/$T.obj tmp/$T.o
|
||||||
cd tmp && $(call tc,m-ar) x $T.lib
|
cd tmp && $(WINEENV) wine $(VCLINK.exe) -lib -nologo -out:$T.a $T.o
|
||||||
$(call tc,objdump) -b coff-i386 -m i8086 -M intel -Dr --no-show -w tmp/$T.o | $(RTRIM) > tmp/$T.o.disasm
|
cd tmp && $(call tc,m-ar) x $T.a
|
||||||
python cleanasm.py --label-prefix=$(LABEL_PREFIX) tmp/$T.o.disasm $@
|
# dump
|
||||||
|
$(call tc,objdump) -b coff-i386 -m i8086 -M intel -Dr --no-show -w tmp/$T.o | $(RTRIM) > $@
|
||||||
|
|
||||||
|
.PRECIOUS: lzma_d_cf.i lzma_d_cs.i
|
||||||
|
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
lzma_d_cf.% : PP_FLAGS = -DFAST
|
lzma_d_cf.% : PP_FLAGS = -DFAST
|
||||||
lzma_d_cs.% : PP_FLAGS = -DSMALL
|
lzma_d_cs.% : PP_FLAGS = -DSMALL
|
||||||
@@ -139,6 +105,47 @@ define mkbat
|
|||||||
unix2dos -q $1
|
unix2dos -q $1
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
# Borland C/C++ 5.02
|
||||||
|
ifneq ($(wildcard $(BC502DIR)/bin/.),)
|
||||||
|
c := tc.method-lzma.bcc
|
||||||
|
$c = @$(WINEENV) CL='$(CL)' wine cmd.exe /c tmp/bcc.bat
|
||||||
|
$c += -mc
|
||||||
|
$c += -O1 -1
|
||||||
|
$c += -w
|
||||||
|
$c += -D__INT_MAX__=32767
|
||||||
|
##$c += -I$(subst \,/,$(shell winepath -s z:$(realpath $(UPX_LZMADIR))))
|
||||||
|
$c += -I$(subst \,/,$(shell winepath -s z:$(realpath $(UPX_LZMADIR)/C/7zip/Compress/LZMA_C)))
|
||||||
|
$c += -I$(top_srcdir)/src
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Digital Mars C/C++ 8.47
|
||||||
|
ifneq ($(wildcard $(DM847DIR)/bin/.),)
|
||||||
|
c := tc.method-lzma.dmc
|
||||||
|
$c = @$(WINEENV) CFLAGS='$(DMC)' wine cmd.exe /c tmp/dmc.bat
|
||||||
|
$c += -mc
|
||||||
|
$c += -NS
|
||||||
|
$c += -w-
|
||||||
|
DMC := -o -0
|
||||||
|
DMC += -D__INT_MAX__=32767
|
||||||
|
DMC += -I$(shell winepath -s z:$(realpath $(UPX_LZMADIR)))
|
||||||
|
DMC += -I$(shell winepath -s z:$(realpath $(top_srcdir)/src))
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Visual C/C++ 1.52 (8.00c)
|
||||||
|
ifneq ($(wildcard $(VC152DIR)/bin/.),)
|
||||||
|
c := tc.method-lzma.cl
|
||||||
|
$c = @$(WINEENV) CL='$(CL)' wine cmd.exe /c tmp/cl.bat
|
||||||
|
$c += -AC
|
||||||
|
$c += -Gy
|
||||||
|
$c += -O1 -Gf -Gs -G0
|
||||||
|
$c += -W4
|
||||||
|
CL := -nologo
|
||||||
|
CL += -D__INT_MAX__=32767
|
||||||
|
CL += -I$(shell winepath -s z:$(realpath $(UPX_LZMADIR)))
|
||||||
|
CL += -I$(shell winepath -s z:$(realpath $(top_srcdir)/src))
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
ifneq ($(wildcard $(WATCOM)/binl/.),)
|
ifneq ($(wildcard $(WATCOM)/binl/.),)
|
||||||
cc_test_wc : tc_list = method-lzma default
|
cc_test_wc : tc_list = method-lzma default
|
||||||
cc_test_wc: cc_test.c
|
cc_test_wc: cc_test.c
|
||||||
|
|||||||
@@ -34,6 +34,18 @@ import getopt, os, re, string, sys
|
|||||||
class opts:
|
class opts:
|
||||||
label_prefix = ".L"
|
label_prefix = ".L"
|
||||||
verbose = 0
|
verbose = 0
|
||||||
|
# optimizer flags
|
||||||
|
auto_inline = 1
|
||||||
|
call_rewrite = 1
|
||||||
|
|
||||||
|
|
||||||
|
inline_map = {
|
||||||
|
## "__PIA": "WCC_PIA",
|
||||||
|
"__PTS": "WCC_PTS",
|
||||||
|
## "__U4M_V01": "WCC_U4M_V01",
|
||||||
|
"__PIA_V02": "WCC_PIA_V02",
|
||||||
|
"__PIA_V01": "WCC_PIA_V01",
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
# /***********************************************************************
|
# /***********************************************************************
|
||||||
@@ -60,54 +72,208 @@ def main(argv):
|
|||||||
lines = open(ifile, "rb").readlines()
|
lines = open(ifile, "rb").readlines()
|
||||||
lines = filter(None, map(string.rstrip, lines))
|
lines = filter(None, map(string.rstrip, lines))
|
||||||
#
|
#
|
||||||
olines = []
|
#
|
||||||
labels = {}
|
labels = {}
|
||||||
|
def parse_label(inst, args):
|
||||||
|
m = re.search("^([0-9a-z]+)\s+<", args)
|
||||||
|
if m:
|
||||||
|
# local label
|
||||||
|
k, v = m.group(1).strip(), [0, 0, None, 0]
|
||||||
|
m = re.search(r"^(.*?)\b2\s+(__\w+)$", args)
|
||||||
|
if m:
|
||||||
|
# external 2-byte label
|
||||||
|
k, v = m.group(2).strip(), [1, 2, None, 0]
|
||||||
|
v[2] = k # new name
|
||||||
|
if labels.has_key(k):
|
||||||
|
assert labels[k][:2] == v[:2]
|
||||||
|
return k, v
|
||||||
|
def add_label(k, v):
|
||||||
|
if labels.has_key(k):
|
||||||
|
assert labels[k][:2] == v[:2]
|
||||||
|
else:
|
||||||
|
labels[k] = v
|
||||||
|
labels[k][3] += 1 # usage counter
|
||||||
|
return k
|
||||||
|
|
||||||
|
olines = []
|
||||||
|
def omatch(pos, m):
|
||||||
|
i = 0
|
||||||
|
dpos = []
|
||||||
|
while i < len(m):
|
||||||
|
if pos < 0 or pos >= len(olines):
|
||||||
|
return False
|
||||||
|
dpos.append(pos)
|
||||||
|
o = olines[pos][1:3]
|
||||||
|
assert len(m[i]) == 2, (i, m)
|
||||||
|
if o[0].lower() != m[i][0].lower():
|
||||||
|
return False
|
||||||
|
if o[1].lower() != m[i][1].lower():
|
||||||
|
return []
|
||||||
|
pos += 1
|
||||||
|
i += 1
|
||||||
|
return dpos
|
||||||
|
def orewrite(i, k, v, dpos):
|
||||||
|
for pos in dpos:
|
||||||
|
olines[pos][1] = "*DEL*"
|
||||||
|
v[2] = k
|
||||||
|
olines[i][2] = None
|
||||||
|
olines[i][3] = add_label(k, v)
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# pass 1
|
||||||
|
func = None
|
||||||
for i in range(len(lines)):
|
for i in range(len(lines)):
|
||||||
l = lines[i]
|
l = lines[i]
|
||||||
m = re.search("^(\s*[0-9a-z]+):\s+(\w+)(.*)", l)
|
m = re.search(r"^0000000000000000\s*<(\w+)>:", l)
|
||||||
|
if m:
|
||||||
|
func = re.sub(r"^_+|_+$", "", m.group(1))
|
||||||
|
if not func in ["LzmaDecode"]:
|
||||||
|
continue
|
||||||
|
m = re.search(r"^(\s*[0-9a-z]+):\s+(\w+)(.*)", l)
|
||||||
if not m:
|
if not m:
|
||||||
continue
|
continue
|
||||||
label = m.group(1).strip()
|
label = m.group(1).strip()
|
||||||
inst = m.group(2).strip()
|
inst = m.group(2).strip()
|
||||||
args = ""
|
args = ""
|
||||||
if m.group(3): args = m.group(3).strip()
|
if m.group(3): args = m.group(3).strip()
|
||||||
args_label = None
|
|
||||||
|
|
||||||
if label == "0" and olines: # start of next function
|
|
||||||
break
|
|
||||||
|
|
||||||
if inst in ["call",]:
|
|
||||||
args = re.sub(r"^(.*?)2\s+(__\w+)$", "\g<2>", args)
|
|
||||||
elif inst in [
|
|
||||||
"ja", "jae", "jb", "jbe", "jcxz", "je", "jge", "jl", "jmp", "jne", "loop",
|
|
||||||
]:
|
|
||||||
m = re.search("^([0-9a-z]+)\s+<", args)
|
|
||||||
assert m, l
|
|
||||||
if m:
|
|
||||||
labels[m.group(1)] = ""
|
|
||||||
args_label = m.group(1)
|
|
||||||
args = None
|
|
||||||
elif inst in ["movl",]:
|
|
||||||
assert re.search(r"\b[de]s\b", args), args
|
|
||||||
inst = "movw"
|
|
||||||
olines.append((label, inst, args, args_label))
|
|
||||||
#
|
#
|
||||||
|
if inst in ["movl",] and re.search(r"\b[de]s\b", args):
|
||||||
|
# correct objdump bug
|
||||||
|
inst = "movw"
|
||||||
|
m = re.search(r"^(.+?)\b0x0\s+(\w+):\s+[12]\s+(__\w+)$", args)
|
||||||
|
if m:
|
||||||
|
# 1 or 2 byte reloc
|
||||||
|
args = m.group(1) + m.group(3)
|
||||||
|
olines.append([label, inst, args, None])
|
||||||
|
#
|
||||||
|
# pass 2
|
||||||
|
for i in range(len(olines)):
|
||||||
|
label, inst, args, args_label = olines[i]
|
||||||
|
#
|
||||||
|
if inst == "*DEL*":
|
||||||
|
continue
|
||||||
|
#
|
||||||
|
if opts.call_rewrite and inst in ["call"]:
|
||||||
|
k, v = parse_label(inst, args)
|
||||||
|
if v[:2] == [1, 2]: # external 2-byte
|
||||||
|
if k == "__PIA":
|
||||||
|
inst1 = [
|
||||||
|
["mov", "bx,WORD PTR [bp-94]"],
|
||||||
|
["or", "bx,ax"],
|
||||||
|
["mov", "WORD PTR [bp-8],bx"],
|
||||||
|
["mov", "WORD PTR [bp-4],dx"],
|
||||||
|
["mov", "ax,WORD PTR [bp-12]"],
|
||||||
|
["movw", "dx,ds"],
|
||||||
|
["mov", "bx,0x1"],
|
||||||
|
["xor", "cx,cx"],
|
||||||
|
]
|
||||||
|
inst2 = [
|
||||||
|
["mov", "WORD PTR [bp-12],ax"],
|
||||||
|
["movw", "ds,dx"],
|
||||||
|
]
|
||||||
|
dpos1 = omatch(i - 8, inst1[-8:])
|
||||||
|
dpos2 = omatch(i + 1, inst2)
|
||||||
|
if dpos1 and dpos2:
|
||||||
|
orewrite(i, "__PIA_V04", v, dpos1 + dpos2)
|
||||||
|
continue
|
||||||
|
dpos1 = omatch(i - 4, inst1[-4:])
|
||||||
|
dpos2 = omatch(i + 1, inst2)
|
||||||
|
if dpos1 and dpos2:
|
||||||
|
orewrite(i, "__PIA_V03", v, dpos1 + dpos2)
|
||||||
|
continue
|
||||||
|
dpos = omatch(i - 3, inst1[-3:])
|
||||||
|
if dpos:
|
||||||
|
orewrite(i, "__PIA_V02", v, dpos)
|
||||||
|
continue
|
||||||
|
dpos = omatch(i - 2, inst1[-2:])
|
||||||
|
if dpos:
|
||||||
|
orewrite(i, "__PIA_V01", v, dpos)
|
||||||
|
continue
|
||||||
|
if k == "__PTC":
|
||||||
|
inst1 = [
|
||||||
|
["mov", "ax,WORD PTR [bp-12]"],
|
||||||
|
["movw", "dx,ds"],
|
||||||
|
["mov", "bx,WORD PTR [bp-26]"],
|
||||||
|
["mov", "cx,WORD PTR [bp-24]"],
|
||||||
|
]
|
||||||
|
dpos = omatch(i - 4, inst1[-4:])
|
||||||
|
if dpos:
|
||||||
|
orewrite(i, "__PTC_V01", v, dpos)
|
||||||
|
continue
|
||||||
|
if k == "__U4M":
|
||||||
|
inst1 = [
|
||||||
|
["mov", "bx,WORD PTR es:[bx]"],
|
||||||
|
["mov", "ax,WORD PTR [bp-102]"],
|
||||||
|
["mov", "dx,WORD PTR [bp-100]"],
|
||||||
|
["xor", "cx,cx"],
|
||||||
|
]
|
||||||
|
inst2 = [
|
||||||
|
["mov", "WORD PTR [bp-10],ax"],
|
||||||
|
["mov", "WORD PTR [bp-6],dx"],
|
||||||
|
]
|
||||||
|
dpos1 = omatch(i - 4, inst1[-4:])
|
||||||
|
dpos2 = omatch(i + 1, inst2)
|
||||||
|
if dpos1 and dpos2:
|
||||||
|
orewrite(i, "__U4M_V02", v, dpos1 + dpos2)
|
||||||
|
continue
|
||||||
|
dpos = omatch(i - 1, inst1[-1:])
|
||||||
|
if dpos:
|
||||||
|
orewrite(i, "__U4M_V01", v, dpos)
|
||||||
|
continue
|
||||||
|
#
|
||||||
|
if inst in [
|
||||||
|
"call", "ja", "jae", "jb", "jbe", "jcxz",
|
||||||
|
"je", "jge", "jl", "jmp", "jne", "loop",
|
||||||
|
]:
|
||||||
|
k, v = parse_label(inst, args)
|
||||||
|
olines[i][2] = None
|
||||||
|
olines[i][3] = add_label(k, v)
|
||||||
|
|
||||||
|
#
|
||||||
|
# rewrite local labels
|
||||||
digits, i = 1, len(labels)
|
digits, i = 1, len(labels)
|
||||||
while i >= 10:
|
while i >= 10:
|
||||||
digits += 1
|
digits += 1
|
||||||
i /= 10
|
i /= 10
|
||||||
format = "%s0%dd" % ("%", digits)
|
format = "%s0%dd" % ("%", digits)
|
||||||
i = 0
|
counter = 0
|
||||||
for label, inst, args, args_label in olines:
|
for i in range(len(olines)):
|
||||||
if labels.has_key(label):
|
label, inst, args, args_label = olines[i]
|
||||||
labels[label] = opts.label_prefix + format % i
|
# rewrite local labels
|
||||||
i += 1
|
v = labels.get(label)
|
||||||
|
if v is not None:
|
||||||
|
assert v[:3] == [0, 0, label], (label, v)
|
||||||
|
v[2] = opts.label_prefix + format % counter
|
||||||
|
counter += 1
|
||||||
|
# handle inlining
|
||||||
|
if opts.auto_inline and inst == "call":
|
||||||
|
v = labels[args_label]
|
||||||
|
if v[:2] == [1, 2]: # external 2-byte
|
||||||
|
if v[3] == 1: # only one call
|
||||||
|
x = inline_map.get(v[2])
|
||||||
|
##print "inline", v, x
|
||||||
|
if x:
|
||||||
|
olines[i][1] = x
|
||||||
|
olines[i][2] = "/* inlined */"
|
||||||
|
olines[i][2] = ""
|
||||||
|
olines[i][3] = None
|
||||||
|
|
||||||
# write ofile
|
# write ofile
|
||||||
ofp = open(ofile, "wb")
|
ofp = open(ofile, "wb")
|
||||||
for label, inst, args, args_label in olines:
|
for label, inst, args, args_label in olines:
|
||||||
if labels.has_key(label):
|
if labels.has_key(label):
|
||||||
ofp.write(labels[label] + ":\n")
|
if opts.verbose:
|
||||||
if args_label: args = labels[args_label]
|
ofp.write("%s: /* %d */\n" % (labels[label][2], labels[label][3]))
|
||||||
|
else:
|
||||||
|
ofp.write("%s:\n" % (labels[label][2]))
|
||||||
|
if inst == "*DEL*":
|
||||||
|
continue
|
||||||
|
if args_label:
|
||||||
|
if opts.verbose:
|
||||||
|
args = "%s /* %d */" % (labels[args_label][2], labels[args_label][3])
|
||||||
|
else:
|
||||||
|
args = labels[args_label][2]
|
||||||
l = "%8s%-7s %s" % ("", inst, args)
|
l = "%8s%-7s %s" % ("", inst, args)
|
||||||
ofp.write(l.rstrip() + "\n")
|
ofp.write(l.rstrip() + "\n")
|
||||||
ofp.close()
|
ofp.close()
|
||||||
|
|||||||
@@ -37,6 +37,89 @@
|
|||||||
; Output:
|
; Output:
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
// support code (see cleanasm.py)
|
||||||
|
**************************************************************************/
|
||||||
|
|
||||||
|
section LZMA_DEC99
|
||||||
|
|
||||||
|
__PIA_V04:
|
||||||
|
mov bx,WORD PTR [bp-94]
|
||||||
|
or bx,ax
|
||||||
|
mov WORD PTR [bp-8],bx
|
||||||
|
mov WORD PTR [bp-4],dx
|
||||||
|
__PIA_V03:
|
||||||
|
mov ax,WORD PTR [bp-12]
|
||||||
|
// FIXME: need optimized version here
|
||||||
|
movw dx,ds
|
||||||
|
mov bx,0x1
|
||||||
|
xor cx,cx
|
||||||
|
M_WCC_PIA
|
||||||
|
mov WORD PTR [bp-12],ax
|
||||||
|
movw ds,dx
|
||||||
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
#if 1
|
||||||
|
.macro lzma_WCC_PIA_V02
|
||||||
|
// FIXME: need optimized version here
|
||||||
|
movw dx,ds
|
||||||
|
mov bx,0x1
|
||||||
|
xor cx,cx
|
||||||
|
M_WCC_PIA
|
||||||
|
.endm
|
||||||
|
#define WCC_PIA_V02 lzma_WCC_PIA_V02
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
__PIA:
|
||||||
|
M_WCC_PIA
|
||||||
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
__PTC_V01:
|
||||||
|
mov ax,WORD PTR [bp-12]
|
||||||
|
movw dx,ds
|
||||||
|
mov bx,WORD PTR [bp-26]
|
||||||
|
mov cx,WORD PTR [bp-24]
|
||||||
|
__PTC:
|
||||||
|
M_WCC_PTC
|
||||||
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
#if 1
|
||||||
|
// FIXME: do we actually need the PTS result ??
|
||||||
|
#define WCC_PTS M_WCC_PTS
|
||||||
|
#else
|
||||||
|
#define WCC_PTS xor ax,ax; xor dx,dx
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
__U4M_V02:
|
||||||
|
mov bx,WORD PTR es:[bx]
|
||||||
|
mov ax,WORD PTR [bp-102]
|
||||||
|
mov dx,WORD PTR [bp-100]
|
||||||
|
// FIXME: need optimized version here (cx = 0)
|
||||||
|
xor cx,cx
|
||||||
|
M_WCC_U4M
|
||||||
|
mov WORD PTR [bp-10],ax
|
||||||
|
mov WORD PTR [bp-6],dx
|
||||||
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
__U4M_V01:
|
||||||
|
// FIXME: need optimized version here (cx = 0)
|
||||||
|
xor cx,cx
|
||||||
|
M_WCC_U4M
|
||||||
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
//
|
||||||
|
**************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
// init
|
// init
|
||||||
section LZMA_DEC00
|
section LZMA_DEC00
|
||||||
|
|
||||||
@@ -54,5 +137,8 @@ section LZMA_DEC20
|
|||||||
section LZMA_DEC30
|
section LZMA_DEC30
|
||||||
|
|
||||||
|
|
||||||
|
#undef WCC_PIA_V02
|
||||||
|
#undef WCC_PTS
|
||||||
|
|
||||||
// vi:ts=8:et
|
// vi:ts=8:et
|
||||||
|
|
||||||
|
|||||||
+416
-701
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+416
-701
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -134,42 +134,30 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* DOS real mode */
|
/* DOS real mode */
|
||||||
#define _AHSHIFT 12
|
#define __AHSHIFT 12
|
||||||
#define _AHINCR (1 << _AHSHIFT) /* 4096 */
|
#define __AHINCR (1 << __AHSHIFT) /* 4096 */
|
||||||
|
|
||||||
|
|
||||||
// huge pointer add: dx:ax = dx:ax + cx:bx
|
// huge pointer add: dx:ax = dx:ax + cx:bx
|
||||||
.macro M_WCC_PIA_086
|
.macro M_WCC_PIA
|
||||||
add ax, bx
|
add ax, bx
|
||||||
adc cx, 0
|
adc cx, 0
|
||||||
mov cx, bx
|
mov cx, bx
|
||||||
mov cl, _AHSHIFT
|
mov cl, __AHSHIFT
|
||||||
shl bx, cl
|
shl bx, cl
|
||||||
add dx, bx
|
add dx, bx
|
||||||
.endm
|
.endm
|
||||||
.macro M_WCC_PIA_286
|
|
||||||
add ax, bx
|
|
||||||
adc cx, 0
|
|
||||||
shl cx, _AHSHIFT
|
|
||||||
add dx, cx
|
|
||||||
.endm
|
|
||||||
|
|
||||||
|
|
||||||
// huge pointer sub: dx:ax = dx:ax - cx:bx
|
// huge pointer sub: dx:ax = dx:ax - cx:bx
|
||||||
.macro M_WCC_PIS_086
|
.macro M_WCC_PIS
|
||||||
sub ax, bx
|
sub ax, bx
|
||||||
adc cx, 0
|
adc cx, 0
|
||||||
mov cx, bx
|
mov cx, bx
|
||||||
mov cl, _AHSHIFT
|
mov cl, __AHSHIFT
|
||||||
shl bx, cl
|
shl bx, cl
|
||||||
sub dx, bx
|
sub dx, bx
|
||||||
.endm
|
.endm
|
||||||
.macro M_WCC_PIS_286
|
|
||||||
sub ax, bx
|
|
||||||
adc cx, 0
|
|
||||||
shl cx, _AHSHIFT
|
|
||||||
sub dx, cx
|
|
||||||
.endm
|
|
||||||
|
|
||||||
|
|
||||||
// huge pointer diff: dx:ax = dx:ax - cx:bx
|
// huge pointer diff: dx:ax = dx:ax - cx:bx
|
||||||
@@ -195,10 +183,9 @@ L1:
|
|||||||
|
|
||||||
// umul32: dx:ax = dx:ax * cx:bx
|
// umul32: dx:ax = dx:ax * cx:bx
|
||||||
.macro M_WCC_U4M
|
.macro M_WCC_U4M
|
||||||
push si
|
// FIXME
|
||||||
// compute high-word
|
// compute high-word
|
||||||
// add low-word
|
// add low-word
|
||||||
pop si
|
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -219,23 +219,6 @@ section EXERETIP
|
|||||||
lret
|
lret
|
||||||
|
|
||||||
|
|
||||||
section __PIA
|
|
||||||
M_WCC_PIA_086
|
|
||||||
ret
|
|
||||||
//section __PIS
|
|
||||||
// M_WCC_PIS_086
|
|
||||||
// ret
|
|
||||||
section __PTS
|
|
||||||
M_WCC_PTS
|
|
||||||
ret
|
|
||||||
section __PTC
|
|
||||||
M_WCC_PTC
|
|
||||||
ret
|
|
||||||
section __U4M
|
|
||||||
M_WCC_U4M
|
|
||||||
ret
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
vi:ts=8:et:nowrap
|
vi:ts=8:et:nowrap
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -44,29 +44,26 @@ Idx Name Size VMA LMA File off Algn Flags
|
|||||||
39 NRV2EEX3 00000015 00000000 00000000 0000027b 2**0 CONTENTS, RELOC, READONLY
|
39 NRV2EEX3 00000015 00000000 00000000 0000027b 2**0 CONTENTS, RELOC, READONLY
|
||||||
40 N2E64K02 0000000b 00000000 00000000 00000290 2**0 CONTENTS, READONLY
|
40 N2E64K02 0000000b 00000000 00000000 00000290 2**0 CONTENTS, READONLY
|
||||||
41 NRV2EEX9 00000004 00000000 00000000 0000029b 2**0 CONTENTS, READONLY
|
41 NRV2EEX9 00000004 00000000 00000000 0000029b 2**0 CONTENTS, READONLY
|
||||||
42 LZMA_DEC00 00000000 00000000 00000000 0000029f 2**0 CONTENTS, READONLY
|
42 LZMA_DEC99 0000005d 00000000 00000000 0000029f 2**0 CONTENTS, READONLY
|
||||||
43 LZMA_DEC10 00001191 00000000 00000000 0000029f 2**0 CONTENTS, RELOC, READONLY
|
43 LZMA_DEC00 00000000 00000000 00000000 000002fc 2**0 CONTENTS, READONLY
|
||||||
44 LZMA_DEC20 00001191 00000000 00000000 00001430 2**0 CONTENTS, RELOC, READONLY
|
44 LZMA_DEC10 00000ea2 00000000 00000000 000002fc 2**0 CONTENTS, RELOC, READONLY
|
||||||
45 LZMA_DEC30 00000000 00000000 00000000 000025c1 2**0 CONTENTS, READONLY
|
45 LZMA_DEC20 00000ea2 00000000 00000000 0000119e 2**0 CONTENTS, RELOC, READONLY
|
||||||
46 EXEMAIN5 00000001 00000000 00000000 000025c1 2**0 CONTENTS, READONLY
|
46 LZMA_DEC30 00000000 00000000 00000000 00002040 2**0 CONTENTS, READONLY
|
||||||
47 EXEADJUS 00000007 00000000 00000000 000025c2 2**0 CONTENTS, READONLY
|
47 EXEMAIN5 00000001 00000000 00000000 00002040 2**0 CONTENTS, READONLY
|
||||||
48 EXENOADJ 00000002 00000000 00000000 000025c9 2**0 CONTENTS, READONLY
|
48 EXEADJUS 00000007 00000000 00000000 00002041 2**0 CONTENTS, READONLY
|
||||||
49 EXERELO1 0000001e 00000000 00000000 000025cb 2**0 CONTENTS, RELOC, READONLY
|
49 EXENOADJ 00000002 00000000 00000000 00002048 2**0 CONTENTS, READONLY
|
||||||
50 EXEREL9A 00000012 00000000 00000000 000025e9 2**0 CONTENTS, RELOC, READONLY
|
50 EXERELO1 0000001e 00000000 00000000 0000204a 2**0 CONTENTS, RELOC, READONLY
|
||||||
51 EXERELO2 00000004 00000000 00000000 000025fb 2**0 CONTENTS, READONLY
|
51 EXEREL9A 00000012 00000000 00000000 00002068 2**0 CONTENTS, RELOC, READONLY
|
||||||
52 EXEREBIG 00000002 00000000 00000000 000025ff 2**0 CONTENTS, RELOC, READONLY
|
52 EXERELO2 00000004 00000000 00000000 0000207a 2**0 CONTENTS, READONLY
|
||||||
53 EXERELO3 00000002 00000000 00000000 00002601 2**0 CONTENTS, RELOC, READONLY
|
53 EXEREBIG 00000002 00000000 00000000 0000207e 2**0 CONTENTS, RELOC, READONLY
|
||||||
54 EXEMAIN8 00000003 00000000 00000000 00002603 2**0 CONTENTS, READONLY
|
54 EXERELO3 00000002 00000000 00000000 00002080 2**0 CONTENTS, RELOC, READONLY
|
||||||
55 DEVICEEND 00000013 00000000 00000000 00002606 2**0 CONTENTS, READONLY
|
55 EXEMAIN8 00000003 00000000 00000000 00002082 2**0 CONTENTS, READONLY
|
||||||
56 EXESTACK 00000006 00000000 00000000 00002619 2**0 CONTENTS, RELOC, READONLY
|
56 DEVICEEND 00000013 00000000 00000000 00002085 2**0 CONTENTS, READONLY
|
||||||
57 EXESTASP 00000003 00000000 00000000 0000261f 2**0 CONTENTS, RELOC, READONLY
|
57 EXESTACK 00000006 00000000 00000000 00002098 2**0 CONTENTS, RELOC, READONLY
|
||||||
58 EXEJUMPF 00000005 00000000 00000000 00002622 2**0 CONTENTS, RELOC, READONLY
|
58 EXESTASP 00000003 00000000 00000000 0000209e 2**0 CONTENTS, RELOC, READONLY
|
||||||
59 EXERCSPO 00000004 00000000 00000000 00002627 2**0 CONTENTS, RELOC, READONLY
|
59 EXEJUMPF 00000005 00000000 00000000 000020a1 2**0 CONTENTS, RELOC, READONLY
|
||||||
60 EXERETIP 00000006 00000000 00000000 0000262b 2**0 CONTENTS, RELOC, READONLY
|
60 EXERCSPO 00000004 00000000 00000000 000020a6 2**0 CONTENTS, RELOC, READONLY
|
||||||
61 __PIA 0000000e 00000000 00000000 00002631 2**0 CONTENTS, READONLY
|
61 EXERETIP 00000006 00000000 00000000 000020aa 2**0 CONTENTS, RELOC, READONLY
|
||||||
62 __PTS 00000005 00000000 00000000 0000263f 2**0 CONTENTS, READONLY
|
|
||||||
63 __PTC 00000007 00000000 00000000 00002644 2**0 CONTENTS, READONLY
|
|
||||||
64 __U4M 00000003 00000000 00000000 0000264b 2**0 CONTENTS, READONLY
|
|
||||||
SYMBOL TABLE:
|
SYMBOL TABLE:
|
||||||
00000000 l d DEVICEENTRY 00000000 DEVICEENTRY
|
00000000 l d DEVICEENTRY 00000000 DEVICEENTRY
|
||||||
00000000 l d EXEENTRY 00000000 EXEENTRY
|
00000000 l d EXEENTRY 00000000 EXEENTRY
|
||||||
@@ -82,10 +79,7 @@ SYMBOL TABLE:
|
|||||||
00000000 l d NRV2EEX2 00000000 NRV2EEX2
|
00000000 l d NRV2EEX2 00000000 NRV2EEX2
|
||||||
00000000 l d NRV2EEX3 00000000 NRV2EEX3
|
00000000 l d NRV2EEX3 00000000 NRV2EEX3
|
||||||
00000000 l d NRV2EEX9 00000000 NRV2EEX9
|
00000000 l d NRV2EEX9 00000000 NRV2EEX9
|
||||||
00000000 l d __PIA 00000000 __PIA
|
00000000 l d LZMA_DEC99 00000000 LZMA_DEC99
|
||||||
00000000 l d __PTC 00000000 __PTC
|
|
||||||
00000000 l d __U4M 00000000 __U4M
|
|
||||||
00000000 l d __PTS 00000000 __PTS
|
|
||||||
00000000 l d EXERELO1 00000000 EXERELO1
|
00000000 l d EXERELO1 00000000 EXERELO1
|
||||||
00000000 l d EXERELO2 00000000 EXERELO2
|
00000000 l d EXERELO2 00000000 EXERELO2
|
||||||
00000000 l d DEVICESUB 00000000 DEVICESUB
|
00000000 l d DEVICESUB 00000000 DEVICESUB
|
||||||
@@ -250,115 +244,111 @@ OFFSET TYPE VALUE
|
|||||||
|
|
||||||
RELOCATION RECORDS FOR [LZMA_DEC10]:
|
RELOCATION RECORDS FOR [LZMA_DEC10]:
|
||||||
OFFSET TYPE VALUE
|
OFFSET TYPE VALUE
|
||||||
000000ec R_386_PC16 __PIA
|
000000e5 R_386_PC16 LZMA_DEC99
|
||||||
00000137 R_386_PC16 __PIA
|
0000011b R_386_PC16 LZMA_DEC99
|
||||||
00000153 R_386_PC16 __PTC
|
00000127 R_386_PC16 LZMA_DEC99
|
||||||
000001a7 R_386_PC16 __PTC
|
00000170 R_386_PC16 LZMA_DEC99
|
||||||
000001e5 R_386_PC16 __PIA
|
00000199 R_386_PC16 LZMA_DEC99
|
||||||
0000020c R_386_PC16 __U4M
|
000001b0 R_386_PC16 LZMA_DEC99
|
||||||
00000277 R_386_PC16 __U4M
|
00000213 R_386_PC16 LZMA_DEC99
|
||||||
000002ab R_386_PC16 __PIA
|
00000247 R_386_PC16 LZMA_DEC99
|
||||||
000002f2 R_386_PC16 __PTC
|
00000283 R_386_PC16 LZMA_DEC99
|
||||||
00000333 R_386_PC16 __PIA
|
000002af R_386_PC16 LZMA_DEC99
|
||||||
0000035a R_386_PC16 __U4M
|
000002c6 R_386_PC16 LZMA_DEC99
|
||||||
000003f1 R_386_PC16 __PTC
|
0000034c R_386_PC16 LZMA_DEC99
|
||||||
00000432 R_386_PC16 __PIA
|
00000378 R_386_PC16 LZMA_DEC99
|
||||||
00000459 R_386_PC16 __U4M
|
0000038f R_386_PC16 LZMA_DEC99
|
||||||
000004cf R_386_PC16 __PIA
|
000003ff R_386_PC16 LZMA_DEC99
|
||||||
00000542 R_386_PC16 __PTC
|
00000467 R_386_PC16 LZMA_DEC99
|
||||||
00000583 R_386_PC16 __PIA
|
00000493 R_386_PC16 LZMA_DEC99
|
||||||
000005aa R_386_PC16 __U4M
|
000004aa R_386_PC16 LZMA_DEC99
|
||||||
0000065f R_386_PC16 __PTC
|
0000054e R_386_PC16 LZMA_DEC99
|
||||||
000006a0 R_386_PC16 __PIA
|
0000057a R_386_PC16 LZMA_DEC99
|
||||||
000006c7 R_386_PC16 __U4M
|
00000591 R_386_PC16 LZMA_DEC99
|
||||||
000006da R_386_PC16 __PIA
|
000005ff R_386_PC16 LZMA_DEC99
|
||||||
0000073d R_386_PC16 __PTC
|
00000657 R_386_PC16 LZMA_DEC99
|
||||||
000007a0 R_386_PC16 __U4M
|
000006b0 R_386_PC16 LZMA_DEC99
|
||||||
000007ff R_386_PC16 __PIA
|
000006d1 R_386_PC16 LZMA_DEC99
|
||||||
00000820 R_386_PC16 __PIA
|
0000073a R_386_PC16 LZMA_DEC99
|
||||||
00000894 R_386_PC16 __PTC
|
0000078e R_386_PC16 LZMA_DEC99
|
||||||
000008f3 R_386_PC16 __U4M
|
000007f8 R_386_PC16 LZMA_DEC99
|
||||||
0000096e R_386_PC16 __PTC
|
00000824 R_386_PC16 LZMA_DEC99
|
||||||
000009af R_386_PC16 __PIA
|
0000083b R_386_PC16 LZMA_DEC99
|
||||||
000009d6 R_386_PC16 __U4M
|
000008ea R_386_PC16 LZMA_DEC99
|
||||||
00000a96 R_386_PC16 __PTC
|
00000916 R_386_PC16 LZMA_DEC99
|
||||||
00000ad7 R_386_PC16 __PIA
|
00000930 R_386_PC16 LZMA_DEC99
|
||||||
00000b01 R_386_PC16 __U4M
|
000009ad R_386_PC16 LZMA_DEC99
|
||||||
00000b8f R_386_PC16 __PTC
|
000009d9 R_386_PC16 LZMA_DEC99
|
||||||
00000bd0 R_386_PC16 __PIA
|
000009f3 R_386_PC16 LZMA_DEC99
|
||||||
00000bfa R_386_PC16 __U4M
|
00000a93 R_386_PC16 LZMA_DEC99
|
||||||
00000caa R_386_PC16 __PTC
|
00000abf R_386_PC16 LZMA_DEC99
|
||||||
00000ceb R_386_PC16 __PIA
|
00000ad6 R_386_PC16 LZMA_DEC99
|
||||||
00000d12 R_386_PC16 __U4M
|
00000b8f R_386_PC16 LZMA_DEC99
|
||||||
00000ddc R_386_PC16 __PTC
|
00000bbb R_386_PC16 LZMA_DEC99
|
||||||
00000e1d R_386_PC16 __PIA
|
00000bd2 R_386_PC16 LZMA_DEC99
|
||||||
00000e44 R_386_PC16 __U4M
|
00000c90 R_386_PC16 LZMA_DEC99
|
||||||
00000f13 R_386_PC16 __PTC
|
00000cbc R_386_PC16 LZMA_DEC99
|
||||||
00000f54 R_386_PC16 __PIA
|
00000d27 R_386_PC16 LZMA_DEC99
|
||||||
00000fd0 R_386_PC16 __PTC
|
00000d53 R_386_PC16 LZMA_DEC99
|
||||||
00001011 R_386_PC16 __PIA
|
00000d6a R_386_PC16 LZMA_DEC99
|
||||||
00001038 R_386_PC16 __U4M
|
00000e17 R_386_PC16 LZMA_DEC99
|
||||||
000010eb R_386_PC16 __PIA
|
00000e3b R_386_PC16 LZMA_DEC99
|
||||||
0000110f R_386_PC16 __PIA
|
00000e6b R_386_PC16 LZMA_DEC99
|
||||||
0000114a R_386_PC16 __PTC
|
00000e73 R_386_PC16 LZMA_DEC99
|
||||||
0000115c R_386_PC16 __PIA
|
|
||||||
0000116f R_386_PC16 __PTS
|
|
||||||
|
|
||||||
RELOCATION RECORDS FOR [LZMA_DEC20]:
|
RELOCATION RECORDS FOR [LZMA_DEC20]:
|
||||||
OFFSET TYPE VALUE
|
OFFSET TYPE VALUE
|
||||||
000000ec R_386_PC16 __PIA
|
000000e5 R_386_PC16 LZMA_DEC99
|
||||||
00000137 R_386_PC16 __PIA
|
0000011b R_386_PC16 LZMA_DEC99
|
||||||
00000153 R_386_PC16 __PTC
|
00000127 R_386_PC16 LZMA_DEC99
|
||||||
000001a7 R_386_PC16 __PTC
|
00000170 R_386_PC16 LZMA_DEC99
|
||||||
000001e5 R_386_PC16 __PIA
|
00000199 R_386_PC16 LZMA_DEC99
|
||||||
0000020c R_386_PC16 __U4M
|
000001b0 R_386_PC16 LZMA_DEC99
|
||||||
00000277 R_386_PC16 __U4M
|
00000213 R_386_PC16 LZMA_DEC99
|
||||||
000002ab R_386_PC16 __PIA
|
00000247 R_386_PC16 LZMA_DEC99
|
||||||
000002f2 R_386_PC16 __PTC
|
00000283 R_386_PC16 LZMA_DEC99
|
||||||
00000333 R_386_PC16 __PIA
|
000002af R_386_PC16 LZMA_DEC99
|
||||||
0000035a R_386_PC16 __U4M
|
000002c6 R_386_PC16 LZMA_DEC99
|
||||||
000003f1 R_386_PC16 __PTC
|
0000034c R_386_PC16 LZMA_DEC99
|
||||||
00000432 R_386_PC16 __PIA
|
00000378 R_386_PC16 LZMA_DEC99
|
||||||
00000459 R_386_PC16 __U4M
|
0000038f R_386_PC16 LZMA_DEC99
|
||||||
000004cf R_386_PC16 __PIA
|
000003ff R_386_PC16 LZMA_DEC99
|
||||||
00000542 R_386_PC16 __PTC
|
00000467 R_386_PC16 LZMA_DEC99
|
||||||
00000583 R_386_PC16 __PIA
|
00000493 R_386_PC16 LZMA_DEC99
|
||||||
000005aa R_386_PC16 __U4M
|
000004aa R_386_PC16 LZMA_DEC99
|
||||||
0000065f R_386_PC16 __PTC
|
0000054e R_386_PC16 LZMA_DEC99
|
||||||
000006a0 R_386_PC16 __PIA
|
0000057a R_386_PC16 LZMA_DEC99
|
||||||
000006c7 R_386_PC16 __U4M
|
00000591 R_386_PC16 LZMA_DEC99
|
||||||
000006da R_386_PC16 __PIA
|
000005ff R_386_PC16 LZMA_DEC99
|
||||||
0000073d R_386_PC16 __PTC
|
00000657 R_386_PC16 LZMA_DEC99
|
||||||
000007a0 R_386_PC16 __U4M
|
000006b0 R_386_PC16 LZMA_DEC99
|
||||||
000007ff R_386_PC16 __PIA
|
000006d1 R_386_PC16 LZMA_DEC99
|
||||||
00000820 R_386_PC16 __PIA
|
0000073a R_386_PC16 LZMA_DEC99
|
||||||
00000894 R_386_PC16 __PTC
|
0000078e R_386_PC16 LZMA_DEC99
|
||||||
000008f3 R_386_PC16 __U4M
|
000007f8 R_386_PC16 LZMA_DEC99
|
||||||
0000096e R_386_PC16 __PTC
|
00000824 R_386_PC16 LZMA_DEC99
|
||||||
000009af R_386_PC16 __PIA
|
0000083b R_386_PC16 LZMA_DEC99
|
||||||
000009d6 R_386_PC16 __U4M
|
000008ea R_386_PC16 LZMA_DEC99
|
||||||
00000a96 R_386_PC16 __PTC
|
00000916 R_386_PC16 LZMA_DEC99
|
||||||
00000ad7 R_386_PC16 __PIA
|
00000930 R_386_PC16 LZMA_DEC99
|
||||||
00000b01 R_386_PC16 __U4M
|
000009ad R_386_PC16 LZMA_DEC99
|
||||||
00000b8f R_386_PC16 __PTC
|
000009d9 R_386_PC16 LZMA_DEC99
|
||||||
00000bd0 R_386_PC16 __PIA
|
000009f3 R_386_PC16 LZMA_DEC99
|
||||||
00000bfa R_386_PC16 __U4M
|
00000a93 R_386_PC16 LZMA_DEC99
|
||||||
00000caa R_386_PC16 __PTC
|
00000abf R_386_PC16 LZMA_DEC99
|
||||||
00000ceb R_386_PC16 __PIA
|
00000ad6 R_386_PC16 LZMA_DEC99
|
||||||
00000d12 R_386_PC16 __U4M
|
00000b8f R_386_PC16 LZMA_DEC99
|
||||||
00000ddc R_386_PC16 __PTC
|
00000bbb R_386_PC16 LZMA_DEC99
|
||||||
00000e1d R_386_PC16 __PIA
|
00000bd2 R_386_PC16 LZMA_DEC99
|
||||||
00000e44 R_386_PC16 __U4M
|
00000c90 R_386_PC16 LZMA_DEC99
|
||||||
00000f13 R_386_PC16 __PTC
|
00000cbc R_386_PC16 LZMA_DEC99
|
||||||
00000f54 R_386_PC16 __PIA
|
00000d27 R_386_PC16 LZMA_DEC99
|
||||||
00000fd0 R_386_PC16 __PTC
|
00000d53 R_386_PC16 LZMA_DEC99
|
||||||
00001011 R_386_PC16 __PIA
|
00000d6a R_386_PC16 LZMA_DEC99
|
||||||
00001038 R_386_PC16 __U4M
|
00000e17 R_386_PC16 LZMA_DEC99
|
||||||
000010eb R_386_PC16 __PIA
|
00000e3b R_386_PC16 LZMA_DEC99
|
||||||
0000110f R_386_PC16 __PIA
|
00000e6b R_386_PC16 LZMA_DEC99
|
||||||
0000114a R_386_PC16 __PTC
|
00000e73 R_386_PC16 LZMA_DEC99
|
||||||
0000115c R_386_PC16 __PIA
|
|
||||||
0000116f R_386_PC16 __PTS
|
|
||||||
|
|
||||||
RELOCATION RECORDS FOR [EXERELO1]:
|
RELOCATION RECORDS FOR [EXERELO1]:
|
||||||
OFFSET TYPE VALUE
|
OFFSET TYPE VALUE
|
||||||
|
|||||||
Reference in New Issue
Block a user