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

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

Issue 2407813002: [stubs] Port StringAddStub to TF (Closed)
Patch Set: Remove stray change Created 4 years, 2 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
Index: src/code-stub-assembler.h
diff --git a/src/code-stub-assembler.h b/src/code-stub-assembler.h
index b5642d4badeaf3c73174e7788f1d37c2088c9108..625b8d8518daccb3f3115b726243cfdeea087ae4 100644
--- a/src/code-stub-assembler.h
+++ b/src/code-stub-assembler.h
@@ -101,6 +101,11 @@ class CodeStubAssembler : public compiler::CodeAssembler {
compiler::Node* IntPtrOrSmiConstant(int value, ParameterMode mode);
+ compiler::Node* IntPtrAddFoldConstants(compiler::Node* left,
+ compiler::Node* right);
+ compiler::Node* IntPtrSubFoldConstants(compiler::Node* left,
+ compiler::Node* right);
+
// Float64 operations.
compiler::Node* Float64Ceil(compiler::Node* x);
compiler::Node* Float64Floor(compiler::Node* x);
@@ -341,13 +346,17 @@ class CodeStubAssembler : public compiler::CodeAssembler {
compiler::Node* AllocateHeapNumberWithValue(compiler::Node* value,
MutableMode mode = IMMUTABLE);
// Allocate a SeqOneByteString with the given length.
- compiler::Node* AllocateSeqOneByteString(int length);
+ compiler::Node* AllocateSeqOneByteString(int length,
+ AllocationFlags flags = kNone);
compiler::Node* AllocateSeqOneByteString(compiler::Node* context,
- compiler::Node* length);
+ compiler::Node* length,
+ AllocationFlags flags = kNone);
// Allocate a SeqTwoByteString with the given length.
- compiler::Node* AllocateSeqTwoByteString(int length);
+ compiler::Node* AllocateSeqTwoByteString(int length,
+ AllocationFlags flags = kNone);
compiler::Node* AllocateSeqTwoByteString(compiler::Node* context,
- compiler::Node* length);
+ compiler::Node* length,
+ AllocationFlags flags = kNone);
// Allocate a SlicedOneByteString with the given length, parent and offset.
// |length| and |offset| are expected to be tagged.
@@ -444,7 +453,7 @@ class CodeStubAssembler : public compiler::CodeAssembler {
compiler::Node* from_index,
compiler::Node* to_index,
compiler::Node* character_count,
- String::Encoding encoding);
+ String::Encoding encoding, ParameterMode mode);
// Loads an element from |array| of |from_kind| elements by given |offset|
// (NOTE: not index!), does a hole check if |if_hole| is provided and
@@ -563,6 +572,13 @@ class CodeStubAssembler : public compiler::CodeAssembler {
// Convert any object to a Number.
compiler::Node* ToNumber(compiler::Node* context, compiler::Node* input);
+ // Convert any object to a String.
+ compiler::Node* ToString(compiler::Node* context, compiler::Node* input);
+
+ // Convert any object to a Primitive.
+ compiler::Node* JSReceiverToPrimitive(compiler::Node* context,
+ compiler::Node* input);
+
enum ToIntegerTruncationMode {
kNoTruncation,
kTruncateMinusZero,
@@ -572,6 +588,14 @@ class CodeStubAssembler : public compiler::CodeAssembler {
compiler::Node* ToInteger(compiler::Node* context, compiler::Node* input,
ToIntegerTruncationMode mode = kNoTruncation);
+ compiler::Node* NewConsString(compiler::Node* context, compiler::Node* length,
+ compiler::Node* left, compiler::Node* right,
+ AllocationFlags flags = kNone);
+
+ compiler::Node* StringAdd(compiler::Node* context, compiler::Node* left,
+ compiler::Node* right,
+ AllocationFlags flags = kNone);
+
// Returns a node that contains a decoded (unsigned!) value of a bit
// field |T| in |word32|. Returns result as an uint32 node.
template <typename T>

Powered by Google App Engine
This is Rietveld 408576698