-
Notifications
You must be signed in to change notification settings - Fork 0
/
call_amd64.s
70 lines (64 loc) · 1.26 KB
/
call_amd64.s
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include "textflag.h"
// func Call(unsafe.Pointer)
TEXT ·Call(SB), NOSPLIT, $0
MOVQ cfunc+0(FP), AX
MOVQ SP, BX
SUBQ $16, SP
ANDQ $~15, SP
CALL AX
MOVQ BX, SP
MOVQ AX, ret+0(FP)
RET
// func CallRC(unsafe.Pointer) int32
TEXT ·CallRC(SB), NOSPLIT, $0-16
MOVQ cfunc+0(FP), AX
MOVQ SP, BX
SUBQ $16, SP
ANDQ $~15, SP
CALL AX
MOVQ BX, SP
MOVQ AX, ret+8(FP)
RET
// func CallRP(unsafe.Pointer) unsafe.Pointer
TEXT ·CallRP(SB), NOSPLIT, $0-16
MOVQ cfunc+0(FP), AX
MOVQ SP, BX
SUBQ $16, SP
ANDQ $~15, SP
CALL AX
MOVQ BX, SP
MOVQ AX, ret+8(FP)
RET
// func CallCtx(unsafe.Pointer, unsafe.Pointer)
TEXT ·CallCtx(SB), 0, $2048-24
MOVQ cfunc+0(FP), AX
MOVQ arg0+8(FP), DI
MOVQ SP, BX
ADDQ $2048, SP
ANDQ $~15, SP
CALL AX
MOVQ BX, SP
MOVQ AX, ret+16(FP)
RET
// func CallCtxRC(unsafe.Pointer, unsafe.Pointer) int32
TEXT ·CallCtxRC(SB), 0, $2048-24
MOVQ cfunc+0(FP), AX
MOVQ arg0+8(FP), DI
MOVQ SP, BX
ADDQ $2048, SP
ANDQ $~15, SP
CALL AX
MOVQ BX, SP
MOVQ AX, ret+16(FP)
RET
// func CallCtxRP(unsafe.Pointer, unsafe.Pointer) unsafe.Pointer
TEXT ·CallCtxRP(SB), 0, $2048-24
MOVQ cfunc+0(FP), AX
MOVQ arg0+8(FP), DI
MOVQ SP, BX
ADDQ $2048, SP
ANDQ $~15, SP
CALL AX
MOVQ BX, SP
MOVQ AX, ret+16(FP)
RET