linker script, data syms
[ia32rtools.git] / runsed.sh
CommitLineData
60f7539b 1#!/bin/sh -x
2
3# sed -i -e '/.model flat/i\
4# \t\t.xmm\r' StarCraft.asm
5
6usyms="copy_start ___from_strstr_to_strchr unknown_libname_36 unknown_libname_41 unknown_libname_58"
7
8f=/tmp/sedcmd_
9echo -n "sed -i -e '/.model flat/i\\\t\t.xmm\r' -e '" > $f
10for sym in $usyms; do
11 echo -n "s/^\<$sym\>:\([^:]\)/$sym::\1/g;" >> $f
12done
13
14echo "\
15s/^\(loc[r_].*[0-9A-F]:\)[^:]\(.*\;\)/\1:\t\2/g;\
16s/dd[[:blank:]]rva/dd/;\
17s/\<fldcw\>\t\[esp+4+var_4\]/fldcw\tword ptr \[esp\]/;\
18s/\<large \(.*fs:\)/\1/;\
d458c380 19s/lea\t\(e.[px]\), \[\1+0\]/align 10h/;\
20s/\[\(e..\)+\(e.p\)\]/\[\2+\1\]/;\
21s/\(\<word_.*\), 0FFFFh/\1, word ptr 0FFFFh/;\
22s/\(\<j[mn]\?[abceglopszp]e\?\>\)\tloc_/\1\tnear ptr loc_/;\
60f7539b 23' StarCraft.asm" >> $f
24. $f
25
d458c380 26# manual fixup:
27# = 'end start' -> 'end'
28# - 'lea ecx, [ecx+0]' -> align
29# - add 'near ptr' to some jumps
30# - 'cmp [ebp+edx+0], cl' -> 'cmp [edx+ebp+0], cl'
31# - 0FFFFh constant - masm treats a byte, sometimes prefix with 'word ptr'