Index: src/crankshaft/arm64/lithium-arm64.h |
diff --git a/src/crankshaft/arm64/lithium-arm64.h b/src/crankshaft/arm64/lithium-arm64.h |
index 237487ff884d6ef284ab1ebf38de7efa80e4e90b..eed2489b47f052201c42b584d6cfcb0115f80b26 100644 |
--- a/src/crankshaft/arm64/lithium-arm64.h |
+++ b/src/crankshaft/arm64/lithium-arm64.h |
@@ -70,6 +70,7 @@ class LCodeGen; |
V(Drop) \ |
V(Dummy) \ |
V(DummyUse) \ |
+ V(FastAllocate) \ |
V(FlooringDivByConstI) \ |
V(FlooringDivByPowerOf2I) \ |
V(FlooringDivI) \ |
@@ -163,7 +164,6 @@ class LCodeGen; |
V(UnknownOSRValue) \ |
V(WrapReceiver) |
- |
#define DECLARE_CONCRETE_INSTRUCTION(type, mnemonic) \ |
Opcode opcode() const final { return LInstruction::k##type; } \ |
void CompileToNative(LCodeGen* generator) final; \ |
@@ -626,6 +626,21 @@ class LAllocate final : public LTemplateInstruction<1, 2, 3> { |
DECLARE_HYDROGEN_ACCESSOR(Allocate) |
}; |
+class LFastAllocate final : public LTemplateInstruction<1, 1, 2> { |
+ public: |
+ LFastAllocate(LOperand* size, LOperand* temp1, LOperand* temp2) { |
+ inputs_[0] = size; |
+ temps_[0] = temp1; |
+ temps_[1] = temp2; |
+ } |
+ |
+ LOperand* size() { return inputs_[0]; } |
+ LOperand* temp1() { return temps_[0]; } |
+ LOperand* temp2() { return temps_[1]; } |
+ |
+ DECLARE_CONCRETE_INSTRUCTION(FastAllocate, "fast-allocate") |
+ DECLARE_HYDROGEN_ACCESSOR(Allocate) |
+}; |
class LApplyArguments final : public LTemplateInstruction<1, 4, 0> { |
public: |