Example #1
0
        /// <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);
            }
        }