ARM
From Ellcc
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"
