* some fixes for widestrings and variants

This commit is contained in:
florian 2001-05-31 22:42:56 +00:00
parent 2313cc3ada
commit a4755024cc
2 changed files with 19 additions and 17 deletions

View File

@ -1076,47 +1076,49 @@ end;
{ do a thread save inc/dec }
procedure declocked(var l : longint);assembler;
function declocked(var l : longint) : boolean;assembler;
asm
movl l,%edi
{$ifdef MTRTL}
{ this check should be done because a lock takes a lot }
{ of time! }
cmpb $0,IsMultithreaded
jz .Ldeclockednolock
movl l,%edi
lock
decl (%edi)
jmp .Ldeclockedend
.Ldeclockednolock:
{$endif MTRTL}
movl l,%edi
decl (%edi);
.Ldeclockedend:
end ['EDI'];
setzb %al
end ['EDI','EAX'];
procedure inclocked(var l : longint);assembler;
asm
movl l,%edi
{$ifdef MTRTL}
{ this check should be done because a lock takes a lot }
{ of time! }
cmpb $0,IsMultithreaded
jz .Linclockednolock
movl l,%edi
lock
incl (%edi)
jmp .Linclockedend
.Linclockednolock:
{$endif MTRTL}
movl l,%edi
incl (%edi);
incl (%edi)
.Linclockedend:
end ['EDI'];
{
$Log$
Revision 1.11 2001-04-21 12:18:09 peter
Revision 1.12 2001-05-31 22:42:56 florian
* some fixes for widestrings and variants
Revision 1.11 2001/04/21 12:18:09 peter
* add nop after popa (merged)
Revision 1.9 2001/04/08 13:19:28 jonas
@ -1143,5 +1145,4 @@ procedure inclocked(var l : longint);assembler;
Revision 1.2 2000/07/13 11:33:41 michael
+ removed logs
}

View File

@ -289,11 +289,8 @@ asm
jmp .LExitAddRef
// Dynamic Arrays
.LDoDynArrayAddRef:
movl Data,%eax
orl %eax,%eax
jz .LExitAddRef
lock
incl -8(%eax)
pushl Data
call FPC_DYNARRAY_INCR_REF
jmp .LExitAddRef
.LDoClassAddRef:
.LDoObjectAddRef:
@ -406,7 +403,7 @@ asm
.LDoDynArrayDecRef:
pushl TypeInfo
pushl Data
call DYNARRAY_DECR_REF
call FPC_DYNARRAY_DECR_REF
jmp .LExitDecRef
.LDoClassDecRef:
.LDoObjectDecRef:
@ -476,7 +473,10 @@ end;
{
$Log$
Revision 1.8 2001-04-23 18:25:44 peter
Revision 1.9 2001-05-31 22:42:56 florian
* some fixes for widestrings and variants
Revision 1.8 2001/04/23 18:25:44 peter
* m68k updates
Revision 1.7 2000/11/09 17:49:34 florian
@ -501,3 +501,4 @@ end;
Revision 1.2 2000/07/13 11:33:41 michael
+ removed logs
}