+ fixed bug0163 (set1 <= set2 support)

This commit is contained in:
Jonas Maebe 1999-01-20 17:48:02 +00:00
parent 653a798afd
commit 2738539d11

View File

@ -227,19 +227,43 @@ asm
movl set2,%edi
movl $8,%ecx
.LMCOMPSETS1:
lodsl
movl (%esi),%eax
movl (%edi),%edx
cmpl %edx,%eax
jne .LMCOMPSETEND
addl $4,%esi
addl $4,%edi
decl %ecx
jnz .LMCOMPSETS1
{ we are here only if the two sets are equal
we have zero flag set, and that what is expected }
cmpl %eax,%eax
.LMCOMPSETEND:
end;
{$IfNDef NoSetInclusion}
procedure do_contains_sets(set1,set2 : pointer);assembler;[public,alias:'FPC_SET_CONTAINS_SETS'];
{
on exit, zero flag is set if set1 <= set2 (set2 contains set1)
}
asm
movl set1,%esi
movl set2,%edi
movl $8,%ecx
.LMCONTAINSSETS1:
movl (%esi),%eax
movl (%edi),%edx
andl %eax,%edx
cmpl %edx,%eax {set1 and set2 = set1?}
jne .LMCONTAINSSETEND
addl $4,%esi
addl $4,%edi
decl %ecx
jnz .LMCONTAINSSETS1
{ we are here only if set2 contains set1
we have zero flag set, and that what is expected }
.LMCONTAINSSETEND:
end;
{$EndIf SetInclusion}
{$ifdef LARGESETS}
@ -373,15 +397,43 @@ asm
jnz .LMCOMPSETSIZES1
{ we are here only if the two sets are equal
we have zero flag set, and that what is expected }
cmpl %eax,%eax
.LMCOMPSETSIZEEND:
end;
{$IfNDef NoSetInclusion}
procedure contains_sets(set1,set2 : pointer; size: longint);assembler;[public,alias:'FPC_SET_CONTAINS_SETS'];
{
on exit, zero flag is set if set1 <= set2 (set2 contains set1)
}
asm
movl set1,%esi
movl set2,%edi
movl size,%ecx
.LMCONTAINSSETS2:
movl (%esi),%eax
movl (%edi),%edx
andl %eax,%edx
cmpl %edx,%eax {set1 and set2 = set1?}
jne .LMCONTAINSSETEND2
addl $4,%esi
addl $4,%edi
decl %ecx
jnz .LMCONTAINSSETS2
{ we are here only if set2 contains set1
we have zero flag set, and that what is expected }
.LMCONTAINSSETEND2:
end;
{$EndIf NoSetInclusion}
{$endif LARGESET}
{
$Log$
Revision 1.8 1998-12-15 22:43:00 peter
Revision 1.9 1999-01-20 17:48:02 jonas
+ fixed bug0163 (set1 <= set2 support)
Revision 1.8 1998/12/15 22:43:00 peter
* removed temp symbols
Revision 1.7 1998/11/24 12:54:01 peter