Index: src/arm64/lithium-arm64.h |
diff --git a/src/arm64/lithium-arm64.h b/src/arm64/lithium-arm64.h |
index 771b625ecf8698c7dc44ec42c2d9a91af2f13d40..04af5583c742ec8194bb599a9b5ac07d378f8bf4 100644 |
--- a/src/arm64/lithium-arm64.h |
+++ b/src/arm64/lithium-arm64.h |
@@ -1720,15 +1720,18 @@ class LLoadGlobalCell V8_FINAL : public LTemplateInstruction<1, 0, 0> { |
}; |
-class LLoadGlobalGeneric V8_FINAL : public LTemplateInstruction<1, 2, 0> { |
+class LLoadGlobalGeneric V8_FINAL : public LTemplateInstruction<1, 2, 1> { |
public: |
- LLoadGlobalGeneric(LOperand* context, LOperand* global_object) { |
+ LLoadGlobalGeneric(LOperand* context, LOperand* global_object, |
+ LOperand* vector) { |
inputs_[0] = context; |
inputs_[1] = global_object; |
+ temps_[0] = vector; |
} |
LOperand* context() { return inputs_[0]; } |
LOperand* global_object() { return inputs_[1]; } |
+ LOperand* temp_vector() { return temps_[0]; } |
DECLARE_CONCRETE_INSTRUCTION(LoadGlobalGeneric, "load-global-generic") |
DECLARE_HYDROGEN_ACCESSOR(LoadGlobalGeneric) |
@@ -1817,31 +1820,37 @@ class LLoadKeyedFixedDouble: public LLoadKeyed<1> { |
}; |
-class LLoadKeyedGeneric V8_FINAL : public LTemplateInstruction<1, 3, 0> { |
+class LLoadKeyedGeneric V8_FINAL : public LTemplateInstruction<1, 3, 1> { |
public: |
- LLoadKeyedGeneric(LOperand* context, LOperand* object, LOperand* key) { |
+ LLoadKeyedGeneric(LOperand* context, LOperand* object, LOperand* key, |
+ LOperand* vector) { |
inputs_[0] = context; |
inputs_[1] = object; |
inputs_[2] = key; |
+ temps_[0] = vector; |
} |
LOperand* context() { return inputs_[0]; } |
LOperand* object() { return inputs_[1]; } |
LOperand* key() { return inputs_[2]; } |
+ LOperand* temp_vector() { return temps_[0]; } |
DECLARE_CONCRETE_INSTRUCTION(LoadKeyedGeneric, "load-keyed-generic") |
+ DECLARE_HYDROGEN_ACCESSOR(LoadKeyedGeneric) |
}; |
-class LLoadNamedGeneric V8_FINAL : public LTemplateInstruction<1, 2, 0> { |
+class LLoadNamedGeneric V8_FINAL : public LTemplateInstruction<1, 2, 1> { |
public: |
- LLoadNamedGeneric(LOperand* context, LOperand* object) { |
+ LLoadNamedGeneric(LOperand* context, LOperand* object, LOperand* vector) { |
inputs_[0] = context; |
inputs_[1] = object; |
+ temps_[0] = vector; |
} |
LOperand* context() { return inputs_[0]; } |
LOperand* object() { return inputs_[1]; } |
+ LOperand* temp_vector() { return temps_[0]; } |
DECLARE_CONCRETE_INSTRUCTION(LoadNamedGeneric, "load-named-generic") |
DECLARE_HYDROGEN_ACCESSOR(LoadNamedGeneric) |
@@ -3156,6 +3165,8 @@ class LChunkBuilder V8_FINAL : public LChunkBuilderBase { |
// Temporary operand that must be in a double register. |
MUST_USE_RESULT LUnallocated* TempDoubleRegister(); |
+ MUST_USE_RESULT LOperand* FixedTemp(Register reg); |
+ |
// Temporary operand that must be in a fixed double register. |
MUST_USE_RESULT LOperand* FixedTemp(DoubleRegister reg); |