summaryrefslogtreecommitdiff
path: root/deps/v8/src/arm/code-stubs-arm.h
diff options
context:
space:
mode:
authorRyan Dahl <ry@tinyclouds.org>2011-02-24 13:14:59 -0800
committerRyan Dahl <ry@tinyclouds.org>2011-02-24 13:14:59 -0800
commite33e7d1a3712add02cd08c0069bb56ba76e49aa5 (patch)
tree3cd8937acf1e3b27a265e42bf3d42241d51f6c1a /deps/v8/src/arm/code-stubs-arm.h
parent2680522d3a71fb5f12aa052555f3d04806338821 (diff)
downloadnode-e33e7d1a3712add02cd08c0069bb56ba76e49aa5.tar.gz
Upgrade V8 to 3.1.6
Diffstat (limited to 'deps/v8/src/arm/code-stubs-arm.h')
-rw-r--r--deps/v8/src/arm/code-stubs-arm.h26
1 files changed, 19 insertions, 7 deletions
diff --git a/deps/v8/src/arm/code-stubs-arm.h b/deps/v8/src/arm/code-stubs-arm.h
index baaa2f2bd..475fbd70e 100644
--- a/deps/v8/src/arm/code-stubs-arm.h
+++ b/deps/v8/src/arm/code-stubs-arm.h
@@ -335,24 +335,36 @@ class TypeRecordingBinaryOpStub: public CodeStub {
// Flag that indicates how to generate code for the stub StringAddStub.
enum StringAddFlags {
NO_STRING_ADD_FLAGS = 0,
- NO_STRING_CHECK_IN_STUB = 1 << 0 // Omit string check in stub.
+ // Omit left string check in stub (left is definitely a string).
+ NO_STRING_CHECK_LEFT_IN_STUB = 1 << 0,
+ // Omit right string check in stub (right is definitely a string).
+ NO_STRING_CHECK_RIGHT_IN_STUB = 1 << 1,
+ // Omit both string checks in stub.
+ NO_STRING_CHECK_IN_STUB =
+ NO_STRING_CHECK_LEFT_IN_STUB | NO_STRING_CHECK_RIGHT_IN_STUB
};
class StringAddStub: public CodeStub {
public:
- explicit StringAddStub(StringAddFlags flags) {
- string_check_ = ((flags & NO_STRING_CHECK_IN_STUB) == 0);
- }
+ explicit StringAddStub(StringAddFlags flags) : flags_(flags) {}
private:
Major MajorKey() { return StringAdd; }
- int MinorKey() { return string_check_ ? 0 : 1; }
+ int MinorKey() { return flags_; }
void Generate(MacroAssembler* masm);
- // Should the stub check whether arguments are strings?
- bool string_check_;
+ void GenerateConvertArgument(MacroAssembler* masm,
+ int stack_offset,
+ Register arg,
+ Register scratch1,
+ Register scratch2,
+ Register scratch3,
+ Register scratch4,
+ Label* slow);
+
+ const StringAddFlags flags_;
};