Index: src/x64/lithium-codegen-x64.h |
diff --git a/src/x64/lithium-codegen-x64.h b/src/x64/lithium-codegen-x64.h |
index 5ad1c40a2b16abbd293cc1ee006e34eb04b516a5..071ba6683035462536f8304d0d5489653cce0cd6 100644 |
--- a/src/x64/lithium-codegen-x64.h |
+++ b/src/x64/lithium-codegen-x64.h |
@@ -106,6 +106,7 @@ class LCodeGen BASE_EMBEDDED { |
int32_t ToInteger32(LConstantOperand* op) const; |
Smi* ToSmi(LConstantOperand* op) const; |
double ToDouble(LConstantOperand* op) const; |
+ ExternalReference ToExternalReference(LConstantOperand* op) const; |
bool IsTaggedConstant(LConstantOperand* op) const; |
Handle<Object> ToHandle(LConstantOperand* op) const; |
Operand ToOperand(LOperand* op) const; |
@@ -178,7 +179,7 @@ class LCodeGen BASE_EMBEDDED { |
int GetStackSlotCount() const { return chunk()->spill_slot_count(); } |
- void Abort(const char* reason); |
+ void Abort(BailoutReason reason); |
void FPRINTF_CHECKING Comment(const char* format, ...); |
void AddDeferredCode(LDeferredCode* code) { deferred_.Add(code, zone()); } |
@@ -267,6 +268,7 @@ class LCodeGen BASE_EMBEDDED { |
uint32_t additional_index = 0); |
void EmitIntegerMathAbs(LMathAbs* instr); |
+ void EmitInteger64MathAbs(LMathAbs* instr); |
// Support for recording safepoint and position information. |
void RecordSafepoint(LPointerMap* pointers, |
@@ -344,6 +346,13 @@ class LCodeGen BASE_EMBEDDED { |
void DoStoreKeyedExternalArray(LStoreKeyed* instr); |
void DoStoreKeyedFixedDoubleArray(LStoreKeyed* instr); |
void DoStoreKeyedFixedArray(LStoreKeyed* instr); |
+#ifdef _MSC_VER |
+ // On windows, you may not access the stack more than one page below |
+ // the most recently mapped page. To make the allocated area randomly |
+ // accessible, we write an arbitrary value to each page in range |
+ // rsp + offset - page_size .. rsp in turn. |
+ void MakeSureStackPagesMapped(int offset); |
+#endif |
Zone* zone_; |
LPlatformChunk* const chunk_; |