Start exercising grow code, breaking the VM

This commit is contained in:
Ian Gulliver
2021-11-20 19:17:35 -10:00
parent 510680d6c5
commit f6a598a559
6 changed files with 107 additions and 12 deletions

View File

@@ -73,13 +73,25 @@ func (state *State) handleMultiply(instr *Instruction) {
func (state *State) handleDivideUnsigned(instr *Instruction) {
in1 := state.readUnsigned(instr.Operands[0])
in2 := state.readUnsigned(instr.Operands[1])
state.writeUnsigned(instr.Operands[0], in1/in2)
if in2 == 0 {
// Divide by zero just returns zero
state.writeUnsigned(instr.Operands[0], 0)
} else {
state.writeUnsigned(instr.Operands[0], in1/in2)
}
}
func (state *State) handleDivideSigned(instr *Instruction) {
in1 := state.readSigned(instr.Operands[0])
in2 := state.readSigned(instr.Operands[1])
state.writeSigned(instr.Operands[0], in1/in2)
if in2 == 0 {
// Divide by zero just returns zero
state.writeSigned(instr.Operands[0], 0)
} else {
state.writeSigned(instr.Operands[0], in1/in2)
}
}
func (state *State) handleNot(instr *Instruction) {