Replaced all the slow 'loop' instructions.
This commit is contained in:
@@ -661,7 +661,9 @@ NEWSYM getstring
|
||||
.nz
|
||||
mov [edi],al
|
||||
inc edi
|
||||
loop .nz
|
||||
; loop .nz
|
||||
dec ecx
|
||||
jnz .nz
|
||||
xor ebx,ebx
|
||||
.tryinputagain
|
||||
; input string
|
||||
@@ -712,7 +714,9 @@ NEWSYM getstring
|
||||
dec esi
|
||||
mov [es:edi],al
|
||||
sub edi,2
|
||||
loop .okloop
|
||||
; loop .okloop
|
||||
dec ecx
|
||||
jnz .okloop
|
||||
inc bl
|
||||
jmp .tryinputagain
|
||||
.trybackspace
|
||||
@@ -735,7 +739,9 @@ NEWSYM getstring
|
||||
dec esi
|
||||
mov [es:edi],al
|
||||
sub edi,2
|
||||
loop .okloop2
|
||||
; loop .okloop2
|
||||
dec ecx
|
||||
jnz .okloop2
|
||||
.noloop
|
||||
mov dl,[clearchar]
|
||||
mov byte[es:edi],dl
|
||||
@@ -774,7 +780,9 @@ NEWSYM modify
|
||||
sub byte[wx],4
|
||||
add byte[wx2],4
|
||||
pop ecx
|
||||
loop .loopa
|
||||
; loop .loopa
|
||||
dec ecx
|
||||
jnz .loopa
|
||||
push es
|
||||
mov ax,[selcB800]
|
||||
mov es,ax
|
||||
@@ -785,7 +793,9 @@ NEWSYM modify
|
||||
.loopb
|
||||
lodsb
|
||||
stosw
|
||||
loop .loopb
|
||||
; loop .loopb
|
||||
dec ecx
|
||||
jnz .loopb
|
||||
mov edi,12*160+29*2
|
||||
mov esi,.message2
|
||||
mov ecx,18
|
||||
@@ -793,7 +803,9 @@ NEWSYM modify
|
||||
.loopc
|
||||
lodsb
|
||||
stosw
|
||||
loop .loopc
|
||||
; loop .loopc
|
||||
dec ecx
|
||||
jnz .loopc
|
||||
mov edi,14*160+29*2
|
||||
mov esi,.message3
|
||||
mov ecx,18
|
||||
@@ -801,7 +813,9 @@ NEWSYM modify
|
||||
.loopd
|
||||
lodsb
|
||||
stosw
|
||||
loop .loopd
|
||||
; loop .loopd
|
||||
dec ecx
|
||||
jnz .loopd
|
||||
; set cursor to (10,50)
|
||||
mov ah,02h
|
||||
mov bl,0
|
||||
@@ -947,7 +961,9 @@ NEWSYM SPCmodify
|
||||
sub byte[wx],4
|
||||
add byte[wx2],4
|
||||
pop ecx
|
||||
loop .loopa
|
||||
; loop .loopa
|
||||
dec ecx
|
||||
jnz .loopa
|
||||
push es
|
||||
mov ax,[selcB800]
|
||||
mov es,ax
|
||||
@@ -958,7 +974,9 @@ NEWSYM SPCmodify
|
||||
.loopb
|
||||
lodsb
|
||||
stosw
|
||||
loop .loopb
|
||||
; loop .loopb
|
||||
dec ecx
|
||||
jnz .loopb
|
||||
mov edi,12*160+30*2
|
||||
mov esi,.message2
|
||||
mov ecx,18
|
||||
@@ -966,7 +984,9 @@ NEWSYM SPCmodify
|
||||
.loopc
|
||||
lodsb
|
||||
stosw
|
||||
loop .loopc
|
||||
; loop .loopc
|
||||
dec ecx
|
||||
jnz .loopc
|
||||
mov edi,14*160+30*2
|
||||
mov esi,.message3
|
||||
mov ecx,18
|
||||
@@ -974,7 +994,9 @@ NEWSYM SPCmodify
|
||||
.loopd
|
||||
lodsb
|
||||
stosw
|
||||
loop .loopd
|
||||
; loop .loopd
|
||||
dec ecx
|
||||
jnz .loopd
|
||||
; set cursor to (10,50)
|
||||
mov ah,02h
|
||||
mov bl,0
|
||||
@@ -1117,7 +1139,9 @@ NEWSYM SPCbreakpoint
|
||||
.loopb
|
||||
lodsb
|
||||
stosw
|
||||
loop .loopb
|
||||
; loop .loopb
|
||||
dec ecx
|
||||
jnz .loopb
|
||||
; set cursor to (10,50)
|
||||
mov ah,02h
|
||||
mov bl,0
|
||||
@@ -1242,7 +1266,9 @@ NEWSYM breakpoint
|
||||
.loopb
|
||||
lodsb
|
||||
stosw
|
||||
loop .loopb
|
||||
; loop .loopb
|
||||
dec ecx
|
||||
jnz .loopb
|
||||
; set cursor to (10,50)
|
||||
mov ah,02h
|
||||
mov bl,0
|
||||
@@ -1345,7 +1371,9 @@ NEWSYM trace
|
||||
.loopb
|
||||
lodsb
|
||||
stosw
|
||||
loop .loopb
|
||||
; loop .loopb
|
||||
dec ecx
|
||||
jnz .loopb
|
||||
mov edi,12*160+52*2
|
||||
mov al,32
|
||||
mov ah,79
|
||||
@@ -1434,7 +1462,9 @@ NEWSYM traceops
|
||||
.loopb
|
||||
lodsb
|
||||
stosw
|
||||
loop .loopb
|
||||
; loop .loopb
|
||||
dec ecx
|
||||
jnz .loopb
|
||||
xor eax,eax
|
||||
xor ebx,ebx
|
||||
xor ecx,ecx
|
||||
@@ -1528,7 +1558,9 @@ NEWSYM SPCbreakops
|
||||
.loopb
|
||||
lodsb
|
||||
stosw
|
||||
loop .loopb
|
||||
; loop .loopb
|
||||
dec ecx
|
||||
jnz .loopb
|
||||
xor eax,eax
|
||||
xor ebx,ebx
|
||||
xor ecx,ecx
|
||||
@@ -1624,7 +1656,9 @@ NEWSYM breakatsign
|
||||
.loopb
|
||||
lodsb
|
||||
stosw
|
||||
loop .loopb
|
||||
; loop .loopb
|
||||
dec ecx
|
||||
jnz .loopb
|
||||
xor eax,eax
|
||||
xor ebx,ebx
|
||||
xor ecx,ecx
|
||||
@@ -1726,7 +1760,9 @@ NEWSYM breakatsignlog
|
||||
.loopb
|
||||
lodsb
|
||||
stosw
|
||||
loop .loopb
|
||||
; loop .loopb
|
||||
dec ecx
|
||||
jnz .loopb
|
||||
|
||||
pushad
|
||||
mov ax,ds
|
||||
@@ -2077,7 +2113,9 @@ NEWSYM breakops
|
||||
.loopb
|
||||
lodsb
|
||||
stosw
|
||||
loop .loopb
|
||||
; loop .loopb
|
||||
dec ecx
|
||||
jnz .loopb
|
||||
xor eax,eax
|
||||
xor ebx,ebx
|
||||
xor ecx,ecx
|
||||
@@ -3593,7 +3631,9 @@ SECTION .text
|
||||
stosb
|
||||
pop ax
|
||||
shl ax,4
|
||||
loop .loopa
|
||||
; loop .loopa
|
||||
dec ecx
|
||||
jnz .loopa
|
||||
pop ecx
|
||||
ret
|
||||
|
||||
@@ -3611,7 +3651,9 @@ SECTION .text
|
||||
stosb
|
||||
pop ax
|
||||
shl ax,4
|
||||
loop .loopb
|
||||
; loop .loopb
|
||||
dec ecx
|
||||
jnz .loopb
|
||||
pop ecx
|
||||
ret
|
||||
|
||||
@@ -3808,7 +3850,9 @@ NEWSYM showdd
|
||||
.loopa
|
||||
lodsb
|
||||
stosw
|
||||
loop .loopa
|
||||
; loop .loopa
|
||||
dec ecx
|
||||
jnz .loopa
|
||||
add edi,6
|
||||
; check if exceeded limit
|
||||
inc dx
|
||||
@@ -4190,7 +4234,9 @@ NEWSYM nextspcopcode
|
||||
stosb
|
||||
pop ax
|
||||
shl ax,4
|
||||
loop .loopa
|
||||
; loop .loopa
|
||||
dec ecx
|
||||
jnz .loopa
|
||||
pop ecx
|
||||
sub ecx,2
|
||||
ret
|
||||
@@ -4209,7 +4255,9 @@ NEWSYM nextspcopcode
|
||||
stosb
|
||||
pop ax
|
||||
shl ax,4
|
||||
loop .loopb
|
||||
; loop .loopb
|
||||
dec ecx
|
||||
jnz .loopb
|
||||
pop ecx
|
||||
ret
|
||||
|
||||
|
||||
@@ -596,7 +596,9 @@ NEWSYM Get_Dir
|
||||
.noslash
|
||||
mov [eax],dl
|
||||
inc eax
|
||||
loop .loop
|
||||
; loop .loop
|
||||
dec ecx
|
||||
jnz .loop
|
||||
popad
|
||||
push edx
|
||||
mov ah,19h
|
||||
@@ -999,7 +1001,9 @@ NEWSYM vidpastecopyscr ; GUI screen render
|
||||
mov bx,[GUICPC+ebx*2]
|
||||
mov [eax+edx*2],bx
|
||||
dec edx
|
||||
loop .loop
|
||||
; loop .loop
|
||||
dec ecx
|
||||
jnz .loop
|
||||
.no16bconv
|
||||
popad
|
||||
jmp DosDrawScreenB
|
||||
|
||||
@@ -178,7 +178,9 @@ NEWSYM GetCoords
|
||||
jz .XAxis
|
||||
inc dword[JoyX]
|
||||
inc dword[JoyY]
|
||||
loop .loopa
|
||||
; loop .loopa
|
||||
dec ecx
|
||||
jnz .loopa
|
||||
mov byte [JoyExists], 0
|
||||
mov dword[JoyX],0
|
||||
mov dword[JoyY],0
|
||||
@@ -191,7 +193,9 @@ NEWSYM GetCoords
|
||||
nop
|
||||
inc dword[JoyY]
|
||||
nop
|
||||
loop .YAxis
|
||||
; loop .YAxis
|
||||
dec ecx
|
||||
jnz .YAxis
|
||||
mov byte [JoyExists], 0
|
||||
mov dword[JoyX],0
|
||||
mov dword[JoyY],0
|
||||
@@ -205,7 +209,9 @@ NEWSYM GetCoords
|
||||
nop
|
||||
inc dword[JoyX]
|
||||
nop
|
||||
loop .XAxis
|
||||
; loop .XAxis
|
||||
dec ecx
|
||||
jnz .XAxis
|
||||
mov byte [JoyExists], 0
|
||||
mov dword[JoyX],0
|
||||
mov dword[JoyY],0
|
||||
|
||||
@@ -141,7 +141,9 @@ NEWSYM ModemSendChar
|
||||
in al,dx
|
||||
test al,00100000b
|
||||
jnz .transokay
|
||||
loop .loop
|
||||
; loop .loop
|
||||
dec ecx
|
||||
jnz .loop
|
||||
xor al,al
|
||||
pop ebx
|
||||
pop edx
|
||||
|
||||
@@ -259,13 +259,13 @@ NEWSYM DosDrawScreenB
|
||||
ScreenShow:
|
||||
cmp byte[debugdisble],0
|
||||
je .debug
|
||||
cmp byte[cvidmode],2
|
||||
je near copymodeq
|
||||
.debug
|
||||
cmp byte[cvidmode],0
|
||||
je near copymodeq224
|
||||
cmp byte[cvidmode],1
|
||||
je near copymodeq240
|
||||
cmp byte[cvidmode],2
|
||||
je near copymodeq
|
||||
.debug
|
||||
cmp byte[cvidmode],3
|
||||
je near copymodex
|
||||
cmp byte[cvidmode],4
|
||||
@@ -1620,7 +1620,9 @@ NEWSYM draweagle
|
||||
mov [es:edi],eax
|
||||
add edx,4
|
||||
add edi,4
|
||||
loop .copyloop
|
||||
; loop .copyloop
|
||||
dec ecx
|
||||
jnz .copyloop
|
||||
xor eax,eax
|
||||
|
||||
; process EAGLE on the upper line
|
||||
@@ -1694,7 +1696,9 @@ NEWSYM draweagle
|
||||
mov [es:edi],eax
|
||||
add edx,4
|
||||
add edi,4
|
||||
loop .copyloop2
|
||||
; loop .copyloop2
|
||||
dec ecx
|
||||
jnz .copyloop2
|
||||
xor eax,eax
|
||||
|
||||
sub esi,256 ; move esi back to left side of the line
|
||||
@@ -2295,7 +2299,9 @@ NEWSYM ConvertToAFormat
|
||||
or ebx,eax
|
||||
mov [esi],ebx
|
||||
add esi,4
|
||||
loop .crgbloop2
|
||||
; loop .crgbloop2
|
||||
dec ecx
|
||||
jnz .crgbloop2
|
||||
add esi,64
|
||||
dec dl
|
||||
jnz .crgbloop
|
||||
@@ -2314,6 +2320,8 @@ NEWSYM ConvertToAFormat
|
||||
por mm0,mm1
|
||||
movq [esi],mm0
|
||||
add esi,8
|
||||
; loop .crgbloop2m
|
||||
dec ecx
|
||||
loop .crgbloop2m
|
||||
add esi,64
|
||||
dec dl
|
||||
@@ -2339,7 +2347,9 @@ NEWSYM UnConvertToAFormat
|
||||
or ebx,eax
|
||||
mov [esi],ebx
|
||||
add esi,4
|
||||
loop .crgbloop2
|
||||
; loop .crgbloop2
|
||||
dec ecx
|
||||
jnz .crgbloop2
|
||||
add esi,64
|
||||
dec dl
|
||||
jnz .crgbloop
|
||||
@@ -3871,6 +3881,8 @@ Process2xSaI:
|
||||
.nextb
|
||||
mov dword[ebx],0FFFFFFFFh
|
||||
add ebx,4
|
||||
; loop .nextb
|
||||
dec ecx
|
||||
loop .nextb
|
||||
pop ebx
|
||||
jmp .returninterp
|
||||
@@ -3935,7 +3947,9 @@ Process2xSaI:
|
||||
movq [es:eax],mm0
|
||||
add edx,8
|
||||
add eax,8
|
||||
loop .s2xsailoop
|
||||
; loop .s2xsailoop
|
||||
dec ecx
|
||||
jnz .s2xsailoop
|
||||
mov edx,[spritetablea]
|
||||
add edx,512+1280
|
||||
add eax,128*2
|
||||
@@ -3945,7 +3959,9 @@ Process2xSaI:
|
||||
movq [es:eax],mm0
|
||||
add edx,8
|
||||
add eax,8
|
||||
loop .s2xsailoop2
|
||||
; loop .s2xsailoop2
|
||||
dec ecx
|
||||
jnz .s2xsailoop2
|
||||
jmp .dones2xsai
|
||||
%endif
|
||||
|
||||
@@ -3964,7 +3980,9 @@ Process2xSaI:
|
||||
.loop
|
||||
mov dword[es:edi],0
|
||||
add edi,4
|
||||
loop .loop
|
||||
; loop .loop
|
||||
dec ecx
|
||||
jnz .loop
|
||||
emms
|
||||
pop es
|
||||
ret
|
||||
@@ -4682,7 +4700,9 @@ NEWSYM interpolate640x480x16b
|
||||
add esi,2
|
||||
add edi,4
|
||||
add edx,4
|
||||
loop .a
|
||||
; loop .a
|
||||
dec ecx
|
||||
jnz .a
|
||||
add esi,66
|
||||
add edi,130*2
|
||||
.loopb
|
||||
@@ -4713,7 +4733,9 @@ NEWSYM interpolate640x480x16b
|
||||
add esi,2
|
||||
add edi,4
|
||||
add edx,4
|
||||
loop .c
|
||||
; loop .c
|
||||
dec ecx
|
||||
jnz .c
|
||||
add edi,130*2
|
||||
mov edx,[spritetablea]
|
||||
mov ecx,255
|
||||
@@ -4722,7 +4744,9 @@ NEWSYM interpolate640x480x16b
|
||||
mov [es:edi],eax
|
||||
add edx,4
|
||||
add edi,4
|
||||
loop .d
|
||||
; loop .d
|
||||
dec ecx
|
||||
jnz .d
|
||||
inc dword[InterPtr]
|
||||
add esi,66
|
||||
add edi,130*2
|
||||
@@ -5708,7 +5732,9 @@ NEWSYM getcopyvesa2320x240x16b
|
||||
mov [esi],ax
|
||||
add edi,2
|
||||
add esi,2
|
||||
loop .loop
|
||||
; loop .loop
|
||||
dec ecx
|
||||
jnz .loop
|
||||
add edi,128
|
||||
add esi,64
|
||||
mov ecx,256
|
||||
@@ -5737,7 +5763,9 @@ ConvertImageDatared10:
|
||||
or ax,dx
|
||||
mov [esi],ax
|
||||
add esi,2
|
||||
loop .loop
|
||||
; loop .loop
|
||||
dec ecx
|
||||
jnz .loop
|
||||
add esi,64
|
||||
mov ecx,256
|
||||
dec ebx
|
||||
|
||||
Reference in New Issue
Block a user