Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.98 KB | None | 0 0
  1. fn $name(mut n: $u, is_nonnegative: bool, f: &mut fmt::Formatter<'_>) -> fmt::Result {
  2. push {r4, r5, r6, r7, lr}
  3. sub sp, #60
  4. str r2, [sp, #8]
  5. str r1, [sp, #4]
  6. mov r7, r0
  7. ldr r3, .LCPI19_0
  8. ldr r0, .LCPI19_1
  9. while n >= 10000 {
  10. cmp r7, r0
  11. blo .LBB19_5
  12. movs r0, #1
  13. mvns r0, r0
  14. movs r4, #39
  15. lsls r0, r0, #1
  16. str r0, [sp, #12]
  17. mov r6, r7
  18. .LBB19_2:
  19. n /= 10000;
  20. mov r0, r6
  21. ldr r1, .LCPI19_1
  22. bl __aeabi_uidiv
  23. mov r1, r0
  24. str r0, [sp, #16]
  25. ldr r0, .LCPI19_2
  26. muls r0, r1, r0
  27. adds r7, r6, r0
  28. let d1 = (rem / 100) << 1;
  29. uxth r0, r7
  30. movs r1, #100
  31. bl __aeabi_uidiv
  32. add r1, sp, #20
  33. copy_nonoverlapping(src, dst, count) (libcore/intrinsics.rs:1456)
  34. adds r1, r1, r4
  35. let d1 = (rem / 100) << 1;
  36. lsls r2, r0, #1
  37. ldr r3, .LCPI19_3
  38. copy_nonoverlapping(src, dst, count) (libcore/intrinsics.rs:1456)
  39. ldrb r3, [r3, r2]
  40. ldr r5, [sp, #12]
  41. strb r3, [r1, r5]
  42. ldr r3, .LCPI19_0
  43. adds r1, r1, r5
  44. ldr r5, .LCPI19_3
  45. intrinsics::offset(self, count) (libcore/ptr/mod.rs:1166)
  46. adds r2, r5, r2
  47. copy_nonoverlapping(src, dst, count) (libcore/intrinsics.rs:1456)
  48. ldrb r2, [r2, #1]
  49. strb r2, [r1, #1]
  50. muls r0, r3, r0
  51. adds r0, r0, r7
  52. let d2 = (rem % 100) << 1;
  53. uxth r0, r0
  54. lsls r0, r0, #1
  55. copy_nonoverlapping(src, dst, count) (libcore/intrinsics.rs:1456)
  56. ldrb r2, [r5, r0]
  57. strb r2, [r1, #2]
  58. intrinsics::offset(self, count) (libcore/ptr/mod.rs:1166)
  59. adds r0, r5, r0
  60. ldr r7, [sp, #16]
  61. copy_nonoverlapping(src, dst, count) (libcore/intrinsics.rs:1456)
  62. ldrb r0, [r0, #1]
  63. strb r0, [r1, #3]
  64. curr -= 4;
  65. subs r4, r4, #4
  66. while n >= 10000 {
  67. ldr r0, .LCPI19_4
  68. cmp r6, r0
  69. mov r6, r7
  70. bhi .LBB19_2
  71. if n >= 100 {
  72. cmp r7, #99
  73. ble .LBB19_6
  74. .LBB19_4:
  75. let d1 = (n % 100) << 1;
  76. uxth r0, r7
  77. movs r1, #100
  78. mov r5, r3
  79. n /= 100;
  80. bl __aeabi_uidiv
  81. muls r5, r0, r5
  82. adds r1, r5, r7
  83. let d1 = (n % 100) << 1;
  84. uxth r1, r1
  85. lsls r1, r1, #1
  86. intrinsics::offset(self, count) (libcore/ptr/mod.rs:1166)
  87. ldr r2, .LCPI19_3
  88. copy_nonoverlapping(src, dst, count) (libcore/intrinsics.rs:1456)
  89. ldrb r3, [r2, r1]
  90. curr -= 2;
  91. subs r4, r4, #2
  92. add r5, sp, #20
  93. copy_nonoverlapping(src, dst, count) (libcore/intrinsics.rs:1456)
  94. strb r3, [r5, r4]
  95. intrinsics::offset(self, count) as *mut T (libcore/ptr/mod.rs:1850)
  96. adds r3, r5, r4
  97. intrinsics::offset(self, count) (libcore/ptr/mod.rs:1166)
  98. adds r1, r2, r1
  99. copy_nonoverlapping(src, dst, count) (libcore/intrinsics.rs:1456)
  100. ldrb r1, [r1, #1]
  101. strb r1, [r3, #1]
  102. b .LBB19_7
  103. .LBB19_5:
  104. movs r4, #39
  105. if n >= 100 {
  106. cmp r7, #99
  107. bgt .LBB19_4
  108. .LBB19_6:
  109. mov r0, r7
  110. .LBB19_7:
  111. if n < 10 {
  112. cmp r0, #10
  113. ldr r7, [sp, #8]
  114. bge .LBB19_9
  115. curr -= 1;
  116. subs r1, r4, #1
  117. *buf_ptr.offset(curr) = (n as u8) + b'0';
  118. adds r0, #48
  119. add r2, sp, #20
  120. strb r0, [r2, r1]
  121. b .LBB19_10
  122. .LBB19_9:
  123. let d1 = n << 1;
  124. lsls r0, r0, #1
  125. intrinsics::offset(self, count) (libcore/ptr/mod.rs:1166)
  126. ldr r2, .LCPI19_3
  127. copy_nonoverlapping(src, dst, count) (libcore/intrinsics.rs:1456)
  128. ldrb r3, [r2, r0]
  129. curr -= 2;
  130. subs r1, r4, #2
  131. add r4, sp, #20
  132. copy_nonoverlapping(src, dst, count) (libcore/intrinsics.rs:1456)
  133. strb r3, [r4, r1]
  134. intrinsics::offset(self, count) as *mut T (libcore/ptr/mod.rs:1850)
  135. adds r3, r4, r1
  136. intrinsics::offset(self, count) (libcore/ptr/mod.rs:1166)
  137. adds r0, r2, r0
  138. copy_nonoverlapping(src, dst, count) (libcore/intrinsics.rs:1456)
  139. ldrb r0, [r0, #1]
  140. strb r0, [r3, #1]
  141. .LBB19_10:
  142. movs r0, #39
  143. slice::from_raw_parts(buf_ptr.offset(curr), buf.len() - curr as usize))
  144. subs r6, r0, r1
  145. add r2, sp, #20
  146. if !is_nonnegative { (libcore/fmt/mod.rs:1186)
  147. ldr r0, [sp, #4]
  148. cmp r0, #0
  149. beq .LBB19_13
  150. pub fn sign_plus(&self) -> bool { self.flags & (1 << FlagV1::SignPlus as u32) != 0 } (libcore/fmt/mod.rs:1635)
  151. ldr r0, [r7]
  152. movs r3, #1
  153. ands r3, r0
  154. } else if self.sign_plus() { (libcore/fmt/mod.rs:1188)
  155. beq .LBB19_14
  156. movs r4, #43
  157. b .LBB19_15
  158. .LBB19_13:
  159. movs r0, #40
  160. sign = Some('-'); width += 1; (libcore/fmt/mod.rs:1187)
  161. subs r4, r0, r1
  162. pub fn alternate(&self) -> bool { self.flags & (1 << FlagV1::Alternate as u32) != 0 } (libcore/fmt/mod.rs:1686)
  163. ldr r0, [r7]
  164. movs r3, #45
  165. str r3, [sp, #16]
  166. b .LBB19_16
  167. .LBB19_14:
  168. movs r4, #17
  169. lsls r4, r4, #16
  170. .LBB19_15:
  171. str r4, [sp, #16]
  172. } else if self.sign_plus() { (libcore/fmt/mod.rs:1188)
  173. adds r4, r3, r6
  174. .LBB19_16:
  175. adds r1, r2, r1
  176. pub fn alternate(&self) -> bool { self.flags & (1 << FlagV1::Alternate as u32) != 0 } (libcore/fmt/mod.rs:1686)
  177. str r1, [sp, #12]
  178. lsls r1, r0, #29
  179. asrs r1, r1, #31
  180. let prefix = if self.alternate() { (libcore/fmt/mod.rs:1192)
  181. ldr r5, .LCPI19_5
  182. ands r5, r1
  183. None => { (libcore/fmt/mod.rs:1216)
  184. ldr r1, [r7, #8]
  185. cmp r1, #1
  186. bne .LBB19_24
  187. str r6, [sp]
  188. Some(min) if width >= min => { (libcore/fmt/mod.rs:1222)
  189. ldr r6, [r7, #12]
  190. Some(min) if width >= min => { (libcore/fmt/mod.rs:1222)
  191. cmp r6, r4
  192. bls .LBB19_26
  193. Some(min) if self.sign_aware_zero_pad() => { (libcore/fmt/mod.rs:1228)
  194. lsls r0, r0, #28
  195. bmi .LBB19_29
  196. movs r0, #48
  197. rt::v1::Alignment::Unknown => default, (libcore/fmt/mod.rs:1328)
  198. ldr r1, [sp, #8]
  199. ldrb r1, [r1, r0]
  200. let align = match self.align { (libcore/fmt/mod.rs:1327)
  201. cmp r1, #3
  202. bne .LBB19_21
  203. movs r1, #1
  204. .LBB19_21:
  205. subs r4, r6, r4
  206. movs r0, #0
  207. add r1, pc
  208. ldrb r1, [r1, #4]
  209. lsls r1, r1, #1
  210. .LCPI19_6:
  211. add pc, r1
  212. .LJTI19_1:
  213. .LBB19_23:
  214. movs r1, #0
  215. mov r0, r4
  216. mov r4, r1
  217. b .LBB19_36
  218. .LBB19_24:
  219. write_prefix(self, sign, prefix)?; (libcore/fmt/mod.rs:1217)
  220. mov r0, r7
  221. ldr r1, [sp, #16]
  222. mov r2, r5
  223. bl _ZN4core3fmt9Formatter12pad_integral12write_prefix17h79dd01e27253f501E
  224. write_prefix(self, sign, prefix)?; (libcore/fmt/mod.rs:1217)
  225. cmp r0, #0
  226. bne .LBB19_39
  227. self.buf.write_str(buf) (libcore/fmt/mod.rs:1218)
  228. ldr r0, [r7, #24]
  229. ldr r1, [r7, #28]
  230. ldr r3, [r1, #12]
  231. ldr r1, [sp, #12]
  232. mov r2, r6
  233. b .LBB19_28
  234. .LBB19_26:
  235. write_prefix(self, sign, prefix)?; (libcore/fmt/mod.rs:1223)
  236. mov r0, r7
  237. ldr r1, [sp, #16]
  238. mov r2, r5
  239. bl _ZN4core3fmt9Formatter12pad_integral12write_prefix17h79dd01e27253f501E
  240. write_prefix(self, sign, prefix)?; (libcore/fmt/mod.rs:1223)
  241. cmp r0, #0
  242. bne .LBB19_39
  243. self.buf.write_str(buf) (libcore/fmt/mod.rs:1224)
  244. ldr r0, [r7, #24]
  245. ldr r1, [r7, #28]
  246. ldr r3, [r1, #12]
  247. ldr r1, [sp, #12]
  248. ldr r2, [sp]
  249. .LBB19_28:
  250. blx r3
  251. mov r5, r0
  252. b .LBB19_54
  253. .LBB19_29:
  254. movs r0, #48
  255. movs r1, #1
  256. ldr r7, [sp, #8]
  257. str r1, [sp, #4]
  258. self.align = rt::v1::Alignment::Right; (libcore/fmt/mod.rs:1230)
  259. strb r1, [r7, r0]
  260. self.fill = '0'; (libcore/fmt/mod.rs:1229)
  261. str r0, [r7, #4]
  262. write_prefix(self, sign, prefix)?; (libcore/fmt/mod.rs:1231)
  263. mov r0, r7
  264. ldr r1, [sp, #16]
  265. mov r2, r5
  266. bl _ZN4core3fmt9Formatter12pad_integral12write_prefix17h79dd01e27253f501E
  267. write_prefix(self, sign, prefix)?; (libcore/fmt/mod.rs:1231)
  268. cmp r0, #0
  269. bne .LBB19_53
  270. adds r7, #48
  271. rt::v1::Alignment::Unknown => default, (libcore/fmt/mod.rs:1328)
  272. ldrb r1, [r7]
  273. let align = match self.align { (libcore/fmt/mod.rs:1327)
  274. cmp r1, #3
  275. bne .LBB19_32
  276. movs r1, #1
  277. .LBB19_32:
  278. subs r4, r6, r4
  279. movs r0, #0
  280. ldr r7, [sp, #8]
  281. ldr r6, [sp]
  282. add r1, pc
  283. ldrb r1, [r1, #4]
  284. lsls r1, r1, #1
  285. .LCPI19_7:
  286. add pc, r1
  287. .LJTI19_0:
  288. .LBB19_34:
  289. movs r1, #0
  290. mov r0, r4
  291. mov r4, r1
  292. b .LBB19_46
  293. .LBB19_35:
  294. rt::v1::Alignment::Center => (padding / 2, (padding + 1) / 2), (libcore/fmt/mod.rs:1336)
  295. lsrs r0, r4, #1
  296. rt::v1::Alignment::Center => (padding / 2, (padding + 1) / 2), (libcore/fmt/mod.rs:1336)
  297. adds r1, r4, #1
  298. lsrs r4, r1, #1
  299. .LBB19_36:
  300. for _ in 0..pre_pad { (libcore/fmt/mod.rs:1339)
  301. adds r7, r0, #1
  302. .LBB19_37:
  303. fn lt(&self, other: &$t) -> bool { (*self) < (*other) } (libcore/cmp.rs:1006)
  304. subs r7, r7, #1
  305. if self.start < self.end { (libcore/iter/range.rs:206)
  306. beq .LBB19_40
  307. ldr r2, [sp, #8]
  308. self.buf.write_char(self.fill)?; (libcore/fmt/mod.rs:1340)
  309. ldr r1, [r2, #4]
  310. self.buf.write_char(self.fill)?; (libcore/fmt/mod.rs:1340)
  311. ldr r0, [r2, #24]
  312. ldr r2, [r2, #28]
  313. ldr r2, [r2, #16]
  314. blx r2
  315. self.buf.write_char(self.fill)?; (libcore/fmt/mod.rs:1340)
  316. cmp r0, #0
  317. beq .LBB19_37
  318. .LBB19_39:
  319. movs r5, #1
  320. b .LBB19_54
  321. .LBB19_40:
  322. ldr r7, [sp, #8]
  323. Ok(PostPadding::new(self.fill, post_pad)) (libcore/fmt/mod.rs:1343)
  324. ldr r6, [r7, #4]
  325. write_prefix(self, sign, prefix)?; (libcore/fmt/mod.rs:1239)
  326. mov r0, r7
  327. ldr r1, [sp, #16]
  328. mov r2, r5
  329. bl _ZN4core3fmt9Formatter12pad_integral12write_prefix17h79dd01e27253f501E
  330. movs r5, #1
  331. write_prefix(self, sign, prefix)?; (libcore/fmt/mod.rs:1239)
  332. cmp r0, #0
  333. bne .LBB19_54
  334. str r6, [sp, #16]
  335. self.buf.write_str(buf)?; (libcore/fmt/mod.rs:1240)
  336. ldr r0, [r7, #24]
  337. ldr r1, [r7, #28]
  338. ldr r3, [r1, #12]
  339. ldr r1, [sp, #12]
  340. ldr r2, [sp]
  341. blx r3
  342. self.buf.write_str(buf)?; (libcore/fmt/mod.rs:1240)
  343. cmp r0, #0
  344. bne .LBB19_54
  345. str r5, [sp, #4]
  346. for _ in 0..self.padding { (libcore/fmt/mod.rs:1068)
  347. adds r4, r4, #1
  348. post_padding.write(self.buf) (libcore/fmt/mod.rs:1241)
  349. ldr r5, [r7, #24]
  350. ldr r6, [r7, #28]
  351. ldr r7, [sp, #16]
  352. .LBB19_43:
  353. fn lt(&self, other: &$t) -> bool { (*self) < (*other) } (libcore/cmp.rs:1006)
  354. subs r4, r4, #1
  355. if self.start < self.end { (libcore/iter/range.rs:206)
  356. beq .LBB19_55
  357. buf.write_char(self.fill)?; (libcore/fmt/mod.rs:1069)
  358. ldr r2, [r6, #16]
  359. mov r0, r5
  360. mov r1, r7
  361. blx r2
  362. buf.write_char(self.fill)?; (libcore/fmt/mod.rs:1069)
  363. cmp r0, #0
  364. beq .LBB19_43
  365. b .LBB19_53
  366. .LBB19_45:
  367. rt::v1::Alignment::Center => (padding / 2, (padding + 1) / 2), (libcore/fmt/mod.rs:1336)
  368. lsrs r0, r4, #1
  369. rt::v1::Alignment::Center => (padding / 2, (padding + 1) / 2), (libcore/fmt/mod.rs:1336)
  370. adds r1, r4, #1
  371. lsrs r4, r1, #1
  372. .LBB19_46:
  373. for _ in 0..pre_pad { (libcore/fmt/mod.rs:1339)
  374. adds r5, r0, #1
  375. .LBB19_47:
  376. fn lt(&self, other: &$t) -> bool { (*self) < (*other) } (libcore/cmp.rs:1006)
  377. subs r5, r5, #1
  378. if self.start < self.end { (libcore/iter/range.rs:206)
  379. beq .LBB19_49
  380. self.buf.write_char(self.fill)?; (libcore/fmt/mod.rs:1340)
  381. ldr r1, [r7, #4]
  382. self.buf.write_char(self.fill)?; (libcore/fmt/mod.rs:1340)
  383. ldr r0, [r7, #24]
  384. ldr r2, [r7, #28]
  385. ldr r2, [r2, #16]
  386. blx r2
  387. self.buf.write_char(self.fill)?; (libcore/fmt/mod.rs:1340)
  388. cmp r0, #0
  389. beq .LBB19_47
  390. b .LBB19_53
  391. .LBB19_49:
  392. Ok(PostPadding::new(self.fill, post_pad)) (libcore/fmt/mod.rs:1343)
  393. ldr r5, [r7, #4]
  394. self.buf.write_str(buf)?; (libcore/fmt/mod.rs:1233)
  395. ldr r0, [r7, #24]
  396. ldr r1, [r7, #28]
  397. ldr r3, [r1, #12]
  398. ldr r1, [sp, #12]
  399. mov r2, r6
  400. blx r3
  401. self.buf.write_str(buf)?; (libcore/fmt/mod.rs:1233)
  402. cmp r0, #0
  403. bne .LBB19_53
  404. for _ in 0..self.padding { (libcore/fmt/mod.rs:1068)
  405. adds r4, r4, #1
  406. post_padding.write(self.buf) (libcore/fmt/mod.rs:1234)
  407. ldr r6, [r7, #24]
  408. ldr r7, [r7, #28]
  409. .LBB19_51:
  410. fn lt(&self, other: &$t) -> bool { (*self) < (*other) } (libcore/cmp.rs:1006)
  411. subs r4, r4, #1
  412. if self.start < self.end { (libcore/iter/range.rs:206)
  413. beq .LBB19_55
  414. buf.write_char(self.fill)?; (libcore/fmt/mod.rs:1069)
  415. ldr r2, [r7, #16]
  416. mov r0, r6
  417. mov r1, r5
  418. blx r2
  419. buf.write_char(self.fill)?; (libcore/fmt/mod.rs:1069)
  420. cmp r0, #0
  421. beq .LBB19_51
  422. .LBB19_53:
  423. ldr r5, [sp, #4]
  424. .LBB19_54:
  425. }
  426. mov r0, r5
  427. add sp, #60
  428. pop {r4, r5, r6, r7, pc}
  429. .LBB19_55:
  430. movs r5, #0
  431. b .LBB19_54
  432. .LCPI19_0:
  433. .LCPI19_1:
  434. .LCPI19_2:
  435. .LCPI19_3:
  436. .LCPI19_4:
  437. .LCPI19_5:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement