Goose  Diff

Differences From Artifact [f74b589bcd]:

  • File bs/llr/binaryop.h — part of check-in [5ec364bc88] at 2019-07-31 23:27:53 on branch trunk — llr, execute, codegen: implemented the Xor instruction. (user: achavasse size: 621)

To Artifact [5a5b4ddeb2]:

  • File bs/llr/binaryop.h — part of check-in [ed31e6303b] at 2019-08-01 15:53:57 on branch trunk —
    • Rewrote the operator helpers: they now generate and invoke an overloadable intrinsic.
    • Implemented the logical not operator.
    (user: achavasse size: 621)

1
2
3
4
5
6
7
8
9
10
11
12

13
14
15
16
17
18
19
1
2
3
4
5
6
7
8
9
10
11

12
13
14
15
16
17
18
19











-
+







#ifndef EMPATHY_LLR_BINARYINSTR_H
#define EMPATHY_LLR_BINARYINSTR_H

namespace empathy::llr
{
    class BinaryOp
    {
        public:
            template< typename L, typename R >
            BinaryOp(L&& lhs, R&& rhs ) :
                m_lhs( forward< L >( lhs ) ),
                m_rhs( forward< L >( lhs ) )
                m_rhs( forward< L >( rhs ) )
            {}

            const auto& lhs() const { return m_lhs; }
            const auto& rhs() const { return m_rhs; }

            bool canBeExecuted() const;
            bool canBeEagerlyEvaluated() const;