|
by using gcc, we have:
(taoewang@panipuri) /home/taoewang/test $ more test.c
#include <stdio.h>
int main()
{
int i=5;
i=i++ + --i;
printf("%d\n", i);
return 0;
}
(taoewang@panipuri) /home/taoewang/test $ gcc -S test.c
(taoewang@panipuri) /home/taoewang/test $ ./a.out
9
(taoewang@panipuri) /home/taoewang/test $ gcc -v
Reading specs from /afs/torolab.ibm.com/common/progs/gcc-3.4.3/aix51/usr/local/bin/../lib/gcc-lib/powerpc-ibm-aix5.1.0.0/3.3.4/specs
Configured with: ../gcc-3.3.4/configure --disable-nls
Thread model: aix
gcc version 3.3.4
.main:
mflr 0
stw 31,-4(1)
stw 0,8(1)
stwu 1,-80(1)
mr 31,1
li 0,5
stw 0,56(31)
lwz 11,56(31)
lwz 9,56(31)
addi 0,9,-1
mr 9,0
stw 9,56(31)
mr 0,11
add 0,0,9
addi 11,11,1
stw 11,56(31)
stw 0,56(31)
lwz 3,LC..1(2)
lwz 4,56(31)
bl .printf
nop
li 0,0
mr 3,0
lwz 1,0(1)
lwz 0,8(1)
mtlr 0
lwz 31,-4(1)
blr
looks like
i=i-1
i=i+i
i++ |
|