using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace Lost.JIT.AMD64 { [Serializable] public sealed class ImmediateOperand: InstructionOperand { public ImmediateOperand(long value) { this.Value = value; this.Size = 8; } public ImmediateOperand(int value) { this.Value = value; Size = 4; } public ImmediateOperand(short value) { this.Value = value; Size = 2; } public ImmediateOperand(byte value) { this.Value = value; Size = 1; } public long Value { get; private set; } public int Size { get; private set; } public override string ToString() { string digs = (Size * 2).ToString(); return "0x" + Value.ToString("X" + digs); } public static implicit operator ImmediateOperand(byte value) { return new ImmediateOperand(value); } public static implicit operator ImmediateOperand(short value) { return new ImmediateOperand(value); } public static implicit operator ImmediateOperand(int value) { return new ImmediateOperand(value); } public static implicit operator ImmediateOperand(long value) { return new ImmediateOperand(value); } } }