mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-01 21:30:35 +02:00
Shorter x86_64.inc:inc/declocked.
This commit is contained in:
parent
9249506a2e
commit
f20c7b9ae9
@ -1009,20 +1009,10 @@ function declocked(var l : longint) : boolean;assembler; nostackframe;
|
|||||||
{$else FPC_PIC}
|
{$else FPC_PIC}
|
||||||
cmpl $0,IsMultithread(%rip)
|
cmpl $0,IsMultithread(%rip)
|
||||||
{$endif FPC_PIC}
|
{$endif FPC_PIC}
|
||||||
{$ifndef win64}
|
jz .Ldeclockedskiplock
|
||||||
mov %rdi, %rcx
|
.byte 0xF0 // LOCK prefix.
|
||||||
{$endif win64}
|
.Ldeclockedskiplock:
|
||||||
jz .Ldeclockednolock
|
decl {$ifdef win64} (%rcx) {$else} (%rdi) {$endif}
|
||||||
lock
|
|
||||||
decl (%rcx)
|
|
||||||
setzb %al
|
|
||||||
ret
|
|
||||||
{$ifndef VER3_2}
|
|
||||||
.p2align 4,,10
|
|
||||||
{$endif VER3_2}
|
|
||||||
.p2align 3
|
|
||||||
.Ldeclockednolock:
|
|
||||||
decl (%rcx)
|
|
||||||
setzb %al
|
setzb %al
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -1038,20 +1028,10 @@ function declocked(var l : int64) : boolean;assembler; nostackframe;
|
|||||||
{$else FPC_PIC}
|
{$else FPC_PIC}
|
||||||
cmpl $0,IsMultithread(%rip)
|
cmpl $0,IsMultithread(%rip)
|
||||||
{$endif FPC_PIC}
|
{$endif FPC_PIC}
|
||||||
{$ifndef win64}
|
jz .Ldeclockedskiplock
|
||||||
mov %rdi, %rcx
|
.byte 0xF0 // LOCK prefix.
|
||||||
{$endif win64}
|
.Ldeclockedskiplock:
|
||||||
jz .Ldeclockednolock
|
decq {$ifdef win64} (%rcx) {$else} (%rdi) {$endif}
|
||||||
lock
|
|
||||||
decq (%rcx)
|
|
||||||
setzb %al
|
|
||||||
ret
|
|
||||||
{$ifndef VER3_2}
|
|
||||||
.p2align 4,,10
|
|
||||||
{$endif VER3_2}
|
|
||||||
.p2align 3
|
|
||||||
.Ldeclockednolock:
|
|
||||||
decq (%rcx)
|
|
||||||
setzb %al
|
setzb %al
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -1068,19 +1048,10 @@ procedure inclocked(var l : longint);assembler; nostackframe;
|
|||||||
{$else FPC_PIC}
|
{$else FPC_PIC}
|
||||||
cmpl $0,IsMultithread(%rip)
|
cmpl $0,IsMultithread(%rip)
|
||||||
{$endif FPC_PIC}
|
{$endif FPC_PIC}
|
||||||
{$ifndef win64}
|
jz .Linclockedskiplock
|
||||||
mov %rdi, %rcx
|
.byte 0xF0 // LOCK prefix.
|
||||||
{$endif win64}
|
.Linclockedskiplock:
|
||||||
jz .Linclockednolock
|
incl {$ifdef win64} (%rcx) {$else} (%rdi) {$endif}
|
||||||
lock
|
|
||||||
incl (%rcx)
|
|
||||||
ret
|
|
||||||
{$ifndef VER3_2}
|
|
||||||
.p2align 4,,10
|
|
||||||
{$endif VER3_2}
|
|
||||||
.p2align 3
|
|
||||||
.Linclockednolock:
|
|
||||||
incl (%rcx)
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -1096,19 +1067,10 @@ procedure inclocked(var l : int64);assembler; nostackframe;
|
|||||||
{$else FPC_PIC}
|
{$else FPC_PIC}
|
||||||
cmpl $0,IsMultithread(%rip)
|
cmpl $0,IsMultithread(%rip)
|
||||||
{$endif FPC_PIC}
|
{$endif FPC_PIC}
|
||||||
{$ifndef win64}
|
jz .Linclockedskiplock
|
||||||
mov %rdi, %rcx
|
.byte 0xF0 // LOCK prefix.
|
||||||
{$endif win64}
|
.Linclockedskiplock:
|
||||||
jz .Linclockednolock
|
incq {$ifdef win64} (%rcx) {$else} (%rdi) {$endif}
|
||||||
lock
|
|
||||||
incq (%rcx)
|
|
||||||
ret
|
|
||||||
{$ifndef VER3_2}
|
|
||||||
.p2align 4,,10
|
|
||||||
{$endif VER3_2}
|
|
||||||
.p2align 3
|
|
||||||
.Linclockednolock:
|
|
||||||
incq (%rcx)
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user