temporarly out of time on this one. it appears from the assembly output that 8c multiplies by 0 and not 1 when computing z a second time. nonetheless, i haven't yet seen the problem.
#include <u.h>
#include <libc.h>
void
main(void)
{
int three, one;
uvlong twelve, z;
one = 1;
three = 3;
twelve = 12;
z = one*(twelve - three);
print("z = %llud\n", z);
z = (twelve - three) * one;
print("z = %llud\n", z);
exits(0);
}
output:
z = 9
z = 0
- erik
