MMBC

calculate routine

Oct 16th, 2017
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ARM 2.18 KB | None | 0 0
  1. calculate:
  2.     sub sp, sp, #16
  3.     push    {fp, lr}
  4.     add fp, sp, #4
  5.     sub sp, sp, #32
  6.     add ip, fp, #4
  7.     stm ip, {r0, r1, r2, r3}
  8.     mov r3, #0
  9.     str r3, [fp, #-8]
  10.     b   .clb1
  11. .clb2:
  12.     ldr r1, .clb3
  13.     ldr r2, [fp, #-8]
  14.     mov r3, r2
  15.     lsl r3, r3, #1
  16.     add r3, r3, r2
  17.     lsl r3, r3, #2
  18.     add r3, r1, r3
  19.     ldr r3, [r3]     
  20.     str r3, [fp, #-16]   
  21.     ldr r1, .L64
  22.     ldr r2, [fp, #-8]
  23.     mov r3, r2
  24.     lsl r3, r3, #1
  25.     add r3, r3, r2
  26.     lsl r3, r3, #2
  27.     add r3, r1, r3
  28.     add r3, r3, #4
  29.     ldr r3, [r3]     
  30.     str r3, [fp, #-20]   
  31.     ldr r1, .L64
  32.     ldr r2, [fp, #-8]
  33.     mov r3, r2
  34.     lsl r3, r3, #1
  35.     add r3, r3, r2
  36.     lsl r3, r3, #2
  37.     add r3, r1, r3
  38.     add r3, r3, #8
  39.     ldr r3, [r3]     
  40.     str r3, [fp, #-24]   
  41.     ldr r3, [fp, #-16]   
  42.     ldr r2, [fp, #4]     
  43.     mov r1, r2
  44.     mov r0, r3
  45.     bl  __aeabi_fsub
  46.     mov r3, r0
  47.     str r3, [fp, #-16]   
  48.     ldr r3, [fp, #-20]   
  49.     ldr r2, [fp, #8]     
  50.     mov r1, r2
  51.     mov r0, r3
  52.     bl  __aeabi_fsub
  53.     mov r3, r0
  54.     str r3, [fp, #-20]   
  55.     ldr r3, [fp, #-24]   
  56.     ldr r2, [fp, #12]    
  57.     mov r1, r2
  58.     mov r0, r3
  59.     bl  __aeabi_fsub
  60.     mov r3, r0
  61.     str r3, [fp, #-24]   
  62.     ldr r2, [fp, #20]    
  63.     sub r1, fp, #24
  64.     sub r3, fp, #16
  65.     mov r0, r3
  66.     bl  rotate2d
  67.     ldr r2, [fp, #16]    
  68.     sub r1, fp, #24
  69.     sub r3, fp, #20
  70.     mov r0, r3
  71.     bl  rotate2d
  72.     ldr r3, [fp, #-24]   
  73.     mov r1, r3
  74.     ldr r0, .clb3+4
  75.     bl  __aeabi_fdiv
  76.     mov r3, r0
  77.     str r3, [fp, #-12]   
  78.     ldr r3, [fp, #-16]   
  79.     ldr r1, [fp, #-12]   
  80.     mov r0, r3
  81.     bl  __aeabi_fmul
  82.     mov r3, r0
  83.     str r3, [fp, #-16]   
  84.     ldr r3, [fp, #-20]   
  85.     ldr r1, [fp, #-12]   
  86.     mov r0, r3
  87.     bl  __aeabi_fmul
  88.     mov r3, r0
  89.     str r3, [fp, #-20]   
  90.     ldr r3, [fp, #-16]   
  91.     mov r0, r3
  92.     bl  __aeabi_f2iz
  93.     mov r3, r0
  94.     add r3, r3, #160
  95.     str r3, [fp, #-32]
  96.     ldr r3, [fp, #-20]   
  97.     mov r0, r3
  98.     bl  __aeabi_f2iz
  99.     mov r3, r0
  100.     rsb r3, r3, #120
  101.     str r3, [fp, #-28]
  102.     ldr r3, [fp, #-8]
  103.     lsl r3, r3, #3
  104.     ldr r2, [fp, #24]
  105.     add r3, r2, r3
  106.     mov r2, r3
  107.     sub r3, fp, #32
  108.     ldm r3, {r0, r1}
  109.     stm r2, {r0, r1}
  110.     ldr r3, [fp, #-8]
  111.     lsl r3, r3, #2
  112.     ldr r2, [fp, #28]
  113.     add r3, r2, r3
  114.     ldr r2, [fp, #-24]   
  115.     str r2, [r3]     
  116.     ldr r3, [fp, #-8]
  117.     add r3, r3, #1
  118.     str r3, [fp, #-8]
  119. .clb1:
  120.     ldr r3, .clb3+8
  121.     ldr r3, [r3]
  122.     ldr r2, [fp, #-8]
  123.     cmp r2, r3
  124.     blt .clb2
  125.     nop
  126.     sub sp, fp, #4
  127.      
  128.     pop {fp, lr}
  129.     add sp, sp, #16
  130.     bx  lr
Advertisement
Add Comment
Please, Sign In to add comment