Shorter x86_64.inc:inc/declocked.

This commit is contained in:
Rika Ichinose 2023-06-04 04:17:28 +03:00 committed by FPK
parent 9249506a2e
commit f20c7b9ae9

View File

@ -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;