Page 17 - BG555
P. 17
# eax = x
int arith movl 8(%ebp),%eax
(int x, int y, int z) # edx = y
{ movl 12(%ebp),%edx
# ecx = x+y (t1)
int t1 = x+y;
leal (%edx,%eax),%ecx
int t2 = z+t1; # edx = 3*y
int t3 = x+4; leal (%edx,%edx,2),%edx
# edx = 48*y (t4)
int t4 = y * 48;
sall $4,%edx
int t5 = t3 + t4; # ecx = z+t1 (t2)
int rval = t2 * t5; addl 16(%ebp),%ecx
# eax = 4+t4+x (t5)
return rval;
} leal 4(%edx,%eax),%eax
# eax = t5*t2 (rval)
imull %ecx,%eax