X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=run_sed.sh;h=29df071ed2d0dbb2a0305a213a190b643e16a168;hb=315b77eb1daa01b075f6a08fc88a782f89d88dff;hp=115ab6a3f7e922ccf2a090d6708439c8e9d58275;hpb=c378213ad0770e0919916c265999f357a49ad75f;p=ia32rtools.git diff --git a/run_sed.sh b/run_sed.sh index 115ab6a..29df071 100755 --- a/run_sed.sh +++ b/run_sed.sh @@ -12,7 +12,7 @@ for sym in $usyms; do done echo "\ -s/^\(loc[r_].*[0-9A-F]:\)[^:]\(.*\;\)/\1:\t\2/g;\ +s/^\([ +-]\?loc[r_].*[0-9A-F]:\)[^:]\(.*\;\)/\1:\t\2/g;\ s/dd[[:blank:]]rva/dd/;\ s/\\t\[esp+4+var_4\]/fldcw\tword ptr \[esp\]/;\ s/\/pushfd/;\ s/\/popfd/;\ s/\(\\)\tloc_/\1\tnear ptr loc_/;\ s/\> $f +' $1" >> $f . $f # manual fixup: # - 'end start' -> 'end' -# - 'lea ecx, [ecx+0]' -> align +# - 'mov edi, edi', 'lea ...' -> align # - add 'near ptr' to some jumps -# - 'cmp [ebp+edx+0], cl' -> 'cmp [edx+ebp+0], cl' +# - 'cmp [ebp+edx+0], cl' -> 'cmp [ebp+edx*1+0], cl' # - 0FFxxh constants - masm treats a byte, ONLY sometimes prefix with 'word ptr' # - jmp near: # - jmp _strchr +# - search for 'dword_xx+N', make byte/word, also word->byte +# - get rid of type propagation, regenerate as 'simple' var_ +# - convert ds:0[eax*4] -> [eax*4+0] (h hotkey) +# - rm function chunks - they're funcs reached by tailcalls (usually)