Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(101)

Unified Diff: src/code-stub-assembler.h

Issue 2327103002: [stubs] Port KeyedLoadSloppyArgumentsStub and KeyedStoreSloppyArgumentsStub to TurboFan. (Closed)
Patch Set: Addressing comments Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | src/code-stub-assembler.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/code-stub-assembler.h
diff --git a/src/code-stub-assembler.h b/src/code-stub-assembler.h
index 6678938ecfe03fb357aec5aec12f338e8d85d951..1f5008cd74ee4e7f5a8609dfe0cf462dbf39a9c1 100644
--- a/src/code-stub-assembler.h
+++ b/src/code-stub-assembler.h
@@ -637,6 +637,20 @@ class CodeStubAssembler : public compiler::CodeAssembler {
Representation representation, compiler::Node* value,
bool transition_to_field);
+ // Emits keyed sloppy arguments load. Returns either the loaded value.
+ compiler::Node* LoadKeyedSloppyArguments(compiler::Node* receiver,
+ compiler::Node* key,
+ Label* bailout) {
+ return EmitKeyedSloppyArguments(receiver, key, nullptr, bailout);
+ }
+
+ // Emits keyed sloppy arguments store.
+ void StoreKeyedSloppyArguments(compiler::Node* receiver, compiler::Node* key,
+ compiler::Node* value, Label* bailout) {
+ DCHECK_NOT_NULL(value);
+ EmitKeyedSloppyArguments(receiver, key, value, bailout);
+ }
+
void LoadIC(const LoadICParameters* p);
void LoadGlobalIC(const LoadICParameters* p);
void KeyedLoadIC(const LoadICParameters* p);
@@ -701,6 +715,13 @@ class CodeStubAssembler : public compiler::CodeAssembler {
compiler::Node* SmiShiftBitsConstant();
+ // Emits keyed sloppy arguments load if the |value| is nullptr or store
+ // otherwise. Returns either the loaded value or |value|.
+ compiler::Node* EmitKeyedSloppyArguments(compiler::Node* receiver,
+ compiler::Node* key,
+ compiler::Node* value,
+ Label* bailout);
+
static const int kElementLoopUnrollThreshold = 8;
};
« no previous file with comments | « no previous file | src/code-stub-assembler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698