public static OpcodeEncoder AppendConditionalDisplacement(this OpcodeEncoder encoder, Operand displacement, bool include) { if (!include) return encoder; if (Is8BitDisplacement(displacement)) return encoder.AppendByteValue((byte)displacement.ConstantUnsignedInteger); return encoder.AppendIntegerValue(displacement.ConstantUnsignedInteger); }
public static OpcodeEncoder AppendInteger(this OpcodeEncoder encoder, Operand operand, InstructionSize size) { if (size == InstructionSize.Size32) return encoder.AppendIntegerValue(operand.ConstantUnsignedInteger); if (size == InstructionSize.Size8) return encoder.AppendByteValue((byte)operand.ConstantUnsignedInteger); if (size == InstructionSize.Size16) return encoder.AppendShortValue((ushort)operand.ConstantUnsignedInteger); throw new InvalidCompilerException("Instruction size invalid"); }
public static OpcodeEncoder AppendImmediate(this OpcodeEncoder encoder, uint value) { return encoder.AppendIntegerValue(value); }