summaryrefslogtreecommitdiff
path: root/src/syscall/syscall_amd64_linux.s
diff options
context:
space:
mode:
Diffstat (limited to 'src/syscall/syscall_amd64_linux.s')
-rw-r--r--src/syscall/syscall_amd64_linux.s16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/syscall/syscall_amd64_linux.s b/src/syscall/syscall_amd64_linux.s
index 7eab69fc0..1a37dc0d2 100644
--- a/src/syscall/syscall_amd64_linux.s
+++ b/src/syscall/syscall_amd64_linux.s
@@ -99,3 +99,19 @@ TEXT syscall·fstat(SB),1,$0-16
MOVQ AX, 24(SP)
MOVQ $0, 32(SP)
RET
+
+TEXT syscall·lstat(SB),1,$0-16
+ MOVL 8(SP), DI
+ MOVQ 16(SP), SI
+ MOVQ $0, DX
+ MOVQ $6, AX // syscall entry
+ SYSCALL
+ CMPQ AX, $0xfffffffffffff001
+ JLS 5(PC)
+ MOVQ $-1, 24(SP)
+ NEGQ AX
+ MOVQ AX, 32(SP)
+ RET
+ MOVQ AX, 24(SP)
+ MOVQ $0, 32(SP)
+ RET