PowerPC
From Ellcc
Assembly generated by sieve.c:
./powerpc-elf-ecc -v -O5 -S test/sieve.c
.text
.global main
.type main, @function
.align 2
main:
eh_func_begin1:
mflr 0
stw 0, 4(1)
label1:
stwu 1, -48(1)
label2:
stw 26, 44(1)
stw 27, 40(1)
stw 28, 36(1)
stw 29, 32(1)
stw 30, 28(1)
mfcr 0
stw 0, 24(1)
lis 3, str@ha
la 3, str@l(3)
li 30, 0
bl puts
b BB1_11 # body2.outer
BB1_1: # next
lis 30, .str1@ha
lis 29, .str2@ha
lis 28, .str3@ha
creqv 8, 8, 8
la 3, .str1@l(30)
cror 6, 8, 8
bl printf
lis 30, .str4@ha
la 3, .str2@l(29)
la 4, .str3@l(28)
cror 6, 8, 8
bl printf
lis 29, .str5@ha
lis 28, .str6@ha
la 3, .str4@l(30)
li 4, 44
cror 6, 8, 8
bl printf
lis 30, .str7@ha
lis 27, .str8@ha
la 3, .str5@l(29)
la 4, .str6@l(28)
cror 6, 8, 8
bl printf
lis 29, .str9@ha
la 3, .str7@l(30)
la 4, .str8@l(27)
cror 6, 8, 8
bl printf
lis 30, .str10@ha
la 3, .str9@l(29)
li 29, 0
mr 4, 29
cror 6, 8, 8
bl printf
lis 28, .str11@ha
la 3, .str10@l(30)
li 4, 1
cror 6, 8, 8
bl printf
lis 30, .str12@ha
lis 27, .str13@ha
la 3, .str11@l(28)
mr 4, 29
cror 6, 8, 8
bl printf
lis 28, .str14@ha
lis 26, .str15@ha
la 3, .str12@l(30)
la 4, .str13@l(27)
cror 6, 8, 8
bl printf
la 3, .str14@l(28)
la 4, .str15@l(26)
cror 6, 8, 8
bl printf
mr 3, 29
lwz 0, 24(1)
mtcrf 128, 0
lwz 30, 28(1)
lwz 29, 32(1)
lwz 28, 36(1)
lwz 27, 40(1)
lwz 26, 44(1)
addi 1, 1, 48
lwz 0, 4(1)
mtlr 0
blr
BB1_2: # body2
li 5, 1
addi 6, 4, 1
stbx 5, 3, 4
cmplwi 0, 6, 8191
mr 4, 6
bne 0, BB1_2 # body2
BB1_3: # body6.preheader
lis 3, flags@ha
la 3, flags@l(3)
li 5, 0
li 6, 3
mr 7, 6
mr 4, 5
BB1_4: # body6
lbzx 8, 3, 5
cmplwi 0, 8, 0
beq 0, BB1_9 # next9
BB1_5: # ifTrue
cmpwi 0, 6, 8190
bgt 0, BB1_8 # next12
BB1_6: # bb.nph
lis 8, flags@ha
la 8, flags@l(8)
mr 9, 6
BB1_7: # body11
li 10, 0
add 11, 7, 9
stbx 10, 8, 9
cmpwi 0, 11, 8191
mr 9, 11
blt 0, BB1_7 # body11
BB1_8: # next12
addi 4, 4, 1
BB1_9: # next9
addi 5, 5, 1
addi 6, 6, 3
addi 7, 7, 2
cmplwi 0, 5, 8191
bne 0, BB1_4 # body6
BB1_10: # next8
addi 30, 30, 1
cmplwi 0, 30, 10000
beq 0, BB1_1 # next
BB1_11: # body2.outer
lis 3, flags@ha
la 3, flags@l(3)
li 4, 0
b BB1_2 # body2
.size main,.-main
eh_func_end1:
.global flags
.type flags, @object
.section ".sbss","aw",@nobits
flags:
.zero 8191
# 'flags'
.section .rodata
.str1: # '.str1'
.asciz "%d primes\n"
.str2: # '.str2'
.asciz "__FILE__ = %s\n"
.str3: # '.str3'
.asciz "test/sieve.c"
.str4: # '.str4'
.asciz "__LINE__ = %d\n"
.str5: # '.str5'
.asciz "__DATE__ = %s\n"
.str6: # '.str6'
.asciz "Jul 13 2008"
.str7: # '.str7'
.asciz "__TIME__ = %s\n"
.str8: # '.str8'
.asciz "05:31:25"
.str9: # '.str9'
.asciz "__ELLCC__ = %d\n"
.align 4
.str10: # '.str10'
.asciz "__ELLCC_MINOR__ = %d\n"
.align 4
.str11: # '.str11'
.asciz "__ELLCC_PATCHLEVEL__ = %d\n"
.align 4
.str12: # '.str12'
.asciz "__ELLCC_VERSION_STRING__ = %s\n"
.str13: # '.str13'
.asciz "0.1.0"
.align 4
.str14: # '.str14'
.asciz "__ELLCC_VERSIONG__ = %s\n"
.align 4
.str15: # '.str15'
.asciz "0.1.0 ALPHA Jul 13 2008"
.align 4
str: # 'str'
.asciz "10000 iterations"
.section .eh_frame,"aw",@progbits
EH_frame0:
section_eh_frame:
eh_frame_common:
.long eh_frame_common_end-eh_frame_common_begin
eh_frame_common_begin:
.long 0x0
.byte 0x1
.asciz "zR"
.uleb128 1
.sleb128 -4
.byte 0x41
.uleb128 1
.byte 0x1b
.byte 0xc
.uleb128 1
.uleb128 0
.align 2
eh_frame_common_end:
main.eh:
.long eh_frame_end1-eh_frame_begin1
eh_frame_begin1:
.long eh_frame_begin1-eh_frame_common
.long eh_func_begin1-.
.long eh_func_end1-eh_func_begin1
.uleb128 0
.byte 0x4
.long label1-eh_func_begin1
.byte 0xe
.uleb128 48
.byte 0x9a
.uleb128 1
.byte 0x9b
.uleb128 2
.byte 0x9c
.uleb128 3
.byte 0x9d
.uleb128 4
.byte 0x9e
.uleb128 5
.byte 0x80
.uleb128 6
.byte 0x11
.uleb128 65
.sleb128 -1
.byte 0x4
.long label2-label1
.byte 0xd
.uleb128 1
.align 2
eh_frame_end1:
