...

Text file src/github.com/bytedance/sonic/internal/native/neon/vstring_arm64.s

Documentation: github.com/bytedance/sonic/internal/native/neon

     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
     8TEXT ·__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
    14lCPI0_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
    36lCPI0_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
    76Lloh0:
    77	WORD $0x10fffced  // adr	x13, lCPI0_0 $-100(%rip)
    78Lloh1:
    79	WORD $0x3dc001a2  // ldr	q2, [x13, lCPI0_0@PAGEOFF] $0(%rip)
    80Lloh2:
    81	WORD $0x10fffd2d  // adr	x13, lCPI0_1 $-92(%rip)
    82Lloh3:
    83	WORD $0x3dc001a3  // ldr	q3, [x13, lCPI0_1@PAGEOFF] $0(%rip)
    84	WORD $0xaa0803ed  // mov	x13, x8
    85LBB0_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)
   142LBB0_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)
   148LBB0_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
   154LBB0_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)
   166LBB0_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)
   173LBB0_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
   189LBB0_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)
   245LBB0_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)
   278LBB0_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
   284LBB0_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)
   296LBB0_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)
   306LBB0_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
   317LBB0_24:
   318	WORD $0x8b0d014d  // add	x13, x10, x13
   319	WORD $0x14000006  // b	LBB0_27 $24(%rip)
   320LBB0_25:
   321	WORD $0x8b0d014d  // add	x13, x10, x13
   322	WORD $0x1400002c  // b	LBB0_33 $176(%rip)
   323LBB0_26:
   324	WORD $0xd280000c  // mov	x12, #0
   325	WORD $0x8b08014d  // add	x13, x10, x8
   326	WORD $0x92800009  // mov	x9, #-1
   327LBB0_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
   337Lloh4:
   338	WORD $0x10ffdecb  // adr	x11, lCPI0_0 $-1064(%rip)
   339Lloh5:
   340	WORD $0x3dc00164  // ldr	q4, [x11, lCPI0_0@PAGEOFF] $0(%rip)
   341	WORD $0x4e241c63  // and.16b	v3, v3, v4
   342Lloh6:
   343	WORD $0x10ffdeeb  // adr	x11, lCPI0_1 $-1060(%rip)
   344Lloh7:
   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)
   366LBB0_31:
   367	WORD $0xdac0016b  // rbit	x11, x11
   368	WORD $0xdac0116b  // clz	x11, x11
   369	WORD $0x14000036  // b	LBB0_38 $216(%rip)
   370LBB0_32:
   371	WORD $0xd280000b  // mov	x11, #0
   372	WORD $0x8b08014d  // add	x13, x10, x8
   373	WORD $0x92800009  // mov	x9, #-1
   374LBB0_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)
   419LBB0_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)
   426LBB0_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)
   432LBB0_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
   439LBB0_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)
   454LBB0_41:
   455	WORD $0x910081ad  // add	x13, x13, #32
   456	WORD $0xaa0e03eb  // mov	x11, x14
   457LBB0_42:
   458	WORD $0xb5000c4c  // cbnz	x12, LBB0_71 $392(%rip)
   459	WORD $0xb40003ab  // cbz	x11, LBB0_52 $116(%rip)
   460LBB0_44:
   461	WORD $0xcb0a03ec  // neg	x12, x10
   462LBB0_45:
   463	WORD $0xd280000f  // mov	x15, #0
   464LBB0_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)
   474LBB0_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)
   490LBB0_51:
   491	WORD $0x8b0f01ab  // add	x11, x13, x15
   492	WORD $0x9100056d  // add	x13, x11, #1
   493LBB0_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)
   497LBB0_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)
   502LBB0_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
   509LBB0_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)
   524LBB0_57:
   525	WORD $0x3500044e  // cbnz	w14, LBB0_69 $136(%rip)
   526	WORD $0x910081ad  // add	x13, x13, #32
   527	WORD $0xaa1003ec  // mov	x12, x16
   528LBB0_59:
   529	WORD $0xb50005eb  // cbnz	x11, LBB0_73 $188(%rip)
   530	WORD $0xb40006cc  // cbz	x12, LBB0_75 $216(%rip)
   531LBB0_61:
   532	WORD $0xcb0a03eb  // neg	x11, x10
   533LBB0_62:
   534	WORD $0xd280000f  // mov	x15, #0
   535LBB0_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)
   548LBB0_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)
   564LBB0_69:
   565	WORD $0x9280002e  // mov	x14, #-2
   566	WORD $0x14000018  // b	LBB0_76 $96(%rip)
   567LBB0_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)
   573LBB0_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)
   583LBB0_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)
   592LBB0_75:
   593	WORD $0x9280000e  // mov	x14, #-1
   594LBB0_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
   606TEXT ·__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

View as plain text