i64toa_arm64.s 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985
  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 ·__i64toa_entry__(SB), NOSPLIT, $16
  7. NO_LOCAL_POINTERS
  8. WORD $0x100000a0 // adr x0, .+20
  9. MOVD R0, ret(FP)
  10. RET
  11. // .p2align 3, 0x00
  12. lCPI0_0:
  13. WORD $0x147b20c5
  14. WORD $0x80003334
  15. // // .word 8389
  16. // .word 5243
  17. // .word 13108
  18. // .word 32768
  19. lCPI0_1:
  20. WORD $0x08000080
  21. WORD $0x80002000
  22. // // .word 128
  23. // .word 2048
  24. // .word 8192
  25. // .word 32768
  26. lCPI0_2:
  27. WORD $0x08040201
  28. WORD $0x80402010
  29. WORD $0x08040201
  30. WORD $0x80402010
  31. // // .byte 1
  32. // .byte 2
  33. // .byte 4
  34. // .byte 8
  35. // .byte 16
  36. // .byte 32
  37. // .byte 64
  38. // .byte 128
  39. // .byte 1
  40. // .byte 2
  41. // .byte 4
  42. // .byte 8
  43. // .byte 16
  44. // .byte 32
  45. // .byte 64
  46. // .byte 128
  47. lCPI0_3:
  48. WORD $0x09010800
  49. WORD $0x0b030a02
  50. WORD $0x0d050c04
  51. WORD $0x0f070e06
  52. // // .byte 0
  53. // .byte 8
  54. // .byte 1
  55. // .byte 9
  56. // .byte 2
  57. // .byte 10
  58. // .byte 3
  59. // .byte 11
  60. // .byte 4
  61. // .byte 12
  62. // .byte 5
  63. // .byte 13
  64. // .byte 6
  65. // .byte 14
  66. // .byte 7
  67. // .byte 15
  68. _i64toa:
  69. WORD $0xd10083ff // sub sp, sp, #32
  70. WORD $0xa900fbfd // stp fp, lr, [sp, #8]
  71. WORD $0xa93ffbfd // stp fp, lr, [sp, #-8]
  72. WORD $0xd10023fd // sub fp, sp, #8
  73. WORD $0xb7f80641 // tbnz x1, #63, LBB0_10 $200(%rip)
  74. WORD $0xd344fc28 // lsr x8, x1, #4
  75. WORD $0xf109c11f // cmp x8, #624
  76. WORD $0x540008e8 // b.hi LBB0_13 $284(%rip)
  77. WORD $0x53023c28 // ubfx w8, w1, #2, #14
  78. WORD $0x52828f69 // mov w9, #5243
  79. WORD $0x1b097d08 // mul w8, w8, w9
  80. WORD $0x53117d08 // lsr w8, w8, #17
  81. WORD $0xd37f7d09 // ubfiz x9, x8, #1, #32
  82. WORD $0x52800c8a // mov w10, #100
  83. WORD $0x1b0a8508 // msub w8, w8, w10, w1
  84. WORD $0x92403d08 // and x8, x8, #0xffff
  85. WORD $0xd37ff908 // lsl x8, x8, #1
  86. WORD $0x710fa03f // cmp w1, #1000
  87. WORD $0x540000e3 // b.lo LBB0_4 $28(%rip)
  88. Lloh0:
  89. WORD $0x100054ea // adr x10, _Digits $2716(%rip)
  90. Lloh1:
  91. WORD $0x9100014a // add x10, x10, _Digits@PAGEOFF $0(%rip)
  92. WORD $0x3869694a // ldrb w10, [x10, x9]
  93. WORD $0x3900000a // strb w10, [x0]
  94. WORD $0x5280002a // mov w10, #1
  95. WORD $0x14000004 // b LBB0_6 $16(%rip)
  96. LBB0_4:
  97. WORD $0x7101903f // cmp w1, #100
  98. WORD $0x540002e3 // b.lo LBB0_9 $92(%rip)
  99. WORD $0x5280000a // mov w10, #0
  100. LBB0_6:
  101. Lloh2:
  102. WORD $0x100053cb // adr x11, _Digits $2680(%rip)
  103. Lloh3:
  104. WORD $0x9100016b // add x11, x11, _Digits@PAGEOFF $0(%rip)
  105. WORD $0x8b294169 // add x9, x11, w9, uxtw
  106. WORD $0x3940052b // ldrb w11, [x9, #1]
  107. WORD $0x11000549 // add w9, w10, #1
  108. WORD $0x382a480b // strb w11, [x0, w10, uxtw]
  109. LBB0_7:
  110. Lloh4:
  111. WORD $0x1000530a // adr x10, _Digits $2656(%rip)
  112. Lloh5:
  113. WORD $0x9100014a // add x10, x10, _Digits@PAGEOFF $0(%rip)
  114. WORD $0x3868694b // ldrb w11, [x10, x8]
  115. WORD $0x1100052a // add w10, w9, #1
  116. WORD $0x3829480b // strb w11, [x0, w9, uxtw]
  117. LBB0_8:
  118. Lloh6:
  119. WORD $0x10005269 // adr x9, _Digits $2636(%rip)
  120. Lloh7:
  121. WORD $0x91000129 // add x9, x9, _Digits@PAGEOFF $0(%rip)
  122. WORD $0x8b282128 // add x8, x9, w8, uxth
  123. WORD $0x39400509 // ldrb w9, [x8, #1]
  124. WORD $0x11000548 // add w8, w10, #1
  125. WORD $0x382a4809 // strb w9, [x0, w10, uxtw]
  126. WORD $0xaa0803e0 // mov x0, x8
  127. WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
  128. WORD $0x910083ff // add sp, sp, #32
  129. WORD $0xd65f03c0 // ret
  130. LBB0_9:
  131. WORD $0x52800009 // mov w9, #0
  132. WORD $0x5280000a // mov w10, #0
  133. WORD $0x7100283f // cmp w1, #10
  134. WORD $0x54fffdc2 // b.hs LBB0_7 $-72(%rip)
  135. WORD $0x17fffff2 // b LBB0_8 $-56(%rip)
  136. LBB0_10:
  137. WORD $0x528005a9 // mov w9, #45
  138. WORD $0xaa0003e8 // mov x8, x0
  139. WORD $0x38001509 // strb w9, [x8], #1
  140. WORD $0xcb0103e9 // neg x9, x1
  141. WORD $0xd344fd2a // lsr x10, x9, #4
  142. WORD $0xf109c15f // cmp x10, #624
  143. WORD $0x54001068 // b.hi LBB0_28 $524(%rip)
  144. WORD $0x53023d2a // ubfx w10, w9, #2, #14
  145. WORD $0x52828f6b // mov w11, #5243
  146. WORD $0x1b0b7d4a // mul w10, w10, w11
  147. WORD $0x53117d4a // lsr w10, w10, #17
  148. WORD $0xd37f7d4b // ubfiz x11, x10, #1, #32
  149. WORD $0x52800c8c // mov w12, #100
  150. WORD $0x1b0ca54a // msub w10, w10, w12, w9
  151. WORD $0x92403d4a // and x10, x10, #0xffff
  152. WORD $0xd37ff94a // lsl x10, x10, #1
  153. WORD $0x710fa13f // cmp w9, #1000
  154. WORD $0x540004e3 // b.lo LBB0_16 $156(%rip)
  155. Lloh8:
  156. WORD $0x10004e49 // adr x9, _Digits $2504(%rip)
  157. Lloh9:
  158. WORD $0x91000129 // add x9, x9, _Digits@PAGEOFF $0(%rip)
  159. WORD $0x386b6929 // ldrb w9, [x9, x11]
  160. WORD $0x39000109 // strb w9, [x8]
  161. WORD $0x52800029 // mov w9, #1
  162. WORD $0x14000024 // b LBB0_18 $144(%rip)
  163. LBB0_13:
  164. WORD $0x529c2008 // mov w8, #57600
  165. WORD $0x72a0bea8 // movk w8, #1525, lsl #16
  166. WORD $0xeb08003f // cmp x1, x8
  167. WORD $0x540011c2 // b.hs LBB0_31 $568(%rip)
  168. WORD $0x5282eb28 // mov w8, #5977
  169. WORD $0x72ba36e8 // movk w8, #53687, lsl #16
  170. WORD $0x92407c29 // and x9, x1, #0xffffffff
  171. WORD $0x9ba87d28 // umull x8, w9, w8
  172. WORD $0xd36dfd08 // lsr x8, x8, #45
  173. WORD $0x529bd06a // mov w10, #56963
  174. WORD $0x72a8636a // movk w10, #17179, lsl #16
  175. WORD $0x9baa7d29 // umull x9, w9, w10
  176. WORD $0xd371fd29 // lsr x9, x9, #49
  177. WORD $0x927f312a // and x10, x9, #0x3ffe
  178. WORD $0x53023d09 // ubfx w9, w8, #2, #14
  179. WORD $0x52828f6b // mov w11, #5243
  180. WORD $0x1b0b7d29 // mul w9, w9, w11
  181. WORD $0x53117d29 // lsr w9, w9, #17
  182. WORD $0x52800c8b // mov w11, #100
  183. WORD $0x1b0ba129 // msub w9, w9, w11, w8
  184. WORD $0x92403d29 // and x9, x9, #0xffff
  185. WORD $0xd37ff929 // lsl x9, x9, #1
  186. WORD $0x5292cfeb // mov w11, #38527
  187. WORD $0x72a0130b // movk w11, #152, lsl #16
  188. WORD $0x6b0b003f // cmp w1, w11
  189. WORD $0x54000409 // b.ls LBB0_21 $128(%rip)
  190. Lloh10:
  191. WORD $0x10004a4b // adr x11, _Digits $2376(%rip)
  192. Lloh11:
  193. WORD $0x9100016b // add x11, x11, _Digits@PAGEOFF $0(%rip)
  194. WORD $0x386a696b // ldrb w11, [x11, x10]
  195. WORD $0x3900000b // strb w11, [x0]
  196. WORD $0x5280002c // mov w12, #1
  197. WORD $0x1400001f // b LBB0_23 $124(%rip)
  198. LBB0_16:
  199. WORD $0x7101913f // cmp w9, #100
  200. WORD $0x540008a3 // b.lo LBB0_26 $276(%rip)
  201. WORD $0x52800009 // mov w9, #0
  202. LBB0_18:
  203. Lloh12:
  204. WORD $0x1000492c // adr x12, _Digits $2340(%rip)
  205. Lloh13:
  206. WORD $0x9100018c // add x12, x12, _Digits@PAGEOFF $0(%rip)
  207. WORD $0x8b2b418b // add x11, x12, w11, uxtw
  208. WORD $0x3940056c // ldrb w12, [x11, #1]
  209. WORD $0x1100052b // add w11, w9, #1
  210. WORD $0x3829490c // strb w12, [x8, w9, uxtw]
  211. LBB0_19:
  212. Lloh14:
  213. WORD $0x10004869 // adr x9, _Digits $2316(%rip)
  214. Lloh15:
  215. WORD $0x91000129 // add x9, x9, _Digits@PAGEOFF $0(%rip)
  216. WORD $0x386a6929 // ldrb w9, [x9, x10]
  217. WORD $0x1100056c // add w12, w11, #1
  218. WORD $0x382b4909 // strb w9, [x8, w11, uxtw]
  219. LBB0_20:
  220. Lloh16:
  221. WORD $0x100047c9 // adr x9, _Digits $2296(%rip)
  222. Lloh17:
  223. WORD $0x91000129 // add x9, x9, _Digits@PAGEOFF $0(%rip)
  224. WORD $0x8b2a2129 // add x9, x9, w10, uxth
  225. WORD $0x3940052a // ldrb w10, [x9, #1]
  226. WORD $0x11000589 // add w9, w12, #1
  227. WORD $0x382c490a // strb w10, [x8, w12, uxtw]
  228. WORD $0x11000528 // add w8, w9, #1
  229. WORD $0xaa0803e0 // mov x0, x8
  230. WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
  231. WORD $0x910083ff // add sp, sp, #32
  232. WORD $0xd65f03c0 // ret
  233. LBB0_21:
  234. WORD $0x528847eb // mov w11, #16959
  235. WORD $0x72a001eb // movk w11, #15, lsl #16
  236. WORD $0x6b0b003f // cmp w1, w11
  237. WORD $0x540005e9 // b.ls LBB0_27 $188(%rip)
  238. WORD $0x5280000c // mov w12, #0
  239. LBB0_23:
  240. Lloh18:
  241. WORD $0x100045cb // adr x11, _Digits $2232(%rip)
  242. Lloh19:
  243. WORD $0x9100016b // add x11, x11, _Digits@PAGEOFF $0(%rip)
  244. WORD $0x8b2a416a // add x10, x11, w10, uxtw
  245. WORD $0x3940054a // ldrb w10, [x10, #1]
  246. WORD $0x1100058b // add w11, w12, #1
  247. WORD $0x382c480a // strb w10, [x0, w12, uxtw]
  248. LBB0_24:
  249. Lloh20:
  250. WORD $0x1000450a // adr x10, _Digits $2208(%rip)
  251. Lloh21:
  252. WORD $0x9100014a // add x10, x10, _Digits@PAGEOFF $0(%rip)
  253. WORD $0x3869694c // ldrb w12, [x10, x9]
  254. WORD $0x1100056a // add w10, w11, #1
  255. WORD $0x382b480c // strb w12, [x0, w11, uxtw]
  256. LBB0_25:
  257. WORD $0x5284e20b // mov w11, #10000
  258. WORD $0x1b0b8508 // msub w8, w8, w11, w1
  259. WORD $0x53023d0b // ubfx w11, w8, #2, #14
  260. WORD $0x52828f6c // mov w12, #5243
  261. WORD $0x1b0c7d6b // mul w11, w11, w12
  262. WORD $0x53117d6b // lsr w11, w11, #17
  263. WORD $0x52800c8c // mov w12, #100
  264. WORD $0x1b0ca168 // msub w8, w11, w12, w8
  265. WORD $0x92403d08 // and x8, x8, #0xffff
  266. WORD $0xd37ff908 // lsl x8, x8, #1
  267. Lloh22:
  268. WORD $0x1000432c // adr x12, _Digits $2148(%rip)
  269. Lloh23:
  270. WORD $0x9100018c // add x12, x12, _Digits@PAGEOFF $0(%rip)
  271. WORD $0x8b292189 // add x9, x12, w9, uxth
  272. WORD $0x39400529 // ldrb w9, [x9, #1]
  273. WORD $0x8b2a400d // add x13, x0, w10, uxtw
  274. WORD $0x390001a9 // strb w9, [x13]
  275. WORD $0x786b5989 // ldrh w9, [x12, w11, uxtw #1]
  276. WORD $0x780011a9 // sturh w9, [x13, #1]
  277. WORD $0x38686989 // ldrb w9, [x12, x8]
  278. WORD $0x39000da9 // strb w9, [x13, #3]
  279. WORD $0x927f3908 // and x8, x8, #0xfffe
  280. WORD $0x8b080188 // add x8, x12, x8
  281. WORD $0x39400509 // ldrb w9, [x8, #1]
  282. WORD $0x11001548 // add w8, w10, #5
  283. WORD $0x390011a9 // strb w9, [x13, #4]
  284. WORD $0xaa0803e0 // mov x0, x8
  285. WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
  286. WORD $0x910083ff // add sp, sp, #32
  287. WORD $0xd65f03c0 // ret
  288. LBB0_26:
  289. WORD $0x5280000b // mov w11, #0
  290. WORD $0x5280000c // mov w12, #0
  291. WORD $0x7100293f // cmp w9, #10
  292. WORD $0x54fff802 // b.hs LBB0_19 $-256(%rip)
  293. WORD $0x17ffffc4 // b LBB0_20 $-240(%rip)
  294. LBB0_27:
  295. WORD $0x5280000b // mov w11, #0
  296. WORD $0x5280000a // mov w10, #0
  297. WORD $0x53057c2c // lsr w12, w1, #5
  298. WORD $0x7130d59f // cmp w12, #3125
  299. WORD $0x54fffaa2 // b.hs LBB0_24 $-172(%rip)
  300. WORD $0x17ffffd9 // b LBB0_25 $-156(%rip)
  301. LBB0_28:
  302. WORD $0x529c200a // mov w10, #57600
  303. WORD $0x72a0beaa // movk w10, #1525, lsl #16
  304. WORD $0xeb0a013f // cmp x9, x10
  305. WORD $0x54001662 // b.hs LBB0_39 $716(%rip)
  306. WORD $0x5282eb2a // mov w10, #5977
  307. WORD $0x72ba36ea // movk w10, #53687, lsl #16
  308. WORD $0x9baa7d2a // umull x10, w9, w10
  309. WORD $0xd36dfd4a // lsr x10, x10, #45
  310. WORD $0x529bd06b // mov w11, #56963
  311. WORD $0x72a8636b // movk w11, #17179, lsl #16
  312. WORD $0x92407d2c // and x12, x9, #0xffffffff
  313. WORD $0x9bab7d8b // umull x11, w12, w11
  314. WORD $0xd371fd6b // lsr x11, x11, #49
  315. WORD $0x927f316c // and x12, x11, #0x3ffe
  316. WORD $0x53023d4b // ubfx w11, w10, #2, #14
  317. WORD $0x52828f6d // mov w13, #5243
  318. WORD $0x1b0d7d6b // mul w11, w11, w13
  319. WORD $0x53117d6b // lsr w11, w11, #17
  320. WORD $0x52800c8d // mov w13, #100
  321. WORD $0x1b0da96b // msub w11, w11, w13, w10
  322. WORD $0x92403d6b // and x11, x11, #0xffff
  323. WORD $0xd37ff96b // lsl x11, x11, #1
  324. WORD $0x5292cfed // mov w13, #38527
  325. WORD $0x72a0130d // movk w13, #152, lsl #16
  326. WORD $0x6b0d013f // cmp w9, w13
  327. WORD $0x54000d29 // b.ls LBB0_33 $420(%rip)
  328. Lloh24:
  329. WORD $0x10003c2d // adr x13, _Digits $1924(%rip)
  330. Lloh25:
  331. WORD $0x910001ad // add x13, x13, _Digits@PAGEOFF $0(%rip)
  332. WORD $0x386c69ad // ldrb w13, [x13, x12]
  333. WORD $0x3900010d // strb w13, [x8]
  334. WORD $0x5280002e // mov w14, #1
  335. WORD $0x14000068 // b LBB0_35 $416(%rip)
  336. LBB0_31:
  337. WORD $0xd2adf82a // mov x10, #1874919424
  338. WORD $0xf2d0de4a // movk x10, #34546, lsl #32
  339. WORD $0xf2e0046a // movk x10, #35, lsl #48
  340. WORD $0xeb0a003f // cmp x1, x10
  341. WORD $0x54001ea2 // b.hs LBB0_41 $980(%rip)
  342. WORD $0xd299dfa9 // mov x9, #52989
  343. WORD $0xf2b08c29 // movk x9, #33889, lsl #16
  344. WORD $0xf2cee229 // movk x9, #30481, lsl #32
  345. WORD $0xf2f57989 // movk x9, #43980, lsl #48
  346. WORD $0x9bc97c29 // umulh x9, x1, x9
  347. WORD $0xd35afd29 // lsr x9, x9, #26
  348. WORD $0x1b088528 // msub w8, w9, w8, w1
  349. WORD $0x6f00e400 // movi.2d v0, #0000000000000000
  350. WORD $0x6f00e401 // movi.2d v1, #0000000000000000
  351. WORD $0x4e041d21 // mov.s v1[0], w9
  352. WORD $0x0ea12822 // xtn.2s v2, v1
  353. WORD $0x5282eb29 // mov w9, #5977
  354. WORD $0x72ba36e9 // movk w9, #53687, lsl #16
  355. WORD $0x0e040d23 // dup.2s v3, w9
  356. WORD $0x2ea3c042 // umull.2d v2, v2, v3
  357. WORD $0x6f530442 // ushr.2d v2, v2, #45
  358. WORD $0x0ea12844 // xtn.2s v4, v2
  359. WORD $0x5284e209 // mov w9, #10000
  360. WORD $0x0e040d25 // dup.2s v5, w9
  361. WORD $0x2ea5c084 // umull.2d v4, v4, v5
  362. WORD $0x6ea48421 // sub.4s v1, v1, v4
  363. WORD $0x4e413841 // zip1.8h v1, v2, v1
  364. WORD $0x4f425421 // shl.2d v1, v1, #2
  365. WORD $0x4e413821 // zip1.8h v1, v1, v1
  366. WORD $0x4e813821 // zip1.4s v1, v1, v1
  367. Lloh26:
  368. WORD $0x10ffdee9 // adr x9, lCPI0_0 $-1060(%rip)
  369. Lloh27:
  370. WORD $0xfd400122 // ldr d2, [x9, lCPI0_0@PAGEOFF] $0(%rip)
  371. WORD $0x2e62c024 // umull.4s v4, v1, v2
  372. WORD $0x6e014021 // ext.16b v1, v1, v1, #8
  373. WORD $0x2e62c021 // umull.4s v1, v1, v2
  374. WORD $0x4e415881 // uzp2.8h v1, v4, v1
  375. Lloh28:
  376. WORD $0x10ffde69 // adr x9, lCPI0_1 $-1076(%rip)
  377. Lloh29:
  378. WORD $0xfd400124 // ldr d4, [x9, lCPI0_1@PAGEOFF] $0(%rip)
  379. WORD $0x2e64c026 // umull.4s v6, v1, v4
  380. WORD $0x6e014021 // ext.16b v1, v1, v1, #8
  381. WORD $0x2e64c021 // umull.4s v1, v1, v4
  382. WORD $0x4e4158c1 // uzp2.8h v1, v6, v1
  383. WORD $0x4f008546 // movi.8h v6, #10
  384. WORD $0x4e669c27 // mul.8h v7, v1, v6
  385. WORD $0x4f5054e7 // shl.2d v7, v7, #16
  386. WORD $0x6e678421 // sub.8h v1, v1, v7
  387. WORD $0x4e041d00 // mov.s v0[0], w8
  388. WORD $0x0ea12807 // xtn.2s v7, v0
  389. WORD $0x2ea3c0e3 // umull.2d v3, v7, v3
  390. WORD $0x6f530463 // ushr.2d v3, v3, #45
  391. WORD $0x0ea12867 // xtn.2s v7, v3
  392. WORD $0x2ea5c0e5 // umull.2d v5, v7, v5
  393. WORD $0x6ea58400 // sub.4s v0, v0, v5
  394. WORD $0x4e403860 // zip1.8h v0, v3, v0
  395. WORD $0x4f425400 // shl.2d v0, v0, #2
  396. WORD $0x4e403800 // zip1.8h v0, v0, v0
  397. WORD $0x4e803800 // zip1.4s v0, v0, v0
  398. WORD $0x2e62c003 // umull.4s v3, v0, v2
  399. WORD $0x6e004000 // ext.16b v0, v0, v0, #8
  400. WORD $0x2e62c000 // umull.4s v0, v0, v2
  401. WORD $0x4e405860 // uzp2.8h v0, v3, v0
  402. WORD $0x2e64c002 // umull.4s v2, v0, v4
  403. WORD $0x6e004000 // ext.16b v0, v0, v0, #8
  404. WORD $0x2e64c000 // umull.4s v0, v0, v4
  405. WORD $0x4e405840 // uzp2.8h v0, v2, v0
  406. WORD $0x4e669c02 // mul.8h v2, v0, v6
  407. WORD $0x4f505442 // shl.2d v2, v2, #16
  408. WORD $0x6e628400 // sub.8h v0, v0, v2
  409. WORD $0x2e212821 // sqxtun.8b v1, v1
  410. WORD $0x6e212801 // sqxtun2.16b v1, v0
  411. WORD $0x4f01e600 // movi.16b v0, #48
  412. WORD $0x4e208420 // add.16b v0, v1, v0
  413. WORD $0x4e209821 // cmeq.16b v1, v1, #0
  414. Lloh30:
  415. WORD $0x10ffda08 // adr x8, lCPI0_2 $-1216(%rip)
  416. Lloh31:
  417. WORD $0x3dc00102 // ldr q2, [x8, lCPI0_2@PAGEOFF] $0(%rip)
  418. WORD $0x4e221c21 // and.16b v1, v1, v2
  419. Lloh32:
  420. WORD $0x10ffda28 // adr x8, lCPI0_3 $-1212(%rip)
  421. Lloh33:
  422. WORD $0x3dc00102 // ldr q2, [x8, lCPI0_3@PAGEOFF] $0(%rip)
  423. WORD $0x4e020021 // tbl.16b v1, { v1 }, v2
  424. WORD $0x4e71b821 // addv.8h h1, v1
  425. WORD $0x1e260028 // fmov w8, s1
  426. WORD $0x2a2803e8 // mvn w8, w8
  427. WORD $0x32114108 // orr w8, w8, #0xffff8000
  428. WORD $0x5ac00108 // rbit w8, w8
  429. WORD $0x5ac01108 // clz w8, w8
  430. Lloh34:
  431. WORD $0x10003709 // adr x9, _VecShiftShuffles $1760(%rip)
  432. Lloh35:
  433. WORD $0x91000129 // add x9, x9, _VecShiftShuffles@PAGEOFF $0(%rip)
  434. WORD $0x3ce85921 // ldr q1, [x9, w8, uxtw #4]
  435. WORD $0x4f04e5e2 // movi.16b v2, #143
  436. WORD $0x4e221c21 // and.16b v1, v1, v2
  437. WORD $0x4e010000 // tbl.16b v0, { v0 }, v1
  438. WORD $0x3d800000 // str q0, [x0]
  439. WORD $0x52800209 // mov w9, #16
  440. WORD $0x4b080128 // sub w8, w9, w8
  441. WORD $0xaa0803e0 // mov x0, x8
  442. WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
  443. WORD $0x910083ff // add sp, sp, #32
  444. WORD $0xd65f03c0 // ret
  445. LBB0_33:
  446. WORD $0x528847ed // mov w13, #16959
  447. WORD $0x72a001ed // movk w13, #15, lsl #16
  448. WORD $0x6b0d013f // cmp w9, w13
  449. WORD $0x54000569 // b.ls LBB0_38 $172(%rip)
  450. WORD $0x5280000e // mov w14, #0
  451. LBB0_35:
  452. Lloh36:
  453. WORD $0x10002e8d // adr x13, _Digits $1488(%rip)
  454. Lloh37:
  455. WORD $0x910001ad // add x13, x13, _Digits@PAGEOFF $0(%rip)
  456. WORD $0x8b2c41ac // add x12, x13, w12, uxtw
  457. WORD $0x3940058c // ldrb w12, [x12, #1]
  458. WORD $0x110005cd // add w13, w14, #1
  459. WORD $0x382e490c // strb w12, [x8, w14, uxtw]
  460. LBB0_36:
  461. Lloh38:
  462. WORD $0x10002dcc // adr x12, _Digits $1464(%rip)
  463. Lloh39:
  464. WORD $0x9100018c // add x12, x12, _Digits@PAGEOFF $0(%rip)
  465. WORD $0x386b698e // ldrb w14, [x12, x11]
  466. WORD $0x110005ac // add w12, w13, #1
  467. WORD $0x382d490e // strb w14, [x8, w13, uxtw]
  468. LBB0_37:
  469. WORD $0x5284e20d // mov w13, #10000
  470. WORD $0x1b0da549 // msub w9, w10, w13, w9
  471. WORD $0x53023d2a // ubfx w10, w9, #2, #14
  472. WORD $0x52828f6d // mov w13, #5243
  473. WORD $0x1b0d7d4a // mul w10, w10, w13
  474. WORD $0x53117d4a // lsr w10, w10, #17
  475. WORD $0x52800c8d // mov w13, #100
  476. WORD $0x1b0da549 // msub w9, w10, w13, w9
  477. WORD $0x92403d29 // and x9, x9, #0xffff
  478. WORD $0xd37ff929 // lsl x9, x9, #1
  479. Lloh40:
  480. WORD $0x10002bed // adr x13, _Digits $1404(%rip)
  481. Lloh41:
  482. WORD $0x910001ad // add x13, x13, _Digits@PAGEOFF $0(%rip)
  483. WORD $0x8b2b21ab // add x11, x13, w11, uxth
  484. WORD $0x3940056b // ldrb w11, [x11, #1]
  485. WORD $0x8b2c4108 // add x8, x8, w12, uxtw
  486. WORD $0x3900010b // strb w11, [x8]
  487. WORD $0x786a59aa // ldrh w10, [x13, w10, uxtw #1]
  488. WORD $0x7800110a // sturh w10, [x8, #1]
  489. WORD $0x386969aa // ldrb w10, [x13, x9]
  490. WORD $0x39000d0a // strb w10, [x8, #3]
  491. WORD $0x927f3929 // and x9, x9, #0xfffe
  492. WORD $0x8b0901a9 // add x9, x13, x9
  493. WORD $0x3940052a // ldrb w10, [x9, #1]
  494. WORD $0x11001589 // add w9, w12, #5
  495. WORD $0x3900110a // strb w10, [x8, #4]
  496. WORD $0x11000528 // add w8, w9, #1
  497. WORD $0xaa0803e0 // mov x0, x8
  498. WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
  499. WORD $0x910083ff // add sp, sp, #32
  500. WORD $0xd65f03c0 // ret
  501. LBB0_38:
  502. WORD $0x5280000d // mov w13, #0
  503. WORD $0x5280000c // mov w12, #0
  504. WORD $0x53057d2e // lsr w14, w9, #5
  505. WORD $0x7130d5df // cmp w14, #3125
  506. WORD $0x54fffb22 // b.hs LBB0_36 $-156(%rip)
  507. WORD $0x17ffffdd // b LBB0_37 $-140(%rip)
  508. LBB0_39:
  509. WORD $0xd2adf82c // mov x12, #1874919424
  510. WORD $0xf2d0de4c // movk x12, #34546, lsl #32
  511. WORD $0xf2e0046c // movk x12, #35, lsl #48
  512. WORD $0xeb0c013f // cmp x9, x12
  513. WORD $0x540019e2 // b.hs LBB0_47 $828(%rip)
  514. WORD $0xd299dfab // mov x11, #52989
  515. WORD $0xf2b08c2b // movk x11, #33889, lsl #16
  516. WORD $0xf2cee22b // movk x11, #30481, lsl #32
  517. WORD $0xf2f5798b // movk x11, #43980, lsl #48
  518. WORD $0x9bcb7d2b // umulh x11, x9, x11
  519. WORD $0xd35afd6b // lsr x11, x11, #26
  520. WORD $0x1b0aa569 // msub w9, w11, w10, w9
  521. WORD $0x6f00e400 // movi.2d v0, #0000000000000000
  522. WORD $0x6f00e401 // movi.2d v1, #0000000000000000
  523. WORD $0x4e041d61 // mov.s v1[0], w11
  524. WORD $0x0ea12822 // xtn.2s v2, v1
  525. WORD $0x5282eb2a // mov w10, #5977
  526. WORD $0x72ba36ea // movk w10, #53687, lsl #16
  527. WORD $0x0e040d43 // dup.2s v3, w10
  528. WORD $0x2ea3c042 // umull.2d v2, v2, v3
  529. WORD $0x6f530442 // ushr.2d v2, v2, #45
  530. WORD $0x0ea12844 // xtn.2s v4, v2
  531. WORD $0x5284e20a // mov w10, #10000
  532. WORD $0x0e040d45 // dup.2s v5, w10
  533. WORD $0x2ea5c084 // umull.2d v4, v4, v5
  534. WORD $0x6ea48421 // sub.4s v1, v1, v4
  535. WORD $0x4e413841 // zip1.8h v1, v2, v1
  536. WORD $0x4f425421 // shl.2d v1, v1, #2
  537. WORD $0x4e413821 // zip1.8h v1, v1, v1
  538. WORD $0x4e813821 // zip1.4s v1, v1, v1
  539. Lloh42:
  540. WORD $0x10ffcc2a // adr x10, lCPI0_0 $-1660(%rip)
  541. Lloh43:
  542. WORD $0xfd400142 // ldr d2, [x10, lCPI0_0@PAGEOFF] $0(%rip)
  543. WORD $0x2e62c024 // umull.4s v4, v1, v2
  544. WORD $0x6e014021 // ext.16b v1, v1, v1, #8
  545. WORD $0x2e62c021 // umull.4s v1, v1, v2
  546. WORD $0x4e415881 // uzp2.8h v1, v4, v1
  547. Lloh44:
  548. WORD $0x10ffcbaa // adr x10, lCPI0_1 $-1676(%rip)
  549. Lloh45:
  550. WORD $0xfd400144 // ldr d4, [x10, lCPI0_1@PAGEOFF] $0(%rip)
  551. WORD $0x2e64c026 // umull.4s v6, v1, v4
  552. WORD $0x6e014021 // ext.16b v1, v1, v1, #8
  553. WORD $0x2e64c021 // umull.4s v1, v1, v4
  554. WORD $0x4e4158c1 // uzp2.8h v1, v6, v1
  555. WORD $0x4f008546 // movi.8h v6, #10
  556. WORD $0x4e669c27 // mul.8h v7, v1, v6
  557. WORD $0x4f5054e7 // shl.2d v7, v7, #16
  558. WORD $0x6e678421 // sub.8h v1, v1, v7
  559. WORD $0x4e041d20 // mov.s v0[0], w9
  560. WORD $0x0ea12807 // xtn.2s v7, v0
  561. WORD $0x2ea3c0e3 // umull.2d v3, v7, v3
  562. WORD $0x6f530463 // ushr.2d v3, v3, #45
  563. WORD $0x0ea12867 // xtn.2s v7, v3
  564. WORD $0x2ea5c0e5 // umull.2d v5, v7, v5
  565. WORD $0x6ea58400 // sub.4s v0, v0, v5
  566. WORD $0x4e403860 // zip1.8h v0, v3, v0
  567. WORD $0x4f425400 // shl.2d v0, v0, #2
  568. WORD $0x4e403800 // zip1.8h v0, v0, v0
  569. WORD $0x4e803800 // zip1.4s v0, v0, v0
  570. WORD $0x2e62c003 // umull.4s v3, v0, v2
  571. WORD $0x6e004000 // ext.16b v0, v0, v0, #8
  572. WORD $0x2e62c000 // umull.4s v0, v0, v2
  573. WORD $0x4e405860 // uzp2.8h v0, v3, v0
  574. WORD $0x2e64c002 // umull.4s v2, v0, v4
  575. WORD $0x6e004000 // ext.16b v0, v0, v0, #8
  576. WORD $0x2e64c000 // umull.4s v0, v0, v4
  577. WORD $0x4e405840 // uzp2.8h v0, v2, v0
  578. WORD $0x4e669c02 // mul.8h v2, v0, v6
  579. WORD $0x4f505442 // shl.2d v2, v2, #16
  580. WORD $0x6e628400 // sub.8h v0, v0, v2
  581. WORD $0x2e212821 // sqxtun.8b v1, v1
  582. WORD $0x6e212801 // sqxtun2.16b v1, v0
  583. WORD $0x4f01e600 // movi.16b v0, #48
  584. WORD $0x4e208420 // add.16b v0, v1, v0
  585. WORD $0x4e209821 // cmeq.16b v1, v1, #0
  586. Lloh46:
  587. WORD $0x10ffc749 // adr x9, lCPI0_2 $-1816(%rip)
  588. Lloh47:
  589. WORD $0x3dc00122 // ldr q2, [x9, lCPI0_2@PAGEOFF] $0(%rip)
  590. WORD $0x4e221c21 // and.16b v1, v1, v2
  591. Lloh48:
  592. WORD $0x10ffc769 // adr x9, lCPI0_3 $-1812(%rip)
  593. Lloh49:
  594. WORD $0x3dc00122 // ldr q2, [x9, lCPI0_3@PAGEOFF] $0(%rip)
  595. WORD $0x4e020021 // tbl.16b v1, { v1 }, v2
  596. WORD $0x4e71b821 // addv.8h h1, v1
  597. WORD $0x1e260029 // fmov w9, s1
  598. WORD $0x2a2903e9 // mvn w9, w9
  599. WORD $0x32114129 // orr w9, w9, #0xffff8000
  600. WORD $0x5ac00129 // rbit w9, w9
  601. WORD $0x5ac01129 // clz w9, w9
  602. Lloh50:
  603. WORD $0x1000244a // adr x10, _VecShiftShuffles $1160(%rip)
  604. Lloh51:
  605. WORD $0x9100014a // add x10, x10, _VecShiftShuffles@PAGEOFF $0(%rip)
  606. WORD $0x3ce95941 // ldr q1, [x10, w9, uxtw #4]
  607. WORD $0x4f04e5e2 // movi.16b v2, #143
  608. WORD $0x4e221c21 // and.16b v1, v1, v2
  609. WORD $0x4e010000 // tbl.16b v0, { v0 }, v1
  610. WORD $0x3d800100 // str q0, [x8]
  611. WORD $0x52800208 // mov w8, #16
  612. WORD $0x4b090109 // sub w9, w8, w9
  613. WORD $0x11000528 // add w8, w9, #1
  614. WORD $0xaa0803e0 // mov x0, x8
  615. WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
  616. WORD $0x910083ff // add sp, sp, #32
  617. WORD $0xd65f03c0 // ret
  618. LBB0_41:
  619. WORD $0xd28f0ae9 // mov x9, #30807
  620. WORD $0xf2b62269 // movk x9, #45331, lsl #16
  621. WORD $0xf2cca5e9 // movk x9, #25903, lsl #32
  622. WORD $0xf2e734a9 // movk x9, #14757, lsl #48
  623. WORD $0x9bc97c29 // umulh x9, x1, x9
  624. WORD $0xd373fd2b // lsr x11, x9, #51
  625. WORD $0x7100257f // cmp w11, #9
  626. WORD $0x540000a8 // b.hi LBB0_43 $20(%rip)
  627. WORD $0x1100c169 // add w9, w11, #48
  628. WORD $0x39000009 // strb w9, [x0]
  629. WORD $0x52800029 // mov w9, #1
  630. WORD $0x1400001b // b LBB0_46 $108(%rip)
  631. LBB0_43:
  632. WORD $0x71018d7f // cmp w11, #99
  633. WORD $0x540000e8 // b.hi LBB0_45 $28(%rip)
  634. Lloh52:
  635. WORD $0x10001a89 // adr x9, _Digits $848(%rip)
  636. Lloh53:
  637. WORD $0x91000129 // add x9, x9, _Digits@PAGEOFF $0(%rip)
  638. WORD $0x786b5929 // ldrh w9, [x9, w11, uxtw #1]
  639. WORD $0x79000009 // strh w9, [x0]
  640. WORD $0x52800049 // mov w9, #2
  641. WORD $0x14000013 // b LBB0_46 $76(%rip)
  642. LBB0_45:
  643. WORD $0x5280a3e9 // mov w9, #1311
  644. WORD $0x1b097d69 // mul w9, w11, w9
  645. WORD $0x53117d29 // lsr w9, w9, #17
  646. WORD $0x321c052c // orr w12, w9, #0x30
  647. WORD $0x3900000c // strb w12, [x0]
  648. WORD $0x52800c8c // mov w12, #100
  649. WORD $0x1b0cad29 // msub w9, w9, w12, w11
  650. WORD $0x92403d29 // and x9, x9, #0xffff
  651. WORD $0xd37ff929 // lsl x9, x9, #1
  652. Lloh54:
  653. WORD $0x100018ac // adr x12, _Digits $788(%rip)
  654. Lloh55:
  655. WORD $0x9100018c // add x12, x12, _Digits@PAGEOFF $0(%rip)
  656. WORD $0x3869698d // ldrb w13, [x12, x9]
  657. WORD $0x3900040d // strb w13, [x0, #1]
  658. WORD $0x927f3929 // and x9, x9, #0xfffe
  659. WORD $0x8b090189 // add x9, x12, x9
  660. WORD $0x39400529 // ldrb w9, [x9, #1]
  661. WORD $0x39000809 // strb w9, [x0, #2]
  662. WORD $0x52800069 // mov w9, #3
  663. LBB0_46:
  664. WORD $0x9b0a856a // msub x10, x11, x10, x1
  665. WORD $0xd299dfab // mov x11, #52989
  666. WORD $0xf2b08c2b // movk x11, #33889, lsl #16
  667. WORD $0xf2cee22b // movk x11, #30481, lsl #32
  668. WORD $0xf2f5798b // movk x11, #43980, lsl #48
  669. WORD $0x9bcb7d4b // umulh x11, x10, x11
  670. WORD $0xd35afd6b // lsr x11, x11, #26
  671. WORD $0x6f00e400 // movi.2d v0, #0000000000000000
  672. WORD $0x6f00e401 // movi.2d v1, #0000000000000000
  673. WORD $0x4e041d61 // mov.s v1[0], w11
  674. WORD $0x5282eb2c // mov w12, #5977
  675. WORD $0x72ba36ec // movk w12, #53687, lsl #16
  676. WORD $0x0e040d82 // dup.2s v2, w12
  677. WORD $0x0ea12823 // xtn.2s v3, v1
  678. WORD $0x2ea2c063 // umull.2d v3, v3, v2
  679. WORD $0x6f530463 // ushr.2d v3, v3, #45
  680. WORD $0x5284e20c // mov w12, #10000
  681. WORD $0x0e040d84 // dup.2s v4, w12
  682. WORD $0x0ea12865 // xtn.2s v5, v3
  683. WORD $0x2ea4c0a5 // umull.2d v5, v5, v4
  684. WORD $0x6ea58421 // sub.4s v1, v1, v5
  685. WORD $0x4e413861 // zip1.8h v1, v3, v1
  686. WORD $0x4f425421 // shl.2d v1, v1, #2
  687. WORD $0x4e413821 // zip1.8h v1, v1, v1
  688. WORD $0x4e813821 // zip1.4s v1, v1, v1
  689. Lloh56:
  690. WORD $0x10ffbbac // adr x12, lCPI0_0 $-2188(%rip)
  691. Lloh57:
  692. WORD $0xfd400183 // ldr d3, [x12, lCPI0_0@PAGEOFF] $0(%rip)
  693. WORD $0x2e63c025 // umull.4s v5, v1, v3
  694. WORD $0x6e014021 // ext.16b v1, v1, v1, #8
  695. WORD $0x2e63c021 // umull.4s v1, v1, v3
  696. WORD $0x4e4158a1 // uzp2.8h v1, v5, v1
  697. Lloh58:
  698. WORD $0x10ffbb2c // adr x12, lCPI0_1 $-2204(%rip)
  699. Lloh59:
  700. WORD $0xfd400185 // ldr d5, [x12, lCPI0_1@PAGEOFF] $0(%rip)
  701. WORD $0x2e65c026 // umull.4s v6, v1, v5
  702. WORD $0x6e014021 // ext.16b v1, v1, v1, #8
  703. WORD $0x2e65c021 // umull.4s v1, v1, v5
  704. WORD $0x4e4158c1 // uzp2.8h v1, v6, v1
  705. WORD $0x4f008546 // movi.8h v6, #10
  706. WORD $0x4e669c27 // mul.8h v7, v1, v6
  707. WORD $0x4f5054e7 // shl.2d v7, v7, #16
  708. WORD $0x6e678421 // sub.8h v1, v1, v7
  709. WORD $0x1b08a968 // msub w8, w11, w8, w10
  710. WORD $0x4e041d00 // mov.s v0[0], w8
  711. WORD $0x0ea12807 // xtn.2s v7, v0
  712. WORD $0x2ea2c0e2 // umull.2d v2, v7, v2
  713. WORD $0x6f530442 // ushr.2d v2, v2, #45
  714. WORD $0x0ea12847 // xtn.2s v7, v2
  715. WORD $0x2ea4c0e4 // umull.2d v4, v7, v4
  716. WORD $0x6ea48400 // sub.4s v0, v0, v4
  717. WORD $0x4e403840 // zip1.8h v0, v2, v0
  718. WORD $0x4f425400 // shl.2d v0, v0, #2
  719. WORD $0x4e403800 // zip1.8h v0, v0, v0
  720. WORD $0x4e803800 // zip1.4s v0, v0, v0
  721. WORD $0x2e63c002 // umull.4s v2, v0, v3
  722. WORD $0x6e004000 // ext.16b v0, v0, v0, #8
  723. WORD $0x2e63c000 // umull.4s v0, v0, v3
  724. WORD $0x4e405840 // uzp2.8h v0, v2, v0
  725. WORD $0x2e65c002 // umull.4s v2, v0, v5
  726. WORD $0x6e004000 // ext.16b v0, v0, v0, #8
  727. WORD $0x2e65c000 // umull.4s v0, v0, v5
  728. WORD $0x4e405840 // uzp2.8h v0, v2, v0
  729. WORD $0x4e669c02 // mul.8h v2, v0, v6
  730. WORD $0x4f505442 // shl.2d v2, v2, #16
  731. WORD $0x6e628400 // sub.8h v0, v0, v2
  732. WORD $0x2e212821 // sqxtun.8b v1, v1
  733. WORD $0x6e212801 // sqxtun2.16b v1, v0
  734. WORD $0x4f01e600 // movi.16b v0, #48
  735. WORD $0x4e208420 // add.16b v0, v1, v0
  736. WORD $0x3ca94800 // str q0, [x0, w9, uxtw]
  737. WORD $0x321c0128 // orr w8, w9, #0x10
  738. WORD $0xaa0803e0 // mov x0, x8
  739. WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
  740. WORD $0x910083ff // add sp, sp, #32
  741. WORD $0xd65f03c0 // ret
  742. LBB0_47:
  743. WORD $0xd28f0aeb // mov x11, #30807
  744. WORD $0xf2b6226b // movk x11, #45331, lsl #16
  745. WORD $0xf2cca5eb // movk x11, #25903, lsl #32
  746. WORD $0xf2e734ab // movk x11, #14757, lsl #48
  747. WORD $0x9bcb7d2b // umulh x11, x9, x11
  748. WORD $0xd373fd6d // lsr x13, x11, #51
  749. WORD $0x710025bf // cmp w13, #9
  750. WORD $0x540000a8 // b.hi LBB0_49 $20(%rip)
  751. WORD $0x1100c1ab // add w11, w13, #48
  752. WORD $0x3900010b // strb w11, [x8]
  753. WORD $0x5280002b // mov w11, #1
  754. WORD $0x1400001c // b LBB0_52 $112(%rip)
  755. LBB0_49:
  756. WORD $0x71018dbf // cmp w13, #99
  757. WORD $0x540000e8 // b.hi LBB0_51 $28(%rip)
  758. Lloh60:
  759. WORD $0x10000c8b // adr x11, _Digits $400(%rip)
  760. Lloh61:
  761. WORD $0x9100016b // add x11, x11, _Digits@PAGEOFF $0(%rip)
  762. WORD $0x786d596b // ldrh w11, [x11, w13, uxtw #1]
  763. WORD $0x7800100b // sturh w11, [x0, #1]
  764. WORD $0x5280004b // mov w11, #2
  765. WORD $0x14000014 // b LBB0_52 $80(%rip)
  766. LBB0_51:
  767. WORD $0x53023dab // ubfx w11, w13, #2, #14
  768. WORD $0x52828f6e // mov w14, #5243
  769. WORD $0x1b0e7d6b // mul w11, w11, w14
  770. WORD $0x53117d6b // lsr w11, w11, #17
  771. WORD $0x321c056e // orr w14, w11, #0x30
  772. WORD $0x3900040e // strb w14, [x0, #1]
  773. WORD $0x52800c8e // mov w14, #100
  774. WORD $0x1b0eb56b // msub w11, w11, w14, w13
  775. WORD $0x92403d6b // and x11, x11, #0xffff
  776. WORD $0xd37ff96b // lsl x11, x11, #1
  777. Lloh62:
  778. WORD $0x10000a8e // adr x14, _Digits $336(%rip)
  779. Lloh63:
  780. WORD $0x910001ce // add x14, x14, _Digits@PAGEOFF $0(%rip)
  781. WORD $0x386b69cf // ldrb w15, [x14, x11]
  782. WORD $0x3900080f // strb w15, [x0, #2]
  783. WORD $0x927f396b // and x11, x11, #0xfffe
  784. WORD $0x8b0b01cb // add x11, x14, x11
  785. WORD $0x3940056b // ldrb w11, [x11, #1]
  786. WORD $0x39000c0b // strb w11, [x0, #3]
  787. WORD $0x5280006b // mov w11, #3
  788. LBB0_52:
  789. WORD $0x9b0ca5a9 // msub x9, x13, x12, x9
  790. WORD $0xd299dfac // mov x12, #52989
  791. WORD $0xf2b08c2c // movk x12, #33889, lsl #16
  792. WORD $0xf2cee22c // movk x12, #30481, lsl #32
  793. WORD $0xf2f5798c // movk x12, #43980, lsl #48
  794. WORD $0x9bcc7d2c // umulh x12, x9, x12
  795. WORD $0xd35afd8c // lsr x12, x12, #26
  796. WORD $0x6f00e400 // movi.2d v0, #0000000000000000
  797. WORD $0x6f00e401 // movi.2d v1, #0000000000000000
  798. WORD $0x4e041d81 // mov.s v1[0], w12
  799. WORD $0x5282eb2d // mov w13, #5977
  800. WORD $0x72ba36ed // movk w13, #53687, lsl #16
  801. WORD $0x0e040da2 // dup.2s v2, w13
  802. WORD $0x0ea12823 // xtn.2s v3, v1
  803. WORD $0x2ea2c063 // umull.2d v3, v3, v2
  804. WORD $0x6f530463 // ushr.2d v3, v3, #45
  805. WORD $0x5284e20d // mov w13, #10000
  806. WORD $0x0e040da4 // dup.2s v4, w13
  807. WORD $0x0ea12865 // xtn.2s v5, v3
  808. WORD $0x2ea4c0a5 // umull.2d v5, v5, v4
  809. WORD $0x6ea58421 // sub.4s v1, v1, v5
  810. WORD $0x4e413861 // zip1.8h v1, v3, v1
  811. WORD $0x4f425421 // shl.2d v1, v1, #2
  812. WORD $0x4e413821 // zip1.8h v1, v1, v1
  813. WORD $0x4e813821 // zip1.4s v1, v1, v1
  814. Lloh64:
  815. WORD $0x10ffad8d // adr x13, lCPI0_0 $-2640(%rip)
  816. Lloh65:
  817. WORD $0xfd4001a3 // ldr d3, [x13, lCPI0_0@PAGEOFF] $0(%rip)
  818. WORD $0x2e63c025 // umull.4s v5, v1, v3
  819. WORD $0x6e014021 // ext.16b v1, v1, v1, #8
  820. WORD $0x2e63c021 // umull.4s v1, v1, v3
  821. WORD $0x4e4158a1 // uzp2.8h v1, v5, v1
  822. Lloh66:
  823. WORD $0x10ffad0d // adr x13, lCPI0_1 $-2656(%rip)
  824. Lloh67:
  825. WORD $0xfd4001a5 // ldr d5, [x13, lCPI0_1@PAGEOFF] $0(%rip)
  826. WORD $0x2e65c026 // umull.4s v6, v1, v5
  827. WORD $0x6e014021 // ext.16b v1, v1, v1, #8
  828. WORD $0x2e65c021 // umull.4s v1, v1, v5
  829. WORD $0x4e4158c1 // uzp2.8h v1, v6, v1
  830. WORD $0x4f008546 // movi.8h v6, #10
  831. WORD $0x4e669c27 // mul.8h v7, v1, v6
  832. WORD $0x4f5054e7 // shl.2d v7, v7, #16
  833. WORD $0x6e678421 // sub.8h v1, v1, v7
  834. WORD $0x1b0aa589 // msub w9, w12, w10, w9
  835. WORD $0x4e041d20 // mov.s v0[0], w9
  836. WORD $0x0ea12807 // xtn.2s v7, v0
  837. WORD $0x2ea2c0e2 // umull.2d v2, v7, v2
  838. WORD $0x6f530442 // ushr.2d v2, v2, #45
  839. WORD $0x0ea12847 // xtn.2s v7, v2
  840. WORD $0x2ea4c0e4 // umull.2d v4, v7, v4
  841. WORD $0x6ea48400 // sub.4s v0, v0, v4
  842. WORD $0x4e403840 // zip1.8h v0, v2, v0
  843. WORD $0x4f425400 // shl.2d v0, v0, #2
  844. WORD $0x4e403800 // zip1.8h v0, v0, v0
  845. WORD $0x4e803800 // zip1.4s v0, v0, v0
  846. WORD $0x2e63c002 // umull.4s v2, v0, v3
  847. WORD $0x6e004000 // ext.16b v0, v0, v0, #8
  848. WORD $0x2e63c000 // umull.4s v0, v0, v3
  849. WORD $0x4e405840 // uzp2.8h v0, v2, v0
  850. WORD $0x2e65c002 // umull.4s v2, v0, v5
  851. WORD $0x6e004000 // ext.16b v0, v0, v0, #8
  852. WORD $0x2e65c000 // umull.4s v0, v0, v5
  853. WORD $0x4e405840 // uzp2.8h v0, v2, v0
  854. WORD $0x4e669c02 // mul.8h v2, v0, v6
  855. WORD $0x4f505442 // shl.2d v2, v2, #16
  856. WORD $0x6e628400 // sub.8h v0, v0, v2
  857. WORD $0x2e212821 // sqxtun.8b v1, v1
  858. WORD $0x6e212801 // sqxtun2.16b v1, v0
  859. WORD $0x4f01e600 // movi.16b v0, #48
  860. WORD $0x4e208420 // add.16b v0, v1, v0
  861. WORD $0x3cab4900 // str q0, [x8, w11, uxtw]
  862. WORD $0x321c0169 // orr w9, w11, #0x10
  863. WORD $0x11000528 // add w8, w9, #1
  864. WORD $0xaa0803e0 // mov x0, x8
  865. WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
  866. WORD $0x910083ff // add sp, sp, #32
  867. WORD $0xd65f03c0 // ret
  868. _Digits:
  869. WORD $0x31303030 // .ascii 4, '0001020304050607'
  870. WORD $0x33303230 // .ascii 4, '0203040506070809'
  871. WORD $0x35303430 // .ascii 4, '0405060708091011'
  872. WORD $0x37303630 // .ascii 4, '0607080910111213'
  873. WORD $0x39303830 // .ascii 4, '0809101112131415'
  874. WORD $0x31313031 // .ascii 4, '1011121314151617'
  875. WORD $0x33313231 // .ascii 4, '1213141516171819'
  876. WORD $0x35313431 // .ascii 4, '1415161718192021'
  877. WORD $0x37313631 // .ascii 4, '1617181920212223'
  878. WORD $0x39313831 // .ascii 4, '1819202122232425'
  879. WORD $0x31323032 // .ascii 4, '2021222324252627'
  880. WORD $0x33323232 // .ascii 4, '2223242526272829'
  881. WORD $0x35323432 // .ascii 4, '2425262728293031'
  882. WORD $0x37323632 // .ascii 4, '2627282930313233'
  883. WORD $0x39323832 // .ascii 4, '2829303132333435'
  884. WORD $0x31333033 // .ascii 4, '3031323334353637'
  885. WORD $0x33333233 // .ascii 4, '3233343536373839'
  886. WORD $0x35333433 // .ascii 4, '3435363738394041'
  887. WORD $0x37333633 // .ascii 4, '3637383940414243'
  888. WORD $0x39333833 // .ascii 4, '3839404142434445'
  889. WORD $0x31343034 // .ascii 4, '4041424344454647'
  890. WORD $0x33343234 // .ascii 4, '4243444546474849'
  891. WORD $0x35343434 // .ascii 4, '4445464748495051'
  892. WORD $0x37343634 // .ascii 4, '4647484950515253'
  893. WORD $0x39343834 // .ascii 4, '4849505152535455'
  894. WORD $0x31353035 // .ascii 4, '5051525354555657'
  895. WORD $0x33353235 // .ascii 4, '5253545556575859'
  896. WORD $0x35353435 // .ascii 4, '5455565758596061'
  897. WORD $0x37353635 // .ascii 4, '5657585960616263'
  898. WORD $0x39353835 // .ascii 4, '5859606162636465'
  899. WORD $0x31363036 // .ascii 4, '6061626364656667'
  900. WORD $0x33363236 // .ascii 4, '6263646566676869'
  901. WORD $0x35363436 // .ascii 4, '6465666768697071'
  902. WORD $0x37363636 // .ascii 4, '6667686970717273'
  903. WORD $0x39363836 // .ascii 4, '6869707172737475'
  904. WORD $0x31373037 // .ascii 4, '7071727374757677'
  905. WORD $0x33373237 // .ascii 4, '7273747576777879'
  906. WORD $0x35373437 // .ascii 4, '7475767778798081'
  907. WORD $0x37373637 // .ascii 4, '7677787980818283'
  908. WORD $0x39373837 // .ascii 4, '7879808182838485'
  909. WORD $0x31383038 // .ascii 4, '8081828384858687'
  910. WORD $0x33383238 // .ascii 4, '8283848586878889'
  911. WORD $0x35383438 // .ascii 4, '8485868788899091'
  912. WORD $0x37383638 // .ascii 4, '8687888990919293'
  913. WORD $0x39383838 // .ascii 4, '8889909192939495'
  914. WORD $0x31393039 // .ascii 4, '9091929394959697'
  915. WORD $0x33393239 // .ascii 4, '9293949596979899'
  916. WORD $0x35393439 // .ascii 4, '949596979899'
  917. WORD $0x37393639 // .ascii 4, '96979899'
  918. WORD $0x39393839 // .ascii 4, '9899'
  919. // .p2align 4, 0x00
  920. _VecShiftShuffles:
  921. WORD $0x03020100 // .ascii 4, '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f'
  922. WORD $0x07060504 // .ascii 4, '\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x01\x02\x03\x04'
  923. WORD $0x0b0a0908 // .ascii 4, '\x08\t\n\x0b\x0c\r\x0e\x0f\x01\x02\x03\x04\x05\x06\x07\x08'
  924. WORD $0x0f0e0d0c // .ascii 4, '\x0c\r\x0e\x0f\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c'
  925. WORD $0x04030201 // .ascii 4, '\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff'
  926. WORD $0x08070605 // .ascii 4, '\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\x02\x03\x04\x05'
  927. WORD $0x0c0b0a09 // .ascii 4, '\t\n\x0b\x0c\r\x0e\x0f\xff\x02\x03\x04\x05\x06\x07\x08\t'
  928. WORD $0xff0f0e0d // .ascii 4, '\r\x0e\x0f\xff\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r'
  929. WORD $0x05040302 // .ascii 4, '\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff'
  930. WORD $0x09080706 // .ascii 4, '\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\x03\x04\x05\x06'
  931. WORD $0x0d0c0b0a // .ascii 4, '\n\x0b\x0c\r\x0e\x0f\xff\xff\x03\x04\x05\x06\x07\x08\t\n'
  932. WORD $0xffff0f0e // .ascii 4, '\x0e\x0f\xff\xff\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e'
  933. WORD $0x06050403 // .ascii 4, '\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff'
  934. WORD $0x0a090807 // .ascii 4, '\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\x04\x05\x06\x07'
  935. WORD $0x0e0d0c0b // .ascii 4, '\x0b\x0c\r\x0e\x0f\xff\xff\xff\x04\x05\x06\x07\x08\t\n\x0b'
  936. WORD $0xffffff0f // .ascii 4, '\x0f\xff\xff\xff\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f'
  937. WORD $0x07060504 // .ascii 4, '\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff'
  938. WORD $0x0b0a0908 // .ascii 4, '\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\x05\x06\x07\x08'
  939. WORD $0x0f0e0d0c // .ascii 4, '\x0c\r\x0e\x0f\xff\xff\xff\xff\x05\x06\x07\x08\t\n\x0b\x0c'
  940. WORD $0xffffffff // .ascii 4, '\xff\xff\xff\xff\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff'
  941. WORD $0x08070605 // .ascii 4, '\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff'
  942. WORD $0x0c0b0a09 // .ascii 4, '\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\x06\x07\x08\t'
  943. WORD $0xff0f0e0d // .ascii 4, '\r\x0e\x0f\xff\xff\xff\xff\xff\x06\x07\x08\t\n\x0b\x0c\r'
  944. WORD $0xffffffff // .ascii 4, '\xff\xff\xff\xff\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff'
  945. WORD $0x09080706 // .ascii 4, '\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff'
  946. WORD $0x0d0c0b0a // .ascii 4, '\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\x07\x08\t\n'
  947. WORD $0xffff0f0e // .ascii 4, '\x0e\x0f\xff\xff\xff\xff\xff\xff\x07\x08\t\n\x0b\x0c\r\x0e'
  948. WORD $0xffffffff // .ascii 4, '\xff\xff\xff\xff\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff'
  949. WORD $0x0a090807 // .ascii 4, '\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff'
  950. WORD $0x0e0d0c0b // .ascii 4, '\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\x08\t\n\x0b'
  951. WORD $0xffffff0f // .ascii 4, '\x0f\xff\xff\xff\xff\xff\xff\xff\x08\t\n\x0b\x0c\r\x0e\x0f'
  952. WORD $0xffffffff // .ascii 4, '\xff\xff\xff\xff\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff'
  953. WORD $0x0b0a0908 // .ascii 4, '\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\xff'
  954. WORD $0x0f0e0d0c // .ascii 4, '\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\xff'
  955. WORD $0xffffffff // .ascii 4, '\xff\xff\xff\xff\xff\xff\xff\xff'
  956. WORD $0xffffffff // .ascii 4, '\xff\xff\xff\xff'
  957. TEXT ·__i64toa(SB), NOSPLIT, $0-24
  958. NO_LOCAL_POINTERS
  959. _entry:
  960. MOVD 16(g), R16
  961. SUB $96, RSP, R17
  962. CMP R16, R17
  963. BLS _stack_grow
  964. _i64toa:
  965. MOVD out+0(FP), R0
  966. MOVD val+8(FP), R1
  967. MOVD ·_subr__i64toa(SB), R11
  968. WORD $0x1000005e // adr x30, .+8
  969. JMP (R11)
  970. MOVD R0, ret+16(FP)
  971. RET
  972. _stack_grow:
  973. MOVD R30, R3
  974. CALL runtime·morestack_noctxt<>(SB)
  975. JMP _entry