#include
//label: a = b - (c * (d/2) - 4);
int main()
{
int a, b, c, d;
a = b - (c * (d/2) - 4);
return a;
}
| .file "5.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
subl $16, %esp
movl -8(%ebp), %edx
movl %edx, %eax
shrl $31, %eax
addl %edx, %eax
sarl %eax
imull -12(%ebp), %eax
leal -4(%eax), %edx
movl -16(%ebp), %eax
subl %edx, %eax
movl %eax, -20(%ebp)
movl -20(%ebp), %eax
addl $16, %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 "5.c"
.section .mdebug.abi32
.previous
.abicalls
.text
.align 2
.globl main
.ent main
.type main, @function
main:
.frame $fp,32,$31 # vars= 16, reg...
.mask 0x40000000,-8
.fmask 0x00000000,0
.set noreorder
.cpload $25
.set reorder
addiu $sp,$sp,-32
sw $fp,24($sp)
move $fp,$sp
lw $3,20($fp)
sra $2,$3,31
srl $2,$2,31
addu $2,$3,$2
sra $3,$2,1
lw $2,16($fp)
mult $3,$2
mflo $3
lw $2,12($fp)
subu $2,$2,$3
addiu $2,$2,4
sw $2,8($fp)
lw $2,8($fp)
move $sp,$fp
lw $fp,24($sp)
addiu $sp,$sp,32
j $31
.end main
.ident "GCC: (GNU) 3.4.5"
| .file "5.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
shrl $31, %eax
addl %eax, %eax
sarl %eax
imull %eax, %eax
subl $4, %eax
subl %eax, %eax
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 "5.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
srl $2,$3,31
addu $2,$3,$2
sra $2,$2,1
mult $2,$3
mflo $2
subu $2,$3,$2
.set noreorder
.set nomacro
j $31
addiu $2,$2,4
.set macro
.set reorder
.end main
.ident "GCC: (GNU) 3.4.5"
| .file "5.c"
.text
.p2align 4,,15
.globl main
.type main, @function
main:
leal 4(%esp), %ecx
andl $-16, %esp
shrl $31, %eax
pushl -4(%ecx)
addl %eax, %eax
sarl %eax
imull %eax, %eax
pushl %ebp
movl %esp, %ebp
pushl %ecx
subl $4, %eax
popl %ecx
subl %eax, %eax
popl %ebp
leal -4(%ecx), %esp
ret
.size main, .-main
.ident "GCC: (GNU) 4.1.2 20080704 ...
.section .note.GNU-stack,"",@progb...
| .file 1 "5.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
srl $7,$2,31
addu $6,$3,$7
sra $5,$6,1
mult $5,$3
mflo $4
subu $2,$3,$4
j $31
addiu $2,$2,4
.set macro
.set reorder
.end main
.ident "GCC: (GNU) 3.4.5"
|