...

Text file src/cmd/vendor/golang.org/x/sys/unix/asm_linux_386.s

Documentation: cmd/vendor/golang.org/x/sys/unix

     1// Copyright 2009 The Go Authors. All rights reserved.
     2// Use of this source code is governed by a BSD-style
     3// license that can be found in the LICENSE file.
     4
     5//go:build gc
     6
     7#include "textflag.h"
     8
     9//
    10// System calls for 386, Linux
    11//
    12
    13// See ../runtime/sys_linux_386.s for the reason why we always use int 0x80
    14// instead of the glibc-specific "CALL 0x10(GS)".
    15#define INVOKE_SYSCALL	INT	$0x80
    16
    17// Just jump to package syscall's implementation for all these functions.
    18// The runtime may know about them.
    19
    20TEXT ·Syscall(SB),NOSPLIT,$0-28
    21	JMP	syscall·Syscall(SB)
    22
    23TEXT ·Syscall6(SB),NOSPLIT,$0-40
    24	JMP	syscall·Syscall6(SB)
    25
    26TEXT ·SyscallNoError(SB),NOSPLIT,$0-24
    27	CALL	runtime·entersyscall(SB)
    28	MOVL	trap+0(FP), AX  // syscall entry
    29	MOVL	a1+4(FP), BX
    30	MOVL	a2+8(FP), CX
    31	MOVL	a3+12(FP), DX
    32	MOVL	$0, SI
    33	MOVL	$0, DI
    34	INVOKE_SYSCALL
    35	MOVL	AX, r1+16(FP)
    36	MOVL	DX, r2+20(FP)
    37	CALL	runtime·exitsyscall(SB)
    38	RET
    39
    40TEXT ·RawSyscall(SB),NOSPLIT,$0-28
    41	JMP	syscall·RawSyscall(SB)
    42
    43TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
    44	JMP	syscall·RawSyscall6(SB)
    45
    46TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24
    47	MOVL	trap+0(FP), AX  // syscall entry
    48	MOVL	a1+4(FP), BX
    49	MOVL	a2+8(FP), CX
    50	MOVL	a3+12(FP), DX
    51	MOVL	$0, SI
    52	MOVL	$0, DI
    53	INVOKE_SYSCALL
    54	MOVL	AX, r1+16(FP)
    55	MOVL	DX, r2+20(FP)
    56	RET
    57
    58TEXT ·socketcall(SB),NOSPLIT,$0-36
    59	JMP	syscall·socketcall(SB)
    60
    61TEXT ·rawsocketcall(SB),NOSPLIT,$0-36
    62	JMP	syscall·rawsocketcall(SB)
    63
    64TEXT ·seek(SB),NOSPLIT,$0-28
    65	JMP	syscall·seek(SB)

View as plain text