CS25 - Lab 2
Part 6: Assembly Code


	.file	"part6.c"
	.version	"01.01"
gcc2_compiled.:
.text
	.align 4
	.type	 baseline1,@function
baseline1:
	pushl %ebp
	movl %esp,%ebp
	subl $56,%esp
	movl $0,-4(%ebp)
	movl $0,-8(%ebp)
	movl $0,-12(%ebp)
	movl $0,-16(%ebp)
	movl $0,-20(%ebp)
	movl $0,-24(%ebp)
	movl $0,-28(%ebp)
	movl $0,-32(%ebp)
	movl $0,-36(%ebp)
	.p2align 4,,7
.L3:
	cmpl $49999999,-36(%ebp)
	jle .L6
	jmp .L4
	.p2align 4,,7
.L6:
	addl $2,-4(%ebp)
	addl $2,-8(%ebp)
	addl $2,-12(%ebp)
	addl $2,-16(%ebp)
	addl $2,-20(%ebp)
	addl $2,-24(%ebp)
	addl $2,-28(%ebp)
	addl $2,-32(%ebp)
.L5:
	incl -36(%ebp)
	jmp .L3
	.p2align 4,,7
.L4:
.L2:
	leave
	ret
.Lfe1:
	.size	 baseline1,.Lfe1-baseline1
	.align 4
	.type	 baseline2,@function
baseline2:
	pushl %ebp
	movl %esp,%ebp
	subl $56,%esp
	movl $0,-4(%ebp)
	movl $0,-8(%ebp)
	movl $0,-12(%ebp)
	movl $0,-16(%ebp)
	movl $0,-20(%ebp)
	movl $0,-24(%ebp)
	movl $0,-28(%ebp)
	movl $0,-32(%ebp)
	movl $0,-36(%ebp)
	.p2align 4,,7
.L8:
	cmpl $49999999,-36(%ebp)
	jle .L11
	jmp .L9
	.p2align 4,,7
.L11:
	addl $2,-4(%ebp)
	addl $2,-8(%ebp)
	addl $2,-12(%ebp)
	movl -4(%ebp),%eax
	addl %eax,-16(%ebp)
	addl $2,-20(%ebp)
	addl $2,-24(%ebp)
	addl $2,-28(%ebp)
	movl -20(%ebp),%eax
	addl %eax,-32(%ebp)
.L10:
	incl -36(%ebp)
	jmp .L8
	.p2align 4,,7
.L9:
.L7:
	leave
	ret
.Lfe2:
	.size	 baseline2,.Lfe2-baseline2
	.align 4
	.type	 dependency3,@function
dependency3:
	pushl %ebp
	movl %esp,%ebp
	subl $56,%esp
	movl $0,-4(%ebp)
	movl $0,-8(%ebp)
	movl $0,-12(%ebp)
	movl $0,-16(%ebp)
	movl $0,-20(%ebp)
	movl $0,-24(%ebp)
	movl $0,-28(%ebp)
	movl $0,-32(%ebp)
	movl $0,-36(%ebp)
	.p2align 4,,7
.L13:
	cmpl $49999999,-36(%ebp)
	jle .L16
	jmp .L14
	.p2align 4,,7
.L16:
	addl $2,-4(%ebp)
	addl $2,-8(%ebp)
	movl -4(%ebp),%eax
	addl %eax,-12(%ebp)
	addl $2,-16(%ebp)
	addl $2,-20(%ebp)
	movl -12(%ebp),%eax
	addl %eax,-24(%ebp)
	addl $2,-28(%ebp)
	addl $2,-32(%ebp)
.L15:
	incl -36(%ebp)
	jmp .L13
	.p2align 4,,7
.L14:
.L12:
	leave
	ret
.Lfe3:
	.size	 dependency3,.Lfe3-dependency3
	.align 4
	.type	 dependency2,@function
dependency2:
	pushl %ebp
	movl %esp,%ebp
	subl $56,%esp
	movl $0,-4(%ebp)
	movl $0,-8(%ebp)
	movl $0,-12(%ebp)
	movl $0,-16(%ebp)
	movl $0,-20(%ebp)
	movl $0,-24(%ebp)
	movl $0,-28(%ebp)
	movl $0,-32(%ebp)
	movl $0,-36(%ebp)
	.p2align 4,,7
.L18:
	cmpl $49999999,-36(%ebp)
	jle .L21
	jmp .L19
	.p2align 4,,7
.L21:
	addl $2,-4(%ebp)
	movl -4(%ebp),%eax
	addl %eax,-8(%ebp)
	movl -8(%ebp),%eax
	addl %eax,-12(%ebp)
	movl -12(%ebp),%eax
	addl %eax,-16(%ebp)
	movl -16(%ebp),%eax
	addl %eax,-20(%ebp)
	movl -20(%ebp),%eax
	addl %eax,-24(%ebp)
	movl -24(%ebp),%eax
	addl %eax,-28(%ebp)
	movl -28(%ebp),%eax
	addl %eax,-32(%ebp)
.L20:
	incl -36(%ebp)
	jmp .L18
	.p2align 4,,7
.L19:
.L17:
	leave
	ret
.Lfe4:
	.size	 dependency2,.Lfe4-dependency2
.section	.rodata
	.align 32
.LC0:
	.string	"Superscalar test: Baseline 1: No dependencies between operations.\n"
	.align 32
.LC1:
	.string	"Superscalar test: Baseline 2: Operation 4 is dependent on operation 2.\n"
	.align 32
.LC2:
	.string	"Superscalar test: Dependency 3: Operation 3 is dependent on operation 1.\n"
	.align 32
.LC3:
	.string	"Superscalar test: Dependency 2: Every operation dependent on previous one.\n"
.text
	.align 4
.globl main
	.type	 main,@function
main:
	pushl %ebp
	movl %esp,%ebp
	subl $8,%esp
	addl $-12,%esp
	pushl $.LC0
	pushl $0
	pushl $0
	pushl $baseline1
	pushl $50000000
	call calcruntime
	addl $32,%esp
	addl $-12,%esp
	pushl $.LC1
	pushl $0
	pushl $0
	pushl $baseline2
	pushl $50000000
	call calcruntime
	addl $32,%esp
	addl $-12,%esp
	pushl $.LC2
	pushl $0
	pushl $0
	pushl $dependency3
	pushl $50000000
	call calcruntime
	addl $32,%esp
	addl $-12,%esp
	pushl $.LC3
	pushl $0
	pushl $0
	pushl $dependency2
	pushl $50000000
	call calcruntime
	addl $32,%esp
	xorl %eax,%eax
	jmp .L22
	.p2align 4,,7
.L22:
	leave
	ret
.Lfe5:
	.size	 main,.Lfe5-main
	.ident	"GCC: (GNU) 2.95.4 20011002 (Debian prerelease)"