#include
//label: a = foo(b);
int foo(int s)
{
return s;
}
int main()
{
int a, b;
a = foo(b);
return a;
}
| .file "15.c"
.text
.globl foo
.type foo, @function
foo:
pushl %ebp
movl %esp, %ebp
movl 8(%ebp), %eax
popl %ebp
ret
.size foo, .-foo
.globl main
.type main, @function
main:
leal 4(%esp), %ecx
andl $-16, %esp
pushl -4(%ecx)
pushl %ebp
movl %esp, %ebp
pushl %ecx
subl $20, %esp
movl -8(%ebp), %eax
movl %eax, (%esp)
call foo
movl %eax, -12(%ebp)
movl -12(%ebp), %eax
addl $20, %esp
popl %ecx
popl %ebp
leal -4(%ecx), %esp
ret
.size main, .-main
.ident "GCC: (GNU) 4.1.2 20080704 ...
.section .note.GNU-stack,"",@progb...
| .file 1 "15.c"
.section .mdebug.abi32
.previous
.abicalls
.text
.align 2
.globl foo
.ent foo
.type foo, @function
foo:
.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
sw $4,8($fp)
lw $2,8($fp)
move $sp,$fp
lw $fp,0($sp)
addiu $sp,$sp,8
j $31
.end foo
.align 2
.globl main
.ent main
.type main, @function
main:
.frame $fp,40,$31 # vars= 8, regs...
.mask 0xc0000000,-4
.fmask 0x00000000,0
.set noreorder
.cpload $25
.set reorder
addiu $sp,$sp,-40
sw $31,36($sp)
sw $fp,32($sp)
move $fp,$sp
.cprestore 16
lw $4,28($fp)
jal foo
sw $2,24($fp)
lw $2,24($fp)
move $sp,$fp
lw $31,36($sp)
lw $fp,32($sp)
addiu $sp,$sp,40
j $31
.end main
.ident "GCC: (GNU) 3.4.5"
| .file "15.c"
.text
.globl foo
.type foo, @function
foo:
pushl %ebp
movl %esp, %ebp
movl 8(%ebp), %eax
popl %ebp
ret
.size foo, .-foo
.globl main
.type main, @function
main:
leal 4(%esp), %ecx
andl $-16, %esp
pushl -4(%ecx)
pushl %ebp
movl %esp, %ebp
pushl %ecx
subl $4, %esp
movl %eax, (%esp)
call foo
addl $4, %esp
popl %ecx
popl %ebp
leal -4(%ecx), %esp
ret
.size main, .-main
.ident "GCC: (GNU) 4.1.2 20080704 ...
.section .note.GNU-stack,"",@progb...
| .file 1 "15.c"
.section .mdebug.abi32
.previous
.abicalls
.text
.align 2
.globl foo
.ent foo
.type foo, @function
foo:
.frame $sp,0,$31 # vars= 0, regs=...
.mask 0x00000000,0
.fmask 0x00000000,0
.set noreorder
.cpload $25
.set reorder
.set noreorder
.set nomacro
j $31
move $2,$4
.set macro
.set reorder
.end foo
.align 2
.globl main
.ent main
.type main, @function
main:
.frame $sp,32,$31 # vars= 0, regs...
.mask 0x80000000,-8
.fmask 0x00000000,0
.set noreorder
.cpload $25
.set reorder
addiu $sp,$sp,-32
sw $31,24($sp)
.cprestore 16
jal foo
lw $31,24($sp)
.set noreorder
.set nomacro
j $31
addiu $sp,$sp,32
.set macro
.set reorder
.end main
.ident "GCC: (GNU) 3.4.5"
| .file "15.c"
.text
.p2align 4,,15
.globl foo
.type foo, @function
foo:
pushl %ebp
movl %esp, %ebp
movl 8(%ebp), %eax
popl %ebp
ret
.size foo, .-foo
.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
.ident "GCC: (GNU) 4.1.2 20080704 ...
.section .note.GNU-stack,"",@progb...
| .file 1 "15.c"
.section .mdebug.abi32
.previous
.abicalls
.text
.align 2
.globl foo
.ent foo
.type foo, @function
foo:
.frame $sp,0,$31 # vars= 0, regs=...
.mask 0x00000000,0
.fmask 0x00000000,0
.set noreorder
.set nomacro
j $31
move $2,$4
.set macro
.set reorder
.end foo
.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
.ident "GCC: (GNU) 3.4.5"
|