| Index: src/code-stub-assembler.h
|
| diff --git a/src/code-stub-assembler.h b/src/code-stub-assembler.h
|
| index 19b798216f6fe881be4d032cb77e6a55fceb006d..891fd244eb77cd0e01fb9f69c2da18c14ce3c52b 100644
|
| --- a/src/code-stub-assembler.h
|
| +++ b/src/code-stub-assembler.h
|
| @@ -32,6 +32,8 @@ class CodeStubAssembler : public compiler::CodeAssembler {
|
| CodeStubAssembler(Isolate* isolate, Zone* zone, int parameter_count,
|
| Code::Flags flags, const char* name);
|
|
|
| + enum ParameterMode { INTEGER_PARAMETERS, SMI_PARAMETERS };
|
| +
|
| compiler::Node* BooleanMapConstant();
|
| compiler::Node* EmptyStringConstant();
|
| compiler::Node* HeapNumberMapConstant();
|
| @@ -132,14 +134,10 @@ class CodeStubAssembler : public compiler::CodeAssembler {
|
| compiler::Node* AllocateUninitializedFixedArray(compiler::Node* length);
|
|
|
| // Load an array element from a FixedArray.
|
| - compiler::Node* LoadFixedArrayElementInt32Index(compiler::Node* object,
|
| - compiler::Node* int32_index,
|
| - int additional_offset = 0);
|
| - compiler::Node* LoadFixedArrayElementSmiIndex(compiler::Node* object,
|
| - compiler::Node* smi_index,
|
| - int additional_offset = 0);
|
| - compiler::Node* LoadFixedArrayElementConstantIndex(compiler::Node* object,
|
| - int index);
|
| + compiler::Node* LoadFixedArrayElement(
|
| + compiler::Node* object, compiler::Node* int32_index,
|
| + int additional_offset = 0,
|
| + ParameterMode parameter_mode = INTEGER_PARAMETERS);
|
|
|
| // Context manipulation
|
| compiler::Node* LoadNativeContext(compiler::Node* context);
|
| @@ -160,24 +158,14 @@ class CodeStubAssembler : public compiler::CodeAssembler {
|
| compiler::Node* StoreMapNoWriteBarrier(compiler::Node* object,
|
| compiler::Node* map);
|
| // Store an array element to a FixedArray.
|
| - compiler::Node* StoreFixedArrayElementInt32Index(compiler::Node* object,
|
| - compiler::Node* index,
|
| - compiler::Node* value);
|
| - compiler::Node* StoreFixedArrayElementNoWriteBarrier(compiler::Node* object,
|
| - compiler::Node* index,
|
| - compiler::Node* value);
|
| - compiler::Node* StoreFixedDoubleArrayElementInt32Index(compiler::Node* object,
|
| - compiler::Node* index,
|
| - compiler::Node* value);
|
| - compiler::Node* StoreFixedArrayElementInt32Index(compiler::Node* object,
|
| - int index,
|
| - compiler::Node* value);
|
| - compiler::Node* StoreFixedArrayElementNoWriteBarrier(compiler::Node* object,
|
| - int index,
|
| - compiler::Node* value);
|
| - compiler::Node* StoreFixedDoubleArrayElementInt32Index(compiler::Node* object,
|
| - int index,
|
| - compiler::Node* value);
|
| + compiler::Node* StoreFixedArrayElement(
|
| + compiler::Node* object, compiler::Node* index, compiler::Node* value,
|
| + WriteBarrierMode barrier_mode = UPDATE_WRITE_BARRIER,
|
| + ParameterMode parameter_mode = INTEGER_PARAMETERS);
|
| +
|
| + compiler::Node* StoreFixedDoubleArrayElement(
|
| + compiler::Node* object, compiler::Node* index, compiler::Node* value,
|
| + ParameterMode parameter_mode = INTEGER_PARAMETERS);
|
|
|
| // Allocate a HeapNumber without initializing its value.
|
| compiler::Node* AllocateHeapNumber();
|
| @@ -189,8 +177,10 @@ class CodeStubAssembler : public compiler::CodeAssembler {
|
| compiler::Node* AllocateSeqTwoByteString(int length);
|
| // Allocated an JSArray
|
| compiler::Node* AllocateJSArray(ElementsKind kind, compiler::Node* array_map,
|
| - int capacity, int length,
|
| - compiler::Node* allocation_site = nullptr);
|
| + compiler::Node* capacity,
|
| + compiler::Node* length,
|
| + compiler::Node* allocation_site = nullptr,
|
| + ParameterMode mode = INTEGER_PARAMETERS);
|
|
|
| // Allocation site manipulation
|
| void InitializeAllocationMemento(compiler::Node* base_allocation,
|
| @@ -252,6 +242,10 @@ class CodeStubAssembler : public compiler::CodeAssembler {
|
| compiler::Node* object);
|
|
|
| private:
|
| + compiler::Node* ElementOffsetFromIndex(compiler::Node* index,
|
| + ElementsKind kind, ParameterMode mode,
|
| + int base_size = 0);
|
| +
|
| compiler::Node* AllocateRawAligned(compiler::Node* size_in_bytes,
|
| AllocationFlags flags,
|
| compiler::Node* top_address,
|
|
|