mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-13 20:11:19 +02:00
* some fixes for widestrings and variants
This commit is contained in:
parent
2313cc3ada
commit
a4755024cc
@ -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
|
||||
|
||||
}
|
@ -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
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user