public LogicalOperationConstantTemplate( LogicalBinaryOperationType operationType, BooleanImmediateValue constant, bool leftConstant) : base( new LogicalBinaryOperation( leftConstant ? constant : null, leftConstant ? null : constant, operationType), 2) { this.operationType = operationType; this.leftConstant = leftConstant; }
public LogicalOperationConstantInstruction( bool constant, VirtualRegister register, VirtualRegister result, LogicalBinaryOperationType operationType) : base( new List <VirtualRegister> { register }, new List <VirtualRegister> { result }, new List <Tuple <VirtualRegister, VirtualRegister> > { new Tuple <VirtualRegister, VirtualRegister>(register, result) }) { this.constant = constant; this.register = register; this.result = result; this.operationType = operationType; }
public LogicalOperationGeneralInstruction( VirtualRegister lhs, VirtualRegister rhs, VirtualRegister result, LogicalBinaryOperationType operationType) : base( new List <VirtualRegister> { lhs, rhs }, new List <VirtualRegister> { result }, new List <Tuple <VirtualRegister, VirtualRegister> > { new Tuple <VirtualRegister, VirtualRegister>(lhs, result), new Tuple <VirtualRegister, VirtualRegister>(rhs, result) }) { this.lhs = lhs; this.rhs = rhs; this.result = result; this.operationType = operationType; }
public LogicalOperationGeneralTemplate(LogicalBinaryOperationType operationType) : base(new LogicalBinaryOperation(null, null, operationType), 1) { this.operationType = operationType; }