diff --git a/rtl/x86_64/x86_64.inc b/rtl/x86_64/x86_64.inc index 7b3bbb7008..0baa872b6b 100644 --- a/rtl/x86_64/x86_64.inc +++ b/rtl/x86_64/x86_64.inc @@ -1009,20 +1009,10 @@ function declocked(var l : longint) : boolean;assembler; nostackframe; {$else FPC_PIC} cmpl $0,IsMultithread(%rip) {$endif FPC_PIC} -{$ifndef win64} - mov %rdi, %rcx -{$endif win64} - jz .Ldeclockednolock - lock - decl (%rcx) - setzb %al - ret -{$ifndef VER3_2} - .p2align 4,,10 -{$endif VER3_2} - .p2align 3 -.Ldeclockednolock: - decl (%rcx) + jz .Ldeclockedskiplock + .byte 0xF0 // LOCK prefix. +.Ldeclockedskiplock: + decl {$ifdef win64} (%rcx) {$else} (%rdi) {$endif} setzb %al end; @@ -1038,20 +1028,10 @@ function declocked(var l : int64) : boolean;assembler; nostackframe; {$else FPC_PIC} cmpl $0,IsMultithread(%rip) {$endif FPC_PIC} -{$ifndef win64} - mov %rdi, %rcx -{$endif win64} - jz .Ldeclockednolock - lock - decq (%rcx) - setzb %al - ret -{$ifndef VER3_2} - .p2align 4,,10 -{$endif VER3_2} - .p2align 3 -.Ldeclockednolock: - decq (%rcx) + jz .Ldeclockedskiplock + .byte 0xF0 // LOCK prefix. +.Ldeclockedskiplock: + decq {$ifdef win64} (%rcx) {$else} (%rdi) {$endif} setzb %al end; @@ -1068,19 +1048,10 @@ procedure inclocked(var l : longint);assembler; nostackframe; {$else FPC_PIC} cmpl $0,IsMultithread(%rip) {$endif FPC_PIC} -{$ifndef win64} - mov %rdi, %rcx -{$endif win64} - jz .Linclockednolock - lock - incl (%rcx) - ret -{$ifndef VER3_2} - .p2align 4,,10 -{$endif VER3_2} - .p2align 3 -.Linclockednolock: - incl (%rcx) + jz .Linclockedskiplock + .byte 0xF0 // LOCK prefix. +.Linclockedskiplock: + incl {$ifdef win64} (%rcx) {$else} (%rdi) {$endif} end; @@ -1096,19 +1067,10 @@ procedure inclocked(var l : int64);assembler; nostackframe; {$else FPC_PIC} cmpl $0,IsMultithread(%rip) {$endif FPC_PIC} -{$ifndef win64} - mov %rdi, %rcx -{$endif win64} - jz .Linclockednolock - lock - incq (%rcx) - ret -{$ifndef VER3_2} - .p2align 4,,10 -{$endif VER3_2} - .p2align 3 -.Linclockednolock: - incq (%rcx) + jz .Linclockedskiplock + .byte 0xF0 // LOCK prefix. +.Linclockedskiplock: + incq {$ifdef win64} (%rcx) {$else} (%rdi) {$endif} end;