Advertisement
Guest User

fibon_iter_O2.asm

a guest
Sep 7th, 2021
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.  * fibon_iter.asm with "-O2 -fno-inline"
  3.  */
  4.  
  5.         .align  2
  6.         .global fibonacci
  7.         .type   fibonacci, %function
  8. fibonacci:
  9.         @ args = 0, pretend = 0, frame = 512
  10.         @ frame_needed = 0, uses_anonymous_args = 0
  11.         @ link register save eliminated.
  12.         stmfd   sp!, {r4, r5, r6, r7, r8, r9, r10, fp}
  13.         ldr     r8, .L8
  14.         sub     sp, sp, #512
  15.         ldr     r9, .L8+4
  16.         mov     r6, r0
  17. .LPIC0:
  18.         add     r8, pc, r8
  19.         add     r7, sp, #512
  20.         mov     r4, r0
  21.         mov     r2, #1
  22.         ldr     r8, [r8, r9]
  23.         mov     r3, #0
  24.         mov     ip, #1
  25.         mov     r0, #0
  26.         mov     r1, #0
  27.         mov     r5, #0
  28.         strb    r6, [r7, #-512]!
  29.         b       .L5
  30. .L7:
  31.         strb    r10, [r7, r5, lsr #16]
  32.         strb    r9, [fp, #1]
  33. .L3:
  34.         strd    r2, [r8]
  35.         sub     r5, ip, #1
  36.         adds    r2, r2, #1
  37.         mov     r4, r5, asl #16
  38.         add     r6, sp, #512
  39.         adc     r3, r3, #0
  40.         cmp     ip, #0
  41.         add     r4, r6, r4, lsr #16
  42.         beq     .L4
  43.         ldrb    r4, [r4, #-512] @ zero_extendqisi2
  44. .L5:
  45.         add     ip, ip, #1
  46.         mov     r5, r5, asl #16
  47.         mov     ip, ip, asl #16
  48.         mov     r6, r5, lsr #16
  49.         cmp     r4, #1
  50.         sub     r10, r4, #1
  51.         sub     r9, r4, #2
  52.         mov     ip, ip, lsr #16
  53.         add     fp, r7, r6
  54.         bhi     .L7
  55.         and     r4, r4, #255
  56.         mov     r5, #0
  57.         adds    r0, r0, r4
  58.         mov     ip, r6
  59.         adc     r1, r1, r5
  60.         b       .L3
  61. .L4:
  62.         add     sp, sp, #512
  63.         @ sp needed
  64.         ldmfd   sp!, {r4, r5, r6, r7, r8, r9, r10, fp}
  65.         bx      lr
  66. .L9:
  67.         .align  2
  68. .L8:
  69.         .word   _GLOBAL_OFFSET_TABLE_-(.LPIC0+8)
  70.         .word   loop_count(GOT)
  71.         .size   fibonacci, .-fibonacci
  72.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement