Lines Matching full:compiler
8 #include "src/compiler/code-assembler.h"
21 // without modifying files in the compiler directory (and requiring a review
22 // from a compiler directory OWNER).
23 class CodeStubAssembler : public compiler::CodeAssembler {
39 compiler::Node* BooleanMapConstant();
40 compiler::Node* EmptyStringConstant();
41 compiler::Node* HeapNumberMapConstant();
42 compiler::Node* NoContextConstant();
43 compiler::Node* NullConstant();
44 compiler::Node* UndefinedConstant();
45 compiler::Node* TheHoleConstant();
46 compiler::Node* HashSeed();
47 compiler::Node* StaleRegisterConstant();
50 compiler::Node* Float64Ceil(compiler::Node* x);
51 compiler::Node* Float64Floor(compiler::Node* x);
52 compiler::Node* Float64Round(compiler::Node* x);
53 compiler::Node* Float64Trunc(compiler::Node* x);
56 compiler::Node* SmiTag(compiler::Node* value);
58 compiler::Node* SmiUntag(compiler::Node* value);
61 compiler::Node* SmiToFloat64(compiler::Node* value);
62 compiler::Node* SmiFromWord(compiler::Node* value) { return SmiTag(value); } in SmiFromWord()
63 compiler::Node* SmiFromWord32(compiler::Node* value);
64 compiler::Node* SmiToWord(compiler::Node* value) { return SmiUntag(value); } in SmiToWord()
65 compiler::Node* SmiToWord32(compiler::Node* value);
68 compiler::Node* SmiAdd(compiler::Node* a, compiler::Node* b);
69 compiler::Node* SmiAddWithOverflow(compiler::Node* a, compiler::Node* b);
70 compiler::Node* SmiSub(compiler::Node* a, compiler::Node* b);
71 compiler::Node* SmiSubWithOverflow(compiler::Node* a, compiler::Node* b);
72 compiler::Node* SmiEqual(compiler::Node* a, compiler::Node* b);
73 compiler::Node* SmiAboveOrEqual(compiler::Node* a, compiler::Node* b);
74 compiler::Node* SmiLessThan(compiler::Node* a, compiler::Node* b);
75 compiler::Node* SmiLessThanOrEqual(compiler::Node* a, compiler::Node* b);
76 compiler::Node* SmiMin(compiler::Node* a, compiler::Node* b);
79 compiler::Node* Allocate(compiler::Node* size, AllocationFlags flags = kNone);
80 compiler::Node* Allocate(int size, AllocationFlags flags = kNone);
81 compiler::Node* InnerAllocate(compiler::Node* previous, int offset);
82 compiler::Node* InnerAllocate(compiler::Node* previous,
83 compiler::Node* offset);
85 void Assert(compiler::Node* condition);
88 compiler::Node* WordIsSmi(compiler::Node* a);
90 compiler::Node* WordIsPositiveSmi(compiler::Node* a);
92 void BranchIfSmiLessThan(compiler::Node* a, compiler::Node* b, Label* if_true, in BranchIfSmiLessThan()
97 void BranchIfSmiLessThanOrEqual(compiler::Node* a, compiler::Node* b, in BranchIfSmiLessThanOrEqual()
102 void BranchIfFloat64IsNaN(compiler::Node* value, Label* if_true, in BranchIfFloat64IsNaN()
108 compiler::Node* LoadFromFrame(int offset,
111 compiler::Node* LoadFromParentFrame(
115 compiler::Node* LoadBufferObject(compiler::Node* buffer, int offset,
118 compiler::Node* LoadObjectField(compiler::Node* object, int offset,
120 compiler::Node* LoadObjectField(compiler::Node* object,
121 compiler::Node* offset,
125 compiler::Node* LoadHeapNumberValue(compiler::Node* object);
127 compiler::Node* LoadMap(compiler::Node* object);
129 compiler::Node* LoadInstanceType(compiler::Node* object);
131 void AssertInstanceType(compiler::Node* object, InstanceType instance_type);
133 compiler::Node* LoadProperties(compiler::Node* object);
135 compiler::Node* LoadElements(compiler::Node* object);
137 compiler::Node* LoadFixedArrayBaseLength(compiler::Node* array);
139 compiler::Node* LoadMapBitField(compiler::Node* map);
141 compiler::Node* LoadMapBitField2(compiler::Node* map);
143 compiler::Node* LoadMapBitField3(compiler::Node* map);
145 compiler::Node* LoadMapInstanceType(compiler::Node* map);
147 compiler::Node* LoadMapDescriptors(compiler::Node* map);
149 compiler::Node* LoadMapPrototype(compiler::Node* map);
151 compiler::Node* LoadMapInstanceSize(compiler::Node* map);
153 compiler::Node* LoadMapInobjectProperties(compiler::Node* map);
156 compiler::Node* LoadNameHashField(compiler::Node* name);
159 compiler::Node* LoadNameHash(compiler::Node* name,
163 compiler::Node* LoadStringLength(compiler::Node* object);
165 compiler::Node* LoadJSValueValue(compiler::Node* object);
167 compiler::Node* LoadWeakCellValue(compiler::Node* weak_cell,
170 compiler::Node* AllocateUninitializedFixedArray(compiler::Node* length);
173 compiler::Node* LoadFixedArrayElement(
174 compiler::Node* object, compiler::Node* int32_index,
178 compiler::Node* LoadFixedDoubleArrayElement(
179 compiler::Node* object, compiler::Node* int32_index,
184 compiler::Node* LoadNativeContext(compiler::Node* context);
186 compiler::Node* LoadJSArrayElementsMap(ElementsKind kind,
187 compiler::Node* native_context);
190 compiler::Node* StoreHeapNumberValue(compiler::Node* object,
191 compiler::Node* value);
193 compiler::Node* StoreObjectField(
194 compiler::Node* object, int offset, compiler::Node* value);
195 compiler::Node* StoreObjectFieldNoWriteBarrier(
196 compiler::Node* object, int offset, compiler::Node* value,
199 compiler::Node* StoreMapNoWriteBarrier(compiler::Node* object,
200 compiler::Node* map);
202 compiler::Node* StoreFixedArrayElement(
203 compiler::Node* object, compiler::Node* index, compiler::Node* value,
207 compiler::Node* StoreFixedDoubleArrayElement(
208 compiler::Node* object, compiler::Node* index, compiler::Node* value,
212 compiler::Node* AllocateHeapNumber();
214 compiler::Node* AllocateHeapNumberWithValue(compiler::Node* value);
216 compiler::Node* AllocateSeqOneByteString(int length);
217 compiler::Node* AllocateSeqOneByteString(compiler::Node* context,
218 compiler::Node* length);
220 compiler::Node* AllocateSeqTwoByteString(int length);
221 compiler::Node* AllocateSeqTwoByteString(compiler::Node* context,
222 compiler::Node* length);
224 compiler::Node* AllocateJSArray(ElementsKind kind, compiler::Node* array_map,
225 compiler::Node* capacity,
226 compiler::Node* length,
227 compiler::Node* allocation_site = nullptr,
231 void InitializeAllocationMemento(compiler::Node* base_allocation,
233 compiler::Node* allocation_site);
235 compiler::Node* TruncateTaggedToFloat64(compiler::Node* context,
236 compiler::Node* value);
237 compiler::Node* TruncateTaggedToWord32(compiler::Node* context,
238 compiler::Node* value);
240 compiler::Node* TruncateHeapNumberValueToWord32(compiler::Node* object);
243 compiler::Node* ChangeFloat64ToTagged(compiler::Node* value);
244 compiler::Node* ChangeInt32ToTagged(compiler::Node* value);
245 compiler::Node* ChangeUint32ToTagged(compiler::Node* value);
250 compiler::Node* ToThisString(compiler::Node* context, compiler::Node* value,
255 compiler::Node* StringCharCodeAt(compiler::Node* string,
256 compiler::Node* smi_index);
258 compiler::Node* StringFromCharCode(compiler::Node* code);
262 compiler::Node* BitFieldDecode(compiler::Node* word32) { in BitFieldDecode()
266 compiler::Node* BitFieldDecode(compiler::Node* word32, uint32_t shift,
274 void TryToName(compiler::Node* key, Label* if_keyisindex, Variable* var_index,
280 compiler::Node* EntryToIndex(compiler::Node* entry, int field_index);
282 compiler::Node* EntryToIndex(compiler::Node* entry) { in EntryToIndex()
292 void NameDictionaryLookup(compiler::Node* dictionary,
293 compiler::Node* unique_name, Label* if_found,
297 compiler::Node* ComputeIntegerHash(compiler::Node* key, compiler::Node* seed);
300 void NumberDictionaryLookup(compiler::Node* dictionary, compiler::Node* key,
305 void TryHasOwnProperty(compiler::Node* object, compiler::Node* map,
306 compiler::Node* instance_type,
307 compiler::Node* unique_name, Label* if_found,
313 void TryGetOwnProperty(compiler::Node* context, compiler::Node* receiver,
314 compiler::Node* object, compiler::Node* map,
315 compiler::Node* instance_type,
316 compiler::Node* unique_name, Label* if_found,
320 void LoadPropertyFromFastObject(compiler::Node* object, compiler::Node* map,
321 compiler::Node* descriptors,
322 compiler::Node* name_index,
325 void LoadPropertyFromNameDictionary(compiler::Node* dictionary,
326 compiler::Node* entry,
330 void LoadPropertyFromGlobalDictionary(compiler::Node* dictionary,
331 compiler::Node* entry,
347 void TryLookupProperty(compiler::Node* object, compiler::Node* map,
348 compiler::Node* instance_type,
349 compiler::Node* unique_name, Label* if_found_fast,
354 void TryLookupElement(compiler::Node* object, compiler::Node* map,
355 compiler::Node* instance_type, compiler::Node* index,
361 compiler::Node* OrdinaryHasInstance(compiler::Node* context,
362 compiler::Node* callable,
363 compiler::Node* object);
367 LoadICParameters(compiler::Node* context, compiler::Node* receiver, in LoadICParameters()
368 compiler::Node* name, compiler::Node* slot, in LoadICParameters()
369 compiler::Node* vector) in LoadICParameters()
376 compiler::Node* context;
377 compiler::Node* receiver;
378 compiler::Node* name;
379 compiler::Node* slot;
380 compiler::Node* vector;
384 compiler::Node* LoadTypeFeedbackVectorForStub();
386 compiler::Node* LoadReceiverMap(compiler::Node* receiver);
389 compiler::Node* TryMonomorphicCase(const LoadICParameters* p,
390 compiler::Node* receiver_map,
394 compiler::Node* receiver_map,
395 compiler::Node* feedback, Label* if_handler,
399 compiler::Node* StubCachePrimaryOffset(compiler::Node* name,
401 compiler::Node* map);
403 compiler::Node* StubCacheSecondaryOffset(compiler::Node* name,
405 compiler::Node* seed);
412 compiler::Node* entry_offset,
413 compiler::Node* name, Code::Flags flags,
414 compiler::Node* map, Label* if_handler,
418 compiler::Node* receiver, compiler::Node* name,
426 compiler::Node* ElementOffsetFromIndex(compiler::Node* index,
430 compiler::Node* AllocateRawAligned(compiler::Node* size_in_bytes,
432 compiler::Node* top_address,
433 compiler::Node* limit_address);
434 compiler::Node* AllocateRawUnaligned(compiler::Node* size_in_bytes,
436 compiler::Node* top_adddress,
437 compiler::Node* limit_address);