[prev] 33 [next]

Expression Evaluation

Uses temporary ($t?) registers
  • even complex expressions don't generally need > 3-4 registers
Example:

   x = ((y+3) * (z-2) * x) / 4;

   lw   $t0, y
   addi $t0, $t0, 3    # t0 = y + 3
   lw   $t1, z
   addi $t1, $t1, -2   # t1 = z - 2
   mul  $t0, $t0, $t1  # t0 = t0 * t1
   lw   $t1, x
   mul  $t0, $t0, $t1  # t0 = t0 * x
   li   $t1, 4
   div  $t0, $t0, $t1  # t0 = t0 / 4

Reminder: boolean expressions handled by short-circuit evaluation.