diff --git a/mutants/mutant-4/swen90006/machine/Machine.java b/mutants/mutant-4/swen90006/machine/Machine.java index 9bf57316d1c736ea2bd1c62bd6df3c6c0282f331..f5e5c1ef8a89049a16778ded1d0097ce2ec88773 100644 --- a/mutants/mutant-4/swen90006/machine/Machine.java +++ b/mutants/mutant-4/swen90006/machine/Machine.java @@ -1,3 +1,6 @@ +//abs value of register value in ADD: +//may not be caught if test cases don't include +//negative values for ADD insturction. package swen90006.machine; import java.util.Arrays; @@ -58,7 +61,11 @@ public class Machine private void do_add(int dest, int src1, int src2) { - regs[dest] = regs[src1] + regs[src2]; + regs[dest] = regs[src1] + abs(regs[src2]); +//abs value of register value in ADD: +//may not be caught if test cases don't include +//negative values for ADD insturction. + } private void do_sub(int dest, int src1, int src2) @@ -77,6 +84,7 @@ public class Machine /* no op */ }else{ regs[dest] = regs[src1] / regs[src2]; + } } @@ -168,9 +176,10 @@ public class Machine int instructionsExecuted = 0; int pc = 0; - final int progLength = instructions.size(); + final int progLength = instructions.size()-1; while(true){ if (pc < 0 || pc >= progLength){ + /* will cause NoReturnValueException to be thrown * but that is not a bug and and indeed is what the * VM is supposed to do if the pc becomes negative,