Advertisement
Guest User

fibon_iter_O1.asm

a guest
Sep 7th, 2021
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.  * fibon_iter.asm with "-O1 -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}
  13.         sub     sp, sp, #512
  14.         ldr     r7, .L6
  15. .LPIC0:
  16.         add     r7, pc, r7
  17.         mov     r5, #0
  18.         add     r6, sp, #512
  19.         strb    r0, [r6, #-512]!
  20.         mov     r2, r5
  21.         mov     r3, r5
  22.         mov     ip, #1
  23.         mov     r0, r5
  24.         mov     r1, r5
  25. .L5:
  26.         sub     r5, ip, #1
  27.         mov     r5, r5, asl #16
  28.         mov     r8, r5, lsr #16
  29.         add     r9, r6, r8
  30.         ldrb    r4, [r6, r5, lsr #16]   @ zero_extendqisi2
  31.         cmp     r4, #1
  32.         bls     .L2
  33.         sub     r8, r4, #1
  34.         strb    r8, [r6, r5, lsr #16]
  35.         sub     r4, r4, #2
  36.         strb    r4, [r9, #1]
  37.         add     ip, ip, #1
  38.         mov     ip, ip, asl #16
  39.         mov     ip, ip, lsr #16
  40.         b       .L3
  41. .L2:
  42.         and     r4, r4, #255
  43.         mov     r5, #0
  44.         adds    r0, r0, r4
  45.         adc     r1, r1, r5
  46.         mov     ip, r8
  47. .L3:
  48.         adds    r2, r2, #1
  49.         adc     r3, r3, #0
  50.         cmp     ip, #0
  51.         bne     .L5
  52.         ldr     ip, .L6+4
  53.         ldr     ip, [r7, ip]
  54.         strd    r2, [ip]
  55.         add     sp, sp, #512
  56.         @ sp needed
  57.         ldmfd   sp!, {r4, r5, r6, r7, r8, r9}
  58.         bx      lr
  59. .L7:
  60.         .align  2
  61. .L6:
  62.         .word   _GLOBAL_OFFSET_TABLE_-(.LPIC0+8)
  63.         .word   loop_count(GOT)
  64.         .size   fibonacci, .-fibonacci
  65.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement