* x86-64: do not jump in inc/declocked to return but return directly

This commit is contained in:
florian 2021-10-17 22:44:52 +02:00
parent 08050086b9
commit bdc826cc18

View File

@ -691,10 +691,12 @@ function declocked(var l : longint) : boolean;assembler; nostackframe;
jz .Ldeclockednolock
lock
decl (%rcx)
jmp .Ldeclockedend
setzb %al
ret
// not supported yet by the internal assembler: .p2align 4,,10
.p2align 3
.Ldeclockednolock:
decl (%rcx)
.Ldeclockedend:
setzb %al
end;
@ -716,10 +718,12 @@ function declocked(var l : int64) : boolean;assembler; nostackframe;
jz .Ldeclockednolock
lock
decq (%rcx)
jmp .Ldeclockedend
setzb %al
ret
// not supported yet by the internal assembler: .p2align 4,,10
.p2align 3
.Ldeclockednolock:
decq (%rcx)
.Ldeclockedend:
setzb %al
end;
@ -742,10 +746,11 @@ procedure inclocked(var l : longint);assembler; nostackframe;
jz .Linclockednolock
lock
incl (%rcx)
jmp .Linclockedend
ret
// not supported yet by the internal assembler: .p2align 4,,10
.p2align 3
.Linclockednolock:
incl (%rcx)
.Linclockedend:
end;
@ -767,10 +772,11 @@ procedure inclocked(var l : int64);assembler; nostackframe;
jz .Linclockednolock
lock
incq (%rcx)
jmp .Linclockedend
ret
// not supported yet by the internal assembler: .p2align 4,,10
.p2align 3
.Linclockednolock:
incq (%rcx)
.Linclockedend:
end;