Index: src/code-stub-assembler.h |
diff --git a/src/code-stub-assembler.h b/src/code-stub-assembler.h |
index 38119829053c8488e84315055574a2892c85e3d0..3c91e7a00e5e15d3c95e081def1330bd002a228c 100644 |
--- a/src/code-stub-assembler.h |
+++ b/src/code-stub-assembler.h |
@@ -77,10 +77,13 @@ class V8_EXPORT_PRIVATE CodeStubAssembler : public compiler::CodeAssembler { |
return Is64() ? INTPTR_PARAMETERS : SMI_PARAMETERS; |
} |
+ MachineRepresentation ParameterRepresentation(ParameterMode mode) const { |
+ return mode == INTPTR_PARAMETERS ? MachineType::PointerRepresentation() |
+ : MachineRepresentation::kTaggedSigned; |
+ } |
+ |
MachineRepresentation OptimalParameterRepresentation() const { |
- return OptimalParameterMode() == INTPTR_PARAMETERS |
- ? MachineType::PointerRepresentation() |
- : MachineRepresentation::kTaggedSigned; |
+ return ParameterRepresentation(OptimalParameterMode()); |
} |
Node* ParameterToWord(Node* value, ParameterMode mode) { |
@@ -384,6 +387,14 @@ class V8_EXPORT_PRIVATE CodeStubAssembler : public compiler::CodeAssembler { |
Node* LoadMapConstructorFunctionIndex(Node* map); |
// Load the constructor of a Map (equivalent to Map::GetConstructor()). |
Node* LoadMapConstructor(Node* map); |
+ // Loads a value from the specially encoded integer fields in the |
+ // SharedFunctionInfo object. |
+ // TODO(danno): This currently only works for the integer fields that are |
+ // mapped to the upper part of 64-bit words. We should customize |
+ // SFI::BodyDescriptor and store int32 values directly. |
+ Node* LoadSharedFunctionInfoSpecialField(Node* shared, int offset, |
+ ParameterMode param_mode); |
+ |
// Check if the map is set for slow properties. |
Node* IsDictionaryMap(Node* map); |
@@ -1115,6 +1126,10 @@ class V8_EXPORT_PRIVATE CodeStubAssembler : public compiler::CodeAssembler { |
FixedArray::kHeaderSize); |
} |
+ void GotoIfFixedArraySizeDoesntFitInNewSpace(Node* element_count, |
+ Label* doesnt_fit, int base_size, |
+ ParameterMode mode); |
+ |
void InitializeFieldsWithRoot(Node* object, Node* start_offset, |
Node* end_offset, Heap::RootListIndex root); |