+ added FPC_SET_UNSET_BYTE for exclude of normsets

This commit is contained in:
pierre 1998-10-22 14:50:08 +00:00
parent aa82e1cb8c
commit 7e1942412d

View File

@ -32,7 +32,8 @@ asm
end;
procedure do_set_byte(p : pointer;b : byte);assembler;[public,alias: {$ifdef FPCNAMES}'FPC_'+{$endif}'SET_SET_BYTE'];
procedure do_set_byte(p : pointer;b : byte);assembler;
[public,alias: {$ifdef FPCNAMES}'FPC_'+{$endif}'SET_SET_BYTE'];
{
add the element b to the set pointed by p
}
@ -49,6 +50,25 @@ asm
popl %eax
end;
procedure do_unset_byte(p : pointer;b : byte);assembler;
[public,alias: {$ifdef FPCNAMES}'FPC_'+{$endif}'SET_UNSET_BYTE'];
{
suppresses the element b to the set pointed by p
used for exclude(set,element)
}
asm
pushl %eax
movl p,%edi
movb b,%al
andl $0xf8,%eax
shrl $3,%eax
addl %eax,%edi
movb b,%al
andl $7,%eax
btrl %eax,(%edi)
popl %eax
end;
procedure do_set_range(p : pointer;l,h : byte);assembler;[public,alias: {$ifdef FPCNAMES}'FPC_'+{$endif}'SET_SET_RANGE'];
{
@ -339,7 +359,10 @@ end;
{
$Log$
Revision 1.5 1998-10-22 12:48:29 peter
Revision 1.6 1998-10-22 14:50:08 pierre
+ added FPC_SET_UNSET_BYTE for exclude of normsets
Revision 1.5 1998/10/22 12:48:29 peter
* fixed for stackaligment also on 4 bytes, never use 'ret $..' direct
Revision 1.4 1998/09/14 10:48:12 peter