mirror of
https://github.com/ii64/sonic.git
synced 2026-06-21 00:46:43 +08:00
fix: make it return error when unmarshal infinity float number
This commit is contained in:
parent
ec15697761
commit
9ba912d20a
8 changed files with 183 additions and 126 deletions
|
|
@ -264,7 +264,7 @@ LBB2_5:
|
|||
LONG $0x4fdc6941; WORD $0x1293; BYTE $0x00 // imull $1217359, %r12d, %ebx
|
||||
MOVQ R12, AX
|
||||
SHLQ $4, AX
|
||||
LONG $0xfd0d8d48; WORD $0x0073; BYTE $0x00 // leaq $29693(%rip), %rcx /* _DOUBLE_POW5_INV_SPLIT(%rip) */
|
||||
LONG $0x290d8d48; WORD $0x0074; BYTE $0x00 // leaq $29737(%rip), %rcx /* _DOUBLE_POW5_INV_SPLIT(%rip) */
|
||||
MOVQ R8, DI
|
||||
ORQ $2, DI
|
||||
MOVQ 0(AX)(CX*1), R10
|
||||
|
|
@ -351,7 +351,7 @@ LBB2_12:
|
|||
SHRL $19, BX
|
||||
MOVLQSX AX, SI
|
||||
SHLQ $4, SI
|
||||
LONG $0x280d8d4c; WORD $0x0088; BYTE $0x00 // leaq $34856(%rip), %r9 /* _DOUBLE_POW5_SPLIT(%rip) */
|
||||
LONG $0x540d8d4c; WORD $0x0088; BYTE $0x00 // leaq $34900(%rip), %r9 /* _DOUBLE_POW5_SPLIT(%rip) */
|
||||
MOVQ R8, DI
|
||||
ORQ $2, DI
|
||||
MOVQ 0(SI)(R9*1), R15
|
||||
|
|
@ -755,7 +755,7 @@ LBB2_60:
|
|||
LEAQ 1(R13), BX
|
||||
MOVQ BX, SI
|
||||
MOVL R15, DX
|
||||
LONG $0x003d0ae8; BYTE $0x00 // callq _print_mantissa
|
||||
LONG $0x003d36e8; BYTE $0x00 // callq _print_mantissa
|
||||
MOVB 1(R13), AX
|
||||
MOVB AX, 0(R13)
|
||||
MOVL $1, CX
|
||||
|
|
@ -784,7 +784,7 @@ LBB2_65:
|
|||
LEAL 0(DX)(DX*1), CX
|
||||
LEAL 0(CX)(CX*4), CX
|
||||
SUBL CX, AX
|
||||
LONG $0x0b0d8d48; WORD $0x0097; BYTE $0x00 // leaq $38667(%rip), %rcx /* _Digits(%rip) */
|
||||
LONG $0x370d8d48; WORD $0x0097; BYTE $0x00 // leaq $38711(%rip), %rcx /* _Digits(%rip) */
|
||||
MOVWLZX 0(CX)(DX*2), CX
|
||||
MOVL BX, DX
|
||||
MOVW CX, 0(R13)(DX*1)
|
||||
|
|
@ -807,7 +807,7 @@ LBB2_68:
|
|||
MOVL BX, SI
|
||||
ADDQ -56(BP), SI
|
||||
MOVL R15, DX
|
||||
LONG $0x003c66e8; BYTE $0x00 // callq _print_mantissa
|
||||
LONG $0x003c92e8; BYTE $0x00 // callq _print_mantissa
|
||||
TESTL R13, R13
|
||||
JE LBB2_79
|
||||
LEAL 0(R13)(BX*1), AX
|
||||
|
|
@ -839,7 +839,7 @@ LBB2_73:
|
|||
CMPL AX, $10
|
||||
JL LBB2_81
|
||||
WORD $0x9848 // cltq
|
||||
LONG $0x5e0d8d48; WORD $0x0096; BYTE $0x00 // leaq $38494(%rip), %rcx /* _Digits(%rip) */
|
||||
LONG $0x8a0d8d48; WORD $0x0096; BYTE $0x00 // leaq $38538(%rip), %rcx /* _Digits(%rip) */
|
||||
MOVWLZX 0(CX)(AX*2), AX
|
||||
MOVL BX, CX
|
||||
MOVW AX, 0(R13)(CX*1)
|
||||
|
|
@ -1041,7 +1041,7 @@ LBB2_104:
|
|||
MOVQ R13, SI
|
||||
MOVL R15, DX
|
||||
WORD $0xf8c5; BYTE $0x77 // vzeroupper
|
||||
LONG $0x0038e5e8; BYTE $0x00 // callq _print_mantissa
|
||||
LONG $0x003911e8; BYTE $0x00 // callq _print_mantissa
|
||||
ADDL BX, R15
|
||||
MOVL R15, BX
|
||||
|
||||
|
|
@ -1134,7 +1134,7 @@ _u64toa:
|
|||
ADDQ AX, AX
|
||||
CMPL SI, $1000
|
||||
JB LBB4_3
|
||||
LONG $0x560d8d48; WORD $0x0092; BYTE $0x00 // leaq $37462(%rip), %rcx /* _Digits(%rip) */
|
||||
LONG $0x820d8d48; WORD $0x0092; BYTE $0x00 // leaq $37506(%rip), %rcx /* _Digits(%rip) */
|
||||
MOVB 0(DX)(CX*1), CX
|
||||
MOVB CX, 0(DI)
|
||||
MOVL $1, CX
|
||||
|
|
@ -1148,14 +1148,14 @@ LBB4_3:
|
|||
LBB4_4:
|
||||
MOVWLZX DX, DX
|
||||
ORQ $1, DX
|
||||
LONG $0x35358d48; WORD $0x0092; BYTE $0x00 // leaq $37429(%rip), %rsi /* _Digits(%rip) */
|
||||
LONG $0x61358d48; WORD $0x0092; BYTE $0x00 // leaq $37473(%rip), %rsi /* _Digits(%rip) */
|
||||
MOVB 0(DX)(SI*1), DX
|
||||
MOVL CX, SI
|
||||
INCL CX
|
||||
MOVB DX, 0(DI)(SI*1)
|
||||
|
||||
LBB4_6:
|
||||
LONG $0x24158d48; WORD $0x0092; BYTE $0x00 // leaq $37412(%rip), %rdx /* _Digits(%rip) */
|
||||
LONG $0x50158d48; WORD $0x0092; BYTE $0x00 // leaq $37456(%rip), %rdx /* _Digits(%rip) */
|
||||
MOVB 0(AX)(DX*1), DX
|
||||
MOVL CX, SI
|
||||
INCL CX
|
||||
|
|
@ -1164,7 +1164,7 @@ LBB4_6:
|
|||
LBB4_7:
|
||||
MOVWLZX AX, AX
|
||||
ORQ $1, AX
|
||||
LONG $0x0c158d48; WORD $0x0092; BYTE $0x00 // leaq $37388(%rip), %rdx /* _Digits(%rip) */
|
||||
LONG $0x38158d48; WORD $0x0092; BYTE $0x00 // leaq $37432(%rip), %rdx /* _Digits(%rip) */
|
||||
MOVB 0(AX)(DX*1), AX
|
||||
MOVL CX, DX
|
||||
INCL CX
|
||||
|
|
@ -1211,7 +1211,7 @@ LBB4_8:
|
|||
ADDQ R11, R11
|
||||
CMPL SI, $10000000
|
||||
JB LBB4_11
|
||||
LONG $0x75058d48; WORD $0x0091; BYTE $0x00 // leaq $37237(%rip), %rax /* _Digits(%rip) */
|
||||
LONG $0xa1058d48; WORD $0x0091; BYTE $0x00 // leaq $37281(%rip), %rax /* _Digits(%rip) */
|
||||
MOVB 0(R10)(AX*1), AX
|
||||
MOVB AX, 0(DI)
|
||||
MOVL $1, CX
|
||||
|
|
@ -1225,14 +1225,14 @@ LBB4_11:
|
|||
LBB4_12:
|
||||
MOVL R10, AX
|
||||
ORQ $1, AX
|
||||
LONG $0x50358d48; WORD $0x0091; BYTE $0x00 // leaq $37200(%rip), %rsi /* _Digits(%rip) */
|
||||
LONG $0x7c358d48; WORD $0x0091; BYTE $0x00 // leaq $37244(%rip), %rsi /* _Digits(%rip) */
|
||||
MOVB 0(AX)(SI*1), AX
|
||||
MOVL CX, SI
|
||||
INCL CX
|
||||
MOVB AX, 0(DI)(SI*1)
|
||||
|
||||
LBB4_14:
|
||||
LONG $0x3f058d48; WORD $0x0091; BYTE $0x00 // leaq $37183(%rip), %rax /* _Digits(%rip) */
|
||||
LONG $0x6b058d48; WORD $0x0091; BYTE $0x00 // leaq $37227(%rip), %rax /* _Digits(%rip) */
|
||||
MOVB 0(R9)(AX*1), AX
|
||||
MOVL CX, SI
|
||||
INCL CX
|
||||
|
|
@ -1241,7 +1241,7 @@ LBB4_14:
|
|||
LBB4_15:
|
||||
MOVWLZX R9, AX
|
||||
ORQ $1, AX
|
||||
LONG $0x25358d48; WORD $0x0091; BYTE $0x00 // leaq $37157(%rip), %rsi /* _Digits(%rip) */
|
||||
LONG $0x51358d48; WORD $0x0091; BYTE $0x00 // leaq $37201(%rip), %rsi /* _Digits(%rip) */
|
||||
MOVB 0(AX)(SI*1), AX
|
||||
MOVL CX, DX
|
||||
MOVB AX, 0(DI)(DX*1)
|
||||
|
|
@ -1323,7 +1323,7 @@ LBB4_16:
|
|||
MOVL $16, CX
|
||||
SUBL AX, CX
|
||||
SHLQ $4, AX
|
||||
LONG $0x9a158d48; WORD $0x0090; BYTE $0x00 // leaq $37018(%rip), %rdx /* _VecShiftShuffles(%rip) */
|
||||
LONG $0xc6158d48; WORD $0x0090; BYTE $0x00 // leaq $37062(%rip), %rdx /* _VecShiftShuffles(%rip) */
|
||||
LONG $0x0071e2c4; WORD $0x1004 // vpshufb (%rax,%rdx), %xmm1, %xmm0
|
||||
LONG $0x077ffac5 // vmovdqu %xmm0, (%rdi)
|
||||
MOVL CX, AX
|
||||
|
|
@ -1349,7 +1349,7 @@ LBB4_20:
|
|||
CMPL DX, $99
|
||||
JA LBB4_22
|
||||
MOVL DX, AX
|
||||
LONG $0x7d0d8d48; WORD $0x008f; BYTE $0x00 // leaq $36733(%rip), %rcx /* _Digits(%rip) */
|
||||
LONG $0xa90d8d48; WORD $0x008f; BYTE $0x00 // leaq $36777(%rip), %rcx /* _Digits(%rip) */
|
||||
MOVB 0(CX)(AX*2), DX
|
||||
MOVB 1(CX)(AX*2), AX
|
||||
MOVB DX, 0(DI)
|
||||
|
|
@ -1374,7 +1374,7 @@ LBB4_22:
|
|||
WORD $0xc96b; BYTE $0x64 // imull $100, %ecx, %ecx
|
||||
SUBL CX, AX
|
||||
MOVWLZX AX, AX
|
||||
LONG $0x2c0d8d48; WORD $0x008f; BYTE $0x00 // leaq $36652(%rip), %rcx /* _Digits(%rip) */
|
||||
LONG $0x580d8d48; WORD $0x008f; BYTE $0x00 // leaq $36696(%rip), %rcx /* _Digits(%rip) */
|
||||
MOVB 0(CX)(AX*2), DX
|
||||
MOVB 1(CX)(AX*2), AX
|
||||
MOVB DX, 1(DI)
|
||||
|
|
@ -1386,7 +1386,7 @@ LBB4_24:
|
|||
WORD $0xc86b; BYTE $0x64 // imull $100, %eax, %ecx
|
||||
SUBL CX, DX
|
||||
MOVWLZX AX, AX
|
||||
LONG $0x09058d4c; WORD $0x008f; BYTE $0x00 // leaq $36617(%rip), %r8 /* _Digits(%rip) */
|
||||
LONG $0x35058d4c; WORD $0x008f; BYTE $0x00 // leaq $36661(%rip), %r8 /* _Digits(%rip) */
|
||||
MOVB 0(R8)(AX*2), CX
|
||||
MOVB 1(R8)(AX*2), AX
|
||||
MOVB CX, 0(DI)
|
||||
|
|
@ -1472,8 +1472,8 @@ _quote:
|
|||
MOVQ CX, R10
|
||||
MOVQ DX, CX
|
||||
TESTB $1, R8
|
||||
LONG $0x08058d48; WORD $0x008f; BYTE $0x00 // leaq $36616(%rip), %rax /* __SingleQuoteTab(%rip) */
|
||||
LONG $0x01158d48; WORD $0x009f; BYTE $0x00 // leaq $40705(%rip), %rdx /* __DoubleQuoteTab(%rip) */
|
||||
LONG $0x34058d48; WORD $0x008f; BYTE $0x00 // leaq $36660(%rip), %rax /* __SingleQuoteTab(%rip) */
|
||||
LONG $0x2d158d48; WORD $0x009f; BYTE $0x00 // leaq $40749(%rip), %rdx /* __DoubleQuoteTab(%rip) */
|
||||
LONG $0xd0440f48 // cmoveq %rax, %rdx
|
||||
MOVQ CX, R8
|
||||
MOVQ DI, AX
|
||||
|
|
@ -1581,7 +1581,7 @@ LBB5_14:
|
|||
TESTQ R10, R10
|
||||
MOVQ -48(BP), CX
|
||||
MOVQ -56(BP), DI
|
||||
LONG $0x8d2d8d4c; WORD $0x008d; BYTE $0x00 // leaq $36237(%rip), %r13 /* __SingleQuoteTab(%rip) */
|
||||
LONG $0xb92d8d4c; WORD $0x008d; BYTE $0x00 // leaq $36281(%rip), %r13 /* __SingleQuoteTab(%rip) */
|
||||
JLE LBB5_29
|
||||
|
||||
LBB5_16:
|
||||
|
|
@ -1843,7 +1843,7 @@ _unquote:
|
|||
MOVQ R8, AX
|
||||
MOVQ R8, -72(BP)
|
||||
ANDL $1, R8
|
||||
LONG $0xfa3d8d48; WORD $0x00aa; BYTE $0x00 // leaq $43770(%rip), %rdi /* __UnquoteTab(%rip) */
|
||||
LONG $0x263d8d48; WORD $0x00ab; BYTE $0x00 // leaq $43814(%rip), %rdi /* __UnquoteTab(%rip) */
|
||||
QUAD $0xffffffb5056ffac5 // vmovdqu $-75(%rip), %xmm0 /* LCPI6_0(%rip) */
|
||||
MOVQ BX, AX
|
||||
MOVQ BX, -56(BP)
|
||||
|
|
@ -2585,14 +2585,14 @@ _atof_eisel_lemire64:
|
|||
MOVQ CX, R14
|
||||
MOVL DX, R15
|
||||
MOVQ DI, R13
|
||||
LONG $0x002765e8; BYTE $0x00 // callq _count_len_u64
|
||||
LONG $0x002791e8; BYTE $0x00 // callq _count_len_u64
|
||||
MOVL AX, R8
|
||||
MOVL AX, CX
|
||||
NEGL CX
|
||||
SHLQ CX, R13
|
||||
MOVL BX, CX
|
||||
SHLQ $4, CX
|
||||
LONG $0xaa158d4c; WORD $0x002a; BYTE $0x00 // leaq $10922(%rip), %r10 /* _POW10_M128_TAB(%rip) */
|
||||
LONG $0xd6158d4c; WORD $0x002a; BYTE $0x00 // leaq $10966(%rip), %r10 /* _POW10_M128_TAB(%rip) */
|
||||
MOVQ R13, AX
|
||||
MULQ 8(CX)(R10*1)
|
||||
MOVQ AX, R9
|
||||
|
|
@ -2714,7 +2714,7 @@ LBB8_5:
|
|||
MOVQ BX, -48(BP)
|
||||
JLE LBB8_12
|
||||
XORL R12, R12
|
||||
LONG $0xbf358d4c; WORD $0x0054; BYTE $0x00 // leaq $21695(%rip), %r14 /* _POW_TAB(%rip) */
|
||||
LONG $0xeb358d4c; WORD $0x0054; BYTE $0x00 // leaq $21739(%rip), %r14 /* _POW_TAB(%rip) */
|
||||
JMP LBB8_8
|
||||
|
||||
LBB8_10:
|
||||
|
|
@ -2726,7 +2726,7 @@ LBB8_10:
|
|||
LBB8_11:
|
||||
MOVQ R15, DI
|
||||
MOVL BX, SI
|
||||
LONG $0x00277ee8; BYTE $0x00 // callq _right_shift
|
||||
LONG $0x0027aae8; BYTE $0x00 // callq _right_shift
|
||||
|
||||
LBB8_7:
|
||||
ADDL BX, R12
|
||||
|
|
@ -2743,7 +2743,7 @@ LBB8_8:
|
|||
JMP LBB8_7
|
||||
|
||||
LBB8_12:
|
||||
LONG $0x78358d4c; WORD $0x0054; BYTE $0x00 // leaq $21624(%rip), %r14 /* _POW_TAB(%rip) */
|
||||
LONG $0xa4358d4c; WORD $0x0054; BYTE $0x00 // leaq $21668(%rip), %r14 /* _POW_TAB(%rip) */
|
||||
JMP LBB8_14
|
||||
|
||||
LBB8_18:
|
||||
|
|
@ -2754,7 +2754,7 @@ LBB8_18:
|
|||
LBB8_20:
|
||||
MOVQ R15, DI
|
||||
MOVL BX, SI
|
||||
LONG $0x0025d1e8; BYTE $0x00 // callq _left_shift
|
||||
LONG $0x0025fde8; BYTE $0x00 // callq _left_shift
|
||||
MOVL 804(R15), AX
|
||||
|
||||
LBB8_13:
|
||||
|
|
@ -2794,7 +2794,7 @@ LBB8_21:
|
|||
LBB8_25:
|
||||
MOVQ R15, DI
|
||||
MOVL $60, SI
|
||||
LONG $0x0026d0e8; BYTE $0x00 // callq _right_shift
|
||||
LONG $0x0026fce8; BYTE $0x00 // callq _right_shift
|
||||
ADDL $60, R12
|
||||
CMPL R12, $-120
|
||||
JL LBB8_25
|
||||
|
|
@ -2820,7 +2820,7 @@ LBB8_31:
|
|||
NEGL R12
|
||||
MOVQ R15, DI
|
||||
MOVL R12, SI
|
||||
LONG $0x00268ae8; BYTE $0x00 // callq _right_shift
|
||||
LONG $0x0026b6e8; BYTE $0x00 // callq _right_shift
|
||||
MOVL $-1022, R14
|
||||
|
||||
LBB8_32:
|
||||
|
|
@ -2828,7 +2828,7 @@ LBB8_32:
|
|||
JE LBB8_34
|
||||
MOVQ R15, DI
|
||||
MOVL $53, SI
|
||||
LONG $0x002506e8; BYTE $0x00 // callq _left_shift
|
||||
LONG $0x002532e8; BYTE $0x00 // callq _left_shift
|
||||
|
||||
LBB8_34:
|
||||
MOVL 804(R15), AX
|
||||
|
|
@ -4235,7 +4235,7 @@ LBB13_47:
|
|||
JE LBB13_51
|
||||
MOVL $1, R8
|
||||
CMPB SI, $43
|
||||
JNE LBB13_84
|
||||
JNE LBB13_85
|
||||
|
||||
LBB13_51:
|
||||
ADDQ $2, AX
|
||||
|
|
@ -4246,7 +4246,7 @@ LBB13_51:
|
|||
SETEQ DX
|
||||
LEAL -1(DX)(DX*1), R8
|
||||
MOVB 0(R11)(AX*1), SI
|
||||
JMP LBB13_85
|
||||
JMP LBB13_86
|
||||
|
||||
LBB13_53:
|
||||
MOVQ R15, 0(R14)
|
||||
|
|
@ -4310,7 +4310,7 @@ LBB13_63:
|
|||
CMPL BX, $23
|
||||
JL LBB13_72
|
||||
LEAL -22(BX), AX
|
||||
LONG $0x340d8d48; WORD $0x014f; BYTE $0x00 // leaq $85812(%rip), %rcx /* _P10_TAB(%rip) */
|
||||
LONG $0x600d8d48; WORD $0x014f; BYTE $0x00 // leaq $85856(%rip), %rcx /* _P10_TAB(%rip) */
|
||||
LONG $0x0459fbc5; BYTE $0xc1 // vmulsd (%rcx,%rax,8), %xmm0, %xmm0
|
||||
LONG $0x4511fbc5; BYTE $0xc8 // vmovsd %xmm0, $-56(%rbp)
|
||||
MOVL $22, AX
|
||||
|
|
@ -4326,7 +4326,7 @@ LBB13_69:
|
|||
CMPL BX, $-22
|
||||
JB LBB13_76
|
||||
NEGL BX
|
||||
LONG $0xfc058d48; WORD $0x014e; BYTE $0x00 // leaq $85756(%rip), %rax /* _P10_TAB(%rip) */
|
||||
LONG $0x28058d48; WORD $0x014f; BYTE $0x00 // leaq $85800(%rip), %rax /* _P10_TAB(%rip) */
|
||||
LONG $0x045efbc5; BYTE $0xd8 // vdivsd (%rax,%rbx,8), %xmm0, %xmm0
|
||||
LONG $0x4511fbc5; BYTE $0xc8 // vmovsd %xmm0, $-56(%rbp)
|
||||
JMP LBB13_82
|
||||
|
|
@ -4343,7 +4343,7 @@ LBB13_71:
|
|||
LONG $0x7ef9e1c4; BYTE $0xc1 // vmovq %xmm0, %rcx
|
||||
ORQ AX, CX
|
||||
MOVQ CX, 8(R13)
|
||||
JMP LBB13_83
|
||||
JMP LBB13_84
|
||||
|
||||
LBB13_72:
|
||||
MOVL BX, AX
|
||||
|
|
@ -4355,7 +4355,7 @@ LBB13_73:
|
|||
LONG $0xc82ef9c5 // vucomisd %xmm0, %xmm1
|
||||
JA LBB13_76
|
||||
MOVL AX, AX
|
||||
LONG $0x8f0d8d48; WORD $0x014e; BYTE $0x00 // leaq $85647(%rip), %rcx /* _P10_TAB(%rip) */
|
||||
LONG $0xbb0d8d48; WORD $0x014e; BYTE $0x00 // leaq $85691(%rip), %rcx /* _P10_TAB(%rip) */
|
||||
LONG $0x0459fbc5; BYTE $0xc1 // vmulsd (%rcx,%rax,8), %xmm0, %xmm0
|
||||
LONG $0x4511fbc5; BYTE $0xc8 // vmovsd %xmm0, $-56(%rbp)
|
||||
JMP LBB13_82
|
||||
|
|
@ -4401,27 +4401,35 @@ LBB13_81:
|
|||
|
||||
LBB13_82:
|
||||
LONG $0x117bc1c4; WORD $0x0845 // vmovsd %xmm0, $8(%r13)
|
||||
LONG $0x7ef9e1c4; BYTE $0xc0 // vmovq %xmm0, %rax
|
||||
MOVQ $-9223372036854775808, CX
|
||||
DECQ CX
|
||||
ANDQ AX, CX
|
||||
MOVQ $9218868437227405312, AX
|
||||
CMPQ CX, AX
|
||||
JNE LBB13_84
|
||||
MOVQ $-8, 0(R13)
|
||||
|
||||
LBB13_83:
|
||||
LBB13_84:
|
||||
MOVQ R15, 0(R14)
|
||||
JMP LBB13_54
|
||||
|
||||
LBB13_84:
|
||||
LBB13_85:
|
||||
MOVQ DX, AX
|
||||
|
||||
LBB13_85:
|
||||
LBB13_86:
|
||||
LEAL -48(SI), DX
|
||||
CMPB DX, $9
|
||||
JA LBB13_5
|
||||
XORL CX, CX
|
||||
CMPQ AX, R15
|
||||
JAE LBB13_92
|
||||
JAE LBB13_93
|
||||
CMPB DX, $9
|
||||
JA LBB13_92
|
||||
JA LBB13_93
|
||||
LEAQ -1(R15), R9
|
||||
XORL CX, CX
|
||||
|
||||
LBB13_89:
|
||||
LBB13_90:
|
||||
MOVL CX, DX
|
||||
CMPL CX, $10000
|
||||
LEAL 0(DX)(DX*4), CX
|
||||
|
|
@ -4429,18 +4437,18 @@ LBB13_89:
|
|||
LEAL -48(SI)(CX*2), CX
|
||||
WORD $0x4d0f; BYTE $0xca // cmovgel %edx, %ecx
|
||||
CMPQ R9, AX
|
||||
JE LBB13_91
|
||||
JE LBB13_92
|
||||
MOVBLZX 1(R11)(AX*1), SI
|
||||
INCQ AX
|
||||
LEAL -48(SI), DX
|
||||
CMPB DX, $10
|
||||
JB LBB13_89
|
||||
JMP LBB13_92
|
||||
|
||||
LBB13_91:
|
||||
MOVQ R15, AX
|
||||
JB LBB13_90
|
||||
JMP LBB13_93
|
||||
|
||||
LBB13_92:
|
||||
MOVQ R15, AX
|
||||
|
||||
LBB13_93:
|
||||
IMULL R8, CX
|
||||
ADDL CX, BX
|
||||
MOVQ AX, R15
|
||||
|
|
@ -4968,7 +4976,7 @@ LBB17_58:
|
|||
MOVQ 8(AX), SI
|
||||
MOVQ R12, DX
|
||||
LEAQ -72(BP), CX
|
||||
LONG $0xfff2b0e8; BYTE $0xff // callq _advance_string
|
||||
LONG $0xfff284e8; BYTE $0xff // callq _advance_string
|
||||
MOVQ AX, CX
|
||||
TESTQ AX, AX
|
||||
JS LBB17_93
|
||||
|
|
@ -5058,7 +5066,7 @@ LBB17_70:
|
|||
MOVQ 8(AX), SI
|
||||
MOVQ R12, DX
|
||||
LEAQ -72(BP), CX
|
||||
LONG $0xfff162e8; BYTE $0xff // callq _advance_string
|
||||
LONG $0xfff136e8; BYTE $0xff // callq _advance_string
|
||||
MOVQ AX, CX
|
||||
TESTQ AX, AX
|
||||
JS LBB17_93
|
||||
|
|
@ -5447,7 +5455,7 @@ _skip_string:
|
|||
MOVQ 8(R15), SI
|
||||
LEAQ -32(BP), CX
|
||||
MOVQ BX, DX
|
||||
LONG $0xffec7de8; BYTE $0xff // callq _advance_string
|
||||
LONG $0xffec51e8; BYTE $0xff // callq _advance_string
|
||||
TESTQ AX, AX
|
||||
JS LBB20_2
|
||||
DECQ BX
|
||||
|
|
@ -12875,7 +12883,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___+16717(SB) // _skip_array
|
||||
CALL ·___asm2asm_compiled_code__DO_NOT_CALL_THIS_SYMBOL___+16761(SB) // _skip_array
|
||||
MOVQ AX, ret+24(FP)
|
||||
RET
|
||||
|
||||
|
|
@ -12883,7 +12891,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___+16752(SB) // _skip_object
|
||||
CALL ·___asm2asm_compiled_code__DO_NOT_CALL_THIS_SYMBOL___+16796(SB) // _skip_object
|
||||
MOVQ AX, ret+24(FP)
|
||||
RET
|
||||
|
||||
|
|
@ -12891,7 +12899,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___+14395(SB) // _skip_one
|
||||
CALL ·___asm2asm_compiled_code__DO_NOT_CALL_THIS_SYMBOL___+14439(SB) // _skip_one
|
||||
MOVQ AX, ret+24(FP)
|
||||
RET
|
||||
|
||||
|
|
@ -12933,7 +12941,7 @@ 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___+13845(SB), AX // _vsigned
|
||||
LEAQ ·___asm2asm_compiled_code__DO_NOT_CALL_THIS_SYMBOL___+13889(SB), AX // _vsigned
|
||||
JMP AX
|
||||
|
||||
TEXT ·__vstring(SB), NOSPLIT, $0 - 24
|
||||
|
|
@ -12947,5 +12955,5 @@ 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___+14122(SB), AX // _vunsigned
|
||||
LEAQ ·___asm2asm_compiled_code__DO_NOT_CALL_THIS_SYMBOL___+14166(SB), AX // _vunsigned
|
||||
JMP AX
|
||||
|
|
|
|||
|
|
@ -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)) + 4864
|
||||
_subr__skip_array = **(**uintptr)(unsafe.Pointer(&_func__base)) + 16717
|
||||
_subr__skip_object = **(**uintptr)(unsafe.Pointer(&_func__base)) + 16752
|
||||
_subr__skip_one = **(**uintptr)(unsafe.Pointer(&_func__base)) + 14395
|
||||
_subr__skip_array = **(**uintptr)(unsafe.Pointer(&_func__base)) + 16761
|
||||
_subr__skip_object = **(**uintptr)(unsafe.Pointer(&_func__base)) + 16796
|
||||
_subr__skip_one = **(**uintptr)(unsafe.Pointer(&_func__base)) + 14439
|
||||
_subr__u64toa = **(**uintptr)(unsafe.Pointer(&_func__base)) + 3644
|
||||
_subr__unquote = **(**uintptr)(unsafe.Pointer(&_func__base)) + 5885
|
||||
_subr__value = **(**uintptr)(unsafe.Pointer(&_func__base)) + 10074
|
||||
_subr__vnumber = **(**uintptr)(unsafe.Pointer(&_func__base)) + 12633
|
||||
_subr__vsigned = **(**uintptr)(unsafe.Pointer(&_func__base)) + 13845
|
||||
_subr__vsigned = **(**uintptr)(unsafe.Pointer(&_func__base)) + 13889
|
||||
_subr__vstring = **(**uintptr)(unsafe.Pointer(&_func__base)) + 11680
|
||||
_subr__vunsigned = **(**uintptr)(unsafe.Pointer(&_func__base)) + 14122
|
||||
_subr__vunsigned = **(**uintptr)(unsafe.Pointer(&_func__base)) + 14166
|
||||
)
|
||||
|
||||
var (
|
||||
|
|
|
|||
|
|
@ -316,7 +316,7 @@ LBB2_5:
|
|||
LONG $0x4fdc6941; WORD $0x1293; BYTE $0x00 // imull $1217359, %r12d, %ebx
|
||||
MOVQ R12, AX
|
||||
SHLQ $4, AX
|
||||
LONG $0xc70d8d48; WORD $0x007e; BYTE $0x00 // leaq $32455(%rip), %rcx /* _DOUBLE_POW5_INV_SPLIT(%rip) */
|
||||
LONG $0xf30d8d48; WORD $0x007e; BYTE $0x00 // leaq $32499(%rip), %rcx /* _DOUBLE_POW5_INV_SPLIT(%rip) */
|
||||
MOVQ R8, DI
|
||||
ORQ $2, DI
|
||||
MOVQ 0(AX)(CX*1), R10
|
||||
|
|
@ -403,7 +403,7 @@ LBB2_12:
|
|||
SHRL $19, BX
|
||||
MOVLQSX AX, SI
|
||||
SHLQ $4, SI
|
||||
LONG $0xf20d8d4c; WORD $0x0092; BYTE $0x00 // leaq $37618(%rip), %r9 /* _DOUBLE_POW5_SPLIT(%rip) */
|
||||
LONG $0x1e0d8d4c; WORD $0x0093; BYTE $0x00 // leaq $37662(%rip), %r9 /* _DOUBLE_POW5_SPLIT(%rip) */
|
||||
MOVQ R8, DI
|
||||
ORQ $2, DI
|
||||
MOVQ 0(SI)(R9*1), R15
|
||||
|
|
@ -807,7 +807,7 @@ LBB2_60:
|
|||
LEAQ 1(R13), BX
|
||||
MOVQ BX, SI
|
||||
MOVL R15, DX
|
||||
LONG $0x0047d4e8; BYTE $0x00 // callq _print_mantissa
|
||||
LONG $0x004800e8; BYTE $0x00 // callq _print_mantissa
|
||||
MOVB 1(R13), AX
|
||||
MOVB AX, 0(R13)
|
||||
MOVL $1, CX
|
||||
|
|
@ -836,7 +836,7 @@ LBB2_65:
|
|||
LEAL 0(DX)(DX*1), CX
|
||||
LEAL 0(CX)(CX*4), CX
|
||||
SUBL CX, AX
|
||||
LONG $0xd50d8d48; WORD $0x00a1; BYTE $0x00 // leaq $41429(%rip), %rcx /* _Digits(%rip) */
|
||||
LONG $0x010d8d48; WORD $0x00a2; BYTE $0x00 // leaq $41473(%rip), %rcx /* _Digits(%rip) */
|
||||
MOVWLZX 0(CX)(DX*2), CX
|
||||
MOVL BX, DX
|
||||
MOVW CX, 0(R13)(DX*1)
|
||||
|
|
@ -859,7 +859,7 @@ LBB2_68:
|
|||
MOVL BX, SI
|
||||
ADDQ -56(BP), SI
|
||||
MOVL R15, DX
|
||||
LONG $0x004730e8; BYTE $0x00 // callq _print_mantissa
|
||||
LONG $0x00475ce8; BYTE $0x00 // callq _print_mantissa
|
||||
TESTL R13, R13
|
||||
JE LBB2_79
|
||||
LEAL 0(R13)(BX*1), AX
|
||||
|
|
@ -891,7 +891,7 @@ LBB2_73:
|
|||
CMPL AX, $10
|
||||
JL LBB2_81
|
||||
WORD $0x9848 // cltq
|
||||
LONG $0x280d8d48; WORD $0x00a1; BYTE $0x00 // leaq $41256(%rip), %rcx /* _Digits(%rip) */
|
||||
LONG $0x540d8d48; WORD $0x00a1; BYTE $0x00 // leaq $41300(%rip), %rcx /* _Digits(%rip) */
|
||||
MOVWLZX 0(CX)(AX*2), AX
|
||||
MOVL BX, CX
|
||||
MOVW AX, 0(R13)(CX*1)
|
||||
|
|
@ -1093,7 +1093,7 @@ LBB2_104:
|
|||
MOVQ R13, SI
|
||||
MOVL R15, DX
|
||||
WORD $0xf8c5; BYTE $0x77 // vzeroupper
|
||||
LONG $0x0043afe8; BYTE $0x00 // callq _print_mantissa
|
||||
LONG $0x0043dbe8; BYTE $0x00 // callq _print_mantissa
|
||||
ADDL BX, R15
|
||||
MOVL R15, BX
|
||||
|
||||
|
|
@ -1186,7 +1186,7 @@ _u64toa:
|
|||
ADDQ AX, AX
|
||||
CMPL SI, $1000
|
||||
JB LBB4_3
|
||||
LONG $0x200d8d48; WORD $0x009d; BYTE $0x00 // leaq $40224(%rip), %rcx /* _Digits(%rip) */
|
||||
LONG $0x4c0d8d48; WORD $0x009d; BYTE $0x00 // leaq $40268(%rip), %rcx /* _Digits(%rip) */
|
||||
MOVB 0(DX)(CX*1), CX
|
||||
MOVB CX, 0(DI)
|
||||
MOVL $1, CX
|
||||
|
|
@ -1200,14 +1200,14 @@ LBB4_3:
|
|||
LBB4_4:
|
||||
MOVWLZX DX, DX
|
||||
ORQ $1, DX
|
||||
LONG $0xff358d48; WORD $0x009c; BYTE $0x00 // leaq $40191(%rip), %rsi /* _Digits(%rip) */
|
||||
LONG $0x2b358d48; WORD $0x009d; BYTE $0x00 // leaq $40235(%rip), %rsi /* _Digits(%rip) */
|
||||
MOVB 0(DX)(SI*1), DX
|
||||
MOVL CX, SI
|
||||
INCL CX
|
||||
MOVB DX, 0(DI)(SI*1)
|
||||
|
||||
LBB4_6:
|
||||
LONG $0xee158d48; WORD $0x009c; BYTE $0x00 // leaq $40174(%rip), %rdx /* _Digits(%rip) */
|
||||
LONG $0x1a158d48; WORD $0x009d; BYTE $0x00 // leaq $40218(%rip), %rdx /* _Digits(%rip) */
|
||||
MOVB 0(AX)(DX*1), DX
|
||||
MOVL CX, SI
|
||||
INCL CX
|
||||
|
|
@ -1216,7 +1216,7 @@ LBB4_6:
|
|||
LBB4_7:
|
||||
MOVWLZX AX, AX
|
||||
ORQ $1, AX
|
||||
LONG $0xd6158d48; WORD $0x009c; BYTE $0x00 // leaq $40150(%rip), %rdx /* _Digits(%rip) */
|
||||
LONG $0x02158d48; WORD $0x009d; BYTE $0x00 // leaq $40194(%rip), %rdx /* _Digits(%rip) */
|
||||
MOVB 0(AX)(DX*1), AX
|
||||
MOVL CX, DX
|
||||
INCL CX
|
||||
|
|
@ -1263,7 +1263,7 @@ LBB4_8:
|
|||
ADDQ R11, R11
|
||||
CMPL SI, $10000000
|
||||
JB LBB4_11
|
||||
LONG $0x3f058d48; WORD $0x009c; BYTE $0x00 // leaq $39999(%rip), %rax /* _Digits(%rip) */
|
||||
LONG $0x6b058d48; WORD $0x009c; BYTE $0x00 // leaq $40043(%rip), %rax /* _Digits(%rip) */
|
||||
MOVB 0(R10)(AX*1), AX
|
||||
MOVB AX, 0(DI)
|
||||
MOVL $1, CX
|
||||
|
|
@ -1277,14 +1277,14 @@ LBB4_11:
|
|||
LBB4_12:
|
||||
MOVL R10, AX
|
||||
ORQ $1, AX
|
||||
LONG $0x1a358d48; WORD $0x009c; BYTE $0x00 // leaq $39962(%rip), %rsi /* _Digits(%rip) */
|
||||
LONG $0x46358d48; WORD $0x009c; BYTE $0x00 // leaq $40006(%rip), %rsi /* _Digits(%rip) */
|
||||
MOVB 0(AX)(SI*1), AX
|
||||
MOVL CX, SI
|
||||
INCL CX
|
||||
MOVB AX, 0(DI)(SI*1)
|
||||
|
||||
LBB4_14:
|
||||
LONG $0x09058d48; WORD $0x009c; BYTE $0x00 // leaq $39945(%rip), %rax /* _Digits(%rip) */
|
||||
LONG $0x35058d48; WORD $0x009c; BYTE $0x00 // leaq $39989(%rip), %rax /* _Digits(%rip) */
|
||||
MOVB 0(R9)(AX*1), AX
|
||||
MOVL CX, SI
|
||||
INCL CX
|
||||
|
|
@ -1293,7 +1293,7 @@ LBB4_14:
|
|||
LBB4_15:
|
||||
MOVWLZX R9, AX
|
||||
ORQ $1, AX
|
||||
LONG $0xef358d48; WORD $0x009b; BYTE $0x00 // leaq $39919(%rip), %rsi /* _Digits(%rip) */
|
||||
LONG $0x1b358d48; WORD $0x009c; BYTE $0x00 // leaq $39963(%rip), %rsi /* _Digits(%rip) */
|
||||
MOVB 0(AX)(SI*1), AX
|
||||
MOVL CX, DX
|
||||
MOVB AX, 0(DI)(DX*1)
|
||||
|
|
@ -1375,7 +1375,7 @@ LBB4_16:
|
|||
MOVL $16, CX
|
||||
SUBL AX, CX
|
||||
SHLQ $4, AX
|
||||
LONG $0x62158d48; WORD $0x009b; BYTE $0x00 // leaq $39778(%rip), %rdx /* _VecShiftShuffles(%rip) */
|
||||
LONG $0x8e158d48; WORD $0x009b; BYTE $0x00 // leaq $39822(%rip), %rdx /* _VecShiftShuffles(%rip) */
|
||||
LONG $0x0071e2c4; WORD $0x1004 // vpshufb (%rax,%rdx), %xmm1, %xmm0
|
||||
LONG $0x077ffac5 // vmovdqu %xmm0, (%rdi)
|
||||
MOVL CX, AX
|
||||
|
|
@ -1401,7 +1401,7 @@ LBB4_20:
|
|||
CMPL DX, $99
|
||||
JA LBB4_22
|
||||
MOVL DX, AX
|
||||
LONG $0x450d8d48; WORD $0x009a; BYTE $0x00 // leaq $39493(%rip), %rcx /* _Digits(%rip) */
|
||||
LONG $0x710d8d48; WORD $0x009a; BYTE $0x00 // leaq $39537(%rip), %rcx /* _Digits(%rip) */
|
||||
MOVB 0(CX)(AX*2), DX
|
||||
MOVB 1(CX)(AX*2), AX
|
||||
MOVB DX, 0(DI)
|
||||
|
|
@ -1426,7 +1426,7 @@ LBB4_22:
|
|||
WORD $0xc96b; BYTE $0x64 // imull $100, %ecx, %ecx
|
||||
SUBL CX, AX
|
||||
MOVWLZX AX, AX
|
||||
LONG $0xf40d8d48; WORD $0x0099; BYTE $0x00 // leaq $39412(%rip), %rcx /* _Digits(%rip) */
|
||||
LONG $0x200d8d48; WORD $0x009a; BYTE $0x00 // leaq $39456(%rip), %rcx /* _Digits(%rip) */
|
||||
MOVB 0(CX)(AX*2), DX
|
||||
MOVB 1(CX)(AX*2), AX
|
||||
MOVB DX, 1(DI)
|
||||
|
|
@ -1438,7 +1438,7 @@ LBB4_24:
|
|||
WORD $0xc86b; BYTE $0x64 // imull $100, %eax, %ecx
|
||||
SUBL CX, DX
|
||||
MOVWLZX AX, AX
|
||||
LONG $0xd1058d4c; WORD $0x0099; BYTE $0x00 // leaq $39377(%rip), %r8 /* _Digits(%rip) */
|
||||
LONG $0xfd058d4c; WORD $0x0099; BYTE $0x00 // leaq $39421(%rip), %r8 /* _Digits(%rip) */
|
||||
MOVB 0(R8)(AX*2), CX
|
||||
MOVB 1(R8)(AX*2), AX
|
||||
MOVB CX, 0(DI)
|
||||
|
|
@ -1536,8 +1536,8 @@ _quote:
|
|||
MOVQ CX, R14
|
||||
MOVQ DI, R12
|
||||
TESTB $1, R8
|
||||
LONG $0x6e058d48; WORD $0x0099; BYTE $0x00 // leaq $39278(%rip), %rax /* __SingleQuoteTab(%rip) */
|
||||
LONG $0x67158d4c; WORD $0x00a9; BYTE $0x00 // leaq $43367(%rip), %r10 /* __DoubleQuoteTab(%rip) */
|
||||
LONG $0x9a058d48; WORD $0x0099; BYTE $0x00 // leaq $39322(%rip), %rax /* __SingleQuoteTab(%rip) */
|
||||
LONG $0x93158d4c; WORD $0x00a9; BYTE $0x00 // leaq $43411(%rip), %r10 /* __DoubleQuoteTab(%rip) */
|
||||
LONG $0xd0440f4c // cmoveq %rax, %r10
|
||||
MOVQ DX, R8
|
||||
MOVQ DI, AX
|
||||
|
|
@ -1762,7 +1762,7 @@ LBB5_26:
|
|||
LBB5_27:
|
||||
TESTQ CX, CX
|
||||
MOVQ BX, R14
|
||||
LONG $0x0d0d8d4c; WORD $0x0096; BYTE $0x00 // leaq $38413(%rip), %r9 /* __SingleQuoteTab(%rip) */
|
||||
LONG $0x390d8d4c; WORD $0x0096; BYTE $0x00 // leaq $38457(%rip), %r9 /* __SingleQuoteTab(%rip) */
|
||||
JLE LBB5_60
|
||||
MOVQ SI, DX
|
||||
TESTQ SI, SI
|
||||
|
|
@ -2134,7 +2134,7 @@ _unquote:
|
|||
MOVQ R8, AX
|
||||
MOVQ R8, -64(BP)
|
||||
ANDL $1, R8
|
||||
LONG $0x370d8d4c; WORD $0x00b2; BYTE $0x00 // leaq $45623(%rip), %r9 /* __UnquoteTab(%rip) */
|
||||
LONG $0x630d8d4c; WORD $0x00b2; BYTE $0x00 // leaq $45667(%rip), %r9 /* __UnquoteTab(%rip) */
|
||||
QUAD $0xffffff9c0d6ffec5 // vmovdqu $-100(%rip), %ymm1 /* LCPI6_0(%rip) */
|
||||
QUAD $0xffffffb4156ffac5 // vmovdqu $-76(%rip), %xmm2 /* LCPI6_1(%rip) */
|
||||
MOVQ DI, AX
|
||||
|
|
@ -2925,14 +2925,14 @@ _atof_eisel_lemire64:
|
|||
MOVQ CX, R14
|
||||
MOVL DX, R15
|
||||
MOVQ DI, R13
|
||||
LONG $0x002df9e8; BYTE $0x00 // callq _count_len_u64
|
||||
LONG $0x002e25e8; BYTE $0x00 // callq _count_len_u64
|
||||
MOVL AX, R8
|
||||
MOVL AX, CX
|
||||
NEGL CX
|
||||
SHLQ CX, R13
|
||||
MOVL BX, CX
|
||||
SHLQ $4, CX
|
||||
LONG $0x3e158d4c; WORD $0x0031; BYTE $0x00 // leaq $12606(%rip), %r10 /* _POW10_M128_TAB(%rip) */
|
||||
LONG $0x6a158d4c; WORD $0x0031; BYTE $0x00 // leaq $12650(%rip), %r10 /* _POW10_M128_TAB(%rip) */
|
||||
MOVQ R13, AX
|
||||
MULQ 8(CX)(R10*1)
|
||||
MOVQ AX, R9
|
||||
|
|
@ -3069,7 +3069,7 @@ LBB8_5:
|
|||
MOVQ BX, -48(BP)
|
||||
JLE LBB8_12
|
||||
XORL R12, R12
|
||||
LONG $0x1b358d4c; WORD $0x005b; BYTE $0x00 // leaq $23323(%rip), %r14 /* _POW_TAB(%rip) */
|
||||
LONG $0x47358d4c; WORD $0x005b; BYTE $0x00 // leaq $23367(%rip), %r14 /* _POW_TAB(%rip) */
|
||||
JMP LBB8_8
|
||||
|
||||
LBB8_10:
|
||||
|
|
@ -3081,7 +3081,7 @@ LBB8_10:
|
|||
LBB8_11:
|
||||
MOVQ R15, DI
|
||||
MOVL BX, SI
|
||||
LONG $0x002ddae8; BYTE $0x00 // callq _right_shift
|
||||
LONG $0x002e06e8; BYTE $0x00 // callq _right_shift
|
||||
|
||||
LBB8_7:
|
||||
ADDL BX, R12
|
||||
|
|
@ -3098,7 +3098,7 @@ LBB8_8:
|
|||
JMP LBB8_7
|
||||
|
||||
LBB8_12:
|
||||
LONG $0xd4358d4c; WORD $0x005a; BYTE $0x00 // leaq $23252(%rip), %r14 /* _POW_TAB(%rip) */
|
||||
LONG $0x00358d4c; WORD $0x005b; BYTE $0x00 // leaq $23296(%rip), %r14 /* _POW_TAB(%rip) */
|
||||
JMP LBB8_14
|
||||
|
||||
LBB8_18:
|
||||
|
|
@ -3109,7 +3109,7 @@ LBB8_18:
|
|||
LBB8_20:
|
||||
MOVQ R15, DI
|
||||
MOVL BX, SI
|
||||
LONG $0x002c2de8; BYTE $0x00 // callq _left_shift
|
||||
LONG $0x002c59e8; BYTE $0x00 // callq _left_shift
|
||||
MOVL 804(R15), AX
|
||||
|
||||
LBB8_13:
|
||||
|
|
@ -3149,7 +3149,7 @@ LBB8_21:
|
|||
LBB8_25:
|
||||
MOVQ R15, DI
|
||||
MOVL $60, SI
|
||||
LONG $0x002d2ce8; BYTE $0x00 // callq _right_shift
|
||||
LONG $0x002d58e8; BYTE $0x00 // callq _right_shift
|
||||
ADDL $60, R12
|
||||
CMPL R12, $-120
|
||||
JL LBB8_25
|
||||
|
|
@ -3175,7 +3175,7 @@ LBB8_31:
|
|||
NEGL R12
|
||||
MOVQ R15, DI
|
||||
MOVL R12, SI
|
||||
LONG $0x002ce6e8; BYTE $0x00 // callq _right_shift
|
||||
LONG $0x002d12e8; BYTE $0x00 // callq _right_shift
|
||||
MOVL $-1022, R14
|
||||
|
||||
LBB8_32:
|
||||
|
|
@ -3183,7 +3183,7 @@ LBB8_32:
|
|||
JE LBB8_34
|
||||
MOVQ R15, DI
|
||||
MOVL $53, SI
|
||||
LONG $0x002b62e8; BYTE $0x00 // callq _left_shift
|
||||
LONG $0x002b8ee8; BYTE $0x00 // callq _left_shift
|
||||
|
||||
LBB8_34:
|
||||
MOVL 804(R15), AX
|
||||
|
|
@ -4716,7 +4716,7 @@ LBB13_47:
|
|||
JE LBB13_51
|
||||
MOVL $1, R8
|
||||
CMPB SI, $43
|
||||
JNE LBB13_84
|
||||
JNE LBB13_85
|
||||
|
||||
LBB13_51:
|
||||
ADDQ $2, AX
|
||||
|
|
@ -4727,7 +4727,7 @@ LBB13_51:
|
|||
SETEQ DX
|
||||
LEAL -1(DX)(DX*1), R8
|
||||
MOVB 0(R11)(AX*1), SI
|
||||
JMP LBB13_85
|
||||
JMP LBB13_86
|
||||
|
||||
LBB13_53:
|
||||
MOVQ R15, 0(R14)
|
||||
|
|
@ -4791,7 +4791,7 @@ LBB13_63:
|
|||
CMPL BX, $23
|
||||
JL LBB13_72
|
||||
LEAL -22(BX), AX
|
||||
LONG $0x3c0d8d48; WORD $0x0153; BYTE $0x00 // leaq $86844(%rip), %rcx /* _P10_TAB(%rip) */
|
||||
LONG $0x680d8d48; WORD $0x0153; BYTE $0x00 // leaq $86888(%rip), %rcx /* _P10_TAB(%rip) */
|
||||
LONG $0x0459fbc5; BYTE $0xc1 // vmulsd (%rcx,%rax,8), %xmm0, %xmm0
|
||||
LONG $0x4511fbc5; BYTE $0xc8 // vmovsd %xmm0, $-56(%rbp)
|
||||
MOVL $22, AX
|
||||
|
|
@ -4807,7 +4807,7 @@ LBB13_69:
|
|||
CMPL BX, $-22
|
||||
JB LBB13_76
|
||||
NEGL BX
|
||||
LONG $0x04058d48; WORD $0x0153; BYTE $0x00 // leaq $86788(%rip), %rax /* _P10_TAB(%rip) */
|
||||
LONG $0x30058d48; WORD $0x0153; BYTE $0x00 // leaq $86832(%rip), %rax /* _P10_TAB(%rip) */
|
||||
LONG $0x045efbc5; BYTE $0xd8 // vdivsd (%rax,%rbx,8), %xmm0, %xmm0
|
||||
LONG $0x4511fbc5; BYTE $0xc8 // vmovsd %xmm0, $-56(%rbp)
|
||||
JMP LBB13_82
|
||||
|
|
@ -4824,7 +4824,7 @@ LBB13_71:
|
|||
LONG $0x7ef9e1c4; BYTE $0xc1 // vmovq %xmm0, %rcx
|
||||
ORQ AX, CX
|
||||
MOVQ CX, 8(R13)
|
||||
JMP LBB13_83
|
||||
JMP LBB13_84
|
||||
|
||||
LBB13_72:
|
||||
MOVL BX, AX
|
||||
|
|
@ -4836,7 +4836,7 @@ LBB13_73:
|
|||
LONG $0xc82ef9c5 // vucomisd %xmm0, %xmm1
|
||||
JA LBB13_76
|
||||
MOVL AX, AX
|
||||
LONG $0x970d8d48; WORD $0x0152; BYTE $0x00 // leaq $86679(%rip), %rcx /* _P10_TAB(%rip) */
|
||||
LONG $0xc30d8d48; WORD $0x0152; BYTE $0x00 // leaq $86723(%rip), %rcx /* _P10_TAB(%rip) */
|
||||
LONG $0x0459fbc5; BYTE $0xc1 // vmulsd (%rcx,%rax,8), %xmm0, %xmm0
|
||||
LONG $0x4511fbc5; BYTE $0xc8 // vmovsd %xmm0, $-56(%rbp)
|
||||
JMP LBB13_82
|
||||
|
|
@ -4882,27 +4882,35 @@ LBB13_81:
|
|||
|
||||
LBB13_82:
|
||||
LONG $0x117bc1c4; WORD $0x0845 // vmovsd %xmm0, $8(%r13)
|
||||
LONG $0x7ef9e1c4; BYTE $0xc0 // vmovq %xmm0, %rax
|
||||
MOVQ $-9223372036854775808, CX
|
||||
DECQ CX
|
||||
ANDQ AX, CX
|
||||
MOVQ $9218868437227405312, AX
|
||||
CMPQ CX, AX
|
||||
JNE LBB13_84
|
||||
MOVQ $-8, 0(R13)
|
||||
|
||||
LBB13_83:
|
||||
LBB13_84:
|
||||
MOVQ R15, 0(R14)
|
||||
JMP LBB13_54
|
||||
|
||||
LBB13_84:
|
||||
LBB13_85:
|
||||
MOVQ DX, AX
|
||||
|
||||
LBB13_85:
|
||||
LBB13_86:
|
||||
LEAL -48(SI), DX
|
||||
CMPB DX, $9
|
||||
JA LBB13_5
|
||||
XORL CX, CX
|
||||
CMPQ AX, R15
|
||||
JAE LBB13_92
|
||||
JAE LBB13_93
|
||||
CMPB DX, $9
|
||||
JA LBB13_92
|
||||
JA LBB13_93
|
||||
LEAQ -1(R15), R9
|
||||
XORL CX, CX
|
||||
|
||||
LBB13_89:
|
||||
LBB13_90:
|
||||
MOVL CX, DX
|
||||
CMPL CX, $10000
|
||||
LEAL 0(DX)(DX*4), CX
|
||||
|
|
@ -4910,18 +4918,18 @@ LBB13_89:
|
|||
LEAL -48(SI)(CX*2), CX
|
||||
WORD $0x4d0f; BYTE $0xca // cmovgel %edx, %ecx
|
||||
CMPQ R9, AX
|
||||
JE LBB13_91
|
||||
JE LBB13_92
|
||||
MOVBLZX 1(R11)(AX*1), SI
|
||||
INCQ AX
|
||||
LEAL -48(SI), DX
|
||||
CMPB DX, $10
|
||||
JB LBB13_89
|
||||
JMP LBB13_92
|
||||
|
||||
LBB13_91:
|
||||
MOVQ R15, AX
|
||||
JB LBB13_90
|
||||
JMP LBB13_93
|
||||
|
||||
LBB13_92:
|
||||
MOVQ R15, AX
|
||||
|
||||
LBB13_93:
|
||||
IMULL R8, CX
|
||||
ADDL CX, BX
|
||||
MOVQ AX, R15
|
||||
|
|
@ -5499,7 +5507,7 @@ LBB17_64:
|
|||
LEAQ -56(BP), CX
|
||||
MOVQ R10, R15
|
||||
WORD $0xf8c5; BYTE $0x77 // vzeroupper
|
||||
LONG $0xfff23ee8; BYTE $0xff // callq _advance_string
|
||||
LONG $0xfff212e8; BYTE $0xff // callq _advance_string
|
||||
MOVQ AX, BX
|
||||
TESTQ AX, AX
|
||||
JS LBB17_103
|
||||
|
|
@ -5610,7 +5618,7 @@ LBB17_81:
|
|||
LEAQ -56(BP), CX
|
||||
MOVQ R10, R15
|
||||
WORD $0xf8c5; BYTE $0x77 // vzeroupper
|
||||
LONG $0xfff084e8; BYTE $0xff // callq _advance_string
|
||||
LONG $0xfff058e8; BYTE $0xff // callq _advance_string
|
||||
MOVQ AX, BX
|
||||
TESTQ AX, AX
|
||||
JS LBB17_103
|
||||
|
|
@ -6033,7 +6041,7 @@ _skip_string:
|
|||
MOVQ 8(R15), SI
|
||||
LEAQ -32(BP), CX
|
||||
MOVQ BX, DX
|
||||
LONG $0xffeb33e8; BYTE $0xff // callq _advance_string
|
||||
LONG $0xffeb07e8; BYTE $0xff // callq _advance_string
|
||||
TESTQ AX, AX
|
||||
JS LBB20_2
|
||||
DECQ BX
|
||||
|
|
@ -13590,7 +13598,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___+19173(SB) // _skip_array
|
||||
CALL ·___asm2asm_compiled_code__DO_NOT_CALL_THIS_SYMBOL___+19217(SB) // _skip_array
|
||||
MOVQ AX, ret+24(FP)
|
||||
RET
|
||||
|
||||
|
|
@ -13598,7 +13606,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___+19208(SB) // _skip_object
|
||||
CALL ·___asm2asm_compiled_code__DO_NOT_CALL_THIS_SYMBOL___+19252(SB) // _skip_object
|
||||
MOVQ AX, ret+24(FP)
|
||||
RET
|
||||
|
||||
|
|
@ -13606,7 +13614,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___+16373(SB) // _skip_one
|
||||
CALL ·___asm2asm_compiled_code__DO_NOT_CALL_THIS_SYMBOL___+16417(SB) // _skip_one
|
||||
MOVQ AX, ret+24(FP)
|
||||
RET
|
||||
|
||||
|
|
@ -13648,7 +13656,7 @@ 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___+15823(SB), AX // _vsigned
|
||||
LEAQ ·___asm2asm_compiled_code__DO_NOT_CALL_THIS_SYMBOL___+15867(SB), AX // _vsigned
|
||||
JMP AX
|
||||
|
||||
TEXT ·__vstring(SB), NOSPLIT, $0 - 24
|
||||
|
|
@ -13662,5 +13670,5 @@ 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___+16100(SB), AX // _vunsigned
|
||||
LEAQ ·___asm2asm_compiled_code__DO_NOT_CALL_THIS_SYMBOL___+16144(SB), AX // _vunsigned
|
||||
JMP AX
|
||||
|
|
|
|||
|
|
@ -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)) + 5212
|
||||
_subr__skip_array = **(**uintptr)(unsafe.Pointer(&_func__base)) + 19173
|
||||
_subr__skip_object = **(**uintptr)(unsafe.Pointer(&_func__base)) + 19208
|
||||
_subr__skip_one = **(**uintptr)(unsafe.Pointer(&_func__base)) + 16373
|
||||
_subr__skip_array = **(**uintptr)(unsafe.Pointer(&_func__base)) + 19217
|
||||
_subr__skip_object = **(**uintptr)(unsafe.Pointer(&_func__base)) + 19252
|
||||
_subr__skip_one = **(**uintptr)(unsafe.Pointer(&_func__base)) + 16417
|
||||
_subr__u64toa = **(**uintptr)(unsafe.Pointer(&_func__base)) + 3892
|
||||
_subr__unquote = **(**uintptr)(unsafe.Pointer(&_func__base)) + 7049
|
||||
_subr__value = **(**uintptr)(unsafe.Pointer(&_func__base)) + 12063
|
||||
_subr__vnumber = **(**uintptr)(unsafe.Pointer(&_func__base)) + 14611
|
||||
_subr__vsigned = **(**uintptr)(unsafe.Pointer(&_func__base)) + 15823
|
||||
_subr__vsigned = **(**uintptr)(unsafe.Pointer(&_func__base)) + 15867
|
||||
_subr__vstring = **(**uintptr)(unsafe.Pointer(&_func__base)) + 13774
|
||||
_subr__vunsigned = **(**uintptr)(unsafe.Pointer(&_func__base)) + 16100
|
||||
_subr__vunsigned = **(**uintptr)(unsafe.Pointer(&_func__base)) + 16144
|
||||
)
|
||||
|
||||
var (
|
||||
|
|
|
|||
|
|
@ -63,6 +63,7 @@ const (
|
|||
ERR_INTEGER_OVERFLOW ParsingError = 5
|
||||
ERR_INVALID_NUMBER_FMT ParsingError = 6
|
||||
ERR_RECURSE_EXCEED_MAX ParsingError = 7
|
||||
ERR_FLOAT_INFINITY ParsingError = 8
|
||||
)
|
||||
|
||||
var _ParsingErrors = []string{
|
||||
|
|
@ -74,6 +75,7 @@ var _ParsingErrors = []string{
|
|||
ERR_INTEGER_OVERFLOW : "integer overflow",
|
||||
ERR_INVALID_NUMBER_FMT : "invalid number format",
|
||||
ERR_RECURSE_EXCEED_MAX : "recursion exceeded max depth",
|
||||
ERR_FLOAT_INFINITY : "float number is infinity",
|
||||
}
|
||||
|
||||
func (self ParsingError) Error() string {
|
||||
|
|
|
|||
34
issue90_test.go
Normal file
34
issue90_test.go
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
/*
|
||||
* Copyright 2021 ByteDance Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package sonic
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestUnmarshalInfinity(t *testing.T) {
|
||||
var v interface{}
|
||||
data := []byte("9e370")
|
||||
sonicerr := Unmarshal(data, &v)
|
||||
stderr := json.Unmarshal(data, &v)
|
||||
if sonicerr == nil && stderr != nil {
|
||||
t.Errorf("should have unmarshal error like %#v\n", stderr)
|
||||
}
|
||||
fmt.Println(sonicerr, stderr)
|
||||
}
|
||||
|
|
@ -50,6 +50,7 @@
|
|||
#define ERR_OVERFLOW 5
|
||||
#define ERR_NUMBER_FMT 6
|
||||
#define ERR_RECURSE_MAX 7
|
||||
#define ERR_FLOAT_INF 8
|
||||
|
||||
#define MAX_RECURSE 65536
|
||||
|
||||
|
|
|
|||
|
|
@ -648,6 +648,10 @@ void vnumber(const GoString *src, long *p, JsonState *ret) {
|
|||
|
||||
parse_float:
|
||||
ret->dv = parse_float64(man, exp10, sgn, trunc, src, si);
|
||||
/* if the float number is infinity */
|
||||
if (((*(uint64_t *)&ret->dv) << 1) == 0xFFE0000000000000) {
|
||||
ret->vt = -ERR_FLOAT_INF;
|
||||
}
|
||||
/* update the result */
|
||||
*p = i;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue