| Index: src/compiler/machine-operator.cc
|
| diff --git a/src/compiler/machine-operator.cc b/src/compiler/machine-operator.cc
|
| index 2522a8e15dba03740ffe9a5e1cd72ff00666511f..623f32e55e2eca1b881e7576a1a2b0926ee3f221 100644
|
| --- a/src/compiler/machine-operator.cc
|
| +++ b/src/compiler/machine-operator.cc
|
| @@ -168,6 +168,24 @@ struct MachineOperatorGlobalCache {
|
| PURE_OP_LIST(PURE)
|
| #undef PURE
|
|
|
| + template <int kLocation>
|
| + struct Float64ExtractWord32Operator FINAL : public Operator1<int> {
|
| + Float64ExtractWord32Operator()
|
| + : Operator1<int>(IrOpcode::kFloat64ExtractWord32, Operator::kPure,
|
| + "Float64ExtractWord32", 1, 0, 0, 1, 0, 0, kLocation) {}
|
| + };
|
| + Float64ExtractWord32Operator<0> kFloat64ExtractWord32Operator0;
|
| + Float64ExtractWord32Operator<1> kFloat64ExtractWord32Operator1;
|
| +
|
| + template <int kLocation>
|
| + struct Float64InsertWord32Operator FINAL : public Operator1<int> {
|
| + Float64InsertWord32Operator()
|
| + : Operator1<int>(IrOpcode::kFloat64InsertWord32, Operator::kPure,
|
| + "Float64InsertWord32", 2, 0, 0, 1, 0, 0, kLocation) {}
|
| + };
|
| + Float64InsertWord32Operator<0> kFloat64InsertWord32Operator0;
|
| + Float64InsertWord32Operator<1> kFloat64InsertWord32Operator1;
|
| +
|
| #define LOAD(Type) \
|
| struct Load##Type##Operator FINAL : public Operator1<LoadRepresentation> { \
|
| Load##Type##Operator() \
|
| @@ -238,6 +256,30 @@ PURE_OP_LIST(PURE)
|
| #undef PURE
|
|
|
|
|
| +const Operator* MachineOperatorBuilder::Float64ExtractWord32(int location) {
|
| + switch (location) {
|
| + case 0:
|
| + return &cache_.kFloat64ExtractWord32Operator0;
|
| + case 1:
|
| + return &cache_.kFloat64ExtractWord32Operator1;
|
| + }
|
| + UNREACHABLE();
|
| + return nullptr;
|
| +}
|
| +
|
| +
|
| +const Operator* MachineOperatorBuilder::Float64InsertWord32(int location) {
|
| + switch (location) {
|
| + case 0:
|
| + return &cache_.kFloat64InsertWord32Operator0;
|
| + case 1:
|
| + return &cache_.kFloat64InsertWord32Operator1;
|
| + }
|
| + UNREACHABLE();
|
| + return nullptr;
|
| +}
|
| +
|
| +
|
| const Operator* MachineOperatorBuilder::Load(LoadRepresentation rep) {
|
| switch (rep) {
|
| #define LOAD(Type) \
|
|
|