Skip to content

Commit 66da154

Browse files
authored
Avoid using BP register (#34)
Avoid using BP register since it confuses profiling and vet check will be in next version.
1 parent 650cff7 commit 66da154

File tree

5 files changed

+25
-25
lines changed

5 files changed

+25
-25
lines changed

find_odd_backslash_sequences_amd64.s

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ TEXT ·_find_odd_backslash_sequences(SB), $0-24
2222
RET
2323

2424
TEXT ·__find_odd_backslash_sequences(SB), $0
25-
LEAQ LCDATA1<>(SB), BP
26-
VMOVDQA (BP), Y0 // vmovdqa ymm0, yword 0[rbp] /* [rip + LCPI0_0] */
25+
LEAQ LCDATA1<>(SB), R8
26+
VMOVDQA (R8), Y0 // vmovdqa ymm0, yword 0[rbp] /* [rip + LCPI0_0] */
2727
VPCMPEQB Y8/*(DI)*/, Y0, Y1 // vpcmpeqb ymm1, ymm0, yword [rdi]
2828
VPMOVMSKB Y1, CX // vpmovmskb ecx, ymm1
2929
VPCMPEQB Y9/*(SI)*/, Y0, Y0 // vpcmpeqb ymm0, ymm0, yword [rsi]

find_quote_mask_and_bits_amd64.s

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,11 @@ TEXT ·_find_quote_mask_and_bits(SB), $0-48
4747
RET
4848

4949
TEXT ·__find_quote_mask_and_bits(SB), $0
50-
LEAQ LCDATA1<>(SB), BP
50+
LEAQ LCDATA1<>(SB), R10
5151

5252
VMOVDQA Y8, Y0 // vmovdqu ymm0, yword [rdi]
5353
VMOVDQA Y9, Y1 // vmovdqu ymm1, yword [rsi]
54-
VMOVDQA (BP), Y2 // vmovdqa ymm2, yword 0[rbp] /* [rip + LCPI0_0] */
54+
VMOVDQA (R10), Y2 // vmovdqa ymm2, yword 0[rbp] /* [rip + LCPI0_0] */
5555
VPCMPEQB Y2, Y0, Y3 // vpcmpeqb ymm3, ymm0, ymm2
5656
VPMOVMSKB Y3, AX // vpmovmskb eax, ymm3
5757
VPCMPEQB Y2, Y1, Y2 // vpcmpeqb ymm2, ymm1, ymm2
@@ -66,9 +66,9 @@ TEXT ·__find_quote_mask_and_bits(SB), $0
6666
VPCLMULQDQ $0, X3, X2, X2 // vpclmulqdq xmm2, xmm2, xmm3, 0
6767
VMOVQ X2, AX // vmovq rax, xmm2
6868
XORQ (CX), AX // xor rax, qword [rcx]
69-
VMOVDQA 0x40(BP), Y2 // vmovdqa ymm2, yword 32[rbp] /* [rip + LCPI0_1] */
69+
VMOVDQA 0x40(R10), Y2 // vmovdqa ymm2, yword 32[rbp] /* [rip + LCPI0_1] */
7070
VPXOR Y2, Y0, Y0 // vpxor ymm0, ymm0, ymm2
71-
VMOVDQA 0x80(BP), Y3 // vmovdqa ymm3, yword 64[rbp] /* [rip + LCPI0_2] */
71+
VMOVDQA 0x80(R10), Y3 // vmovdqa ymm3, yword 64[rbp] /* [rip + LCPI0_2] */
7272
VPCMPGTB Y0, Y3, Y0 // vpcmpgtb ymm0, ymm3, ymm0
7373
VPMOVMSKB Y0, DX // vpmovmskb edx, ymm0
7474
VPXOR Y2, Y1, Y0 // vpxor ymm0, ymm1, ymm2
@@ -107,10 +107,10 @@ TEXT ·_find_quote_mask_and_bits_avx512(SB), $0-48
107107
#define QMAB_CONST3 Z19
108108

109109
TEXT ·__init_quote_mask_and_bits_avx512(SB), $0
110-
LEAQ LCDATA1<>(SB), BP
111-
VMOVDQU32 0x00(BP), QMAB_CONST1
112-
VMOVDQU32 0x40(BP), QMAB_CONST2
113-
VMOVDQU32 0x80(BP), QMAB_CONST3
110+
LEAQ LCDATA1<>(SB), R10
111+
VMOVDQU32 0x00(R10), QMAB_CONST1
112+
VMOVDQU32 0x40(R10), QMAB_CONST2
113+
VMOVDQU32 0x80(R10), QMAB_CONST3
114114
RET
115115

116116
TEXT ·__find_quote_mask_and_bits_avx512(SB), $0

find_whitespace_and_structurals_amd64.s

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -60,24 +60,24 @@ TEXT ·_find_whitespace_and_structurals(SB), $0-24
6060
RET
6161

6262
TEXT ·__find_whitespace_and_structurals(SB), $0
63-
LEAQ LCDATA1<>(SB), BP
63+
LEAQ LCDATA1<>(SB), R8
6464

6565
VMOVDQA Y8, Y0 // vmovdqu ymm0, yword [rdi]
6666
VMOVDQA Y9, Y1 // vmovdqu ymm1, yword [rsi]
67-
VMOVDQA (BP), Y2 // vmovdqa ymm2, yword 0[rbp] /* [rip + LCPI0_0] */
67+
VMOVDQA (R8), Y2 // vmovdqa ymm2, yword 0[rbp] /* [rip + LCPI0_0] */
6868
VPSHUFB Y0, Y2, Y3 // vpshufb ymm3, ymm2, ymm0
6969
VPSRLD $4, Y0, Y0 // vpsrld ymm0, ymm0, 4
70-
VMOVDQA 0x40(BP), Y4 // vmovdqa ymm4, yword 32[rbp] /* [rip + LCPI0_1] */
70+
VMOVDQA 0x40(R8), Y4 // vmovdqa ymm4, yword 32[rbp] /* [rip + LCPI0_1] */
7171
VPAND Y4, Y0, Y0 // vpand ymm0, ymm0, ymm4
72-
VMOVDQA 0x80(BP), Y5 // vmovdqa ymm5, yword 64[rbp] /* [rip + LCPI0_2] */
72+
VMOVDQA 0x80(R8), Y5 // vmovdqa ymm5, yword 64[rbp] /* [rip + LCPI0_2] */
7373
VPSHUFB Y0, Y5, Y0 // vpshufb ymm0, ymm5, ymm0
7474
VPAND Y3, Y0, Y0 // vpand ymm0, ymm0, ymm3
7575
VPSHUFB Y1, Y2, Y2 // vpshufb ymm2, ymm2, ymm1
7676
VPSRLD $4, Y1, Y1 // vpsrld ymm1, ymm1, 4
7777
VPAND Y4, Y1, Y1 // vpand ymm1, ymm1, ymm4
7878
VPSHUFB Y1, Y5, Y1 // vpshufb ymm1, ymm5, ymm1
7979
VPAND Y2, Y1, Y1 // vpand ymm1, ymm1, ymm2
80-
VMOVDQA 0xc0(BP), Y2 // vmovdqa ymm2, yword 96[rbp] /* [rip + LCPI0_3] */
80+
VMOVDQA 0xc0(R8), Y2 // vmovdqa ymm2, yword 96[rbp] /* [rip + LCPI0_3] */
8181
VPAND Y2, Y0, Y3 // vpand ymm3, ymm0, ymm2
8282
VPXOR Y4, Y4, Y4 // vpxor ymm4, ymm4, ymm4
8383
VPCMPEQB Y4, Y3, Y3 // vpcmpeqb ymm3, ymm3, ymm4
@@ -89,7 +89,7 @@ TEXT ·__find_whitespace_and_structurals(SB), $0
8989
ORQ AX, SI // or rsi, rax
9090
NOTQ SI // not rsi
9191
MOVQ SI, (CX) // mov qword [rcx], rsi
92-
VMOVDQA 0x100(BP), Y2 // vmovdqa ymm2, yword 128[rbp] /* [rip + LCPI0_4] */
92+
VMOVDQA 0x100(R8), Y2 // vmovdqa ymm2, yword 128[rbp] /* [rip + LCPI0_4] */
9393
VPAND Y2, Y0, Y0 // vpand ymm0, ymm0, ymm2
9494
VPCMPEQB Y4, Y0, Y0 // vpcmpeqb ymm0, ymm0, ymm4
9595
VPAND Y2, Y1, Y1 // vpand ymm1, ymm1, ymm2
@@ -124,13 +124,13 @@ TEXT ·_find_whitespace_and_structurals_avx512(SB), $0-24
124124
#define WSAS_CONST_5 Z25
125125

126126
TEXT ·__init_whitespace_and_structurals_avx512(SB), $0
127-
LEAQ LCDATA1<>(SB), BP
127+
LEAQ LCDATA1<>(SB), R8
128128
VPXORD ZERO_CONST, ZERO_CONST, ZERO_CONST
129-
VMOVDQU32 0x000(BP), WSAS_CONST_1
130-
VMOVDQU32 0x040(BP), WSAS_CONST_2
131-
VMOVDQU32 0x080(BP), WSAS_CONST_3
132-
VMOVDQU32 0x0c0(BP), WSAS_CONST_4
133-
VMOVDQU32 0x100(BP), WSAS_CONST_5
129+
VMOVDQU32 0x000(R8), WSAS_CONST_1
130+
VMOVDQU32 0x040(R8), WSAS_CONST_2
131+
VMOVDQU32 0x080(R8), WSAS_CONST_3
132+
VMOVDQU32 0x0c0(R8), WSAS_CONST_4
133+
VMOVDQU32 0x100(R8), WSAS_CONST_5
134134
RET
135135

136136
TEXT ·__find_whitespace_and_structurals_avx512(SB), $0

parse_number_amd64.s

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -783,7 +783,7 @@ DATA LCTABLE<>+0x1840(SB)/8, $0x0101010101010101
783783
// end of structural_or_whitespace_or_exponent_or_decimal_negated
784784
GLOBL LCTABLE<>(SB), 8, $6216
785785

786-
TEXT ·_parse_number(SB), $0-56
786+
TEXT ·_parse_number(SB), $8-56
787787

788788
MOVQ buf+0(FP), DI
789789
MOVQ offset+8(FP), SI

parse_string_amd64.s

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ DATA LCDATA1<>+0x230(SB)/8, $0x0000000000000000
6969
DATA LCDATA1<>+0x238(SB)/8, $0x0000000000000000
7070
GLOBL LCDATA1<>(SB), 8, $576
7171

72-
TEXT ·_parse_string_validate_only(SB), $0-40
72+
TEXT ·_parse_string_validate_only(SB), $8-40
7373

7474
MOVQ src+0(FP), DI
7575
MOVQ maxStringSize+8(FP), SI
@@ -257,7 +257,7 @@ LBB0_31:
257257
MOVQ AX, result+32(FP)
258258
RET
259259

260-
TEXT ·_parse_string(SB), $0-32
260+
TEXT ·_parse_string(SB), $8-32
261261

262262
MOVQ src+0(FP), DI
263263
MOVQ dst+8(FP), SI

0 commit comments

Comments
 (0)