Advertisement
Guest User

Untitled

a guest
Dec 10th, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ARM 3.92 KB | None | 0 0
  1.         .arch armv7-a
  2.         .eabi_attribute 28, 1
  3.         .fpu vfpv3-d16
  4.         .eabi_attribute 20, 1
  5.         .eabi_attribute 21, 1
  6.         .eabi_attribute 23, 3
  7.         .eabi_attribute 24, 1
  8.         .eabi_attribute 25, 1
  9.         .eabi_attribute 26, 2
  10.         .eabi_attribute 30, 6
  11.         .eabi_attribute 34, 1
  12.         .eabi_attribute 18, 4
  13.         .file   "main.c"
  14.         .section        .rodata
  15.         .align  2
  16. .LC0:
  17.         .ascii  "%Lf\000"
  18.         .align  2
  19. .LC1:
  20.         .ascii  "pause\000"
  21.         .text
  22.         .align  2
  23.         .global main
  24.         .syntax unified
  25.         .thumb
  26.         .thumb_func
  27.         .type   main, %function
  28. main:
  29.         @ args = 0, pretend = 0, frame = 40
  30.         @ frame_needed = 1, uses_anonymous_args = 0
  31.         push    {r4, r7, lr}
  32.         sub     sp, sp, #44
  33.         add     r7, sp, #0
  34.         movs    r0, #0
  35.         bl      time
  36.         mov     r3, r0
  37.         mov     r0, r3
  38.         bl      srand
  39.         mov     r3, #0
  40.         mov     r4, #0
  41.         strd    r3, [r7, #8]
  42.         movw    r3, #10000
  43.         str     r3, [r7, #4]
  44.         mov     r3, #0
  45.         mov     r4, #0
  46.  strd    r3, [r7, #8]
  47.         movs    r3, #0
  48.         str     r3, [r7]
  49.         b       .L2
  50. .L4:
  51.         bl      rand
  52.         vmov    s15, r0 @ int
  53.         vcvt.f64.s32    d6, s15
  54.         vldr.64 d5, .L6
  55.         vdiv.f64        d7, d6, d5
  56.         vstr.64 d7, [r7, #16]
  57.         bl      rand
  58.         vmov    s15, r0 @ int
  59.         vcvt.f64.s32    d6, s15
  60.         vldr.64 d5, .L6
  61.         vdiv.f64        d7, d6, d5
  62.         vstr.64 d7, [r7, #24]
  63.         vldr.64 d1, [r7, #24]
  64.         vldr.64 d0, [r7, #16]
  65.         bl      circle
  66.         mov     r3, r0
  67.         cmp     r3, #0
  68.         beq     .L3
  69.          vldr.64 d7, [r7, #8]
  70.         vmov.f64        d6, #1.0e+0
  71.         vadd.f64        d7, d7, d6
  72.         vstr.64 d7, [r7, #8]
  73. .L3:
  74.         ldr     r3, [r7]
  75.         adds    r3, r3, #1
  76.         str     r3, [r7]
  77. .L2:
  78.         ldr     r2, [r7]
  79.         ldr     r3, [r7, #4]
  80.         cmp     r2, r3
  81.         blt     .L4
  82.         ldr     r3, [r7, #4]
  83.         vmov    s15, r3 @ int
  84.         vcvt.f64.s32    d6, s15
  85.         vldr.64 d5, [r7, #8]
  86.         vdiv.f64        d7, d5, d6
  87.         vmov.f64        d6, #4.0e+0
  88.         vmul.f64        d7, d7, d6
  89.         vstr.64 d7, [r7, #32]
  90.         ldrd    r2, [r7, #32]
  91.         movw    r0, #:lower16:.LC0
  92.          movt    r0, #:upper16:.LC0
  93.         bl      printf
  94.         movw    r0, #:lower16:.LC1
  95.         movt    r0, #:upper16:.LC1
  96.         bl      system
  97.         movs    r3, #0
  98.         mov     r0, r3
  99.         adds    r7, r7, #44
  100.         mov     sp, r7
  101.         @ sp needed
  102.         pop     {r4, r7, pc}
  103. .L7:
  104.         .align  3
  105. .L6:
  106.         .word   4290772992
  107.         .word   1105199103
  108.         .size   main, .-main
  109.         .align  2
  110.         .global circle
  111.         .syntax unified
  112.         .thumb
  113.         .thumb_func
  114.         .type   circle, %function
  115. circle:
  116.         @ args = 0, pretend = 0, frame = 16
  117.         @ frame_needed = 1, uses_anonymous_args = 0
  118.         @ link register save eliminated.
  119.         push    {r7}
  120.         sub     sp, sp, #20
  121.         add     r7, sp, #0
  122.         vstr.64 d0, [r7, #8]
  123.         vstr.64 d1, [r7]
  124.         vldr.64 d6, [r7, #8]
  125.         vldr.64 d7, [r7, #8]
  126.         vmul.f64        d6, d6, d7
  127.         vldr.64 d5, [r7]
  128.         vldr.64 d7, [r7]
  129.         vmul.f64        d7, d5, d7
  130.         vadd.f64        d7, d6, d7
  131.         vmov.f64        d6, #1.0e+0
  132.         vcmpe.f64       d7, d6
  133.         vmrs    APSR_nzcv, FPSCR
  134.         bhi     .L13
  135.         movs    r3, #1
  136.         b       .L11
  137. .L13:
  138.           movs    r3, #0
  139. .L11:
  140.         mov     r0, r3
  141.         adds    r7, r7, #20
  142.         mov     sp, r7
  143.         @ sp needed
  144.         ldr     r7, [sp], #4
  145.         bx      lr
  146.         .size   circle, .-circle
  147.         .ident  "GCC: (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609"
  148.         .section        .note.GNU-stack,"",%progbits
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement