ARM

From Ellcc

Jump to: navigation, search

Assembly generated by sieve.c:

./arm-elf-ecc -v -O5 -S test/sieve.c
        .text
        .globl  main
        .align  2
main:
        stmfd sp!, {r4, r5, r6, lr}
        ldr r0, .LCPI1_0
        bl puts
        mov r3, #0
        b .LBB1_11      @ body2.outer
.LBB1_1:        @ next
        ldr r0, .LCPI1_1
        bl printf
        ldr r1, .LCPI1_2
        ldr r0, .LCPI1_3
        bl printf
        mov r1, #44
        ldr r0, .LCPI1_4
        bl printf
        ldr r1, .LCPI1_5
        ldr r0, .LCPI1_6
        bl printf
        ldr r1, .LCPI1_7
        ldr r0, .LCPI1_8
        bl printf
        mov r4, #0
        ldr r0, .LCPI1_9
        mov r1, r4
        bl printf
        mov r1, #1
        ldr r0, .LCPI1_10
        bl printf
        ldr r0, .LCPI1_11
        mov r1, r4
        bl printf
        ldr r1, .LCPI1_12
        ldr r0, .LCPI1_13
        bl printf
        ldr r1, .LCPI1_14
        ldr r0, .LCPI1_15
        bl printf
        mov r0, r4
        ldmfd sp!, {r4, r5, r6, pc}
.LBB1_2:        @ body2
        mov r0, #1
        strb r0, [r2, +r1]
        add r1, r1, #1
        mov r0, #255
        orr r0, r0, #31, 24 @ 7936
        cmp r1, r0
        bne .LBB1_2     @ body2
.LBB1_3:        @ body6.preheader
        mov r2, #0
        mov r0, #3
        ldr r12, .LCPI1_16
        mov lr, r0
        mov r1, r2
.LBB1_4:        @ body6
        ldrb r4, [r12, +r2]
        cmp r4, #0
        beq .LBB1_9     @ next9
.LBB1_5:        @ ifTrue
        mov r4, #254
        orr r4, r4, #31, 24 @ 7936
        cmp r0, r4
        bgt .LBB1_8     @ next12
.LBB1_6:        @ bb.nph
        ldr r4, .LCPI1_16
        mov r5, r0
.LBB1_7:        @ body11
        mov r6, #0
        strb r6, [r4, +r5]
        add r5, lr, r5
        mov r6, #255
        orr r6, r6, #31, 24 @ 7936
        cmp r5, r6
        blt .LBB1_7     @ body11
.LBB1_8:        @ next12
        add r1, r1, #1
.LBB1_9:        @ next9
        add r2, r2, #1
        add r0, r0, #3
        add lr, lr, #2
        mov r4, #255
        orr r4, r4, #31, 24 @ 7936
        cmp r2, r4
        bne .LBB1_4     @ body6
.LBB1_10:       @ next8
        add r3, r3, #1
        mov r2, #113, 28 @ 1808
        orr r2, r2, #2, 20 @ 8192
        cmp r3, r2
        beq .LBB1_1     @ next
.LBB1_11:       @ body2.outer
        mov r1, #0
        ldr r2, .LCPI1_16
        b .LBB1_2       @ body2
.LBB1_12:
        .LCPI1_0:
        .long   str

        .LCPI1_1:
        .long   .str1

        .LCPI1_2:
        .long   .str3

        .LCPI1_3:
        .long   .str2

        .LCPI1_4:
        .long   .str4

        .LCPI1_5:
        .long   .str6

        .LCPI1_6:
        .long   .str5

        .LCPI1_7:
        .long   .str8

        .LCPI1_8:
        .long   .str7

        .LCPI1_9:
        .long   .str9

        .LCPI1_10:
        .long   .str10

        .LCPI1_11:
        .long   .str11

        .LCPI1_12:
        .long   .str13

        .LCPI1_13:
        .long   .str12

        .LCPI1_14:
        .long   .str15

        .LCPI1_15:
        .long   .str14

        .LCPI1_16:
        .long   flags

        .size main, .-main
        .type flags,%object
        .globl flags
        .bss
        .align  4
flags:                          @ flags
        .size flags, 8191
        .space  8191

        .type .str1,%object
        .section        .rodata

.str1:                          @ .str1
        .size .str1, 11
        .asciz  "%d primes\n"

        .type .str2,%object
.str2:                          @ .str2
        .size .str2, 15
        .asciz  "__FILE__ = %s\n"

        .type .str3,%object
.str3:                          @ .str3
        .size .str3, 13
        .asciz  "test/sieve.c"

        .type .str4,%object
.str4:                          @ .str4
        .size .str4, 15
        .asciz  "__LINE__ = %d\n"

        .type .str5,%object
.str5:                          @ .str5
        .size .str5, 15
        .asciz  "__DATE__ = %s\n"

        .type .str6,%object
.str6:                          @ .str6
        .size .str6, 12
        .asciz  "Jul 12 2008"

        .type .str7,%object
.str7:                          @ .str7
        .size .str7, 15
        .asciz  "__TIME__ = %s\n"

        .type .str8,%object
.str8:                          @ .str8
        .size .str8, 9
        .asciz  "05:52:25"

        .type .str9,%object
.str9:                          @ .str9
        .size .str9, 16
        .asciz  "__ELLCC__ = %d\n"

        .type .str10,%object
        .align  4
.str10:                         @ .str10
        .size .str10, 22
        .asciz  "__ELLCC_MINOR__ = %d\n"

        .type .str11,%object
        .align  4
.str11:                         @ .str11
        .size .str11, 27
        .asciz  "__ELLCC_PATCHLEVEL__ = %d\n"

        .type .str12,%object
        .align  4
.str12:                         @ .str12
        .size .str12, 31
        .asciz  "__ELLCC_VERSION_STRING__ = %s\n"

        .type .str13,%object
.str13:                         @ .str13
        .size .str13, 6
        .asciz  "0.1.0"

        .type .str14,%object
        .align  4
.str14:                         @ .str14
        .size .str14, 25
        .asciz  "__ELLCC_VERSIONG__ = %s\n"

        .type .str15,%object
        .align  4
.str15:                         @ .str15
        .size .str15, 24
        .asciz  "0.1.0 ALPHA Jul 11 2008"

        .type str,%object
        .align  4
str:                            @ str
        .size str, 17
        .asciz  "10000 iterations"
Personal tools