Copy over these files into your cs75 subdirectory:
cp -r ~newhall/public/cs75/mipsfiles .
AST: AND
/ \
expr1 expr2
expr1 AND expr2:
(1) generate code to evaluate expr1
(2) generate code to test if expr1 is false
branch to later code that will set result to 0
(this is the short-circuting code that skips over code that evaluates expr2)
(3) generate code to evaluate expr2
(4) generate code to test if expr2 is false
branch to later code that will set result to 0
(5) generate code to set result to true (1) and branch over setting result to false code
(6) generate code to set result to false (0) (this is the branch target of (2) and (4)
(7) generate label for true branch target that skips over (6) code
AST: WHILE
/ \
expr stmt
AST: FUNC_CALL RETURN
/ | |
expr1 expr2 ... expr