X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=plugins%2Fnet.mograsim.machine%2Fsrc%2Fnet%2Fmograsim%2Fmachine%2Fmi%2Fparameters%2FMnemonicFamily.java;h=87046c8f7a633c2f9af19828ecb42dbf41b17ddd;hb=f098cd47d06be0cc654532a5fad0e5e89f0ef93c;hp=445485b899a6adf11d5949fa2d499fad52a32240;hpb=3278dbc72d3d3c803dc5ad2c0dfedc42b277a3d6;p=Mograsim.git diff --git a/plugins/net.mograsim.machine/src/net/mograsim/machine/mi/parameters/MnemonicFamily.java b/plugins/net.mograsim.machine/src/net/mograsim/machine/mi/parameters/MnemonicFamily.java index 445485b8..87046c8f 100644 --- a/plugins/net.mograsim.machine/src/net/mograsim/machine/mi/parameters/MnemonicFamily.java +++ b/plugins/net.mograsim.machine/src/net/mograsim/machine/mi/parameters/MnemonicFamily.java @@ -1,13 +1,15 @@ package net.mograsim.machine.mi.parameters; +import static net.mograsim.logic.core.types.Bit.U; + import java.util.Arrays; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.stream.Collectors; -import net.mograsim.logic.core.types.Bit; import net.mograsim.logic.core.types.BitVector; +import net.mograsim.machine.MachineException; import net.mograsim.machine.mi.parameters.MicroInstructionParameter.ParameterType; public class MnemonicFamily implements ParameterClassification @@ -20,12 +22,15 @@ public class MnemonicFamily implements ParameterClassification MnemonicFamily(String defaultValueName, MnemonicPair... values) { + if (values.length == 0) + throw new MachineException("Mnemonics must not be empty!"); this.values = new Mnemonic[values.length]; this.stringValues = new String[values.length]; setup(values); - int defaultValueIndex = -1; + // if no valid defaultValue is specified, pick first value as default + int defaultValueIndex = 0; for (int i = 0; i < values.length; i++) if (stringValues[i].equals(defaultValueName)) { @@ -177,7 +182,7 @@ public class MnemonicFamily implements ParameterClassification public MnemonicFamilyBuilder addX() { - pairs.add(new MnemonicPair("X", BitVector.of(Bit.ZERO, bits))); + pairs.add(new MnemonicPair("X", BitVector.of(U, bits))); return this; }