f32toa_arm64.s 39 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019
  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 ·__f32toa_entry__(SB), NOSPLIT, $16
  7. NO_LOCAL_POINTERS
  8. WORD $0x100000a0 // adr x0, .+20
  9. MOVD R0, ret(FP)
  10. RET
  11. // .p2align 2, 0x00
  12. _f32toa:
  13. WORD $0xd10083ff // sub sp, sp, #32
  14. WORD $0xa900fbfd // stp fp, lr, [sp, #8]
  15. WORD $0xa93ffbfd // stp fp, lr, [sp, #-8]
  16. WORD $0xd10023fd // sub fp, sp, #8
  17. WORD $0x1e260009 // fmov w9, s0
  18. WORD $0x5317792b // ubfx w11, w9, #23, #8
  19. WORD $0x7103fd7f // cmp w11, #255
  20. WORD $0x54005b20 // b.eq LBB0_130 $2916(%rip)
  21. WORD $0x528005a8 // mov w8, #45
  22. WORD $0x39000008 // strb w8, [x0]
  23. WORD $0x531f7d2a // lsr w10, w9, #31
  24. WORD $0x8b0a0008 // add x8, x0, x10
  25. WORD $0x1e26000c // fmov w12, s0
  26. WORD $0x7200799f // tst w12, #0x7fffffff
  27. WORD $0x54000e00 // b.eq LBB0_10 $448(%rip)
  28. WORD $0x1200592e // and w14, w9, #0x7fffff
  29. WORD $0x5290d3e9 // mov w9, #34463
  30. WORD $0x72a00029 // movk w9, #1, lsl #16
  31. WORD $0x34005a4b // cbz w11, LBB0_131 $2888(%rip)
  32. WORD $0x320901cd // orr w13, w14, #0x800000
  33. WORD $0x5102596c // sub w12, w11, #150
  34. WORD $0x5101fd6f // sub w15, w11, #127
  35. WORD $0x71005dff // cmp w15, #23
  36. WORD $0x54000108 // b.hi LBB0_5 $32(%rip)
  37. WORD $0x528012cf // mov w15, #150
  38. WORD $0x4b0b01ef // sub w15, w15, w11
  39. WORD $0x92800010 // mov x16, #-1
  40. WORD $0x9acf2210 // lsl x16, x16, x15
  41. WORD $0x2a3003f0 // mvn w16, w16
  42. WORD $0xea0d021f // tst x16, x13
  43. WORD $0x54001120 // b.eq LBB0_17 $548(%rip)
  44. LBB0_5:
  45. WORD $0x120001af // and w15, w13, #0x1
  46. WORD $0x710001df // cmp w14, #0
  47. WORD $0x1a9f17ee // cset w14, eq
  48. WORD $0x7100057f // cmp w11, #1
  49. WORD $0x1a9f97eb // cset w11, hi
  50. WORD $0x531e75b0 // lsl w16, w13, #2
  51. WORD $0x6a0b01cb // ands w11, w14, w11
  52. WORD $0x2a0b020b // orr w11, w16, w11
  53. WORD $0x52800051 // mov w17, #2
  54. WORD $0x331e5db1 // bfi w17, w13, #2, #24
  55. WORD $0x5288826d // mov w13, #17427
  56. WORD $0x72a0026d // movk w13, #19, lsl #16
  57. WORD $0x5280202e // mov w14, #257
  58. WORD $0x72bfff0e // movk w14, #65528, lsl #16
  59. WORD $0x1a9f11ce // csel w14, w14, wzr, ne
  60. WORD $0x51000961 // sub w1, w11, #2
  61. WORD $0x1b0d398b // madd w11, w12, w13, w14
  62. WORD $0x13167d6b // asr w11, w11, #22
  63. WORD $0x528d962d // mov w13, #27825
  64. WORD $0x72bffcad // movk w13, #65509, lsl #16
  65. WORD $0x1b0d7d6d // mul w13, w11, w13
  66. WORD $0x0b8d4d8c // add w12, w12, w13, asr #19
  67. WORD $0x1100058c // add w12, w12, #1
  68. WORD $0x528003ed // mov w13, #31
  69. Lloh0:
  70. WORD $0x10005c6e // adr x14, _pow10_ceil_sig_f32.g $2956(%rip)
  71. Lloh1:
  72. WORD $0x910001ce // add x14, x14, _pow10_ceil_sig_f32.g@PAGEOFF $0(%rip)
  73. WORD $0x4b0b01ad // sub w13, w13, w11
  74. WORD $0xf86d59c2 // ldr x2, [x14, w13, uxtw #3]
  75. WORD $0x1acc202d // lsl w13, w1, w12
  76. WORD $0x9b027dae // mul x14, x13, x2
  77. WORD $0x9bc27dad // umulh x13, x13, x2
  78. WORD $0xf25f79df // tst x14, #0xfffffffe00000000
  79. WORD $0x1a9f07ee // cset w14, ne
  80. WORD $0x2a0d01c1 // orr w1, w14, w13
  81. WORD $0x1acc220d // lsl w13, w16, w12
  82. WORD $0x9b027dae // mul x14, x13, x2
  83. WORD $0x9bc27dad // umulh x13, x13, x2
  84. WORD $0xf25f79df // tst x14, #0xfffffffe00000000
  85. WORD $0x1a9f07ee // cset w14, ne
  86. WORD $0x2a0d01ce // orr w14, w14, w13
  87. WORD $0x1acc222c // lsl w12, w17, w12
  88. WORD $0x9b027d90 // mul x16, x12, x2
  89. WORD $0x9bc27d8c // umulh x12, x12, x2
  90. WORD $0xf25f7a1f // tst x16, #0xfffffffe00000000
  91. WORD $0x1a9f07f0 // cset w16, ne
  92. WORD $0x2a0c020c // orr w12, w16, w12
  93. WORD $0x0b0f0030 // add w16, w1, w15
  94. WORD $0x4b0f018f // sub w15, w12, w15
  95. WORD $0x7100a1df // cmp w14, #40
  96. WORD $0x540001e3 // b.lo LBB0_7 $60(%rip)
  97. WORD $0x529999ac // mov w12, #52429
  98. WORD $0x72b9998c // movk w12, #52428, lsl #16
  99. WORD $0x9bac7dac // umull x12, w13, w12
  100. WORD $0xd365fd8c // lsr x12, x12, #37
  101. WORD $0x8b0c0991 // add x17, x12, x12, lsl #2
  102. WORD $0xd37df231 // lsl x17, x17, #3
  103. WORD $0x9100a221 // add x1, x17, #40
  104. WORD $0xeb30423f // cmp x17, w16, uxtw
  105. WORD $0x1a9f27f1 // cset w17, lo
  106. WORD $0xeb2f403f // cmp x1, w15, uxtw
  107. WORD $0x1a9f87e1 // cset w1, ls
  108. WORD $0x1a8c858c // cinc w12, w12, ls
  109. WORD $0x6b01023f // cmp w17, w1
  110. WORD $0x540004e0 // b.eq LBB0_11 $156(%rip)
  111. LBB0_7:
  112. WORD $0xd3427dac // ubfx x12, x13, #2, #30
  113. WORD $0x121e75b1 // and w17, w13, #0xfffffffc
  114. WORD $0x11001221 // add w1, w17, #4
  115. WORD $0x6b0f003f // cmp w1, w15
  116. WORD $0x1a9f87e2 // cset w2, ls
  117. WORD $0x6b11021f // cmp w16, w17
  118. WORD $0x1a9f97f0 // cset w16, hi
  119. WORD $0x4a020210 // eor w16, w16, w2
  120. WORD $0x321f0231 // orr w17, w17, #0x2
  121. WORD $0x52800022 // mov w2, #1
  122. WORD $0x6b1101df // cmp w14, w17
  123. WORD $0x1a9f17ee // cset w14, eq
  124. WORD $0x0a4d09cd // and w13, w14, w13, lsr #2
  125. WORD $0x1a8d804d // csel w13, w2, w13, hi
  126. WORD $0x0b0c01ad // add w13, w13, w12
  127. WORD $0x6b0f003f // cmp w1, w15
  128. WORD $0x1a8c858c // cinc w12, w12, ls
  129. WORD $0x7200021f // tst w16, #0x1
  130. WORD $0x1a8c11ac // csel w12, w13, w12, ne
  131. WORD $0x6b09019f // cmp w12, w9
  132. WORD $0x540002a9 // b.ls LBB0_12 $84(%rip)
  133. LBB0_8:
  134. WORD $0x52884809 // mov w9, #16960
  135. WORD $0x72a001e9 // movk w9, #15, lsl #16
  136. WORD $0x6b09019f // cmp w12, w9
  137. WORD $0x54000322 // b.hs LBB0_14 $100(%rip)
  138. WORD $0x528000cd // mov w13, #6
  139. WORD $0x0b0b01a9 // add w9, w13, w11
  140. WORD $0x5100592e // sub w14, w9, #22
  141. WORD $0x310071df // cmn w14, #28
  142. WORD $0x54000ae8 // b.hi LBB0_22 $348(%rip)
  143. WORD $0x140000bc // b LBB0_43 $752(%rip)
  144. LBB0_10:
  145. WORD $0x52800609 // mov w9, #48
  146. WORD $0x39000109 // strb w9, [x8]
  147. WORD $0x4b000108 // sub w8, w8, w0
  148. WORD $0x11000500 // add w0, w8, #1
  149. WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
  150. WORD $0x910083ff // add sp, sp, #32
  151. WORD $0xd65f03c0 // ret
  152. LBB0_11:
  153. WORD $0x1100056b // add w11, w11, #1
  154. WORD $0x6b09019f // cmp w12, w9
  155. WORD $0x54fffda8 // b.hi LBB0_8 $-76(%rip)
  156. LBB0_12:
  157. WORD $0x7100299f // cmp w12, #10
  158. WORD $0x540002c2 // b.hs LBB0_15 $88(%rip)
  159. WORD $0x5280002d // mov w13, #1
  160. WORD $0x0b0b01a9 // add w9, w13, w11
  161. WORD $0x5100592e // sub w14, w9, #22
  162. WORD $0x310071df // cmn w14, #28
  163. WORD $0x540008a8 // b.hi LBB0_22 $276(%rip)
  164. WORD $0x140000aa // b LBB0_43 $680(%rip)
  165. LBB0_14:
  166. WORD $0x528000e9 // mov w9, #7
  167. WORD $0x5292d00d // mov w13, #38528
  168. WORD $0x72a0130d // movk w13, #152, lsl #16
  169. WORD $0x529c200e // mov w14, #57600
  170. WORD $0x72a0beae // movk w14, #1525, lsl #16
  171. WORD $0x6b0e019f // cmp w12, w14
  172. WORD $0x5280010e // mov w14, #8
  173. WORD $0x1a8e35ce // cinc w14, w14, hs
  174. WORD $0x6b0d019f // cmp w12, w13
  175. WORD $0x1a8e312d // csel w13, w9, w14, lo
  176. WORD $0x0b0b01a9 // add w9, w13, w11
  177. WORD $0x5100592e // sub w14, w9, #22
  178. WORD $0x310071df // cmn w14, #28
  179. WORD $0x540006c8 // b.hi LBB0_22 $216(%rip)
  180. WORD $0x1400009b // b LBB0_43 $620(%rip)
  181. LBB0_15:
  182. WORD $0x7101919f // cmp w12, #100
  183. WORD $0x54000582 // b.hs LBB0_20 $176(%rip)
  184. WORD $0x5280004d // mov w13, #2
  185. WORD $0x0b0b01a9 // add w9, w13, w11
  186. WORD $0x5100592e // sub w14, w9, #22
  187. WORD $0x310071df // cmn w14, #28
  188. WORD $0x540005c8 // b.hi LBB0_22 $184(%rip)
  189. WORD $0x14000093 // b LBB0_43 $588(%rip)
  190. LBB0_17:
  191. WORD $0x1acf25ab // lsr w11, w13, w15
  192. Lloh2:
  193. WORD $0x100047ea // adr x10, _Digits $2300(%rip)
  194. Lloh3:
  195. WORD $0x9100014a // add x10, x10, _Digits@PAGEOFF $0(%rip)
  196. WORD $0x6b09017f // cmp w11, w9
  197. WORD $0x54001049 // b.ls LBB0_40 $520(%rip)
  198. WORD $0x5292d009 // mov w9, #38528
  199. WORD $0x72a01309 // movk w9, #152, lsl #16
  200. WORD $0x6b09017f // cmp w11, w9
  201. WORD $0x528000e9 // mov w9, #7
  202. WORD $0x9a893529 // cinc x9, x9, hs
  203. WORD $0x5288480c // mov w12, #16960
  204. WORD $0x72a001ec // movk w12, #15, lsl #16
  205. WORD $0x6b0c017f // cmp w11, w12
  206. WORD $0x528000cc // mov w12, #6
  207. WORD $0x9a893189 // csel x9, x12, x9, lo
  208. WORD $0x8b09010c // add x12, x8, x9
  209. LBB0_19:
  210. WORD $0x5286dc69 // mov w9, #14051
  211. WORD $0x72a00349 // movk w9, #26, lsl #16
  212. WORD $0x9ba97d69 // umull x9, w11, w9
  213. WORD $0xd362fd2d // lsr x13, x9, #34
  214. WORD $0x1284e1e9 // mov w9, #-10000
  215. WORD $0x1b092da9 // madd w9, w13, w9, w11
  216. WORD $0x5290a3eb // mov w11, #34079
  217. WORD $0x72aa3d6b // movk w11, #20971, lsl #16
  218. WORD $0x9bab7d2b // umull x11, w9, w11
  219. WORD $0xd365fd6b // lsr x11, x11, #37
  220. WORD $0x52800c8e // mov w14, #100
  221. WORD $0x1b0ea569 // msub w9, w11, w14, w9
  222. WORD $0x7869594e // ldrh w14, [x10, w9, uxtw #1]
  223. WORD $0x786b794b // ldrh w11, [x10, x11, lsl #1]
  224. WORD $0xaa0c03e9 // mov x9, x12
  225. WORD $0x781fcd8b // strh w11, [x12, #-4]!
  226. WORD $0x7900058e // strh w14, [x12, #2]
  227. WORD $0xaa0d03eb // mov x11, x13
  228. WORD $0x7101917f // cmp w11, #100
  229. WORD $0x540022e2 // b.hs LBB0_77 $1116(%rip)
  230. WORD $0x14000124 // b LBB0_79 $1168(%rip)
  231. LBB0_20:
  232. WORD $0x710fa19f // cmp w12, #1000
  233. WORD $0x54000c82 // b.hs LBB0_42 $400(%rip)
  234. WORD $0x5280006d // mov w13, #3
  235. WORD $0x0b0b01a9 // add w9, w13, w11
  236. WORD $0x5100592e // sub w14, w9, #22
  237. WORD $0x310071df // cmn w14, #28
  238. WORD $0x54000ce9 // b.ls LBB0_43 $412(%rip)
  239. LBB0_22:
  240. WORD $0x37f803cb // tbnz w11, #31, LBB0_26 $120(%rip)
  241. WORD $0x2a0d03ee // mov w14, w13
  242. WORD $0x8b0e010b // add x11, x8, x14
  243. WORD $0x53047d8f // lsr w15, w12, #4
  244. WORD $0x7109c5ff // cmp w15, #625
  245. WORD $0x54000483 // b.lo LBB0_30 $144(%rip)
  246. WORD $0x5282eb2f // mov w15, #5977
  247. WORD $0x72ba36ef // movk w15, #53687, lsl #16
  248. WORD $0x9baf7d8f // umull x15, w12, w15
  249. WORD $0xd36dfdf0 // lsr x16, x15, #45
  250. WORD $0x1284e1ef // mov w15, #-10000
  251. WORD $0x1b0f320c // madd w12, w16, w15, w12
  252. WORD $0x5290a3ef // mov w15, #34079
  253. WORD $0x72aa3d6f // movk w15, #20971, lsl #16
  254. WORD $0x9baf7d8f // umull x15, w12, w15
  255. WORD $0xd365fdef // lsr x15, x15, #37
  256. WORD $0x52800c91 // mov w17, #100
  257. WORD $0x1b11b1ec // msub w12, w15, w17, w12
  258. Lloh4:
  259. WORD $0x10004051 // adr x17, _Digits $2056(%rip)
  260. Lloh5:
  261. WORD $0x91000231 // add x17, x17, _Digits@PAGEOFF $0(%rip)
  262. WORD $0x786c5a2c // ldrh w12, [x17, w12, uxtw #1]
  263. WORD $0x786f7a31 // ldrh w17, [x17, x15, lsl #1]
  264. WORD $0xaa0b03ef // mov x15, x11
  265. WORD $0x781fcdf1 // strh w17, [x15, #-4]!
  266. WORD $0x790005ec // strh w12, [x15, #2]
  267. WORD $0xaa1003ec // mov x12, x16
  268. WORD $0x7101919f // cmp w12, #100
  269. WORD $0x54000222 // b.hs LBB0_31 $68(%rip)
  270. LBB0_25:
  271. WORD $0xaa0c03ef // mov x15, x12
  272. WORD $0x1400001f // b LBB0_33 $124(%rip)
  273. LBB0_26:
  274. WORD $0x7100013f // cmp w9, #0
  275. WORD $0x540024cc // b.gt LBB0_88 $1176(%rip)
  276. WORD $0x5285c60e // mov w14, #11824
  277. WORD $0x7800250e // strh w14, [x8], #2
  278. WORD $0x36f82469 // tbz w9, #31, LBB0_88 $1164(%rip)
  279. WORD $0x2a2d03ee // mvn w14, w13
  280. WORD $0x4b0b01ce // sub w14, w14, w11
  281. WORD $0x7100fddf // cmp w14, #63
  282. WORD $0x54002182 // b.hs LBB0_83 $1072(%rip)
  283. WORD $0x5280000e // mov w14, #0
  284. WORD $0x14000117 // b LBB0_86 $1116(%rip)
  285. LBB0_30:
  286. WORD $0xaa0b03ef // mov x15, x11
  287. WORD $0x7101919f // cmp w12, #100
  288. WORD $0x54fffe23 // b.lo LBB0_25 $-60(%rip)
  289. LBB0_31:
  290. WORD $0xd10005f0 // sub x16, x15, #1
  291. WORD $0x5290a3f1 // mov w17, #34079
  292. WORD $0x72aa3d71 // movk w17, #20971, lsl #16
  293. WORD $0x52800c81 // mov w1, #100
  294. Lloh6:
  295. WORD $0x10003c82 // adr x2, _Digits $1936(%rip)
  296. Lloh7:
  297. WORD $0x91000042 // add x2, x2, _Digits@PAGEOFF $0(%rip)
  298. LBB0_32:
  299. WORD $0x9bb17d8f // umull x15, w12, w17
  300. WORD $0xd365fdef // lsr x15, x15, #37
  301. WORD $0x1b01b1e3 // msub w3, w15, w1, w12
  302. WORD $0x78635843 // ldrh w3, [x2, w3, uxtw #1]
  303. WORD $0x781ff203 // sturh w3, [x16, #-1]
  304. WORD $0xd1000a10 // sub x16, x16, #2
  305. WORD $0x53047d83 // lsr w3, w12, #4
  306. WORD $0xaa0f03ec // mov x12, x15
  307. WORD $0x7109c07f // cmp w3, #624
  308. WORD $0x54fffee8 // b.hi LBB0_32 $-36(%rip)
  309. LBB0_33:
  310. WORD $0x8b09010c // add x12, x8, x9
  311. WORD $0x710029ff // cmp w15, #10
  312. WORD $0x54000163 // b.lo LBB0_36 $44(%rip)
  313. Lloh8:
  314. WORD $0x10003ab0 // adr x16, _Digits $1876(%rip)
  315. Lloh9:
  316. WORD $0x91000210 // add x16, x16, _Digits@PAGEOFF $0(%rip)
  317. WORD $0x786f5a0f // ldrh w15, [x16, w15, uxtw #1]
  318. WORD $0x7900010f // strh w15, [x8]
  319. WORD $0x6b0901bf // cmp w13, w9
  320. WORD $0x54000123 // b.lo LBB0_37 $36(%rip)
  321. LBB0_35:
  322. WORD $0x4b000180 // sub w0, w12, w0
  323. WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
  324. WORD $0x910083ff // add sp, sp, #32
  325. WORD $0xd65f03c0 // ret
  326. LBB0_36:
  327. WORD $0x321c05ef // orr w15, w15, #0x30
  328. WORD $0x3900010f // strb w15, [x8]
  329. WORD $0x6b0901bf // cmp w13, w9
  330. WORD $0x54ffff22 // b.hs LBB0_35 $-28(%rip)
  331. LBB0_37:
  332. WORD $0x8b0a0008 // add x8, x0, x10
  333. WORD $0x8b0e010d // add x13, x8, x14
  334. WORD $0x910005af // add x15, x13, #1
  335. WORD $0x8b090108 // add x8, x8, x9
  336. WORD $0xeb0801ff // cmp x15, x8
  337. WORD $0x9a8d9508 // csinc x8, x8, x13, ls
  338. WORD $0xcb0d0108 // sub x8, x8, x13
  339. WORD $0xf100211f // cmp x8, #8
  340. WORD $0x54003663 // b.lo LBB0_128 $1740(%rip)
  341. WORD $0xf101011f // cmp x8, #64
  342. WORD $0x540012a2 // b.hs LBB0_67 $596(%rip)
  343. WORD $0xd2800009 // mov x9, #0
  344. WORD $0x140000a1 // b LBB0_71 $644(%rip)
  345. LBB0_40:
  346. WORD $0x7100297f // cmp w11, #10
  347. WORD $0x540011a2 // b.hs LBB0_65 $564(%rip)
  348. WORD $0x52800029 // mov w9, #1
  349. WORD $0x140000ad // b LBB0_76 $692(%rip)
  350. LBB0_42:
  351. WORD $0x53047d89 // lsr w9, w12, #4
  352. WORD $0x7109c53f // cmp w9, #625
  353. WORD $0x52800089 // mov w9, #4
  354. WORD $0x1a89352d // cinc w13, w9, hs
  355. WORD $0x0b0b01a9 // add w9, w13, w11
  356. WORD $0x5100592e // sub w14, w9, #22
  357. WORD $0x310071df // cmn w14, #28
  358. WORD $0x54fff368 // b.hi LBB0_22 $-404(%rip)
  359. LBB0_43:
  360. WORD $0x9100050b // add x11, x8, #1
  361. WORD $0x2a0d03ed // mov w13, w13
  362. WORD $0x8b0d0170 // add x16, x11, x13
  363. WORD $0x53047d8e // lsr w14, w12, #4
  364. WORD $0x7109c5df // cmp w14, #625
  365. WORD $0x540002c3 // b.lo LBB0_46 $88(%rip)
  366. WORD $0x5282eb2e // mov w14, #5977
  367. WORD $0x72ba36ee // movk w14, #53687, lsl #16
  368. WORD $0x9bae7d8e // umull x14, w12, w14
  369. WORD $0xd36dfdcf // lsr x15, x14, #45
  370. WORD $0x1284e1ee // mov w14, #-10000
  371. WORD $0x1b0e31ec // madd w12, w15, w14, w12
  372. WORD $0x340002ac // cbz w12, LBB0_48 $84(%rip)
  373. WORD $0xd280000e // mov x14, #0
  374. WORD $0x5290a3f1 // mov w17, #34079
  375. WORD $0x72aa3d71 // movk w17, #20971, lsl #16
  376. WORD $0x9bb17d91 // umull x17, w12, w17
  377. WORD $0xd365fe31 // lsr x17, x17, #37
  378. WORD $0x52800c81 // mov w1, #100
  379. WORD $0x1b01b22c // msub w12, w17, w1, w12
  380. Lloh10:
  381. WORD $0x10003341 // adr x1, _Digits $1640(%rip)
  382. Lloh11:
  383. WORD $0x91000021 // add x1, x1, _Digits@PAGEOFF $0(%rip)
  384. WORD $0x786c582c // ldrh w12, [x1, w12, uxtw #1]
  385. WORD $0x781fe20c // sturh w12, [x16, #-2]
  386. WORD $0x7871782c // ldrh w12, [x1, x17, lsl #1]
  387. WORD $0x781fc20c // sturh w12, [x16, #-4]
  388. WORD $0x14000008 // b LBB0_49 $32(%rip)
  389. LBB0_46:
  390. WORD $0xd280000e // mov x14, #0
  391. WORD $0xaa0c03ef // mov x15, x12
  392. WORD $0x710191ff // cmp w15, #100
  393. WORD $0x540000e2 // b.hs LBB0_50 $28(%rip)
  394. LBB0_47:
  395. WORD $0xaa0f03ec // mov x12, x15
  396. WORD $0x14000015 // b LBB0_52 $84(%rip)
  397. LBB0_48:
  398. WORD $0x9280006e // mov x14, #-4
  399. LBB0_49:
  400. WORD $0xd1001210 // sub x16, x16, #4
  401. WORD $0x710191ff // cmp w15, #100
  402. WORD $0x54ffff63 // b.lo LBB0_47 $-20(%rip)
  403. LBB0_50:
  404. WORD $0xd1000610 // sub x16, x16, #1
  405. WORD $0x5290a3f1 // mov w17, #34079
  406. WORD $0x72aa3d71 // movk w17, #20971, lsl #16
  407. WORD $0x52800c81 // mov w1, #100
  408. Lloh12:
  409. WORD $0x100030a2 // adr x2, _Digits $1556(%rip)
  410. Lloh13:
  411. WORD $0x91000042 // add x2, x2, _Digits@PAGEOFF $0(%rip)
  412. LBB0_51:
  413. WORD $0x9bb17dec // umull x12, w15, w17
  414. WORD $0xd365fd8c // lsr x12, x12, #37
  415. WORD $0x1b01bd83 // msub w3, w12, w1, w15
  416. WORD $0x78635843 // ldrh w3, [x2, w3, uxtw #1]
  417. WORD $0x781ff203 // sturh w3, [x16, #-1]
  418. WORD $0xd1000a10 // sub x16, x16, #2
  419. WORD $0x53047de3 // lsr w3, w15, #4
  420. WORD $0xaa0c03ef // mov x15, x12
  421. WORD $0x7109c07f // cmp w3, #624
  422. WORD $0x54fffee8 // b.hi LBB0_51 $-36(%rip)
  423. LBB0_52:
  424. WORD $0x7100299f // cmp w12, #10
  425. WORD $0x54000123 // b.lo LBB0_54 $36(%rip)
  426. Lloh14:
  427. WORD $0x10002eef // adr x15, _Digits $1500(%rip)
  428. Lloh15:
  429. WORD $0x910001ef // add x15, x15, _Digits@PAGEOFF $0(%rip)
  430. WORD $0x8b2c45ef // add x15, x15, w12, uxtw #1
  431. WORD $0x394001ec // ldrb w12, [x15]
  432. WORD $0x3900050c // strb w12, [x8, #1]
  433. WORD $0x394005ef // ldrb w15, [x15, #1]
  434. WORD $0x3900090f // strb w15, [x8, #2]
  435. WORD $0x14000003 // b LBB0_55 $12(%rip)
  436. LBB0_54:
  437. WORD $0x321c058c // orr w12, w12, #0x30
  438. WORD $0x3900016c // strb w12, [x11]
  439. LBB0_55:
  440. WORD $0x8b0a01ca // add x10, x14, x10
  441. WORD $0x8b0a000a // add x10, x0, x10
  442. WORD $0x910005ce // add x14, x14, #1
  443. LBB0_56:
  444. WORD $0x386d694f // ldrb w15, [x10, x13]
  445. WORD $0xd100054a // sub x10, x10, #1
  446. WORD $0xd10005ce // sub x14, x14, #1
  447. WORD $0x7100c1ff // cmp w15, #48
  448. WORD $0x54ffff80 // b.eq LBB0_56 $-16(%rip)
  449. WORD $0x3900010c // strb w12, [x8]
  450. WORD $0x8b0e01ac // add x12, x13, x14
  451. WORD $0x8b0d0148 // add x8, x10, x13
  452. WORD $0xf100099f // cmp x12, #2
  453. WORD $0x540000ab // b.lt LBB0_59 $20(%rip)
  454. WORD $0x91000908 // add x8, x8, #2
  455. WORD $0x528005ca // mov w10, #46
  456. WORD $0x3900016a // strb w10, [x11]
  457. WORD $0x14000002 // b LBB0_60 $8(%rip)
  458. LBB0_59:
  459. WORD $0x91000508 // add x8, x8, #1
  460. LBB0_60:
  461. WORD $0x52800caa // mov w10, #101
  462. WORD $0x3900010a // strb w10, [x8]
  463. WORD $0x5280002a // mov w10, #1
  464. WORD $0x4b09014a // sub w10, w10, w9
  465. WORD $0x71000529 // subs w9, w9, #1
  466. WORD $0x5280056b // mov w11, #43
  467. WORD $0x528005ac // mov w12, #45
  468. WORD $0x1a8bb18b // csel w11, w12, w11, lt
  469. WORD $0x1a89b149 // csel w9, w10, w9, lt
  470. WORD $0x3900050b // strb w11, [x8, #1]
  471. WORD $0x7101913f // cmp w9, #100
  472. WORD $0x54000243 // b.lo LBB0_62 $72(%rip)
  473. WORD $0x529999aa // mov w10, #52429
  474. WORD $0x72b9998a // movk w10, #52428, lsl #16
  475. WORD $0x9baa7d2a // umull x10, w9, w10
  476. WORD $0xd363fd4a // lsr x10, x10, #35
  477. WORD $0x5280014b // mov w11, #10
  478. WORD $0x1b0ba549 // msub w9, w10, w11, w9
  479. Lloh16:
  480. WORD $0x1000292b // adr x11, _Digits $1316(%rip)
  481. Lloh17:
  482. WORD $0x9100016b // add x11, x11, _Digits@PAGEOFF $0(%rip)
  483. WORD $0x786a796a // ldrh w10, [x11, x10, lsl #1]
  484. WORD $0x7900050a // strh w10, [x8, #2]
  485. WORD $0x321c0529 // orr w9, w9, #0x30
  486. WORD $0x39001109 // strb w9, [x8, #4]
  487. WORD $0x9100150c // add x12, x8, #5
  488. WORD $0x4b000180 // sub w0, w12, w0
  489. WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
  490. WORD $0x910083ff // add sp, sp, #32
  491. WORD $0xd65f03c0 // ret
  492. LBB0_62:
  493. WORD $0x7100293f // cmp w9, #10
  494. WORD $0x54000143 // b.lo LBB0_64 $40(%rip)
  495. Lloh18:
  496. WORD $0x1000278a // adr x10, _Digits $1264(%rip)
  497. Lloh19:
  498. WORD $0x9100014a // add x10, x10, _Digits@PAGEOFF $0(%rip)
  499. WORD $0x78695949 // ldrh w9, [x10, w9, uxtw #1]
  500. WORD $0x79000509 // strh w9, [x8, #2]
  501. WORD $0x9100110c // add x12, x8, #4
  502. WORD $0x4b000180 // sub w0, w12, w0
  503. WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
  504. WORD $0x910083ff // add sp, sp, #32
  505. WORD $0xd65f03c0 // ret
  506. LBB0_64:
  507. WORD $0x321c0529 // orr w9, w9, #0x30
  508. WORD $0x91000d0c // add x12, x8, #3
  509. WORD $0x39000909 // strb w9, [x8, #2]
  510. WORD $0x4b000180 // sub w0, w12, w0
  511. WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
  512. WORD $0x910083ff // add sp, sp, #32
  513. WORD $0xd65f03c0 // ret
  514. LBB0_65:
  515. WORD $0x7101917f // cmp w11, #100
  516. WORD $0x540003c2 // b.hs LBB0_74 $120(%rip)
  517. WORD $0x52800049 // mov w9, #2
  518. WORD $0x1400001f // b LBB0_76 $124(%rip)
  519. LBB0_67:
  520. WORD $0x927ae509 // and x9, x8, #0xffffffffffffffc0
  521. WORD $0x8b0e014d // add x13, x10, x14
  522. WORD $0x8b0001ad // add x13, x13, x0
  523. WORD $0x910081ad // add x13, x13, #32
  524. WORD $0x4f01e600 // movi.16b v0, #48
  525. WORD $0xaa0903ef // mov x15, x9
  526. LBB0_68:
  527. WORD $0xad3f01a0 // stp q0, q0, [x13, #-32]
  528. WORD $0xac8201a0 // stp q0, q0, [x13], #64
  529. WORD $0xf10101ef // subs x15, x15, #64
  530. WORD $0x54ffffa1 // b.ne LBB0_68 $-12(%rip)
  531. WORD $0xeb09011f // cmp x8, x9
  532. WORD $0x54ffe9c0 // b.eq LBB0_35 $-712(%rip)
  533. WORD $0xf27d091f // tst x8, #0x38
  534. WORD $0x540021c0 // b.eq LBB0_127 $1080(%rip)
  535. LBB0_71:
  536. WORD $0x927df10d // and x13, x8, #0xfffffffffffffff8
  537. WORD $0x8b0d016b // add x11, x11, x13
  538. WORD $0x8b0a012a // add x10, x9, x10
  539. WORD $0x8b0e014a // add x10, x10, x14
  540. WORD $0x8b0a000a // add x10, x0, x10
  541. WORD $0xcb0d0129 // sub x9, x9, x13
  542. WORD $0x0f01e600 // movi.8b v0, #48
  543. LBB0_72:
  544. WORD $0xfc008540 // str d0, [x10], #8
  545. WORD $0xb1002129 // adds x9, x9, #8
  546. WORD $0x54ffffc1 // b.ne LBB0_72 $-8(%rip)
  547. WORD $0xeb0d011f // cmp x8, x13
  548. WORD $0x54ffe800 // b.eq LBB0_35 $-768(%rip)
  549. WORD $0x14000102 // b LBB0_128 $1032(%rip)
  550. LBB0_74:
  551. WORD $0x710f9d7f // cmp w11, #999
  552. WORD $0x54000448 // b.hi LBB0_82 $136(%rip)
  553. WORD $0x52800069 // mov w9, #3
  554. LBB0_76:
  555. WORD $0x8b090109 // add x9, x8, x9
  556. WORD $0xaa0903ec // mov x12, x9
  557. WORD $0x7101917f // cmp w11, #100
  558. WORD $0x540001e3 // b.lo LBB0_79 $60(%rip)
  559. LBB0_77:
  560. WORD $0xd100058c // sub x12, x12, #1
  561. WORD $0x5290a3ed // mov w13, #34079
  562. WORD $0x72aa3d6d // movk w13, #20971, lsl #16
  563. WORD $0x52800c8e // mov w14, #100
  564. LBB0_78:
  565. WORD $0xaa0b03ef // mov x15, x11
  566. WORD $0x9bad7d6b // umull x11, w11, w13
  567. WORD $0xd365fd6b // lsr x11, x11, #37
  568. WORD $0x1b0ebd70 // msub w16, w11, w14, w15
  569. WORD $0x78705950 // ldrh w16, [x10, w16, uxtw #1]
  570. WORD $0x781ff190 // sturh w16, [x12, #-1]
  571. WORD $0xd100098c // sub x12, x12, #2
  572. WORD $0x53047def // lsr w15, w15, #4
  573. WORD $0x7109c1ff // cmp w15, #624
  574. WORD $0x54fffee8 // b.hi LBB0_78 $-36(%rip)
  575. LBB0_79:
  576. WORD $0x7100297f // cmp w11, #10
  577. WORD $0x540000e3 // b.lo LBB0_81 $28(%rip)
  578. WORD $0x786b594a // ldrh w10, [x10, w11, uxtw #1]
  579. WORD $0x7900010a // strh w10, [x8]
  580. WORD $0x4b000120 // sub w0, w9, w0
  581. WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
  582. WORD $0x910083ff // add sp, sp, #32
  583. WORD $0xd65f03c0 // ret
  584. LBB0_81:
  585. WORD $0x321c056a // orr w10, w11, #0x30
  586. WORD $0x3900010a // strb w10, [x8]
  587. WORD $0x4b000120 // sub w0, w9, w0
  588. WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
  589. WORD $0x910083ff // add sp, sp, #32
  590. WORD $0xd65f03c0 // ret
  591. LBB0_82:
  592. WORD $0x53047d69 // lsr w9, w11, #4
  593. WORD $0x5280008c // mov w12, #4
  594. WORD $0x7109c53f // cmp w9, #625
  595. WORD $0x9a8c3589 // cinc x9, x12, hs
  596. WORD $0x8b09010c // add x12, x8, x9
  597. WORD $0xaa0c03e9 // mov x9, x12
  598. WORD $0x54ffd682 // b.hs LBB0_19 $-1328(%rip)
  599. WORD $0x17ffffdd // b LBB0_77 $-140(%rip)
  600. LBB0_83:
  601. WORD $0x910005cf // add x15, x14, #1
  602. WORD $0x927a69ee // and x14, x15, #0x1ffffffc0
  603. WORD $0x8b0e0108 // add x8, x8, x14
  604. WORD $0x8b00014a // add x10, x10, x0
  605. WORD $0x9100894a // add x10, x10, #34
  606. WORD $0x4f01e600 // movi.16b v0, #48
  607. WORD $0xaa0e03f0 // mov x16, x14
  608. LBB0_84:
  609. WORD $0xad3f0140 // stp q0, q0, [x10, #-32]
  610. WORD $0xac820140 // stp q0, q0, [x10], #64
  611. WORD $0xf1010210 // subs x16, x16, #64
  612. WORD $0x54ffffa1 // b.ne LBB0_84 $-12(%rip)
  613. WORD $0xeb0e01ff // cmp x15, x14
  614. WORD $0x540000e0 // b.eq LBB0_88 $28(%rip)
  615. LBB0_86:
  616. WORD $0x0b0901ca // add w10, w14, w9
  617. WORD $0x4b0a03ea // neg w10, w10
  618. WORD $0x5280060e // mov w14, #48
  619. LBB0_87:
  620. WORD $0x3800150e // strb w14, [x8], #1
  621. WORD $0x7100054a // subs w10, w10, #1
  622. WORD $0x54ffffc1 // b.ne LBB0_87 $-8(%rip)
  623. LBB0_88:
  624. WORD $0x2a0d03ee // mov w14, w13
  625. WORD $0x8b0e010d // add x13, x8, x14
  626. WORD $0x53047d8a // lsr w10, w12, #4
  627. WORD $0x7109c55f // cmp w10, #625
  628. WORD $0x540002c3 // b.lo LBB0_91 $88(%rip)
  629. WORD $0x5282eb2a // mov w10, #5977
  630. WORD $0x72ba36ea // movk w10, #53687, lsl #16
  631. WORD $0x9baa7d8a // umull x10, w12, w10
  632. WORD $0xd36dfd4a // lsr x10, x10, #45
  633. WORD $0x1284e1ef // mov w15, #-10000
  634. WORD $0x1b0f314c // madd w12, w10, w15, w12
  635. WORD $0x340002cc // cbz w12, LBB0_93 $88(%rip)
  636. WORD $0xd280000f // mov x15, #0
  637. WORD $0x5290a3f0 // mov w16, #34079
  638. WORD $0x72aa3d70 // movk w16, #20971, lsl #16
  639. WORD $0x9bb07d90 // umull x16, w12, w16
  640. WORD $0xd365fe10 // lsr x16, x16, #37
  641. WORD $0x52800c91 // mov w17, #100
  642. WORD $0x1b11b20c // msub w12, w16, w17, w12
  643. Lloh20:
  644. WORD $0x10001791 // adr x17, _Digits $752(%rip)
  645. Lloh21:
  646. WORD $0x91000231 // add x17, x17, _Digits@PAGEOFF $0(%rip)
  647. WORD $0x786c5a2c // ldrh w12, [x17, w12, uxtw #1]
  648. WORD $0x781fe1ac // sturh w12, [x13, #-2]
  649. WORD $0x78707a2c // ldrh w12, [x17, x16, lsl #1]
  650. WORD $0x781fc1ac // sturh w12, [x13, #-4]
  651. WORD $0x14000009 // b LBB0_94 $36(%rip)
  652. LBB0_91:
  653. WORD $0xd280000f // mov x15, #0
  654. WORD $0xaa0d03f0 // mov x16, x13
  655. WORD $0xaa0c03ea // mov x10, x12
  656. WORD $0x7101915f // cmp w10, #100
  657. WORD $0x540000e2 // b.hs LBB0_95 $28(%rip)
  658. LBB0_92:
  659. WORD $0xaa0a03f0 // mov x16, x10
  660. WORD $0x14000015 // b LBB0_97 $84(%rip)
  661. LBB0_93:
  662. WORD $0x9280006f // mov x15, #-4
  663. LBB0_94:
  664. WORD $0xd10011b0 // sub x16, x13, #4
  665. WORD $0x7101915f // cmp w10, #100
  666. WORD $0x54ffff63 // b.lo LBB0_92 $-20(%rip)
  667. LBB0_95:
  668. WORD $0xd100060c // sub x12, x16, #1
  669. WORD $0x5290a3f1 // mov w17, #34079
  670. WORD $0x72aa3d71 // movk w17, #20971, lsl #16
  671. WORD $0x52800c81 // mov w1, #100
  672. Lloh22:
  673. WORD $0x100014c2 // adr x2, _Digits $664(%rip)
  674. Lloh23:
  675. WORD $0x91000042 // add x2, x2, _Digits@PAGEOFF $0(%rip)
  676. LBB0_96:
  677. WORD $0x9bb17d50 // umull x16, w10, w17
  678. WORD $0xd365fe10 // lsr x16, x16, #37
  679. WORD $0x1b01aa03 // msub w3, w16, w1, w10
  680. WORD $0x78635843 // ldrh w3, [x2, w3, uxtw #1]
  681. WORD $0x781ff183 // sturh w3, [x12, #-1]
  682. WORD $0xd100098c // sub x12, x12, #2
  683. WORD $0x53047d43 // lsr w3, w10, #4
  684. WORD $0xaa1003ea // mov x10, x16
  685. WORD $0x7109c07f // cmp w3, #624
  686. WORD $0x54fffee8 // b.hi LBB0_96 $-36(%rip)
  687. LBB0_97:
  688. WORD $0x71002a1f // cmp w16, #10
  689. WORD $0x540000c3 // b.lo LBB0_99 $24(%rip)
  690. Lloh24:
  691. WORD $0x1000130a // adr x10, _Digits $608(%rip)
  692. Lloh25:
  693. WORD $0x9100014a // add x10, x10, _Digits@PAGEOFF $0(%rip)
  694. WORD $0x7870594a // ldrh w10, [x10, w16, uxtw #1]
  695. WORD $0x7900010a // strh w10, [x8]
  696. WORD $0x14000003 // b LBB0_100 $12(%rip)
  697. LBB0_99:
  698. WORD $0x321c060a // orr w10, w16, #0x30
  699. WORD $0x3900010a // strb w10, [x8]
  700. LBB0_100:
  701. WORD $0xd280000a // mov x10, #0
  702. WORD $0x8b0f01ad // add x13, x13, x15
  703. WORD $0x4b0f016c // sub w12, w11, w15
  704. WORD $0x51000581 // sub w1, w12, #1
  705. WORD $0x51000991 // sub w17, w12, #2
  706. WORD $0xaa1103f0 // mov x16, x17
  707. LBB0_101:
  708. WORD $0x8b0a01ac // add x12, x13, x10
  709. WORD $0x385ff18c // ldurb w12, [x12, #-1]
  710. WORD $0xd100054a // sub x10, x10, #1
  711. WORD $0x11000610 // add w16, w16, #1
  712. WORD $0x7100c19f // cmp w12, #48
  713. WORD $0x54ffff60 // b.eq LBB0_101 $-20(%rip)
  714. WORD $0x8b0a01ac // add x12, x13, x10
  715. WORD $0x9100058c // add x12, x12, #1
  716. WORD $0x7100053f // cmp w9, #1
  717. WORD $0x54ffd66b // b.lt LBB0_35 $-1332(%rip)
  718. WORD $0x0b0e01e2 // add w2, w15, w14
  719. WORD $0x0b0a0042 // add w2, w2, w10
  720. WORD $0x11000442 // add w2, w2, #1
  721. WORD $0x6b02013f // cmp w9, w2
  722. WORD $0x5400016a // b.ge LBB0_107 $44(%rip)
  723. WORD $0x4b0b01ee // sub w14, w15, w11
  724. WORD $0x110005cb // add w11, w14, #1
  725. WORD $0x8b0a016c // add x12, x11, x10
  726. WORD $0x7100059f // cmp w12, #1
  727. WORD $0x54000c6b // b.lt LBB0_126 $396(%rip)
  728. WORD $0x92407d8b // and x11, x12, #0xffffffff
  729. WORD $0x7100219f // cmp w12, #8
  730. WORD $0x540001a2 // b.hs LBB0_110 $52(%rip)
  731. WORD $0xd280000c // mov x12, #0
  732. WORD $0x14000055 // b LBB0_124 $340(%rip)
  733. LBB0_107:
  734. WORD $0xcb0a0029 // sub x9, x1, x10
  735. WORD $0x7100053f // cmp w9, #1
  736. WORD $0x54ffd42b // b.lt LBB0_35 $-1404(%rip)
  737. WORD $0x4b0f016b // sub w11, w11, w15
  738. WORD $0x4b0a016b // sub w11, w11, w10
  739. WORD $0x5100096b // sub w11, w11, #2
  740. WORD $0x7100fd7f // cmp w11, #63
  741. WORD $0x540000e2 // b.hs LBB0_112 $28(%rip)
  742. WORD $0x5280000b // mov w11, #0
  743. WORD $0x1400001f // b LBB0_115 $124(%rip)
  744. LBB0_110:
  745. WORD $0x7101019f // cmp w12, #64
  746. WORD $0x54000462 // b.hs LBB0_117 $140(%rip)
  747. WORD $0xd280000c // mov x12, #0
  748. WORD $0x14000038 // b LBB0_121 $224(%rip)
  749. LBB0_112:
  750. WORD $0xd2800001 // mov x1, #0
  751. WORD $0xcb0a0222 // sub x2, x17, x10
  752. WORD $0x91000571 // add x17, x11, #1
  753. WORD $0x927a6a2b // and x11, x17, #0x1ffffffc0
  754. WORD $0x9100060c // add x12, x16, #1
  755. WORD $0x927a698c // and x12, x12, #0x1ffffffc0
  756. WORD $0x8b0e01ee // add x14, x15, x14
  757. WORD $0x8b0e0108 // add x8, x8, x14
  758. WORD $0x8b0a0108 // add x8, x8, x10
  759. WORD $0x8b0c0108 // add x8, x8, x12
  760. WORD $0x9100050c // add x12, x8, #1
  761. WORD $0x92407c48 // and x8, x2, #0xffffffff
  762. WORD $0x91000508 // add x8, x8, #1
  763. WORD $0x927a6908 // and x8, x8, #0x1ffffffc0
  764. WORD $0x4f01e600 // movi.16b v0, #48
  765. LBB0_113:
  766. WORD $0x8b0101ae // add x14, x13, x1
  767. WORD $0x8b0a01ce // add x14, x14, x10
  768. WORD $0x3c8011c0 // stur q0, [x14, #1]
  769. WORD $0x3c8111c0 // stur q0, [x14, #17]
  770. WORD $0x3c8211c0 // stur q0, [x14, #33]
  771. WORD $0x3c8311c0 // stur q0, [x14, #49]
  772. WORD $0x91010021 // add x1, x1, #64
  773. WORD $0xeb01011f // cmp x8, x1
  774. WORD $0x54ffff01 // b.ne LBB0_113 $-32(%rip)
  775. WORD $0xeb0b023f // cmp x17, x11
  776. WORD $0x54ffcf80 // b.eq LBB0_35 $-1552(%rip)
  777. LBB0_115:
  778. WORD $0x52800608 // mov w8, #48
  779. LBB0_116:
  780. WORD $0x38001588 // strb w8, [x12], #1
  781. WORD $0x1100056b // add w11, w11, #1
  782. WORD $0x6b09017f // cmp w11, w9
  783. WORD $0x54ffffab // b.lt LBB0_116 $-12(%rip)
  784. WORD $0x17fffe76 // b LBB0_35 $-1576(%rip)
  785. LBB0_117:
  786. WORD $0xd280000f // mov x15, #0
  787. WORD $0x927a616c // and x12, x11, #0x7fffffc0
  788. WORD $0x0b0a01d0 // add w16, w14, w10
  789. WORD $0x11000610 // add w16, w16, #1
  790. WORD $0x927a6210 // and x16, x16, #0x7fffffc0
  791. WORD $0xcb1003f0 // neg x16, x16
  792. WORD $0x8b0a01b1 // add x17, x13, x10
  793. LBB0_118:
  794. WORD $0x8b0f0221 // add x1, x17, x15
  795. WORD $0x3cdf1020 // ldur q0, [x1, #-15]
  796. WORD $0x3cde1021 // ldur q1, [x1, #-31]
  797. WORD $0x3cdd1022 // ldur q2, [x1, #-47]
  798. WORD $0x3cdc1023 // ldur q3, [x1, #-63]
  799. WORD $0x3c9f2020 // stur q0, [x1, #-14]
  800. WORD $0x3c9e2021 // stur q1, [x1, #-30]
  801. WORD $0x3c9d2022 // stur q2, [x1, #-46]
  802. WORD $0x3c9c2023 // stur q3, [x1, #-62]
  803. WORD $0xd10101ef // sub x15, x15, #64
  804. WORD $0xeb0f021f // cmp x16, x15
  805. WORD $0x54fffea1 // b.ne LBB0_118 $-44(%rip)
  806. WORD $0xeb0b019f // cmp x12, x11
  807. WORD $0x54000360 // b.eq LBB0_126 $108(%rip)
  808. WORD $0xf27d097f // tst x11, #0x38
  809. WORD $0x54000200 // b.eq LBB0_124 $64(%rip)
  810. LBB0_121:
  811. WORD $0xcb0c03ef // neg x15, x12
  812. WORD $0x927d6d6c // and x12, x11, #0x7ffffff8
  813. WORD $0x0b0a01ce // add w14, w14, w10
  814. WORD $0x110005ce // add w14, w14, #1
  815. WORD $0x927d6dce // and x14, x14, #0x7ffffff8
  816. WORD $0xcb0e03ee // neg x14, x14
  817. WORD $0x8b0a01b0 // add x16, x13, x10
  818. LBB0_122:
  819. WORD $0x8b0f0211 // add x17, x16, x15
  820. WORD $0xfc5f9220 // ldur d0, [x17, #-7]
  821. WORD $0xfc1fa220 // stur d0, [x17, #-6]
  822. WORD $0xd10021ef // sub x15, x15, #8
  823. WORD $0xeb0f01df // cmp x14, x15
  824. WORD $0x54ffff61 // b.ne LBB0_122 $-20(%rip)
  825. WORD $0xeb0b019f // cmp x12, x11
  826. WORD $0x54000140 // b.eq LBB0_126 $40(%rip)
  827. LBB0_124:
  828. WORD $0xcb0c03ee // neg x14, x12
  829. WORD $0x8b0a01af // add x15, x13, x10
  830. LBB0_125:
  831. WORD $0x8b0e01f0 // add x16, x15, x14
  832. WORD $0x386e69f1 // ldrb w17, [x15, x14]
  833. WORD $0x39000611 // strb w17, [x16, #1]
  834. WORD $0x9100058c // add x12, x12, #1
  835. WORD $0xd10005ce // sub x14, x14, #1
  836. WORD $0xeb0b019f // cmp x12, x11
  837. WORD $0x54ffff43 // b.lo LBB0_125 $-24(%rip)
  838. LBB0_126:
  839. WORD $0x528005cb // mov w11, #46
  840. WORD $0x3829490b // strb w11, [x8, w9, uxtw]
  841. WORD $0x8b0a01a8 // add x8, x13, x10
  842. WORD $0x9100090c // add x12, x8, #2
  843. WORD $0x4b000180 // sub w0, w12, w0
  844. WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
  845. WORD $0x910083ff // add sp, sp, #32
  846. WORD $0xd65f03c0 // ret
  847. LBB0_127:
  848. WORD $0x8b09016b // add x11, x11, x9
  849. LBB0_128:
  850. WORD $0x52800608 // mov w8, #48
  851. LBB0_129:
  852. WORD $0x38001568 // strb w8, [x11], #1
  853. WORD $0xeb0c017f // cmp x11, x12
  854. WORD $0x54ffffc3 // b.lo LBB0_129 $-8(%rip)
  855. WORD $0x17fffe39 // b LBB0_35 $-1820(%rip)
  856. LBB0_130:
  857. WORD $0x52800000 // mov w0, #0
  858. WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
  859. WORD $0x910083ff // add sp, sp, #32
  860. WORD $0xd65f03c0 // ret
  861. LBB0_131:
  862. WORD $0x1280128c // mov w12, #-149
  863. WORD $0xaa0e03ed // mov x13, x14
  864. WORD $0x17fffd39 // b LBB0_5 $-2844(%rip)
  865. _Digits:
  866. WORD $0x31303030 // .ascii 4, '0001020304050607'
  867. WORD $0x33303230 // .ascii 4, '0203040506070809'
  868. WORD $0x35303430 // .ascii 4, '0405060708091011'
  869. WORD $0x37303630 // .ascii 4, '0607080910111213'
  870. WORD $0x39303830 // .ascii 4, '0809101112131415'
  871. WORD $0x31313031 // .ascii 4, '1011121314151617'
  872. WORD $0x33313231 // .ascii 4, '1213141516171819'
  873. WORD $0x35313431 // .ascii 4, '1415161718192021'
  874. WORD $0x37313631 // .ascii 4, '1617181920212223'
  875. WORD $0x39313831 // .ascii 4, '1819202122232425'
  876. WORD $0x31323032 // .ascii 4, '2021222324252627'
  877. WORD $0x33323232 // .ascii 4, '2223242526272829'
  878. WORD $0x35323432 // .ascii 4, '2425262728293031'
  879. WORD $0x37323632 // .ascii 4, '2627282930313233'
  880. WORD $0x39323832 // .ascii 4, '2829303132333435'
  881. WORD $0x31333033 // .ascii 4, '3031323334353637'
  882. WORD $0x33333233 // .ascii 4, '3233343536373839'
  883. WORD $0x35333433 // .ascii 4, '3435363738394041'
  884. WORD $0x37333633 // .ascii 4, '3637383940414243'
  885. WORD $0x39333833 // .ascii 4, '3839404142434445'
  886. WORD $0x31343034 // .ascii 4, '4041424344454647'
  887. WORD $0x33343234 // .ascii 4, '4243444546474849'
  888. WORD $0x35343434 // .ascii 4, '4445464748495051'
  889. WORD $0x37343634 // .ascii 4, '4647484950515253'
  890. WORD $0x39343834 // .ascii 4, '4849505152535455'
  891. WORD $0x31353035 // .ascii 4, '5051525354555657'
  892. WORD $0x33353235 // .ascii 4, '5253545556575859'
  893. WORD $0x35353435 // .ascii 4, '5455565758596061'
  894. WORD $0x37353635 // .ascii 4, '5657585960616263'
  895. WORD $0x39353835 // .ascii 4, '5859606162636465'
  896. WORD $0x31363036 // .ascii 4, '6061626364656667'
  897. WORD $0x33363236 // .ascii 4, '6263646566676869'
  898. WORD $0x35363436 // .ascii 4, '6465666768697071'
  899. WORD $0x37363636 // .ascii 4, '6667686970717273'
  900. WORD $0x39363836 // .ascii 4, '6869707172737475'
  901. WORD $0x31373037 // .ascii 4, '7071727374757677'
  902. WORD $0x33373237 // .ascii 4, '7273747576777879'
  903. WORD $0x35373437 // .ascii 4, '7475767778798081'
  904. WORD $0x37373637 // .ascii 4, '7677787980818283'
  905. WORD $0x39373837 // .ascii 4, '7879808182838485'
  906. WORD $0x31383038 // .ascii 4, '8081828384858687'
  907. WORD $0x33383238 // .ascii 4, '8283848586878889'
  908. WORD $0x35383438 // .ascii 4, '8485868788899091'
  909. WORD $0x37383638 // .ascii 4, '8687888990919293'
  910. WORD $0x39383838 // .ascii 4, '8889909192939495'
  911. WORD $0x31393039 // .ascii 4, '9091929394959697'
  912. WORD $0x33393239 // .ascii 4, '9293949596979899'
  913. WORD $0x35393439 // .ascii 4, '949596979899'
  914. WORD $0x37393639 // .ascii 4, '96979899'
  915. WORD $0x39393839 // .ascii 4, '9899'
  916. WORD $0x00000000 // .p2align 3, 0x00
  917. _LB_1382e0fe: // _pow10_ceil_sig_f32.g
  918. WORD $0x4b43fcf5; WORD $0x81ceb32c // .quad -9093133594791772939
  919. WORD $0x5e14fc32; WORD $0xa2425ff7 // .quad -6754730975062328270
  920. WORD $0x359a3b3f; WORD $0xcad2f7f5 // .quad -3831727700400522433
  921. WORD $0x8300ca0e; WORD $0xfd87b5f2 // .quad -177973607073265138
  922. WORD $0x91e07e49; WORD $0x9e74d1b7 // .quad -7028762532061872567
  923. WORD $0x76589ddb; WORD $0xc6120625 // .quad -4174267146649952805
  924. WORD $0xd3eec552; WORD $0xf79687ae // .quad -606147914885053102
  925. WORD $0x44753b53; WORD $0x9abe14cd // .quad -7296371474444240045
  926. WORD $0x95928a28; WORD $0xc16d9a00 // .quad -4508778324627912152
  927. WORD $0xbaf72cb2; WORD $0xf1c90080 // .quad -1024286887357502286
  928. WORD $0x74da7bef; WORD $0x971da050 // .quad -7557708332239520785
  929. WORD $0x92111aeb; WORD $0xbce50864 // .quad -4835449396872013077
  930. WORD $0xb69561a6; WORD $0xec1e4a7d // .quad -1432625727662628442
  931. WORD $0x921d5d08; WORD $0x9392ee8e // .quad -7812920107430224632
  932. WORD $0x36a4b44a; WORD $0xb877aa32 // .quad -5154464115860392886
  933. WORD $0xc44de15c; WORD $0xe69594be // .quad -1831394126398103204
  934. WORD $0x3ab0acda; WORD $0x901d7cf7 // .quad -8062150356639896358
  935. WORD $0x095cd810; WORD $0xb424dc35 // .quad -5466001927372482544
  936. WORD $0x4bb40e14; WORD $0xe12e1342 // .quad -2220816390788215276
  937. WORD $0x6f5088cc; WORD $0x8cbccc09 // .quad -8305539271883716404
  938. WORD $0xcb24aaff; WORD $0xafebff0b // .quad -5770238071427257601
  939. WORD $0xbdedd5bf; WORD $0xdbe6fece // .quad -2601111570856684097
  940. WORD $0x36b4a598; WORD $0x89705f41 // .quad -8543223759426509416
  941. WORD $0x8461cefd; WORD $0xabcc7711 // .quad -6067343680855748867
  942. WORD $0xe57a42bd; WORD $0xd6bf94d5 // .quad -2972493582642298179
  943. WORD $0xaf6c69b6; WORD $0x8637bd05 // .quad -8775337516792518218
  944. WORD $0x1b478424; WORD $0xa7c5ac47 // .quad -6357485877563259868
  945. WORD $0xe219652c; WORD $0xd1b71758 // .quad -3335171328526686932
  946. WORD $0x8d4fdf3c; WORD $0x83126e97 // .quad -9002011107970261188
  947. WORD $0x70a3d70b; WORD $0xa3d70a3d // .quad -6640827866535438581
  948. WORD $0xcccccccd; WORD $0xcccccccc // .quad -3689348814741910323
  949. WORD $0x00000000; WORD $0x80000000 // .quad -9223372036854775808
  950. WORD $0x00000000; WORD $0xa0000000 // .quad -6917529027641081856
  951. WORD $0x00000000; WORD $0xc8000000 // .quad -4035225266123964416
  952. WORD $0x00000000; WORD $0xfa000000 // .quad -432345564227567616
  953. WORD $0x00000000; WORD $0x9c400000 // .quad -7187745005283311616
  954. WORD $0x00000000; WORD $0xc3500000 // .quad -4372995238176751616
  955. WORD $0x00000000; WORD $0xf4240000 // .quad -854558029293551616
  956. WORD $0x00000000; WORD $0x98968000 // .quad -7451627795949551616
  957. WORD $0x00000000; WORD $0xbebc2000 // .quad -4702848726509551616
  958. WORD $0x00000000; WORD $0xee6b2800 // .quad -1266874889709551616
  959. WORD $0x00000000; WORD $0x9502f900 // .quad -7709325833709551616
  960. WORD $0x00000000; WORD $0xba43b740 // .quad -5024971273709551616
  961. WORD $0x00000000; WORD $0xe8d4a510 // .quad -1669528073709551616
  962. WORD $0x00000000; WORD $0x9184e72a // .quad -7960984073709551616
  963. WORD $0x80000000; WORD $0xb5e620f4 // .quad -5339544073709551616
  964. WORD $0xa0000000; WORD $0xe35fa931 // .quad -2062744073709551616
  965. WORD $0x04000000; WORD $0x8e1bc9bf // .quad -8206744073709551616
  966. WORD $0xc5000000; WORD $0xb1a2bc2e // .quad -5646744073709551616
  967. WORD $0x76400000; WORD $0xde0b6b3a // .quad -2446744073709551616
  968. WORD $0x89e80000; WORD $0x8ac72304 // .quad -8446744073709551616
  969. WORD $0xac620000; WORD $0xad78ebc5 // .quad -5946744073709551616
  970. WORD $0x177a8000; WORD $0xd8d726b7 // .quad -2821744073709551616
  971. WORD $0x6eac9000; WORD $0x87867832 // .quad -8681119073709551616
  972. WORD $0x0a57b400; WORD $0xa968163f // .quad -6239712823709551616
  973. WORD $0xcceda100; WORD $0xd3c21bce // .quad -3187955011209551616
  974. WORD $0x401484a0; WORD $0x84595161 // .quad -8910000909647051616
  975. WORD $0x9019a5c8; WORD $0xa56fa5b9 // .quad -6525815118631426616
  976. WORD $0xf4200f3a; WORD $0xcecb8f27 // .quad -3545582879861895366
  977. WORD $0xf8940985; WORD $0x813f3978 // .quad -9133518327554766459
  978. WORD $0x36b90be6; WORD $0xa18f07d7 // .quad -6805211891016070170
  979. WORD $0x04674edf; WORD $0xc9f2c9cd // .quad -3894828845342699809
  980. WORD $0x45812297; WORD $0xfc6f7c40 // .quad -256850038250986857
  981. WORD $0x2b70b59e; WORD $0x9dc5ada8 // .quad -7078060301547948642
  982. WORD $0x364ce306; WORD $0xc5371912 // .quad -4235889358507547898
  983. WORD $0xc3e01bc7; WORD $0xf684df56 // .quad -683175679707046969
  984. WORD $0x3a6c115d; WORD $0x9a130b96 // .quad -7344513827457986211
  985. WORD $0xc90715b4; WORD $0xc097ce7b // .quad -4568956265895094860
  986. WORD $0xbb48db21; WORD $0xf0bdc21a // .quad -1099509313941480671
  987. WORD $0xb50d88f5; WORD $0x96769950 // .quad -7604722348854507275
  988. WORD $0xe250eb32; WORD $0xbc143fa4 // .quad -4894216917640746190
  989. WORD $0x1ae525fe; WORD $0xeb194f8e // .quad -1506085128623544834
  990. WORD $0xd0cf37bf; WORD $0x92efd1b8 // .quad -7858832233030797377
  991. WORD $0x050305ae; WORD $0xb7abc627 // .quad -5211854272861108818
  992. WORD $0xc643c71a; WORD $0xe596b7b0 // .quad -1903131822648998118
  993. WORD $0x7bea5c70; WORD $0x8f7e32ce // .quad -8106986416796705680
  994. WORD $0x1ae4f38c; WORD $0xb35dbf82 // .quad -5522047002568494196
  995. TEXT ·__f32toa(SB), NOSPLIT, $0-24
  996. NO_LOCAL_POINTERS
  997. _entry:
  998. MOVD 16(g), R16
  999. SUB $96, RSP, R17
  1000. CMP R16, R17
  1001. BLS _stack_grow
  1002. _f32toa:
  1003. MOVD out+0(FP), R0
  1004. FMOVD val+8(FP), F0
  1005. MOVD ·_subr__f32toa(SB), R11
  1006. WORD $0x1000005e // adr x30, .+8
  1007. JMP (R11)
  1008. MOVD R0, ret+16(FP)
  1009. RET
  1010. _stack_grow:
  1011. MOVD R30, R3
  1012. CALL runtime·morestack_noctxt<>(SB)
  1013. JMP _entry