Example #1
0
 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;
 }
Example #2
0
 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;
 }
Example #3
0
 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;
 }