reloc32 uncommented

This commit is contained in:
László Molnár
2006-07-02 22:32:12 +02:00
parent f022c9d510
commit 6d2058c3b7
+25 -24
View File
@@ -150,7 +150,7 @@ section CALLTR02
sub eax, edi sub eax, edi
sub bl, 0xE8 sub bl, 0xE8
.if \addvalue .ifnc \addvalue, 0
add eax, \addvalue add eax, \addvalue
.endif .endif
@@ -187,7 +187,7 @@ section CTBSWA11
section CALLTR13 section CALLTR13
sub eax, edi sub eax, edi
.if \addvalue .ifnc \addvalue, 0
add eax, \addvalue add eax, \addvalue
.endif .endif
@@ -256,51 +256,52 @@ ckcount:
jg ckloop3 jg ckloop3
ckend: ckend:
%endmacro %endmacro
#endif
;; ============= // =============
;; ============= 32-BIT RELOCATIONS // ============= 32-BIT RELOCATIONS
;; ============= // =============
%macro reloc32 3 .macro reloc32 buffer, destination, addvalue
section RELOC320 section RELOC320
reloc_main: reloc_main:
xor eax, eax xor eax, eax
mov al, [%1] mov al, [\buffer]
inc %1 inc \buffer
or eax, eax or eax, eax
jz reloc_endx jzs reloc_endx
cmp al, 0xEF cmp al, 0xEF
ja reloc_fx ja reloc_fx
reloc_add: reloc_add:
add %2, eax add \destination, eax
%if 1 #if 1
mov eax, [%2] mov eax, [\destination]
xchg ah, al xchg ah, al
rol eax, 16 rol eax, 16
xchg ah, al xchg ah, al
add eax, %3 add eax, \addvalue
mov [%2], eax mov [\destination], eax
%else #else
add [%2], %3 add [\destination], \addvalue
%endif #endif
jmps reloc_main jmps reloc_main
reloc_fx: reloc_fx:
and al, 0x0F and al, 0x0F
shl eax, 16 shl eax, 16
mov ax, [%1] mov ax, [\buffer]
add %1, byte 2 add \buffer, 2
section REL32BIG section REL32BIG
or eax, eax or eax, eax
jnz reloc_add jnzs reloc_add
mov eax, [%1] mov eax, [\buffer]
add %1, byte 4 add \buffer, 4
section RELOC32J section RELOC32J
jmps reloc_add jmps reloc_add
reloc_endx: reloc_endx:
section REL32END section REL32END
%endmacro .endm
#if 0
;; ============= ;; =============
;; ============= 32-BIT CALL TRICK UNFILTER WITH MostRecentlyUsed BUFFER ;; ============= 32-BIT CALL TRICK UNFILTER WITH MostRecentlyUsed BUFFER
;; ============= ;; =============