vstring_arm64.s 21 KB

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