int main(){}
struct aStruct{
int a;
int b;
char c;
long long int d;
};
int sum(struct aStruct * s) {
int t = 0;
t += s->a;
t += s->b;
t += s->c;
t += s->d;
return t;
}
| .file "struct.c"
.text
.globl main
.type main, @function
main:
leal 4(%esp), %ecx
andl $-16, %esp
pushl -4(%ecx)
pushl %ebp
movl %esp, %ebp
pushl %ecx
popl %ecx
popl %ebp
leal -4(%ecx), %esp
ret
.size main, .-main
.globl sum
.type sum, @function
sum:
pushl %ebp
movl %esp, %ebp
subl $16, %esp
movl $0, -4(%ebp)
movl 8(%ebp), %eax
movl (%eax), %eax
addl %eax, -4(%ebp)
movl 8(%ebp), %eax
movl 4(%eax), %eax
addl %eax, -4(%ebp)
movl 8(%ebp), %eax
movzbl 8(%eax), %eax
movsbl %al,%eax
addl %eax, -4(%ebp)
movl 8(%ebp), %eax
movl 16(%eax), %edx
movl 12(%eax), %eax
movl %eax, %edx
movl -4(%ebp), %eax
leal (%edx,%eax), %eax
movl %eax, -4(%ebp)
movl -4(%ebp), %eax
leave
ret
.size sum, .-sum
.ident "GCC: (GNU) 4.1.2 20080704 ...
.section .note.GNU-stack,"",@progb...
| .file 1 "struct.c"
.section .mdebug.abi32
.previous
.abicalls
.text
.align 2
.globl main
.ent main
.type main, @function
main:
.frame $fp,8,$31 # vars= 0, regs=...
.mask 0x40000000,-8
.fmask 0x00000000,0
.set noreorder
.cpload $25
.set reorder
addiu $sp,$sp,-8
sw $fp,0($sp)
move $fp,$sp
move $sp,$fp
lw $fp,0($sp)
addiu $sp,$sp,8
j $31
.end main
.align 2
.globl sum
.ent sum
.type sum, @function
sum:
.frame $fp,24,$31 # vars= 8, regs...
.mask 0x40000000,-8
.fmask 0x00000000,0
.set noreorder
.cpload $25
.set reorder
addiu $sp,$sp,-24
sw $fp,16($sp)
move $fp,$sp
sw $4,24($fp)
sw $0,8($fp)
lw $2,24($fp)
lw $3,8($fp)
lw $2,0($2)
addu $2,$3,$2
sw $2,8($fp)
lw $2,24($fp)
lw $3,8($fp)
lw $2,4($2)
addu $2,$3,$2
sw $2,8($fp)
lw $2,24($fp)
lb $3,8($2)
lw $2,8($fp)
addu $2,$2,$3
sw $2,8($fp)
lw $2,24($fp)
lw $3,8($fp)
lw $2,16($2)
addu $2,$3,$2
sw $2,8($fp)
lw $2,8($fp)
move $sp,$fp
lw $fp,16($sp)
addiu $sp,$sp,24
j $31
.end sum
.ident "GCC: (GNU) 3.4.5"
| .file "struct.c"
.text
.globl main
.type main, @function
main:
leal 4(%esp), %ecx
andl $-16, %esp
pushl -4(%ecx)
pushl %ebp
movl %esp, %ebp
pushl %ecx
popl %ecx
popl %ebp
leal -4(%ecx), %esp
ret
.size main, .-main
.globl sum
.type sum, @function
sum:
pushl %ebp
movl %esp, %ebp
movl 8(%ebp), %edx
movl (%edx), %eax
addl 4(%edx), %eax
movsbl 8(%edx),%ecx
addl %ecx, %eax
addl 12(%edx), %eax
popl %ebp
ret
.size sum, .-sum
.ident "GCC: (GNU) 4.1.2 20080704 ...
.section .note.GNU-stack,"",@progb...
| .file 1 "struct.c"
.section .mdebug.abi32
.previous
.abicalls
.text
.align 2
.globl main
.ent main
.type main, @function
main:
.frame $sp,0,$31 # vars= 0, regs=...
.mask 0x00000000,0
.fmask 0x00000000,0
.set noreorder
.cpload $25
.set reorder
j $31
.end main
.align 2
.globl sum
.ent sum
.type sum, @function
sum:
.frame $sp,0,$31 # vars= 0, regs=...
.mask 0x00000000,0
.fmask 0x00000000,0
.set noreorder
.cpload $25
.set reorder
lw $2,0($4)
lw $3,4($4)
addu $2,$2,$3
lb $3,8($4)
addu $2,$2,$3
lw $3,16($4)
.set noreorder
.set nomacro
j $31
addu $2,$2,$3
.set macro
.set reorder
.end sum
.ident "GCC: (GNU) 3.4.5"
| .file "struct.c"
.text
.p2align 4,,15
.globl main
.type main, @function
main:
leal 4(%esp), %ecx
andl $-16, %esp
pushl -4(%ecx)
pushl %ebp
movl %esp, %ebp
pushl %ecx
popl %ecx
popl %ebp
leal -4(%ecx), %esp
ret
.size main, .-main
.p2align 4,,15
.globl sum
.type sum, @function
sum:
pushl %ebp
movl %esp, %ebp
movl 8(%ebp), %edx
popl %ebp
movl (%edx), %eax
movsbl 8(%edx),%ecx
addl 4(%edx), %eax
addl %ecx, %eax
addl 12(%edx), %eax
ret
.size sum, .-sum
.ident "GCC: (GNU) 4.1.2 20080704 ...
.section .note.GNU-stack,"",@progb...
| .file 1 "struct.c"
.section .mdebug.abi32
.previous
.abicalls
.text
.align 2
.globl main
.ent main
.type main, @function
main:
.frame $sp,0,$31 # vars= 0, regs=...
.mask 0x00000000,0
.fmask 0x00000000,0
.set noreorder
.set nomacro
j $31
nop
.set macro
.set reorder
.end main
.align 2
.globl sum
.ent sum
.type sum, @function
sum:
.frame $sp,0,$31 # vars= 0, regs=...
.mask 0x00000000,0
.fmask 0x00000000,0
.set noreorder
.set nomacro
lw $8,0($4)
lw $3,4($4)
lb $6,8($4)
addu $7,$8,$3
lw $5,16($4)
addu $2,$7,$6
j $31
addu $2,$2,$5
.set macro
.set reorder
.end sum
.ident "GCC: (GNU) 3.4.5"
|