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
   12   13   14   15   16   17   18   19