1 package net.mograsim.machine.mi.parameters;
3 import static net.mograsim.logic.core.types.BitVector.SINGLE_0;
4 import static net.mograsim.logic.core.types.BitVector.SINGLE_1;
5 import static net.mograsim.logic.core.types.BitVector.SINGLE_U;
7 import net.mograsim.machine.mi.parameters.MicroInstructionParameter.ParameterType;
9 public class BooleanClassification extends MnemonicFamily
11 String trueName, falseName;
13 public BooleanClassification(boolean defaultValue, String trueName, String falseName)
15 super(defaultValue ? trueName : falseName, new MnemonicPair("X", SINGLE_U), new MnemonicPair(trueName, SINGLE_1),
16 new MnemonicPair(falseName, SINGLE_0));
17 this.trueName = trueName;
18 this.falseName = falseName;
21 public BooleanClassification(String trueName, String falseName)
23 super("X", new MnemonicPair("X", SINGLE_U), new MnemonicPair(trueName, SINGLE_1), new MnemonicPair(falseName, SINGLE_0));
24 this.trueName = trueName;
25 this.falseName = falseName;
28 public Mnemonic get(boolean value)
30 return get(value ? trueName : falseName);
34 public ParameterType getExpectedType()
36 return ParameterType.BOOLEAN_IMMEDIATE;
40 public int getExpectedBits()