Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * fibon_iter.asm with "-O2 -fno-inline"
- */
- .align 2
- .global fibonacci
- .type fibonacci, %function
- fibonacci:
- @ args = 0, pretend = 0, frame = 512
- @ frame_needed = 0, uses_anonymous_args = 0
- @ link register save eliminated.
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp}
- ldr r8, .L8
- sub sp, sp, #512
- ldr r9, .L8+4
- mov r6, r0
- .LPIC0:
- add r8, pc, r8
- add r7, sp, #512
- mov r4, r0
- mov r2, #1
- ldr r8, [r8, r9]
- mov r3, #0
- mov ip, #1
- mov r0, #0
- mov r1, #0
- mov r5, #0
- strb r6, [r7, #-512]!
- b .L5
- .L7:
- strb r10, [r7, r5, lsr #16]
- strb r9, [fp, #1]
- .L3:
- strd r2, [r8]
- sub r5, ip, #1
- adds r2, r2, #1
- mov r4, r5, asl #16
- add r6, sp, #512
- adc r3, r3, #0
- cmp ip, #0
- add r4, r6, r4, lsr #16
- beq .L4
- ldrb r4, [r4, #-512] @ zero_extendqisi2
- .L5:
- add ip, ip, #1
- mov r5, r5, asl #16
- mov ip, ip, asl #16
- mov r6, r5, lsr #16
- cmp r4, #1
- sub r10, r4, #1
- sub r9, r4, #2
- mov ip, ip, lsr #16
- add fp, r7, r6
- bhi .L7
- and r4, r4, #255
- mov r5, #0
- adds r0, r0, r4
- mov ip, r6
- adc r1, r1, r5
- b .L3
- .L4:
- add sp, sp, #512
- @ sp needed
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp}
- bx lr
- .L9:
- .align 2
- .L8:
- .word _GLOBAL_OFFSET_TABLE_-(.LPIC0+8)
- .word loop_count(GOT)
- .size fibonacci, .-fibonacci
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement