summaryrefslogtreecommitdiff
path: root/vendor/github.com/bytedance/sonic/internal/rt/asm_amd64.s
blob: 8250e38d39c9fd363ec58ed6b53fe6bcde0fcdb1 (plain)
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
// +build !noasm !appengine
// Code generated by asm2asm, DO NOT EDIT·

#include "go_asm.h"
#include "funcdata.h"
#include "textflag.h"

TEXT ·MoreStack(SB), NOSPLIT, $0 - 8
    NO_LOCAL_POINTERS
_entry:
    MOVQ (TLS), R14
    MOVQ size+0(FP), R12
    NOTQ R12
    LEAQ (SP)(R12*1), R12
    CMPQ R12, 16(R14)
    JBE  _stack_grow
    RET
_stack_grow:
    CALL runtime·morestack_noctxt<>(SB)
    JMP  _entry


TEXT ·StopProf(SB), NOSPLIT, $0-0
    NO_LOCAL_POINTERS
    CMPB github·com∕bytedance∕sonic∕internal∕rt·StopProfiling(SB), $0
    JEQ  _ret_1
    MOVL $1, AX
    LEAQ github·com∕bytedance∕sonic∕internal∕rt·yieldCount(SB), CX
    LOCK
    XADDL AX, (CX)
    MOVL runtime·prof+4(SB), AX
    TESTL AX, AX
    JEQ _ret_1
    MOVL AX, github·com∕bytedance∕sonic∕internal∕rt·oldHz(SB)
    MOVL $0, runtime·prof+4(SB)
_ret_1:
    RET


TEXT ·StartProf(SB), NOSPLIT, $0-0
    NO_LOCAL_POINTERS
    CMPB github·com∕bytedance∕sonic∕internal∕rt·StopProfiling(SB), $0
    JEQ  _ret_2
    MOVL $-1, AX
    LEAQ github·com∕bytedance∕sonic∕internal∕rt·yieldCount(SB), CX
    LOCK
    XADDL AX, (CX)
    CMPL github·com∕bytedance∕sonic∕internal∕rt·yieldCount(SB), $0
    JNE _ret_2
    CMPL runtime·prof+4(SB), $0
    JNE _ret_2
    CMPL github·com∕bytedance∕sonic∕internal∕rt·oldHz(SB), $0
    JNE _branch_1
    MOVL $100, github·com∕bytedance∕sonic∕internal∕rt·oldHz(SB)
_branch_1:
    MOVL github·com∕bytedance∕sonic∕internal∕rt·oldHz(SB), AX
    MOVL AX, runtime·prof+4(SB)
_ret_2:
    RET