Added is operator
This commit is contained in:
@@ -728,7 +728,17 @@ public class CodeGenImpl extends CodeGenBase
|
||||
sp_off -= 2;
|
||||
backend.emitADDI(SP, FP, -sp_off*wordSize, "restore sp");
|
||||
}
|
||||
// TODO: Implement "is" for objects
|
||||
else if(operator.equals("is"))
|
||||
{
|
||||
node.right.dispatch(this);
|
||||
backend.emitSW(Register.A0, Register.FP, -sp_off*wordSize, "Push on stack slot "+sp_off);
|
||||
incSp(1);
|
||||
node.left.dispatch(this);
|
||||
sp_off--;
|
||||
backend.emitLW(Register.T0, Register.FP, -sp_off*wordSize, "Pop stack slot "+sp_off);
|
||||
backend.emitXOR(Register.A0, Register.A0, Register.T0, "Operator: is");
|
||||
backend.emitSEQZ(Register.A0, Register.A0, "Result is True if XOR equals 0");
|
||||
}
|
||||
else
|
||||
{
|
||||
backend.emitJAL(errorNI, "Operator not implemented");
|
||||
|
||||
Reference in New Issue
Block a user