Trace of Expression Algorithm
>(genarith '(* (+ a b) 3))
1> (GENARITH (* (+ A B) 3))
2> (GENARITH (+ A B))
3> (GENARITH A)
4> (GENLOAD A EAX)
MOVL A,EAX
<4 (GENLOAD EAX)
<3 (GENARITH EAX)
3> (GENARITH B)
4> (GENLOAD B EBX)
MOVL B,EBX
<4 (GENLOAD EBX)
<3 (GENARITH EBX)
ADDL EBX,EAX ; op S,D for x86
<2 (GENARITH EAX) ; result in D = lhs
2> (GENARITH 3)
3> (GENLOAD 3 ECX)
MOVL 3,ECX
<3 (GENLOAD ECX)
<2 (GENARITH ECX)
IMULL ECX,EAX
<1 (GENARITH EAX)
EAX