diff options
author | Ryan Dahl <ry@tinyclouds.org> | 2009-12-30 02:34:22 +0100 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2009-12-30 02:35:15 +0100 |
commit | fd73a3a3985b5d4064d3dbb1e5bda7eab259e9c7 (patch) | |
tree | 869a651a4d972e661c9c828b74348a55e24cc8c8 /deps/v8/src/x64/codegen-x64.h | |
parent | 359d0170ab2c9925b0408f358285c9a1d98547e6 (diff) | |
download | node-new-fd73a3a3985b5d4064d3dbb1e5bda7eab259e9c7.tar.gz |
Upgrade V8 to 2.0.5.4
Diffstat (limited to 'deps/v8/src/x64/codegen-x64.h')
-rw-r--r-- | deps/v8/src/x64/codegen-x64.h | 38 |
1 files changed, 35 insertions, 3 deletions
diff --git a/deps/v8/src/x64/codegen-x64.h b/deps/v8/src/x64/codegen-x64.h index 8539884aaf..fdace8d59d 100644 --- a/deps/v8/src/x64/codegen-x64.h +++ b/deps/v8/src/x64/codegen-x64.h @@ -436,7 +436,7 @@ class CodeGenerator: public AstVisitor { void GenericBinaryOperation( Token::Value op, - SmiAnalysis* type, + StaticType* type, OverwriteMode overwrite_mode); // If possible, combine two constant smi values using op to produce @@ -449,7 +449,7 @@ class CodeGenerator: public AstVisitor { void ConstantSmiBinaryOperation(Token::Value op, Result* operand, Handle<Object> constant_operand, - SmiAnalysis* type, + StaticType* type, bool reversed, OverwriteMode overwrite_mode); @@ -670,7 +670,8 @@ class GenericBinaryOpStub: public CodeStub { mode_(mode), flags_(flags), args_in_registers_(false), - args_reversed_(false) { + args_reversed_(false), + name_(NULL) { use_sse3_ = CpuFeatures::IsSupported(SSE3); ASSERT(OpBits::is_valid(Token::NUM_TOKENS)); } @@ -689,6 +690,7 @@ class GenericBinaryOpStub: public CodeStub { bool args_in_registers_; // Arguments passed in registers not on the stack. bool args_reversed_; // Left and right argument are swapped. bool use_sse3_; + char* name_; const char* GetName(); @@ -745,6 +747,36 @@ class GenericBinaryOpStub: 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. +}; + + +class StringAddStub: public CodeStub { + public: + explicit StringAddStub(StringAddFlags flags) { + string_check_ = ((flags & NO_STRING_CHECK_IN_STUB) == 0); + } + + private: + Major MajorKey() { return StringAdd; } + int MinorKey() { return string_check_ ? 0 : 1; } + + void Generate(MacroAssembler* masm); + + void GenerateCopyCharacters(MacroAssembler* masm, + Register desc, + Register src, + Register count, + bool ascii); + + // Should the stub check whether arguments are strings? + bool string_check_; +}; + + } } // namespace v8::internal #endif // V8_X64_CODEGEN_X64_H_ |