github.com/bytedance/sonic@v1.11.7-0.20240517092252-d2edb31b167b/internal/native/neon/vstring_arm64.s (about)

     1  // +build !noasm !appengine
     2  // Code generated by asm2asm, DO NOT EDIT.
     3  
     4  #include "go_asm.h"
     5  #include "funcdata.h"
     6  #include "textflag.h"
     7  
     8  TEXT ·__vstring_entry__(SB), NOSPLIT, $32
     9  	NO_LOCAL_POINTERS
    10  	WORD $0x100000a0 // adr x0, .+20
    11  	MOVD R0, ret(FP)
    12  	RET
    13  	  // .p2align 4, 0x00
    14  lCPI0_0:
    15  	WORD $0x08040201
    16  	WORD $0x80402010
    17  	WORD $0x08040201
    18  	WORD $0x80402010
    19  	// // .byte 1
    20  // .byte 2
    21  // .byte 4
    22  // .byte 8
    23  // .byte 16
    24  // .byte 32
    25  // .byte 64
    26  // .byte 128
    27  // .byte 1
    28  // .byte 2
    29  // .byte 4
    30  // .byte 8
    31  // .byte 16
    32  // .byte 32
    33  // .byte 64
    34  // .byte 128
    35  
    36  lCPI0_1:
    37  	WORD $0x09010800
    38  	WORD $0x0b030a02
    39  	WORD $0x0d050c04
    40  	WORD $0x0f070e06
    41  	// // .byte 0
    42  // .byte 8
    43  // .byte 1
    44  // .byte 9
    45  // .byte 2
    46  // .byte 10
    47  // .byte 3
    48  // .byte 11
    49  // .byte 4
    50  // .byte 12
    51  // .byte 5
    52  // .byte 13
    53  // .byte 6
    54  // .byte 14
    55  // .byte 7
    56  // .byte 15
    57  
    58  _vstring:
    59  	WORD $0xd100c3ff  // sub	sp, sp, #48
    60  	WORD $0xa900cff4  // stp	x20, x19, [sp, #8]
    61  	WORD $0xa901fbfd  // stp	fp, lr, [sp, #24]
    62  	WORD $0xa93ffbfd  // stp	fp, lr, [sp, #-8]
    63  	WORD $0xd10023fd  // sub	fp, sp, #8
    64  	WORD $0xf9400028  // ldr	x8, [x1]
    65  	WORD $0xf9400409  // ldr	x9, [x0, #8]
    66  	WORD $0x37280c43  // tbnz	w3, #5, LBB0_11 $392(%rip)
    67  	WORD $0xeb08012b  // subs	x11, x9, x8
    68  	WORD $0x54003b00  // b.eq	LBB0_75 $1888(%rip)
    69  	WORD $0xf940000a  // ldr	x10, [x0]
    70  	WORD $0xf101017f  // cmp	x11, #64
    71  	WORD $0x54001d43  // b.lo	LBB0_26 $936(%rip)
    72  	WORD $0xd280000c  // mov	x12, #0
    73  	WORD $0x92800009  // mov	x9, #-1
    74  	WORD $0x4f01e440  // movi.16b	v0, #34
    75  	WORD $0x4f02e781  // movi.16b	v1, #92
    76  Lloh0:
    77  	WORD $0x10fffced  // adr	x13, lCPI0_0 $-100(%rip)
    78  Lloh1:
    79  	WORD $0x3dc001a2  // ldr	q2, [x13, lCPI0_0@PAGEOFF] $0(%rip)
    80  Lloh2:
    81  	WORD $0x10fffd2d  // adr	x13, lCPI0_1 $-92(%rip)
    82  Lloh3:
    83  	WORD $0x3dc001a3  // ldr	q3, [x13, lCPI0_1@PAGEOFF] $0(%rip)
    84  	WORD $0xaa0803ed  // mov	x13, x8
    85  LBB0_4:
    86  	WORD $0x8b0d014e  // add	x14, x10, x13
    87  	WORD $0xad4015c4  // ldp	q4, q5, [x14]
    88  	WORD $0xad411dc6  // ldp	q6, q7, [x14, #32]
    89  	WORD $0x6e208c90  // cmeq.16b	v16, v4, v0
    90  	WORD $0x6e208cb1  // cmeq.16b	v17, v5, v0
    91  	WORD $0x6e208cd2  // cmeq.16b	v18, v6, v0
    92  	WORD $0x6e208cf3  // cmeq.16b	v19, v7, v0
    93  	WORD $0x6e218c84  // cmeq.16b	v4, v4, v1
    94  	WORD $0x6e218ca5  // cmeq.16b	v5, v5, v1
    95  	WORD $0x6e218cc6  // cmeq.16b	v6, v6, v1
    96  	WORD $0x6e218ce7  // cmeq.16b	v7, v7, v1
    97  	WORD $0x4e221e10  // and.16b	v16, v16, v2
    98  	WORD $0x4e030210  // tbl.16b	v16, { v16 }, v3
    99  	WORD $0x4e71ba10  // addv.8h	h16, v16
   100  	WORD $0x1e26020e  // fmov	w14, s16
   101  	WORD $0x4e221e30  // and.16b	v16, v17, v2
   102  	WORD $0x4e030210  // tbl.16b	v16, { v16 }, v3
   103  	WORD $0x4e71ba10  // addv.8h	h16, v16
   104  	WORD $0x1e26020f  // fmov	w15, s16
   105  	WORD $0x4e221e50  // and.16b	v16, v18, v2
   106  	WORD $0x4e030210  // tbl.16b	v16, { v16 }, v3
   107  	WORD $0x4e71ba10  // addv.8h	h16, v16
   108  	WORD $0x1e260210  // fmov	w16, s16
   109  	WORD $0x4e221e70  // and.16b	v16, v19, v2
   110  	WORD $0x4e030210  // tbl.16b	v16, { v16 }, v3
   111  	WORD $0x4e71ba10  // addv.8h	h16, v16
   112  	WORD $0x1e260211  // fmov	w17, s16
   113  	WORD $0x4e221c84  // and.16b	v4, v4, v2
   114  	WORD $0x4e030084  // tbl.16b	v4, { v4 }, v3
   115  	WORD $0x4e71b884  // addv.8h	h4, v4
   116  	WORD $0x1e260083  // fmov	w3, s4
   117  	WORD $0x4e221ca4  // and.16b	v4, v5, v2
   118  	WORD $0x4e030084  // tbl.16b	v4, { v4 }, v3
   119  	WORD $0x4e71b884  // addv.8h	h4, v4
   120  	WORD $0x1e260084  // fmov	w4, s4
   121  	WORD $0x4e221cc4  // and.16b	v4, v6, v2
   122  	WORD $0x4e030084  // tbl.16b	v4, { v4 }, v3
   123  	WORD $0x4e71b884  // addv.8h	h4, v4
   124  	WORD $0x1e260085  // fmov	w5, s4
   125  	WORD $0x4e221ce4  // and.16b	v4, v7, v2
   126  	WORD $0x4e030084  // tbl.16b	v4, { v4 }, v3
   127  	WORD $0x4e71b884  // addv.8h	h4, v4
   128  	WORD $0x1e260086  // fmov	w6, s4
   129  	WORD $0xd3607e10  // lsl	x16, x16, #32
   130  	WORD $0xaa11c210  // orr	x16, x16, x17, lsl #48
   131  	WORD $0x53103def  // lsl	w15, w15, #16
   132  	WORD $0xaa0f020f  // orr	x15, x16, x15
   133  	WORD $0xaa0e01ee  // orr	x14, x15, x14
   134  	WORD $0xd3607caf  // lsl	x15, x5, #32
   135  	WORD $0xaa06c1ef  // orr	x15, x15, x6, lsl #48
   136  	WORD $0x53103c90  // lsl	w16, w4, #16
   137  	WORD $0xaa1001ef  // orr	x15, x15, x16
   138  	WORD $0xaa0301ef  // orr	x15, x15, x3
   139  	WORD $0xb500010f  // cbnz	x15, LBB0_8 $32(%rip)
   140  	WORD $0xb500018c  // cbnz	x12, LBB0_9 $48(%rip)
   141  	WORD $0xb50002ce  // cbnz	x14, LBB0_10 $88(%rip)
   142  LBB0_7:
   143  	WORD $0xd101016b  // sub	x11, x11, #64
   144  	WORD $0x910101ad  // add	x13, x13, #64
   145  	WORD $0xf100fd7f  // cmp	x11, #63
   146  	WORD $0x54fff8a8  // b.hi	LBB0_4 $-236(%rip)
   147  	WORD $0x140000a0  // b	LBB0_24 $640(%rip)
   148  LBB0_8:
   149  	WORD $0xb100053f  // cmn	x9, #1
   150  	WORD $0xdac001f0  // rbit	x16, x15
   151  	WORD $0xdac01210  // clz	x16, x16
   152  	WORD $0x8b0d0210  // add	x16, x16, x13
   153  	WORD $0x9a901129  // csel	x9, x9, x16, ne
   154  LBB0_9:
   155  	WORD $0x8a2c01f0  // bic	x16, x15, x12
   156  	WORD $0xaa100591  // orr	x17, x12, x16, lsl #1
   157  	WORD $0x8a3101ec  // bic	x12, x15, x17
   158  	WORD $0x9201f18c  // and	x12, x12, #0xaaaaaaaaaaaaaaaa
   159  	WORD $0xab10018f  // adds	x15, x12, x16
   160  	WORD $0x1a9f37ec  // cset	w12, hs
   161  	WORD $0xd37ff9ef  // lsl	x15, x15, #1
   162  	WORD $0xd200f1ef  // eor	x15, x15, #0x5555555555555555
   163  	WORD $0x8a1101ef  // and	x15, x15, x17
   164  	WORD $0x8a2f01ce  // bic	x14, x14, x15
   165  	WORD $0xb4fffd8e  // cbz	x14, LBB0_7 $-80(%rip)
   166  LBB0_10:
   167  	WORD $0xdac001ca  // rbit	x10, x14
   168  	WORD $0xdac0114a  // clz	x10, x10
   169  	WORD $0x8b0d014a  // add	x10, x10, x13
   170  	WORD $0x9100054e  // add	x14, x10, #1
   171  	WORD $0xb6f8102e  // tbz	x14, #63, LBB0_23 $516(%rip)
   172  	WORD $0x1400017a  // b	LBB0_76 $1512(%rip)
   173  LBB0_11:
   174  	WORD $0xeb08012c  // subs	x12, x9, x8
   175  	WORD $0x54002ee0  // b.eq	LBB0_75 $1500(%rip)
   176  	WORD $0xf940000a  // ldr	x10, [x0]
   177  	WORD $0x10fff18f  // adr	x15, lCPI0_0 $-464(%rip)
   178  	WORD $0x10fff1ee  // adr	x14, lCPI0_1 $-452(%rip)
   179  	WORD $0xf101019f  // cmp	x12, #64
   180  	WORD $0x540015e3  // b.lo	LBB0_32 $700(%rip)
   181  	WORD $0xd280000b  // mov	x11, #0
   182  	WORD $0x92800009  // mov	x9, #-1
   183  	WORD $0x4f01e440  // movi.16b	v0, #34
   184  	WORD $0x3dc001e1  // ldr	q1, [x15, lCPI0_0@PAGEOFF] $0(%rip)
   185  	WORD $0x3dc001c2  // ldr	q2, [x14, lCPI0_1@PAGEOFF] $0(%rip)
   186  	WORD $0x4f02e783  // movi.16b	v3, #92
   187  	WORD $0x4f01e404  // movi.16b	v4, #32
   188  	WORD $0xaa0803ed  // mov	x13, x8
   189  LBB0_14:
   190  	WORD $0x8b0d0150  // add	x16, x10, x13
   191  	WORD $0xad401e10  // ldp	q16, q7, [x16]
   192  	WORD $0xad411606  // ldp	q6, q5, [x16, #32]
   193  	WORD $0x6e208e11  // cmeq.16b	v17, v16, v0
   194  	WORD $0x4e211e31  // and.16b	v17, v17, v1
   195  	WORD $0x4e020231  // tbl.16b	v17, { v17 }, v2
   196  	WORD $0x4e71ba31  // addv.8h	h17, v17
   197  	WORD $0x1e260230  // fmov	w16, s17
   198  	WORD $0x6e208cf1  // cmeq.16b	v17, v7, v0
   199  	WORD $0x4e211e31  // and.16b	v17, v17, v1
   200  	WORD $0x4e020231  // tbl.16b	v17, { v17 }, v2
   201  	WORD $0x4e71ba31  // addv.8h	h17, v17
   202  	WORD $0x1e260231  // fmov	w17, s17
   203  	WORD $0x6e208cd1  // cmeq.16b	v17, v6, v0
   204  	WORD $0x4e211e31  // and.16b	v17, v17, v1
   205  	WORD $0x4e020231  // tbl.16b	v17, { v17 }, v2
   206  	WORD $0x4e71ba31  // addv.8h	h17, v17
   207  	WORD $0x1e260223  // fmov	w3, s17
   208  	WORD $0x6e208cb1  // cmeq.16b	v17, v5, v0
   209  	WORD $0x4e211e31  // and.16b	v17, v17, v1
   210  	WORD $0x4e020231  // tbl.16b	v17, { v17 }, v2
   211  	WORD $0x4e71ba31  // addv.8h	h17, v17
   212  	WORD $0x1e260224  // fmov	w4, s17
   213  	WORD $0x6e238e11  // cmeq.16b	v17, v16, v3
   214  	WORD $0x4e211e31  // and.16b	v17, v17, v1
   215  	WORD $0x4e020231  // tbl.16b	v17, { v17 }, v2
   216  	WORD $0x4e71ba31  // addv.8h	h17, v17
   217  	WORD $0x1e260225  // fmov	w5, s17
   218  	WORD $0x6e238cf1  // cmeq.16b	v17, v7, v3
   219  	WORD $0x4e211e31  // and.16b	v17, v17, v1
   220  	WORD $0x4e020231  // tbl.16b	v17, { v17 }, v2
   221  	WORD $0x4e71ba31  // addv.8h	h17, v17
   222  	WORD $0x1e260226  // fmov	w6, s17
   223  	WORD $0x6e238cd1  // cmeq.16b	v17, v6, v3
   224  	WORD $0x4e211e31  // and.16b	v17, v17, v1
   225  	WORD $0x4e020231  // tbl.16b	v17, { v17 }, v2
   226  	WORD $0x4e71ba31  // addv.8h	h17, v17
   227  	WORD $0x1e260227  // fmov	w7, s17
   228  	WORD $0x6e238cb1  // cmeq.16b	v17, v5, v3
   229  	WORD $0x4e211e31  // and.16b	v17, v17, v1
   230  	WORD $0x4e020231  // tbl.16b	v17, { v17 }, v2
   231  	WORD $0x4e71ba31  // addv.8h	h17, v17
   232  	WORD $0x1e260233  // fmov	w19, s17
   233  	WORD $0xd3607c63  // lsl	x3, x3, #32
   234  	WORD $0xaa04c063  // orr	x3, x3, x4, lsl #48
   235  	WORD $0x53103e31  // lsl	w17, w17, #16
   236  	WORD $0xaa110071  // orr	x17, x3, x17
   237  	WORD $0xaa100230  // orr	x16, x17, x16
   238  	WORD $0xd3607cf1  // lsl	x17, x7, #32
   239  	WORD $0xaa13c231  // orr	x17, x17, x19, lsl #48
   240  	WORD $0x53103cc3  // lsl	w3, w6, #16
   241  	WORD $0xaa030231  // orr	x17, x17, x3
   242  	WORD $0xaa050231  // orr	x17, x17, x5
   243  	WORD $0xb5000451  // cbnz	x17, LBB0_19 $136(%rip)
   244  	WORD $0xb50004cb  // cbnz	x11, LBB0_20 $152(%rip)
   245  LBB0_16:
   246  	WORD $0x6e303490  // cmhi.16b	v16, v4, v16
   247  	WORD $0x4e211e10  // and.16b	v16, v16, v1
   248  	WORD $0x4e020210  // tbl.16b	v16, { v16 }, v2
   249  	WORD $0x4e71ba10  // addv.8h	h16, v16
   250  	WORD $0x1e260211  // fmov	w17, s16
   251  	WORD $0x6e273487  // cmhi.16b	v7, v4, v7
   252  	WORD $0x4e211ce7  // and.16b	v7, v7, v1
   253  	WORD $0x4e0200e7  // tbl.16b	v7, { v7 }, v2
   254  	WORD $0x4e71b8e7  // addv.8h	h7, v7
   255  	WORD $0x1e2600e3  // fmov	w3, s7
   256  	WORD $0x6e263486  // cmhi.16b	v6, v4, v6
   257  	WORD $0x4e211cc6  // and.16b	v6, v6, v1
   258  	WORD $0x4e0200c6  // tbl.16b	v6, { v6 }, v2
   259  	WORD $0x4e71b8c6  // addv.8h	h6, v6
   260  	WORD $0x1e2600c4  // fmov	w4, s6
   261  	WORD $0x6e253485  // cmhi.16b	v5, v4, v5
   262  	WORD $0x4e211ca5  // and.16b	v5, v5, v1
   263  	WORD $0x4e0200a5  // tbl.16b	v5, { v5 }, v2
   264  	WORD $0x4e71b8a5  // addv.8h	h5, v5
   265  	WORD $0x1e2600a5  // fmov	w5, s5
   266  	WORD $0xd3607c84  // lsl	x4, x4, #32
   267  	WORD $0xaa05c084  // orr	x4, x4, x5, lsl #48
   268  	WORD $0x53103c63  // lsl	w3, w3, #16
   269  	WORD $0xaa030083  // orr	x3, x4, x3
   270  	WORD $0xaa110071  // orr	x17, x3, x17
   271  	WORD $0xb50002f0  // cbnz	x16, LBB0_21 $92(%rip)
   272  	WORD $0xb5002011  // cbnz	x17, LBB0_69 $1024(%rip)
   273  	WORD $0xd101018c  // sub	x12, x12, #64
   274  	WORD $0x910101ad  // add	x13, x13, #64
   275  	WORD $0xf100fd9f  // cmp	x12, #63
   276  	WORD $0x54fff568  // b.hi	LBB0_14 $-340(%rip)
   277  	WORD $0x14000026  // b	LBB0_25 $152(%rip)
   278  LBB0_19:
   279  	WORD $0xb100053f  // cmn	x9, #1
   280  	WORD $0xdac00223  // rbit	x3, x17
   281  	WORD $0xdac01063  // clz	x3, x3
   282  	WORD $0x8b0d0063  // add	x3, x3, x13
   283  	WORD $0x9a831129  // csel	x9, x9, x3, ne
   284  LBB0_20:
   285  	WORD $0x8a2b0223  // bic	x3, x17, x11
   286  	WORD $0xaa030564  // orr	x4, x11, x3, lsl #1
   287  	WORD $0x8a24022b  // bic	x11, x17, x4
   288  	WORD $0x9201f16b  // and	x11, x11, #0xaaaaaaaaaaaaaaaa
   289  	WORD $0xab030171  // adds	x17, x11, x3
   290  	WORD $0x1a9f37eb  // cset	w11, hs
   291  	WORD $0xd37ffa31  // lsl	x17, x17, #1
   292  	WORD $0xd200f231  // eor	x17, x17, #0x5555555555555555
   293  	WORD $0x8a040231  // and	x17, x17, x4
   294  	WORD $0x8a310210  // bic	x16, x16, x17
   295  	WORD $0x17ffffd1  // b	LBB0_16 $-188(%rip)
   296  LBB0_21:
   297  	WORD $0xdac0020a  // rbit	x10, x16
   298  	WORD $0xdac0114a  // clz	x10, x10
   299  	WORD $0xdac0022b  // rbit	x11, x17
   300  	WORD $0xdac0116b  // clz	x11, x11
   301  	WORD $0xeb0a017f  // cmp	x11, x10
   302  	WORD $0x54001ca3  // b.lo	LBB0_69 $916(%rip)
   303  	WORD $0x8b0d014a  // add	x10, x10, x13
   304  	WORD $0x9100054e  // add	x14, x10, #1
   305  	WORD $0xb7f81f6e  // tbnz	x14, #63, LBB0_76 $1004(%rip)
   306  LBB0_23:
   307  	WORD $0xf900002e  // str	x14, [x1]
   308  	WORD $0x528000ea  // mov	w10, #7
   309  	WORD $0xf900004a  // str	x10, [x2]
   310  	WORD $0xeb0e013f  // cmp	x9, x14
   311  	WORD $0xda9fb129  // csinv	x9, x9, xzr, lt
   312  	WORD $0xa9012448  // stp	x8, x9, [x2, #16]
   313  	WORD $0xa941fbfd  // ldp	fp, lr, [sp, #24]
   314  	WORD $0xa940cff4  // ldp	x20, x19, [sp, #8]
   315  	WORD $0x9100c3ff  // add	sp, sp, #48
   316  	WORD $0xd65f03c0  // ret
   317  LBB0_24:
   318  	WORD $0x8b0d014d  // add	x13, x10, x13
   319  	WORD $0x14000006  // b	LBB0_27 $24(%rip)
   320  LBB0_25:
   321  	WORD $0x8b0d014d  // add	x13, x10, x13
   322  	WORD $0x1400002c  // b	LBB0_33 $176(%rip)
   323  LBB0_26:
   324  	WORD $0xd280000c  // mov	x12, #0
   325  	WORD $0x8b08014d  // add	x13, x10, x8
   326  	WORD $0x92800009  // mov	x9, #-1
   327  LBB0_27:
   328  	WORD $0xf100816e  // subs	x14, x11, #32
   329  	WORD $0x54000e83  // b.lo	LBB0_42 $464(%rip)
   330  	WORD $0xad4005a0  // ldp	q0, q1, [x13]
   331  	WORD $0x4f01e442  // movi.16b	v2, #34
   332  	WORD $0x6e228c03  // cmeq.16b	v3, v0, v2
   333  	WORD $0x6e228c22  // cmeq.16b	v2, v1, v2
   334  	WORD $0x4f02e784  // movi.16b	v4, #92
   335  	WORD $0x6e248c00  // cmeq.16b	v0, v0, v4
   336  	WORD $0x6e248c21  // cmeq.16b	v1, v1, v4
   337  Lloh4:
   338  	WORD $0x10ffdecb  // adr	x11, lCPI0_0 $-1064(%rip)
   339  Lloh5:
   340  	WORD $0x3dc00164  // ldr	q4, [x11, lCPI0_0@PAGEOFF] $0(%rip)
   341  	WORD $0x4e241c63  // and.16b	v3, v3, v4
   342  Lloh6:
   343  	WORD $0x10ffdeeb  // adr	x11, lCPI0_1 $-1060(%rip)
   344  Lloh7:
   345  	WORD $0x3dc00165  // ldr	q5, [x11, lCPI0_1@PAGEOFF] $0(%rip)
   346  	WORD $0x4e050063  // tbl.16b	v3, { v3 }, v5
   347  	WORD $0x4e71b863  // addv.8h	h3, v3
   348  	WORD $0x1e26006b  // fmov	w11, s3
   349  	WORD $0x4e241c42  // and.16b	v2, v2, v4
   350  	WORD $0x4e050042  // tbl.16b	v2, { v2 }, v5
   351  	WORD $0x4e71b842  // addv.8h	h2, v2
   352  	WORD $0x1e260050  // fmov	w16, s2
   353  	WORD $0x4e241c00  // and.16b	v0, v0, v4
   354  	WORD $0x4e050000  // tbl.16b	v0, { v0 }, v5
   355  	WORD $0x4e71b800  // addv.8h	h0, v0
   356  	WORD $0x1e26000f  // fmov	w15, s0
   357  	WORD $0x4e241c20  // and.16b	v0, v1, v4
   358  	WORD $0x4e050000  // tbl.16b	v0, { v0 }, v5
   359  	WORD $0x4e71b800  // addv.8h	h0, v0
   360  	WORD $0x1e260011  // fmov	w17, s0
   361  	WORD $0x33103e0b  // bfi	w11, w16, #16, #16
   362  	WORD $0x33103e2f  // bfi	w15, w17, #16, #16
   363  	WORD $0x3500080f  // cbnz	w15, LBB0_39 $256(%rip)
   364  	WORD $0xb50008ac  // cbnz	x12, LBB0_40 $276(%rip)
   365  	WORD $0xb4000a4b  // cbz	x11, LBB0_41 $328(%rip)
   366  LBB0_31:
   367  	WORD $0xdac0016b  // rbit	x11, x11
   368  	WORD $0xdac0116b  // clz	x11, x11
   369  	WORD $0x14000036  // b	LBB0_38 $216(%rip)
   370  LBB0_32:
   371  	WORD $0xd280000b  // mov	x11, #0
   372  	WORD $0x8b08014d  // add	x13, x10, x8
   373  	WORD $0x92800009  // mov	x9, #-1
   374  LBB0_33:
   375  	WORD $0xf1008190  // subs	x16, x12, #32
   376  	WORD $0x54001103  // b.lo	LBB0_59 $544(%rip)
   377  	WORD $0xad4005a0  // ldp	q0, q1, [x13]
   378  	WORD $0x4f01e442  // movi.16b	v2, #34
   379  	WORD $0x6e228c03  // cmeq.16b	v3, v0, v2
   380  	WORD $0x3dc001e4  // ldr	q4, [x15, lCPI0_0@PAGEOFF] $0(%rip)
   381  	WORD $0x4e241c63  // and.16b	v3, v3, v4
   382  	WORD $0x3dc001c5  // ldr	q5, [x14, lCPI0_1@PAGEOFF] $0(%rip)
   383  	WORD $0x4e050063  // tbl.16b	v3, { v3 }, v5
   384  	WORD $0x4e71b863  // addv.8h	h3, v3
   385  	WORD $0x1e26006c  // fmov	w12, s3
   386  	WORD $0x6e228c22  // cmeq.16b	v2, v1, v2
   387  	WORD $0x4e241c42  // and.16b	v2, v2, v4
   388  	WORD $0x4e050042  // tbl.16b	v2, { v2 }, v5
   389  	WORD $0x4e71b842  // addv.8h	h2, v2
   390  	WORD $0x1e260051  // fmov	w17, s2
   391  	WORD $0x4f02e782  // movi.16b	v2, #92
   392  	WORD $0x6e228c03  // cmeq.16b	v3, v0, v2
   393  	WORD $0x4e241c63  // and.16b	v3, v3, v4
   394  	WORD $0x4e050063  // tbl.16b	v3, { v3 }, v5
   395  	WORD $0x4e71b863  // addv.8h	h3, v3
   396  	WORD $0x1e26006f  // fmov	w15, s3
   397  	WORD $0x6e228c22  // cmeq.16b	v2, v1, v2
   398  	WORD $0x4e241c42  // and.16b	v2, v2, v4
   399  	WORD $0x4e050042  // tbl.16b	v2, { v2 }, v5
   400  	WORD $0x4e71b842  // addv.8h	h2, v2
   401  	WORD $0x1e260043  // fmov	w3, s2
   402  	WORD $0x4f01e402  // movi.16b	v2, #32
   403  	WORD $0x6e203440  // cmhi.16b	v0, v2, v0
   404  	WORD $0x4e241c00  // and.16b	v0, v0, v4
   405  	WORD $0x4e050000  // tbl.16b	v0, { v0 }, v5
   406  	WORD $0x4e71b800  // addv.8h	h0, v0
   407  	WORD $0x1e26000e  // fmov	w14, s0
   408  	WORD $0x6e213440  // cmhi.16b	v0, v2, v1
   409  	WORD $0x4e241c00  // and.16b	v0, v0, v4
   410  	WORD $0x4e050000  // tbl.16b	v0, { v0 }, v5
   411  	WORD $0x4e71b800  // addv.8h	h0, v0
   412  	WORD $0x1e260004  // fmov	w4, s0
   413  	WORD $0x33103e2c  // bfi	w12, w17, #16, #16
   414  	WORD $0x33103c6f  // bfi	w15, w3, #16, #16
   415  	WORD $0x33103c8e  // bfi	w14, w4, #16, #16
   416  	WORD $0x3500092f  // cbnz	w15, LBB0_55 $292(%rip)
   417  	WORD $0xb50009cb  // cbnz	x11, LBB0_56 $312(%rip)
   418  	WORD $0xb4000b6c  // cbz	x12, LBB0_57 $364(%rip)
   419  LBB0_37:
   420  	WORD $0xdac0018b  // rbit	x11, x12
   421  	WORD $0xdac0116b  // clz	x11, x11
   422  	WORD $0xdac001cc  // rbit	x12, x14
   423  	WORD $0xdac0118c  // clz	x12, x12
   424  	WORD $0xeb0b019f  // cmp	x12, x11
   425  	WORD $0x54000ee3  // b.lo	LBB0_69 $476(%rip)
   426  LBB0_38:
   427  	WORD $0xcb0a01aa  // sub	x10, x13, x10
   428  	WORD $0x8b0b014a  // add	x10, x10, x11
   429  	WORD $0x9100054e  // add	x14, x10, #1
   430  	WORD $0xb6fff24e  // tbz	x14, #63, LBB0_23 $-440(%rip)
   431  	WORD $0x1400008b  // b	LBB0_76 $556(%rip)
   432  LBB0_39:
   433  	WORD $0xdac001f0  // rbit	x16, x15
   434  	WORD $0xdac01210  // clz	x16, x16
   435  	WORD $0xcb0a01b1  // sub	x17, x13, x10
   436  	WORD $0x8b100230  // add	x16, x17, x16
   437  	WORD $0xb100053f  // cmn	x9, #1
   438  	WORD $0x9a901129  // csel	x9, x9, x16, ne
   439  LBB0_40:
   440  	WORD $0x0a2c01f0  // bic	w16, w15, w12
   441  	WORD $0x531f7a11  // lsl	w17, w16, #1
   442  	WORD $0x331f7a0c  // bfi	w12, w16, #1, #31
   443  	WORD $0x0a3101ef  // bic	w15, w15, w17
   444  	WORD $0x1201f1ef  // and	w15, w15, #0xaaaaaaaa
   445  	WORD $0x2b1001ef  // adds	w15, w15, w16
   446  	WORD $0x3200f3f0  // mov	w16, #1431655765
   447  	WORD $0x4a0f060f  // eor	w15, w16, w15, lsl #1
   448  	WORD $0x0a0c01ec  // and	w12, w15, w12
   449  	WORD $0x1a9f37ef  // cset	w15, hs
   450  	WORD $0x2a2c03ec  // mvn	w12, w12
   451  	WORD $0x8a0b018b  // and	x11, x12, x11
   452  	WORD $0xaa0f03ec  // mov	x12, x15
   453  	WORD $0xb5fff60b  // cbnz	x11, LBB0_31 $-320(%rip)
   454  LBB0_41:
   455  	WORD $0x910081ad  // add	x13, x13, #32
   456  	WORD $0xaa0e03eb  // mov	x11, x14
   457  LBB0_42:
   458  	WORD $0xb5000c4c  // cbnz	x12, LBB0_71 $392(%rip)
   459  	WORD $0xb40003ab  // cbz	x11, LBB0_52 $116(%rip)
   460  LBB0_44:
   461  	WORD $0xcb0a03ec  // neg	x12, x10
   462  LBB0_45:
   463  	WORD $0xd280000f  // mov	x15, #0
   464  LBB0_46:
   465  	WORD $0x386f69ae  // ldrb	w14, [x13, x15]
   466  	WORD $0x710089df  // cmp	w14, #34
   467  	WORD $0x540002c0  // b.eq	LBB0_51 $88(%rip)
   468  	WORD $0x710171df  // cmp	w14, #92
   469  	WORD $0x540000a0  // b.eq	LBB0_49 $20(%rip)
   470  	WORD $0x910005ef  // add	x15, x15, #1
   471  	WORD $0xeb0f017f  // cmp	x11, x15
   472  	WORD $0x54ffff21  // b.ne	LBB0_46 $-28(%rip)
   473  	WORD $0x14000015  // b	LBB0_53 $84(%rip)
   474  LBB0_49:
   475  	WORD $0xd100056e  // sub	x14, x11, #1
   476  	WORD $0xeb0f01df  // cmp	x14, x15
   477  	WORD $0x54000c80  // b.eq	LBB0_75 $400(%rip)
   478  	WORD $0x8b0f01ad  // add	x13, x13, x15
   479  	WORD $0x8b0c01ae  // add	x14, x13, x12
   480  	WORD $0xb100053f  // cmn	x9, #1
   481  	WORD $0x9a8901c9  // csel	x9, x14, x9, eq
   482  	WORD $0x910009ad  // add	x13, x13, #2
   483  	WORD $0xcb0f016e  // sub	x14, x11, x15
   484  	WORD $0xd1000970  // sub	x16, x11, #2
   485  	WORD $0xd10009cb  // sub	x11, x14, #2
   486  	WORD $0x9280000e  // mov	x14, #-1
   487  	WORD $0xeb0f021f  // cmp	x16, x15
   488  	WORD $0x54fffd21  // b.ne	LBB0_45 $-92(%rip)
   489  	WORD $0x14000059  // b	LBB0_76 $356(%rip)
   490  LBB0_51:
   491  	WORD $0x8b0f01ab  // add	x11, x13, x15
   492  	WORD $0x9100056d  // add	x13, x11, #1
   493  LBB0_52:
   494  	WORD $0xcb0a01ae  // sub	x14, x13, x10
   495  	WORD $0xb6ffeb6e  // tbz	x14, #63, LBB0_23 $-660(%rip)
   496  	WORD $0x14000054  // b	LBB0_76 $336(%rip)
   497  LBB0_53:
   498  	WORD $0x710089df  // cmp	w14, #34
   499  	WORD $0x54000a21  // b.ne	LBB0_75 $324(%rip)
   500  	WORD $0x8b0f01ad  // add	x13, x13, x15
   501  	WORD $0x17fffffa  // b	LBB0_52 $-24(%rip)
   502  LBB0_55:
   503  	WORD $0xdac001f1  // rbit	x17, x15
   504  	WORD $0xdac01231  // clz	x17, x17
   505  	WORD $0xcb0a01a3  // sub	x3, x13, x10
   506  	WORD $0x8b110071  // add	x17, x3, x17
   507  	WORD $0xb100053f  // cmn	x9, #1
   508  	WORD $0x9a911129  // csel	x9, x9, x17, ne
   509  LBB0_56:
   510  	WORD $0x0a2b01f1  // bic	w17, w15, w11
   511  	WORD $0x531f7a23  // lsl	w3, w17, #1
   512  	WORD $0x331f7a2b  // bfi	w11, w17, #1, #31
   513  	WORD $0x0a2301ef  // bic	w15, w15, w3
   514  	WORD $0x1201f1ef  // and	w15, w15, #0xaaaaaaaa
   515  	WORD $0x2b1101ef  // adds	w15, w15, w17
   516  	WORD $0x3200f3f1  // mov	w17, #1431655765
   517  	WORD $0x4a0f062f  // eor	w15, w17, w15, lsl #1
   518  	WORD $0x0a0b01eb  // and	w11, w15, w11
   519  	WORD $0x1a9f37ef  // cset	w15, hs
   520  	WORD $0x2a2b03eb  // mvn	w11, w11
   521  	WORD $0x8a0c016c  // and	x12, x11, x12
   522  	WORD $0xaa0f03eb  // mov	x11, x15
   523  	WORD $0xb5fff4ec  // cbnz	x12, LBB0_37 $-356(%rip)
   524  LBB0_57:
   525  	WORD $0x3500044e  // cbnz	w14, LBB0_69 $136(%rip)
   526  	WORD $0x910081ad  // add	x13, x13, #32
   527  	WORD $0xaa1003ec  // mov	x12, x16
   528  LBB0_59:
   529  	WORD $0xb50005eb  // cbnz	x11, LBB0_73 $188(%rip)
   530  	WORD $0xb40006cc  // cbz	x12, LBB0_75 $216(%rip)
   531  LBB0_61:
   532  	WORD $0xcb0a03eb  // neg	x11, x10
   533  LBB0_62:
   534  	WORD $0xd280000f  // mov	x15, #0
   535  LBB0_63:
   536  	WORD $0x386f69ae  // ldrb	w14, [x13, x15]
   537  	WORD $0x710089df  // cmp	w14, #34
   538  	WORD $0x54000360  // b.eq	LBB0_70 $108(%rip)
   539  	WORD $0x710171df  // cmp	w14, #92
   540  	WORD $0x54000100  // b.eq	LBB0_67 $32(%rip)
   541  	WORD $0x710081df  // cmp	w14, #32
   542  	WORD $0x540002a3  // b.lo	LBB0_69 $84(%rip)
   543  	WORD $0x910005ef  // add	x15, x15, #1
   544  	WORD $0x9280000e  // mov	x14, #-1
   545  	WORD $0xeb0f019f  // cmp	x12, x15
   546  	WORD $0x54fffec1  // b.ne	LBB0_63 $-40(%rip)
   547  	WORD $0x14000029  // b	LBB0_76 $164(%rip)
   548  LBB0_67:
   549  	WORD $0xd100058e  // sub	x14, x12, #1
   550  	WORD $0xeb0f01df  // cmp	x14, x15
   551  	WORD $0x540004a0  // b.eq	LBB0_75 $148(%rip)
   552  	WORD $0x8b0f01ad  // add	x13, x13, x15
   553  	WORD $0x8b0b01ae  // add	x14, x13, x11
   554  	WORD $0xb100053f  // cmn	x9, #1
   555  	WORD $0x9a8901c9  // csel	x9, x14, x9, eq
   556  	WORD $0x910009ad  // add	x13, x13, #2
   557  	WORD $0xd1000990  // sub	x16, x12, #2
   558  	WORD $0xcb0f018c  // sub	x12, x12, x15
   559  	WORD $0xd100098c  // sub	x12, x12, #2
   560  	WORD $0x9280000e  // mov	x14, #-1
   561  	WORD $0xeb0f021f  // cmp	x16, x15
   562  	WORD $0x54fffcc1  // b.ne	LBB0_62 $-104(%rip)
   563  	WORD $0x1400001a  // b	LBB0_76 $104(%rip)
   564  LBB0_69:
   565  	WORD $0x9280002e  // mov	x14, #-2
   566  	WORD $0x14000018  // b	LBB0_76 $96(%rip)
   567  LBB0_70:
   568  	WORD $0xcb0a01aa  // sub	x10, x13, x10
   569  	WORD $0x8b0f014a  // add	x10, x10, x15
   570  	WORD $0x9100054e  // add	x14, x10, #1
   571  	WORD $0xb6ffe34e  // tbz	x14, #63, LBB0_23 $-920(%rip)
   572  	WORD $0x14000013  // b	LBB0_76 $76(%rip)
   573  LBB0_71:
   574  	WORD $0xb400022b  // cbz	x11, LBB0_75 $68(%rip)
   575  	WORD $0xaa2a03ec  // mvn	x12, x10
   576  	WORD $0x8b0c01ac  // add	x12, x13, x12
   577  	WORD $0xb100053f  // cmn	x9, #1
   578  	WORD $0x9a890189  // csel	x9, x12, x9, eq
   579  	WORD $0x910005ad  // add	x13, x13, #1
   580  	WORD $0xd100056b  // sub	x11, x11, #1
   581  	WORD $0xb5fff32b  // cbnz	x11, LBB0_44 $-412(%rip)
   582  	WORD $0x17ffffb4  // b	LBB0_52 $-304(%rip)
   583  LBB0_73:
   584  	WORD $0xb400010c  // cbz	x12, LBB0_75 $32(%rip)
   585  	WORD $0xaa2a03eb  // mvn	x11, x10
   586  	WORD $0x8b0b01ab  // add	x11, x13, x11
   587  	WORD $0xb100053f  // cmn	x9, #1
   588  	WORD $0x9a890169  // csel	x9, x11, x9, eq
   589  	WORD $0x910005ad  // add	x13, x13, #1
   590  	WORD $0xd100058c  // sub	x12, x12, #1
   591  	WORD $0xb5fff98c  // cbnz	x12, LBB0_61 $-208(%rip)
   592  LBB0_75:
   593  	WORD $0x9280000e  // mov	x14, #-1
   594  LBB0_76:
   595  	WORD $0xf9400408  // ldr	x8, [x0, #8]
   596  	WORD $0xf9000028  // str	x8, [x1]
   597  	WORD $0xf900004e  // str	x14, [x2]
   598  	WORD $0xa941fbfd  // ldp	fp, lr, [sp, #24]
   599  	WORD $0xa940cff4  // ldp	x20, x19, [sp, #8]
   600  	WORD $0x9100c3ff  // add	sp, sp, #48
   601  	WORD $0xd65f03c0  // ret
   602  	  // .p2align 2, 0x00
   603  _MASK_USE_NUMBER:
   604  	WORD $0x00000002  // .long 2
   605  
   606  TEXT ·__vstring(SB), NOSPLIT, $0-32
   607  	NO_LOCAL_POINTERS
   608  
   609  _entry:
   610  	MOVD 16(g), R16
   611  	SUB $112, RSP, R17
   612  	CMP  R16, R17
   613  	BLS  _stack_grow
   614  
   615  _vstring:
   616  	MOVD s+0(FP), R0
   617  	MOVD p+8(FP), R1
   618  	MOVD v+16(FP), R2
   619  	MOVD flags+24(FP), R3
   620  	MOVD ·_subr__vstring(SB), R11
   621  	WORD $0x1000005e // adr x30, .+8
   622  	JMP (R11)
   623  	RET
   624  
   625  _stack_grow:
   626  	MOVD R30, R3
   627  	CALL runtime·morestack_noctxt<>(SB)
   628  	JMP  _entry