2
0
Fork 0
mirror of https://github.com/ii64/sonic.git synced 2026-06-21 00:46:43 +08:00

fix: fix addressing past valid memory for empty string

This commit is contained in:
chenzhuoyu 2021-07-02 17:59:41 +08:00 committed by Oxygen
parent 5cb6f17944
commit bcca8c2052
7 changed files with 375 additions and 378 deletions

View file

@ -28,95 +28,68 @@ import (
var _subr__b64decode uintptr
//go:nosplit
//go:noescape
//go:linkname throw runtime.throw
//goland:noinspection GoUnusedParameter
func throw(s string)
//go:nosplit
//go:noescape
//go:linkname convT64 runtime.convT64
//goland:noinspection GoUnusedParameter
func convT64(v uint64) unsafe.Pointer
//go:nosplit
//go:noescape
//go:linkname convTslice runtime.convTslice
//goland:noinspection GoUnusedParameter
func convTslice(v []byte) unsafe.Pointer
//go:nosplit
//go:noescape
//go:linkname convTstring runtime.convTstring
//goland:noinspection GoUnusedParameter
func convTstring(v uint64) unsafe.Pointer
func convTstring(v string) unsafe.Pointer
//go:nosplit
//go:noescape
//go:linkname memequal runtime.memequal
//goland:noinspection GoUnusedParameter
func memequal(a unsafe.Pointer, b unsafe.Pointer, size uintptr) bool
//go:nosplit
//go:noescape
//go:linkname mallocgc runtime.mallocgc
//goland:noinspection GoUnusedParameter
func mallocgc(size uintptr, typ *rt.GoType, needzero bool) unsafe.Pointer
//go:nosplit
//go:noescape
//go:linkname makeslice runtime.makeslice
//goland:noinspection GoUnusedParameter
func makeslice(et *rt.GoType, len int, cap int) unsafe.Pointer
//go:nosplit
//go:noescape
//go:linkname growslice runtime.growslice
//goland:noinspection GoUnusedParameter
func growslice(et *rt.GoType, old rt.GoSlice, cap int) rt.GoSlice
//go:nosplit
//go:noescape
//go:linkname makemap_small runtime.makemap_small
func makemap_small() unsafe.Pointer
//go:nosplit
//go:noescape
//go:linkname mapassign runtime.mapassign
//goland:noinspection GoUnusedParameter
func mapassign(t *rt.GoType, h unsafe.Pointer, k unsafe.Pointer) unsafe.Pointer
//go:nosplit
//go:noescape
//go:linkname mapassign_fast32 runtime.mapassign_fast32
//goland:noinspection GoUnusedParameter
func mapassign_fast32(t *rt.GoType, h unsafe.Pointer, k uint32) unsafe.Pointer
//go:nosplit
//go:noescape
//go:linkname mapassign_fast64 runtime.mapassign_fast64
//goland:noinspection GoUnusedParameter
func mapassign_fast64(t *rt.GoType, h unsafe.Pointer, k uint64) unsafe.Pointer
//go:nosplit
//go:noescape
//go:linkname mapassign_fast64ptr runtime.mapassign_fast64ptr
//goland:noinspection GoUnusedParameter
func mapassign_fast64ptr(t *rt.GoType, h unsafe.Pointer, k unsafe.Pointer) unsafe.Pointer
//go:nosplit
//go:noescape
//go:linkname mapassign_faststr runtime.mapassign_faststr
//goland:noinspection GoUnusedParameter
func mapassign_faststr(t *rt.GoType, h unsafe.Pointer, s string) unsafe.Pointer
//go:nosplit
//go:noescape
//go:linkname memclrHasPointers runtime.memclrHasPointers
//goland:noinspection GoUnusedParameter
func memclrHasPointers(ptr unsafe.Pointer, n uintptr)
//go:nosplit
//go:noescape
//go:linkname memclrNoHeapPointers runtime.memclrNoHeapPointers
//goland:noinspection GoUnusedParameter

View file

@ -32,32 +32,26 @@ var _subr__b64encode uintptr
//goland:noinspection ALL
func memmove(to unsafe.Pointer, from unsafe.Pointer, n uintptr)
//go:noescape
//go:linkname newobject runtime.newobject
//goland:noinspection ALL
func newobject(typ *rt.GoType) unsafe.Pointer
//go:noescape
//go:linkname growslice runtime.growslice
//goland:noinspection ALL
func growslice(et *rt.GoType, old rt.GoSlice, cap int) rt.GoSlice
//go:noescape
//go:linkname assertI2I runtime.assertI2I
//goland:noinspection ALL
func assertI2I(inter *rt.GoType, i rt.GoIface) rt.GoIface
//go:noescape
//go:linkname mapiternext runtime.mapiternext
//goland:noinspection ALL
func mapiternext(it unsafe.Pointer)
//go:noescape
//go:linkname mapiterinit runtime.mapiterinit
//goland:noinspection ALL
func mapiterinit(t *rt.GoType, m unsafe.Pointer, it *rt.GoMapIterator)
//go:noescape
//go:linkname isValidNumber encoding/json.isValidNumber
//goland:noinspection ALL
func isValidNumber(s string) bool

View file

@ -290,9 +290,9 @@ LBB2_5:
INCL DX
MOVL $348, CX
MOVQ CX, -64(BP)
LONG $0x5d0d8d48; WORD $0x0038; BYTE $0x00 // leaq $14429(%rip), %rcx /* _TabPowE(%rip) */
LONG $0x9f0d8d48; WORD $0x0038; BYTE $0x00 // leaq $14495(%rip), %rcx /* _TabPowE(%rip) */
MOVWLSX 0(CX)(DX*2), SI
LONG $0x000d8d48; WORD $0x0039; BYTE $0x00 // leaq $14592(%rip), %rcx /* _TabPowF(%rip) */
LONG $0x420d8d48; WORD $0x0039; BYTE $0x00 // leaq $14658(%rip), %rcx /* _TabPowF(%rip) */
MOVQ 0(CX)(DX*8), R8
BSRQ AX, CX
XORL $63, CX
@ -526,7 +526,7 @@ LBB2_36:
MOVL SI, CX
NEGL CX
MOVLQSX CX, CX
LONG $0xa6158d48; WORD $0x0038; BYTE $0x00 // leaq $14502(%rip), %rdx /* _TabPow10(%rip) */
LONG $0xe8158d48; WORD $0x0038; BYTE $0x00 // leaq $14568(%rip), %rdx /* _TabPow10(%rip) */
MOVQ -80(BP), DI
IMULQ 0(DX)(CX*8), DI
CMPQ R12, DI
@ -561,7 +561,7 @@ LBB2_41:
LBB2_43:
MOVL SI, CX
LONG $0x3c158d48; WORD $0x0038; BYTE $0x00 // leaq $14396(%rip), %rdx /* _TabPow10(%rip) */
LONG $0x7e158d48; WORD $0x0038; BYTE $0x00 // leaq $14462(%rip), %rdx /* _TabPow10(%rip) */
MOVQ 0(DX)(CX*8), DI
MOVL R10, CX
SHLQ CX, DI
@ -943,7 +943,7 @@ LBB2_105:
JG LBB2_107
ADDL $4, AX
MOVL CX, CX
LONG $0xab358d48; WORD $0x0033; BYTE $0x00 // leaq $13227(%rip), %rsi /* _Digits(%rip) */
LONG $0xed358d48; WORD $0x0033; BYTE $0x00 // leaq $13293(%rip), %rsi /* _Digits(%rip) */
MOVB 0(SI)(CX*2), DX
ADDQ CX, CX
MOVB DX, 0(R14)
@ -961,7 +961,7 @@ LBB2_107:
MOVB SI, 0(R14)
WORD $0xd26b; BYTE $0x64 // imull $100, %edx, %edx
SUBL DX, CX
LONG $0x71358d48; WORD $0x0033; BYTE $0x00 // leaq $13169(%rip), %rsi /* _Digits(%rip) */
LONG $0xb3358d48; WORD $0x0033; BYTE $0x00 // leaq $13235(%rip), %rsi /* _Digits(%rip) */
MOVB 0(SI)(CX*2), DX
MOVB 1(SI)(CX*2), CX
MOVB DX, 1(R14)
@ -992,7 +992,7 @@ LBB2_111:
JG LBB2_124
ADDL $2, AX
MOVL DI, DX
LONG $0x1a358d48; WORD $0x0033; BYTE $0x00 // leaq $13082(%rip), %rsi /* _Digits(%rip) */
LONG $0x5c358d48; WORD $0x0033; BYTE $0x00 // leaq $13148(%rip), %rsi /* _Digits(%rip) */
MOVB 0(SI)(DX*2), DI
ADDQ DX, DX
MOVB DI, 0(CX)
@ -1070,7 +1070,7 @@ LBB2_124:
MOVB SI, 0(CX)
WORD $0xd26b; BYTE $0x64 // imull $100, %edx, %edx
SUBL DX, DI
LONG $0xd5158d48; WORD $0x0031; BYTE $0x00 // leaq $12757(%rip), %rdx /* _Digits(%rip) */
LONG $0x17158d48; WORD $0x0032; BYTE $0x00 // leaq $12823(%rip), %rdx /* _Digits(%rip) */
MOVB 0(DX)(DI*2), SI
MOVB 1(DX)(DI*2), DX
MOVB SI, 1(CX)
@ -1181,7 +1181,7 @@ _u64toa:
ADDQ AX, AX
CMPL SI, $1000
JB LBB4_3
LONG $0x990d8d48; WORD $0x0030; BYTE $0x00 // leaq $12441(%rip), %rcx /* _Digits(%rip) */
LONG $0xdb0d8d48; WORD $0x0030; BYTE $0x00 // leaq $12507(%rip), %rcx /* _Digits(%rip) */
MOVB 0(DX)(CX*1), CX
MOVB CX, 0(DI)
MOVL $1, CX
@ -1195,14 +1195,14 @@ LBB4_3:
LBB4_4:
MOVWLZX DX, DX
ORQ $1, DX
LONG $0x78358d48; WORD $0x0030; BYTE $0x00 // leaq $12408(%rip), %rsi /* _Digits(%rip) */
LONG $0xba358d48; WORD $0x0030; BYTE $0x00 // leaq $12474(%rip), %rsi /* _Digits(%rip) */
MOVB 0(DX)(SI*1), DX
MOVL CX, SI
INCL CX
MOVB DX, 0(DI)(SI*1)
LBB4_6:
LONG $0x67158d48; WORD $0x0030; BYTE $0x00 // leaq $12391(%rip), %rdx /* _Digits(%rip) */
LONG $0xa9158d48; WORD $0x0030; BYTE $0x00 // leaq $12457(%rip), %rdx /* _Digits(%rip) */
MOVB 0(AX)(DX*1), DX
MOVL CX, SI
INCL CX
@ -1211,7 +1211,7 @@ LBB4_6:
LBB4_7:
MOVWLZX AX, AX
ORQ $1, AX
LONG $0x4f158d48; WORD $0x0030; BYTE $0x00 // leaq $12367(%rip), %rdx /* _Digits(%rip) */
LONG $0x91158d48; WORD $0x0030; BYTE $0x00 // leaq $12433(%rip), %rdx /* _Digits(%rip) */
MOVB 0(AX)(DX*1), AX
MOVL CX, DX
INCL CX
@ -1258,7 +1258,7 @@ LBB4_8:
ADDQ R11, R11
CMPL SI, $10000000
JB LBB4_11
LONG $0xb8058d48; WORD $0x002f; BYTE $0x00 // leaq $12216(%rip), %rax /* _Digits(%rip) */
LONG $0xfa058d48; WORD $0x002f; BYTE $0x00 // leaq $12282(%rip), %rax /* _Digits(%rip) */
MOVB 0(R10)(AX*1), AX
MOVB AX, 0(DI)
MOVL $1, CX
@ -1272,14 +1272,14 @@ LBB4_11:
LBB4_12:
MOVL R10, AX
ORQ $1, AX
LONG $0x93358d48; WORD $0x002f; BYTE $0x00 // leaq $12179(%rip), %rsi /* _Digits(%rip) */
LONG $0xd5358d48; WORD $0x002f; BYTE $0x00 // leaq $12245(%rip), %rsi /* _Digits(%rip) */
MOVB 0(AX)(SI*1), AX
MOVL CX, SI
INCL CX
MOVB AX, 0(DI)(SI*1)
LBB4_14:
LONG $0x82058d48; WORD $0x002f; BYTE $0x00 // leaq $12162(%rip), %rax /* _Digits(%rip) */
LONG $0xc4058d48; WORD $0x002f; BYTE $0x00 // leaq $12228(%rip), %rax /* _Digits(%rip) */
MOVB 0(R9)(AX*1), AX
MOVL CX, SI
INCL CX
@ -1288,7 +1288,7 @@ LBB4_14:
LBB4_15:
MOVWLZX R9, AX
ORQ $1, AX
LONG $0x68358d48; WORD $0x002f; BYTE $0x00 // leaq $12136(%rip), %rsi /* _Digits(%rip) */
LONG $0xaa358d48; WORD $0x002f; BYTE $0x00 // leaq $12202(%rip), %rsi /* _Digits(%rip) */
MOVB 0(AX)(SI*1), AX
MOVL CX, DX
MOVB AX, 0(DI)(DX*1)
@ -1370,7 +1370,7 @@ LBB4_16:
MOVL $16, CX
SUBL AX, CX
SHLQ $4, AX
LONG $0xdd158d48; WORD $0x002e; BYTE $0x00 // leaq $11997(%rip), %rdx /* _VecShiftShuffles(%rip) */
LONG $0x1f158d48; WORD $0x002f; BYTE $0x00 // leaq $12063(%rip), %rdx /* _VecShiftShuffles(%rip) */
LONG $0x0071e2c4; WORD $0x1004 // vpshufb (%rax,%rdx), %xmm1, %xmm0
LONG $0x077ffac5 // vmovdqu %xmm0, (%rdi)
MOVL CX, AX
@ -1396,7 +1396,7 @@ LBB4_20:
CMPL DX, $99
JA LBB4_22
MOVL DX, AX
LONG $0xc00d8d48; WORD $0x002d; BYTE $0x00 // leaq $11712(%rip), %rcx /* _Digits(%rip) */
LONG $0x020d8d48; WORD $0x002e; BYTE $0x00 // leaq $11778(%rip), %rcx /* _Digits(%rip) */
MOVB 0(CX)(AX*2), DX
MOVB 1(CX)(AX*2), AX
MOVB DX, 0(DI)
@ -1421,7 +1421,7 @@ LBB4_22:
WORD $0xc96b; BYTE $0x64 // imull $100, %ecx, %ecx
SUBL CX, AX
MOVWLZX AX, AX
LONG $0x6f0d8d48; WORD $0x002d; BYTE $0x00 // leaq $11631(%rip), %rcx /* _Digits(%rip) */
LONG $0xb10d8d48; WORD $0x002d; BYTE $0x00 // leaq $11697(%rip), %rcx /* _Digits(%rip) */
MOVB 0(CX)(AX*2), DX
MOVB 1(CX)(AX*2), AX
MOVB DX, 1(DI)
@ -1433,7 +1433,7 @@ LBB4_24:
WORD $0xc86b; BYTE $0x64 // imull $100, %eax, %ecx
SUBL CX, DX
MOVWLZX AX, AX
LONG $0x4c058d4c; WORD $0x002d; BYTE $0x00 // leaq $11596(%rip), %r8 /* _Digits(%rip) */
LONG $0x8e058d4c; WORD $0x002d; BYTE $0x00 // leaq $11662(%rip), %r8 /* _Digits(%rip) */
MOVB 0(R8)(AX*2), CX
MOVB 1(R8)(AX*2), AX
MOVB CX, 0(DI)
@ -1519,8 +1519,8 @@ _quote:
MOVQ CX, R10
MOVQ DX, CX
TESTB $1, R8
LONG $0x4b058d48; WORD $0x002d; BYTE $0x00 // leaq $11595(%rip), %rax /* __SingleQuoteTab(%rip) */
LONG $0x44158d48; WORD $0x003d; BYTE $0x00 // leaq $15684(%rip), %rdx /* __DoubleQuoteTab(%rip) */
LONG $0x8d058d48; WORD $0x002d; BYTE $0x00 // leaq $11661(%rip), %rax /* __SingleQuoteTab(%rip) */
LONG $0x86158d48; WORD $0x003d; BYTE $0x00 // leaq $15750(%rip), %rdx /* __DoubleQuoteTab(%rip) */
LONG $0xd0440f48 // cmoveq %rax, %rdx
MOVQ CX, R8
MOVQ DI, AX
@ -1628,7 +1628,7 @@ LBB5_14:
TESTQ R10, R10
MOVQ -48(BP), CX
MOVQ -56(BP), DI
LONG $0xd02d8d4c; WORD $0x002b; BYTE $0x00 // leaq $11216(%rip), %r13 /* __SingleQuoteTab(%rip) */
LONG $0x122d8d4c; WORD $0x002c; BYTE $0x00 // leaq $11282(%rip), %r13 /* __SingleQuoteTab(%rip) */
JLE LBB5_29
LBB5_16:
@ -1890,7 +1890,7 @@ _unquote:
MOVQ R8, -56(BP)
MOVL R8, R10
ANDL $1, R10
LONG $0x3d058d4c; WORD $0x0049; BYTE $0x00 // leaq $18749(%rip), %r8 /* __UnquoteTab(%rip) */
LONG $0x7f058d4c; WORD $0x0049; BYTE $0x00 // leaq $18815(%rip), %r8 /* __UnquoteTab(%rip) */
QUAD $0xffffffb5056ffac5 // vmovdqu $-75(%rip), %xmm0 /* LCPI6_0(%rip) */
MOVQ DI, R9
MOVQ SI, R14
@ -2421,8 +2421,8 @@ _value:
MOVQ DX, R12
MOVQ SI, R15
MOVQ DX, -40(BP)
MOVQ DI, -56(BP)
MOVQ SI, -48(BP)
MOVQ DI, -64(BP)
MOVQ SI, -56(BP)
MOVQ DX, AX
CMPQ DX, SI
JAE LBB7_18
@ -2585,17 +2585,17 @@ LBB7_40:
MOVBLSX CX, CX
CMPL CX, $125
JA LBB7_43
LONG $0x37158d48; WORD $0x0002; BYTE $0x00 // leaq $567(%rip), %rdx /* LJTI7_0(%rip) */
LONG $0x55158d48; WORD $0x0002; BYTE $0x00 // leaq $597(%rip), %rdx /* LJTI7_0(%rip) */
MOVLQSX 0(DX)(CX*4), CX
ADDQ DX, CX
JMP CX
LBB7_42:
MOVQ AX, -40(BP)
LEAQ -56(BP), DI
LEAQ -64(BP), DI
LEAQ -40(BP), SI
MOVQ R14, DX
LONG $0x000787e8; BYTE $0x00 // callq _vnumber
LONG $0x0007c9e8; BYTE $0x00 // callq _vnumber
MOVQ -40(BP), AX
JMP LBB7_81
@ -2604,14 +2604,20 @@ LBB7_43:
JMP LBB7_81
LBB7_44:
LEAQ 24(R14), CX
MOVQ $-1, -48(BP)
LEAQ -48(BP), CX
MOVQ R15, SI
MOVQ R12, DX
LONG $0x000460e8; BYTE $0x00 // callq _advance_string
LONG $0x00049ae8; BYTE $0x00 // callq _advance_string
TESTQ AX, AX
JS LBB7_63
MOVQ AX, -40(BP)
MOVQ R12, 16(R14)
MOVQ -48(BP), CX
CMPQ CX, AX
MOVQ $-1, DX
LONG $0xd14c0f48 // cmovlq %rcx, %rdx
MOVQ DX, 24(R14)
MOVL $7, CX
MOVQ CX, 0(R14)
JMP LBB7_81
@ -2806,130 +2812,130 @@ LBB7_81:
// .set L7_0_set_55, LBB7_55-LJTI7_0
LJTI7_0:
LONG $0xffffffe9 // .long L7_0_set_79
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdfb // .long L7_0_set_44
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffddd // .long L7_0_set_44
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffe28 // .long L7_0_set_46
LONG $0xfffffdd2 // .long L7_0_set_42
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdd2 // .long L7_0_set_42
LONG $0xfffffdd2 // .long L7_0_set_42
LONG $0xfffffdd2 // .long L7_0_set_42
LONG $0xfffffdd2 // .long L7_0_set_42
LONG $0xfffffdd2 // .long L7_0_set_42
LONG $0xfffffdd2 // .long L7_0_set_42
LONG $0xfffffdd2 // .long L7_0_set_42
LONG $0xfffffdd2 // .long L7_0_set_42
LONG $0xfffffdd2 // .long L7_0_set_42
LONG $0xfffffdd2 // .long L7_0_set_42
LONG $0xfffffdb4 // .long L7_0_set_42
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdb4 // .long L7_0_set_42
LONG $0xfffffdb4 // .long L7_0_set_42
LONG $0xfffffdb4 // .long L7_0_set_42
LONG $0xfffffdb4 // .long L7_0_set_42
LONG $0xfffffdb4 // .long L7_0_set_42
LONG $0xfffffdb4 // .long L7_0_set_42
LONG $0xfffffdb4 // .long L7_0_set_42
LONG $0xfffffdb4 // .long L7_0_set_42
LONG $0xfffffdb4 // .long L7_0_set_42
LONG $0xfffffdb4 // .long L7_0_set_42
LONG $0xfffffe41 // .long L7_0_set_47
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffe5a // .long L7_0_set_48
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffed8 // .long L7_0_set_56
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffefb // .long L7_0_set_58
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffe66 // .long L7_0_set_49
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffe94 // .long L7_0_set_52
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xffffff30 // .long L7_0_set_62
LONG $0xfffffdef // .long L7_0_set_43
LONG $0xfffffdd1 // .long L7_0_set_43
LONG $0xfffffec2 // .long L7_0_set_55
_vstring:
@ -2939,28 +2945,36 @@ _vstring:
WORD $0x5641 // pushq %r14
WORD $0x5441 // pushq %r12
BYTE $0x53 // pushq %rbx
SUBQ $16, SP
MOVQ DX, R14
MOVQ SI, R12
MOVQ SI, R15
MOVQ DI, BX
MOVQ 0(SI), R15
LEAQ 24(DX), CX
MOVQ $-1, -40(BP)
MOVQ 0(SI), R12
MOVQ 0(DI), DI
MOVQ 8(BX), SI
MOVQ R15, DX
LONG $0x000048e8; BYTE $0x00 // callq _advance_string
LEAQ -40(BP), CX
MOVQ R12, DX
LONG $0x000060e8; BYTE $0x00 // callq _advance_string
TESTQ AX, AX
JS LBB8_1
MOVQ AX, 0(R12)
MOVQ R15, 16(R14)
MOVQ AX, 0(R15)
MOVQ R12, 16(R14)
MOVQ -40(BP), CX
CMPQ CX, AX
MOVQ $-1, AX
LONG $0xc14c0f48 // cmovlq %rcx, %rax
MOVQ AX, 24(R14)
MOVL $7, AX
JMP LBB8_3
LBB8_1:
MOVQ 8(BX), CX
MOVQ CX, 0(R12)
MOVQ CX, 0(R15)
LBB8_3:
MOVQ AX, 0(R14)
ADDQ $16, SP
BYTE $0x5b // popq %rbx
WORD $0x5c41 // popq %r12
WORD $0x5e41 // popq %r14
@ -6479,7 +6493,7 @@ TEXT ·__skip_array(SB), NOSPLIT, $0 - 32
MOVQ s+0(FP), DI
MOVQ p+8(FP), SI
MOVQ m+16(FP), DX
CALL ·___asm2asm_compiled_code__DO_NOT_CALL_THIS_SYMBOL___+13969(SB) // _skip_array
CALL ·___asm2asm_compiled_code__DO_NOT_CALL_THIS_SYMBOL___+14035(SB) // _skip_array
MOVQ AX, ret+24(FP)
RET
@ -6487,7 +6501,7 @@ TEXT ·__skip_object(SB), NOSPLIT, $0 - 32
MOVQ s+0(FP), DI
MOVQ p+8(FP), SI
MOVQ m+16(FP), DX
CALL ·___asm2asm_compiled_code__DO_NOT_CALL_THIS_SYMBOL___+14004(SB) // _skip_object
CALL ·___asm2asm_compiled_code__DO_NOT_CALL_THIS_SYMBOL___+14070(SB) // _skip_object
MOVQ AX, ret+24(FP)
RET
@ -6495,7 +6509,7 @@ TEXT ·__skip_one(SB), NOSPLIT, $0 - 32
MOVQ s+0(FP), DI
MOVQ p+8(FP), SI
MOVQ m+16(FP), DX
CALL ·___asm2asm_compiled_code__DO_NOT_CALL_THIS_SYMBOL___+11647(SB) // _skip_one
CALL ·___asm2asm_compiled_code__DO_NOT_CALL_THIS_SYMBOL___+11713(SB) // _skip_one
MOVQ AX, ret+24(FP)
RET
@ -6530,26 +6544,26 @@ TEXT ·__vnumber(SB), NOSPLIT, $0 - 24
MOVQ s+0(FP), DI
MOVQ p+8(FP), SI
MOVQ v+16(FP), DX
LEAQ ·___asm2asm_compiled_code__DO_NOT_CALL_THIS_SYMBOL___+10125(SB), AX // _vnumber
LEAQ ·___asm2asm_compiled_code__DO_NOT_CALL_THIS_SYMBOL___+10191(SB), AX // _vnumber
JMP AX
TEXT ·__vsigned(SB), NOSPLIT, $0 - 24
MOVQ s+0(FP), DI
MOVQ p+8(FP), SI
MOVQ v+16(FP), DX
LEAQ ·___asm2asm_compiled_code__DO_NOT_CALL_THIS_SYMBOL___+11097(SB), AX // _vsigned
LEAQ ·___asm2asm_compiled_code__DO_NOT_CALL_THIS_SYMBOL___+11163(SB), AX // _vsigned
JMP AX
TEXT ·__vstring(SB), NOSPLIT, $0 - 24
MOVQ s+0(FP), DI
MOVQ p+8(FP), SI
MOVQ v+16(FP), DX
LEAQ ·___asm2asm_compiled_code__DO_NOT_CALL_THIS_SYMBOL___+9240(SB), AX // _vstring
LEAQ ·___asm2asm_compiled_code__DO_NOT_CALL_THIS_SYMBOL___+9270(SB), AX // _vstring
JMP AX
TEXT ·__vunsigned(SB), NOSPLIT, $0 - 24
MOVQ s+0(FP), DI
MOVQ p+8(FP), SI
MOVQ v+16(FP), DX
LEAQ ·___asm2asm_compiled_code__DO_NOT_CALL_THIS_SYMBOL___+11374(SB), AX // _vunsigned
LEAQ ·___asm2asm_compiled_code__DO_NOT_CALL_THIS_SYMBOL___+11440(SB), AX // _vunsigned
JMP AX

View file

@ -19,16 +19,16 @@ var (
_subr__lspace = **(**uintptr)(unsafe.Pointer(&_func__base)) + 238
_subr__lzero = **(**uintptr)(unsafe.Pointer(&_func__base)) + 0
_subr__quote = **(**uintptr)(unsafe.Pointer(&_func__base)) + 4951
_subr__skip_array = **(**uintptr)(unsafe.Pointer(&_func__base)) + 13969
_subr__skip_object = **(**uintptr)(unsafe.Pointer(&_func__base)) + 14004
_subr__skip_one = **(**uintptr)(unsafe.Pointer(&_func__base)) + 11647
_subr__skip_array = **(**uintptr)(unsafe.Pointer(&_func__base)) + 14035
_subr__skip_object = **(**uintptr)(unsafe.Pointer(&_func__base)) + 14070
_subr__skip_one = **(**uintptr)(unsafe.Pointer(&_func__base)) + 11713
_subr__u64toa = **(**uintptr)(unsafe.Pointer(&_func__base)) + 3731
_subr__unquote = **(**uintptr)(unsafe.Pointer(&_func__base)) + 5972
_subr__value = **(**uintptr)(unsafe.Pointer(&_func__base)) + 7664
_subr__vnumber = **(**uintptr)(unsafe.Pointer(&_func__base)) + 10125
_subr__vsigned = **(**uintptr)(unsafe.Pointer(&_func__base)) + 11097
_subr__vstring = **(**uintptr)(unsafe.Pointer(&_func__base)) + 9240
_subr__vunsigned = **(**uintptr)(unsafe.Pointer(&_func__base)) + 11374
_subr__vnumber = **(**uintptr)(unsafe.Pointer(&_func__base)) + 10191
_subr__vsigned = **(**uintptr)(unsafe.Pointer(&_func__base)) + 11163
_subr__vstring = **(**uintptr)(unsafe.Pointer(&_func__base)) + 9270
_subr__vunsigned = **(**uintptr)(unsafe.Pointer(&_func__base)) + 11440
)
var (

View file

@ -342,9 +342,9 @@ LBB2_5:
INCL DX
MOVL $348, CX
MOVQ CX, -64(BP)
LONG $0xe90d8d48; WORD $0x0040; BYTE $0x00 // leaq $16617(%rip), %rcx /* _TabPowE(%rip) */
LONG $0x2e0d8d48; WORD $0x0041; BYTE $0x00 // leaq $16686(%rip), %rcx /* _TabPowE(%rip) */
MOVWLSX 0(CX)(DX*2), SI
LONG $0x8c0d8d48; WORD $0x0041; BYTE $0x00 // leaq $16780(%rip), %rcx /* _TabPowF(%rip) */
LONG $0xd10d8d48; WORD $0x0041; BYTE $0x00 // leaq $16849(%rip), %rcx /* _TabPowF(%rip) */
MOVQ 0(CX)(DX*8), R8
BSRQ AX, CX
XORL $63, CX
@ -578,7 +578,7 @@ LBB2_36:
MOVL SI, CX
NEGL CX
MOVLQSX CX, CX
LONG $0x32158d48; WORD $0x0041; BYTE $0x00 // leaq $16690(%rip), %rdx /* _TabPow10(%rip) */
LONG $0x77158d48; WORD $0x0041; BYTE $0x00 // leaq $16759(%rip), %rdx /* _TabPow10(%rip) */
MOVQ -80(BP), DI
IMULQ 0(DX)(CX*8), DI
CMPQ R12, DI
@ -613,7 +613,7 @@ LBB2_41:
LBB2_43:
MOVL SI, CX
LONG $0xc8158d48; WORD $0x0040; BYTE $0x00 // leaq $16584(%rip), %rdx /* _TabPow10(%rip) */
LONG $0x0d158d48; WORD $0x0041; BYTE $0x00 // leaq $16653(%rip), %rdx /* _TabPow10(%rip) */
MOVQ 0(DX)(CX*8), DI
MOVL R10, CX
SHLQ CX, DI
@ -995,7 +995,7 @@ LBB2_105:
JG LBB2_107
ADDL $4, AX
MOVL CX, CX
LONG $0x37358d48; WORD $0x003c; BYTE $0x00 // leaq $15415(%rip), %rsi /* _Digits(%rip) */
LONG $0x7c358d48; WORD $0x003c; BYTE $0x00 // leaq $15484(%rip), %rsi /* _Digits(%rip) */
MOVB 0(SI)(CX*2), DX
ADDQ CX, CX
MOVB DX, 0(R14)
@ -1013,7 +1013,7 @@ LBB2_107:
MOVB SI, 0(R14)
WORD $0xd26b; BYTE $0x64 // imull $100, %edx, %edx
SUBL DX, CX
LONG $0xfd358d48; WORD $0x003b; BYTE $0x00 // leaq $15357(%rip), %rsi /* _Digits(%rip) */
LONG $0x42358d48; WORD $0x003c; BYTE $0x00 // leaq $15426(%rip), %rsi /* _Digits(%rip) */
MOVB 0(SI)(CX*2), DX
MOVB 1(SI)(CX*2), CX
MOVB DX, 1(R14)
@ -1044,7 +1044,7 @@ LBB2_111:
JG LBB2_124
ADDL $2, AX
MOVL DI, DX
LONG $0xa6358d48; WORD $0x003b; BYTE $0x00 // leaq $15270(%rip), %rsi /* _Digits(%rip) */
LONG $0xeb358d48; WORD $0x003b; BYTE $0x00 // leaq $15339(%rip), %rsi /* _Digits(%rip) */
MOVB 0(SI)(DX*2), DI
ADDQ DX, DX
MOVB DI, 0(CX)
@ -1122,7 +1122,7 @@ LBB2_124:
MOVB SI, 0(CX)
WORD $0xd26b; BYTE $0x64 // imull $100, %edx, %edx
SUBL DX, DI
LONG $0x61158d48; WORD $0x003a; BYTE $0x00 // leaq $14945(%rip), %rdx /* _Digits(%rip) */
LONG $0xa6158d48; WORD $0x003a; BYTE $0x00 // leaq $15014(%rip), %rdx /* _Digits(%rip) */
MOVB 0(DX)(DI*2), SI
MOVB 1(DX)(DI*2), DX
MOVB SI, 1(CX)
@ -1233,7 +1233,7 @@ _u64toa:
ADDQ AX, AX
CMPL SI, $1000
JB LBB4_3
LONG $0x250d8d48; WORD $0x0039; BYTE $0x00 // leaq $14629(%rip), %rcx /* _Digits(%rip) */
LONG $0x6a0d8d48; WORD $0x0039; BYTE $0x00 // leaq $14698(%rip), %rcx /* _Digits(%rip) */
MOVB 0(DX)(CX*1), CX
MOVB CX, 0(DI)
MOVL $1, CX
@ -1247,14 +1247,14 @@ LBB4_3:
LBB4_4:
MOVWLZX DX, DX
ORQ $1, DX
LONG $0x04358d48; WORD $0x0039; BYTE $0x00 // leaq $14596(%rip), %rsi /* _Digits(%rip) */
LONG $0x49358d48; WORD $0x0039; BYTE $0x00 // leaq $14665(%rip), %rsi /* _Digits(%rip) */
MOVB 0(DX)(SI*1), DX
MOVL CX, SI
INCL CX
MOVB DX, 0(DI)(SI*1)
LBB4_6:
LONG $0xf3158d48; WORD $0x0038; BYTE $0x00 // leaq $14579(%rip), %rdx /* _Digits(%rip) */
LONG $0x38158d48; WORD $0x0039; BYTE $0x00 // leaq $14648(%rip), %rdx /* _Digits(%rip) */
MOVB 0(AX)(DX*1), DX
MOVL CX, SI
INCL CX
@ -1263,7 +1263,7 @@ LBB4_6:
LBB4_7:
MOVWLZX AX, AX
ORQ $1, AX
LONG $0xdb158d48; WORD $0x0038; BYTE $0x00 // leaq $14555(%rip), %rdx /* _Digits(%rip) */
LONG $0x20158d48; WORD $0x0039; BYTE $0x00 // leaq $14624(%rip), %rdx /* _Digits(%rip) */
MOVB 0(AX)(DX*1), AX
MOVL CX, DX
INCL CX
@ -1310,7 +1310,7 @@ LBB4_8:
ADDQ R11, R11
CMPL SI, $10000000
JB LBB4_11
LONG $0x44058d48; WORD $0x0038; BYTE $0x00 // leaq $14404(%rip), %rax /* _Digits(%rip) */
LONG $0x89058d48; WORD $0x0038; BYTE $0x00 // leaq $14473(%rip), %rax /* _Digits(%rip) */
MOVB 0(R10)(AX*1), AX
MOVB AX, 0(DI)
MOVL $1, CX
@ -1324,14 +1324,14 @@ LBB4_11:
LBB4_12:
MOVL R10, AX
ORQ $1, AX
LONG $0x1f358d48; WORD $0x0038; BYTE $0x00 // leaq $14367(%rip), %rsi /* _Digits(%rip) */
LONG $0x64358d48; WORD $0x0038; BYTE $0x00 // leaq $14436(%rip), %rsi /* _Digits(%rip) */
MOVB 0(AX)(SI*1), AX
MOVL CX, SI
INCL CX
MOVB AX, 0(DI)(SI*1)
LBB4_14:
LONG $0x0e058d48; WORD $0x0038; BYTE $0x00 // leaq $14350(%rip), %rax /* _Digits(%rip) */
LONG $0x53058d48; WORD $0x0038; BYTE $0x00 // leaq $14419(%rip), %rax /* _Digits(%rip) */
MOVB 0(R9)(AX*1), AX
MOVL CX, SI
INCL CX
@ -1340,7 +1340,7 @@ LBB4_14:
LBB4_15:
MOVWLZX R9, AX
ORQ $1, AX
LONG $0xf4358d48; WORD $0x0037; BYTE $0x00 // leaq $14324(%rip), %rsi /* _Digits(%rip) */
LONG $0x39358d48; WORD $0x0038; BYTE $0x00 // leaq $14393(%rip), %rsi /* _Digits(%rip) */
MOVB 0(AX)(SI*1), AX
MOVL CX, DX
MOVB AX, 0(DI)(DX*1)
@ -1422,7 +1422,7 @@ LBB4_16:
MOVL $16, CX
SUBL AX, CX
SHLQ $4, AX
LONG $0x67158d48; WORD $0x0037; BYTE $0x00 // leaq $14183(%rip), %rdx /* _VecShiftShuffles(%rip) */
LONG $0xac158d48; WORD $0x0037; BYTE $0x00 // leaq $14252(%rip), %rdx /* _VecShiftShuffles(%rip) */
LONG $0x0071e2c4; WORD $0x1004 // vpshufb (%rax,%rdx), %xmm1, %xmm0
LONG $0x077ffac5 // vmovdqu %xmm0, (%rdi)
MOVL CX, AX
@ -1448,7 +1448,7 @@ LBB4_20:
CMPL DX, $99
JA LBB4_22
MOVL DX, AX
LONG $0x4a0d8d48; WORD $0x0036; BYTE $0x00 // leaq $13898(%rip), %rcx /* _Digits(%rip) */
LONG $0x8f0d8d48; WORD $0x0036; BYTE $0x00 // leaq $13967(%rip), %rcx /* _Digits(%rip) */
MOVB 0(CX)(AX*2), DX
MOVB 1(CX)(AX*2), AX
MOVB DX, 0(DI)
@ -1473,7 +1473,7 @@ LBB4_22:
WORD $0xc96b; BYTE $0x64 // imull $100, %ecx, %ecx
SUBL CX, AX
MOVWLZX AX, AX
LONG $0xf90d8d48; WORD $0x0035; BYTE $0x00 // leaq $13817(%rip), %rcx /* _Digits(%rip) */
LONG $0x3e0d8d48; WORD $0x0036; BYTE $0x00 // leaq $13886(%rip), %rcx /* _Digits(%rip) */
MOVB 0(CX)(AX*2), DX
MOVB 1(CX)(AX*2), AX
MOVB DX, 1(DI)
@ -1485,7 +1485,7 @@ LBB4_24:
WORD $0xc86b; BYTE $0x64 // imull $100, %eax, %ecx
SUBL CX, DX
MOVWLZX AX, AX
LONG $0xd6058d4c; WORD $0x0035; BYTE $0x00 // leaq $13782(%rip), %r8 /* _Digits(%rip) */
LONG $0x1b058d4c; WORD $0x0036; BYTE $0x00 // leaq $13851(%rip), %r8 /* _Digits(%rip) */
MOVB 0(R8)(AX*2), CX
MOVB 1(R8)(AX*2), AX
MOVB CX, 0(DI)
@ -1583,8 +1583,8 @@ _quote:
MOVQ CX, R14
MOVQ DI, R12
TESTB $1, R8
LONG $0x73058d48; WORD $0x0035; BYTE $0x00 // leaq $13683(%rip), %rax /* __SingleQuoteTab(%rip) */
LONG $0x6c158d4c; WORD $0x0045; BYTE $0x00 // leaq $17772(%rip), %r10 /* __DoubleQuoteTab(%rip) */
LONG $0xb8058d48; WORD $0x0035; BYTE $0x00 // leaq $13752(%rip), %rax /* __SingleQuoteTab(%rip) */
LONG $0xb1158d4c; WORD $0x0045; BYTE $0x00 // leaq $17841(%rip), %r10 /* __DoubleQuoteTab(%rip) */
LONG $0xd0440f4c // cmoveq %rax, %r10
MOVQ DX, R8
MOVQ DI, AX
@ -1809,7 +1809,7 @@ LBB5_26:
LBB5_27:
TESTQ CX, CX
MOVQ BX, R14
LONG $0x120d8d4c; WORD $0x0032; BYTE $0x00 // leaq $12818(%rip), %r9 /* __SingleQuoteTab(%rip) */
LONG $0x570d8d4c; WORD $0x0032; BYTE $0x00 // leaq $12887(%rip), %r9 /* __SingleQuoteTab(%rip) */
JLE LBB5_60
MOVQ SI, DX
TESTQ SI, SI
@ -2321,7 +2321,7 @@ LBB6_20:
LBB6_34:
ADDQ BX, AX
MOVBLZX -1(R9), CX
LONG $0xc41d8d48; WORD $0x004c; BYTE $0x00 // leaq $19652(%rip), %rbx /* __UnquoteTab(%rip) */
LONG $0x091d8d48; WORD $0x004d; BYTE $0x00 // leaq $19721(%rip), %rbx /* __UnquoteTab(%rip) */
MOVB 0(CX)(BX*1), CX
CMPB CX, $-1
JE LBB6_38
@ -2763,8 +2763,8 @@ _value:
MOVQ DX, R12
MOVQ SI, R15
MOVQ DX, -40(BP)
MOVQ DI, -56(BP)
MOVQ SI, -48(BP)
MOVQ DI, -64(BP)
MOVQ SI, -56(BP)
MOVQ DX, AX
CMPQ DX, SI
JAE LBB7_18
@ -2952,17 +2952,17 @@ LBB7_45:
MOVBLSX CX, CX
CMPL CX, $125
JA LBB7_51
LONG $0x3e158d48; WORD $0x0002; BYTE $0x00 // leaq $574(%rip), %rdx /* LJTI7_0(%rip) */
LONG $0x5f158d48; WORD $0x0002; BYTE $0x00 // leaq $607(%rip), %rdx /* LJTI7_0(%rip) */
MOVLQSX 0(DX)(CX*4), CX
ADDQ DX, CX
JMP CX
LBB7_47:
MOVQ AX, -40(BP)
LEAQ -56(BP), DI
LEAQ -64(BP), DI
LEAQ -40(BP), SI
MOVQ R14, DX
LONG $0x00071ae8; BYTE $0x00 // callq _vnumber
LONG $0x00075fe8; BYTE $0x00 // callq _vnumber
MOVQ -40(BP), AX
JMP LBB7_50
@ -2986,14 +2986,20 @@ LBB7_51:
JMP LBB7_50
LBB7_52:
LEAQ 24(R14), CX
MOVQ $-1, -48(BP)
LEAQ -48(BP), CX
MOVQ R15, SI
MOVQ R12, DX
LONG $0x000476e8; BYTE $0x00 // callq _advance_string
LONG $0x0004b3e8; BYTE $0x00 // callq _advance_string
TESTQ AX, AX
JS LBB7_72
MOVQ AX, -40(BP)
MOVQ R12, 16(R14)
MOVQ -48(BP), CX
CMPQ CX, AX
MOVQ $-1, DX
LONG $0xd14c0f48 // cmovlq %rcx, %rdx
MOVQ DX, 24(R14)
MOVL $7, CX
MOVQ CX, 0(R14)
JMP LBB7_50
@ -3179,131 +3185,131 @@ LBB7_87:
// .set L7_0_set_68, LBB7_68-LJTI7_0
// .set L7_0_set_69, LBB7_69-LJTI7_0
LJTI7_0:
LONG $0xfffffde5 // .long L7_0_set_48
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffe05 // .long L7_0_set_52
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffe2f // .long L7_0_set_54
LONG $0xfffffdcb // .long L7_0_set_47
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdcb // .long L7_0_set_47
LONG $0xfffffdcb // .long L7_0_set_47
LONG $0xfffffdcb // .long L7_0_set_47
LONG $0xfffffdcb // .long L7_0_set_47
LONG $0xfffffdcb // .long L7_0_set_47
LONG $0xfffffdcb // .long L7_0_set_47
LONG $0xfffffdcb // .long L7_0_set_47
LONG $0xfffffdcb // .long L7_0_set_47
LONG $0xfffffdcb // .long L7_0_set_47
LONG $0xfffffdcb // .long L7_0_set_47
LONG $0xfffffe48 // .long L7_0_set_55
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffe61 // .long L7_0_set_56
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdc4 // .long L7_0_set_48
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffde4 // .long L7_0_set_52
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffe2c // .long L7_0_set_54
LONG $0xfffffdaa // .long L7_0_set_47
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffdaa // .long L7_0_set_47
LONG $0xfffffdaa // .long L7_0_set_47
LONG $0xfffffdaa // .long L7_0_set_47
LONG $0xfffffdaa // .long L7_0_set_47
LONG $0xfffffdaa // .long L7_0_set_47
LONG $0xfffffdaa // .long L7_0_set_47
LONG $0xfffffdaa // .long L7_0_set_47
LONG $0xfffffdaa // .long L7_0_set_47
LONG $0xfffffdaa // .long L7_0_set_47
LONG $0xfffffdaa // .long L7_0_set_47
LONG $0xfffffe45 // .long L7_0_set_55
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffe5e // .long L7_0_set_56
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffe6a // .long L7_0_set_57
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffe83 // .long L7_0_set_58
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffeae // .long L7_0_set_61
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffed8 // .long L7_0_set_64
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xffffff12 // .long L7_0_set_68
LONG $0xfffffdfc // .long L7_0_set_51
LONG $0xfffffddb // .long L7_0_set_51
LONG $0xffffff1e // .long L7_0_set_69
_vstring:
@ -3313,28 +3319,36 @@ _vstring:
WORD $0x5641 // pushq %r14
WORD $0x5441 // pushq %r12
BYTE $0x53 // pushq %rbx
SUBQ $16, SP
MOVQ DX, R14
MOVQ SI, R12
MOVQ SI, R15
MOVQ DI, BX
MOVQ 0(SI), R15
LEAQ 24(DX), CX
MOVQ $-1, -40(BP)
MOVQ 0(SI), R12
MOVQ 0(DI), DI
MOVQ 8(BX), SI
MOVQ R15, DX
LONG $0x000068e8; BYTE $0x00 // callq _advance_string
LEAQ -40(BP), CX
MOVQ R12, DX
LONG $0x000080e8; BYTE $0x00 // callq _advance_string
TESTQ AX, AX
JS LBB8_1
MOVQ AX, 0(R12)
MOVQ R15, 16(R14)
MOVQ AX, 0(R15)
MOVQ R12, 16(R14)
MOVQ -40(BP), CX
CMPQ CX, AX
MOVQ $-1, AX
LONG $0xc14c0f48 // cmovlq %rcx, %rax
MOVQ AX, 24(R14)
MOVL $7, AX
JMP LBB8_3
LBB8_1:
MOVQ 8(BX), CX
MOVQ CX, 0(R12)
MOVQ CX, 0(R15)
LBB8_3:
MOVQ AX, 0(R14)
ADDQ $16, SP
BYTE $0x5b // popq %rbx
WORD $0x5c41 // popq %r12
WORD $0x5e41 // popq %r14
@ -7051,7 +7065,7 @@ TEXT ·__skip_array(SB), NOSPLIT, $0 - 32
MOVQ s+0(FP), DI
MOVQ p+8(FP), SI
MOVQ m+16(FP), DX
CALL ·___asm2asm_compiled_code__DO_NOT_CALL_THIS_SYMBOL___+15851(SB) // _skip_array
CALL ·___asm2asm_compiled_code__DO_NOT_CALL_THIS_SYMBOL___+15920(SB) // _skip_array
MOVQ AX, ret+24(FP)
RET
@ -7059,7 +7073,7 @@ TEXT ·__skip_object(SB), NOSPLIT, $0 - 32
MOVQ s+0(FP), DI
MOVQ p+8(FP), SI
MOVQ m+16(FP), DX
CALL ·___asm2asm_compiled_code__DO_NOT_CALL_THIS_SYMBOL___+15886(SB) // _skip_object
CALL ·___asm2asm_compiled_code__DO_NOT_CALL_THIS_SYMBOL___+15955(SB) // _skip_object
MOVQ AX, ret+24(FP)
RET
@ -7067,7 +7081,7 @@ TEXT ·__skip_one(SB), NOSPLIT, $0 - 32
MOVQ s+0(FP), DI
MOVQ p+8(FP), SI
MOVQ m+16(FP), DX
CALL ·___asm2asm_compiled_code__DO_NOT_CALL_THIS_SYMBOL___+13051(SB) // _skip_one
CALL ·___asm2asm_compiled_code__DO_NOT_CALL_THIS_SYMBOL___+13120(SB) // _skip_one
MOVQ AX, ret+24(FP)
RET
@ -7102,26 +7116,26 @@ TEXT ·__vnumber(SB), NOSPLIT, $0 - 24
MOVQ s+0(FP), DI
MOVQ p+8(FP), SI
MOVQ v+16(FP), DX
LEAQ ·___asm2asm_compiled_code__DO_NOT_CALL_THIS_SYMBOL___+11529(SB), AX // _vnumber
LEAQ ·___asm2asm_compiled_code__DO_NOT_CALL_THIS_SYMBOL___+11598(SB), AX // _vnumber
JMP AX
TEXT ·__vsigned(SB), NOSPLIT, $0 - 24
MOVQ s+0(FP), DI
MOVQ p+8(FP), SI
MOVQ v+16(FP), DX
LEAQ ·___asm2asm_compiled_code__DO_NOT_CALL_THIS_SYMBOL___+12501(SB), AX // _vsigned
LEAQ ·___asm2asm_compiled_code__DO_NOT_CALL_THIS_SYMBOL___+12570(SB), AX // _vsigned
JMP AX
TEXT ·__vstring(SB), NOSPLIT, $0 - 24
MOVQ s+0(FP), DI
MOVQ p+8(FP), SI
MOVQ v+16(FP), DX
LEAQ ·___asm2asm_compiled_code__DO_NOT_CALL_THIS_SYMBOL___+10760(SB), AX // _vstring
LEAQ ·___asm2asm_compiled_code__DO_NOT_CALL_THIS_SYMBOL___+10793(SB), AX // _vstring
JMP AX
TEXT ·__vunsigned(SB), NOSPLIT, $0 - 24
MOVQ s+0(FP), DI
MOVQ p+8(FP), SI
MOVQ v+16(FP), DX
LEAQ ·___asm2asm_compiled_code__DO_NOT_CALL_THIS_SYMBOL___+12778(SB), AX // _vunsigned
LEAQ ·___asm2asm_compiled_code__DO_NOT_CALL_THIS_SYMBOL___+12847(SB), AX // _vunsigned
JMP AX

View file

@ -19,16 +19,16 @@ var (
_subr__lspace = **(**uintptr)(unsafe.Pointer(&_func__base)) + 366
_subr__lzero = **(**uintptr)(unsafe.Pointer(&_func__base)) + 0
_subr__quote = **(**uintptr)(unsafe.Pointer(&_func__base)) + 5299
_subr__skip_array = **(**uintptr)(unsafe.Pointer(&_func__base)) + 15851
_subr__skip_object = **(**uintptr)(unsafe.Pointer(&_func__base)) + 15886
_subr__skip_one = **(**uintptr)(unsafe.Pointer(&_func__base)) + 13051
_subr__skip_array = **(**uintptr)(unsafe.Pointer(&_func__base)) + 15920
_subr__skip_object = **(**uintptr)(unsafe.Pointer(&_func__base)) + 15955
_subr__skip_one = **(**uintptr)(unsafe.Pointer(&_func__base)) + 13120
_subr__u64toa = **(**uintptr)(unsafe.Pointer(&_func__base)) + 3979
_subr__unquote = **(**uintptr)(unsafe.Pointer(&_func__base)) + 7136
_subr__value = **(**uintptr)(unsafe.Pointer(&_func__base)) + 9082
_subr__vnumber = **(**uintptr)(unsafe.Pointer(&_func__base)) + 11529
_subr__vsigned = **(**uintptr)(unsafe.Pointer(&_func__base)) + 12501
_subr__vstring = **(**uintptr)(unsafe.Pointer(&_func__base)) + 10760
_subr__vunsigned = **(**uintptr)(unsafe.Pointer(&_func__base)) + 12778
_subr__vnumber = **(**uintptr)(unsafe.Pointer(&_func__base)) + 11598
_subr__vsigned = **(**uintptr)(unsafe.Pointer(&_func__base)) + 12570
_subr__vstring = **(**uintptr)(unsafe.Pointer(&_func__base)) + 10793
_subr__vunsigned = **(**uintptr)(unsafe.Pointer(&_func__base)) + 12847
)
var (

View file

@ -413,8 +413,9 @@ long value(const char *s, size_t n, long p, JsonState *ret, int allow_control) {
}
void vstring(const GoString *src, long *p, JsonState *ret) {
int64_t v = -1;
int64_t i = *p;
ssize_t e = advance_string(src, i, &ret->ep);
ssize_t e = advance_string(src, i, &v);
/* check for errors */
if (e < 0) {
@ -423,10 +424,11 @@ void vstring(const GoString *src, long *p, JsonState *ret) {
return;
}
/* update the result */
/* update the result, and fix the escape position (escaping past the end of string) */
*p = e;
ret->iv = i;
ret->vt = V_STRING;
ret->ep = v >= e ? -1 : v;
}
#define set_vt(t) \