diff options
author | Ryan Dahl <ry@tinyclouds.org> | 2010-06-16 11:45:48 -0700 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2010-06-16 11:46:01 -0700 |
commit | 1c6671aa67c3d7f731fec415a58f7676e1468a15 (patch) | |
tree | 24a1be98eef35a2635ce8d5e66ee00073f1ad4a8 /deps/v8/src/arm/stub-cache-arm.cc | |
parent | 187f191558ef45562865e071fdcd11e1dbec79df (diff) | |
download | node-1c6671aa67c3d7f731fec415a58f7676e1468a15.tar.gz |
Upgrade V8 to 2.2.18
Diffstat (limited to 'deps/v8/src/arm/stub-cache-arm.cc')
-rw-r--r-- | deps/v8/src/arm/stub-cache-arm.cc | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/deps/v8/src/arm/stub-cache-arm.cc b/deps/v8/src/arm/stub-cache-arm.cc index 3992d6c5d..dc0f4a7c4 100644 --- a/deps/v8/src/arm/stub-cache-arm.cc +++ b/deps/v8/src/arm/stub-cache-arm.cc @@ -1019,6 +1019,14 @@ Object* StubCompiler::CompileLazyCompile(Code::Flags flags) { } +void CallStubCompiler::GenerateNameCheck(String* name, Label* miss) { + if (kind_ == Code::KEYED_CALL_IC) { + __ cmp(r2, Operand(Handle<String>(name))); + __ b(ne, miss); + } +} + + void CallStubCompiler::GenerateMissBranch() { Handle<Code> ic = ComputeCallMiss(arguments().immediate(), kind_); __ Jump(ic, RelocInfo::CODE_TARGET); @@ -1035,6 +1043,8 @@ Object* CallStubCompiler::CompileCallField(JSObject* object, // ----------------------------------- Label miss; + GenerateNameCheck(name, &miss); + const int argc = arguments().immediate(); // Get the receiver of the function from the stack into r0. @@ -1078,6 +1088,8 @@ Object* CallStubCompiler::CompileArrayPushCall(Object* object, Label miss; + GenerateNameCheck(name, &miss); + // Get the receiver from the stack const int argc = arguments().immediate(); __ ldr(r1, MemOperand(sp, argc * kPointerSize)); @@ -1127,6 +1139,8 @@ Object* CallStubCompiler::CompileArrayPopCall(Object* object, Label miss; + GenerateNameCheck(name, &miss); + // Get the receiver from the stack const int argc = arguments().immediate(); __ ldr(r1, MemOperand(sp, argc * kPointerSize)); @@ -1198,6 +1212,8 @@ Object* CallStubCompiler::CompileCallConstant(Object* object, Label miss_in_smi_check; + GenerateNameCheck(name, &miss_in_smi_check); + // Get the receiver from the stack const int argc = arguments().immediate(); __ ldr(r1, MemOperand(sp, argc * kPointerSize)); @@ -1337,6 +1353,8 @@ Object* CallStubCompiler::CompileCallInterceptor(JSObject* object, Label miss; + GenerateNameCheck(name, &miss); + // Get the number of arguments. const int argc = arguments().immediate(); @@ -1384,6 +1402,8 @@ Object* CallStubCompiler::CompileCallGlobal(JSObject* object, // ----------------------------------- Label miss; + GenerateNameCheck(name, &miss); + // Get the number of arguments. const int argc = arguments().immediate(); |