SHARE
TWEET

Untitled

a guest Oct 22nd, 2019 81 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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:
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top