mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-06-03 22:18:41 +02:00
* some micro optimizations for zero size blocks in CompareByte for i8086
git-svn-id: trunk@32041 -
This commit is contained in:
parent
4fe125d779
commit
3bd5934a51
@ -280,10 +280,9 @@ asm
|
|||||||
xor ax, ax // initialize ax=0 (it's the result register, we never use it for anything else in this function)
|
xor ax, ax // initialize ax=0 (it's the result register, we never use it for anything else in this function)
|
||||||
mov bx, sp
|
mov bx, sp
|
||||||
mov cx, ss:[bx + 2 + extra_param_offset] // len
|
mov cx, ss:[bx + 2 + extra_param_offset] // len
|
||||||
|
jcxz @@Done
|
||||||
|
|
||||||
mov dx, ds // for far data models, backup ds; for near data models, use to initialize es
|
mov dx, ds // for far data models, backup ds; for near data models, use to initialize es
|
||||||
or cx, cx
|
|
||||||
jz @@Equal
|
|
||||||
{$ifdef FPC_X86_DATA_NEAR}
|
{$ifdef FPC_X86_DATA_NEAR}
|
||||||
mov es, dx
|
mov es, dx
|
||||||
mov si, ss:[bx + 6 + extra_param_offset] // @buf1
|
mov si, ss:[bx + 6 + extra_param_offset] // @buf1
|
||||||
@ -322,10 +321,10 @@ asm
|
|||||||
@@Equal:
|
@@Equal:
|
||||||
// ax is 0
|
// ax is 0
|
||||||
|
|
||||||
@@Done:
|
|
||||||
{$if defined(FPC_X86_DATA_FAR) or defined(FPC_X86_DATA_HUGE)}
|
{$if defined(FPC_X86_DATA_FAR) or defined(FPC_X86_DATA_HUGE)}
|
||||||
mov ds, dx
|
mov ds, dx
|
||||||
{$endif}
|
{$endif}
|
||||||
|
@@Done:
|
||||||
end;
|
end;
|
||||||
{$endif FPC_SYSTEM_HAS_COMPAREBYTE}
|
{$endif FPC_SYSTEM_HAS_COMPAREBYTE}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user