/// <summary cref="IBackendCodeGenerator.GenerateCode(CompareValue)"/> public void GenerateCode(CompareValue value) { var left = Load(value.Left); var right = Load(value.Right); var target = Allocate(value); using var statement = BeginStatement(target); statement.AppendCast(value.CompareType); statement.AppendArgument(left); statement.AppendCommand( CLInstructions.GetCompareOperation( value.Kind)); statement.AppendCast(value.CompareType); statement.AppendArgument(right); }
/// <summary cref="IValueVisitor.Visit(CompareValue)"/> public void Visit(CompareValue value) { var left = LoadIntrinsic(value.Left); var right = LoadIntrinsic(value.Right); var targetRegister = AllocateIntrinsic(value); using (var statement = BeginStatement(targetRegister)) { statement.AppendArgument(left); statement.AppendCommand( CLInstructions.GetCompareOperation( value.Kind)); statement.AppendArgument(right); } }