Chromium Code Reviews| Index: src/arm/codegen-arm.cc |
| =================================================================== |
| --- src/arm/codegen-arm.cc (revision 2034) |
| +++ src/arm/codegen-arm.cc (working copy) |
| @@ -1057,12 +1057,14 @@ |
| class CallFunctionStub: public CodeStub { |
| public: |
| - explicit CallFunctionStub(int argc) : argc_(argc) {} |
| + CallFunctionStub(int argc, InlineCacheInLoop in_loop) |
|
Kevin Millikin (Chromium)
2009/05/25 11:00:42
I like a name that indicates flaggishness. InLoop
|
| + : argc_(argc), in_loop_(in_loop) {} |
| void Generate(MacroAssembler* masm); |
| private: |
| int argc_; |
| + InlineCacheInLoop in_loop_; |
| #if defined(DEBUG) |
| void Print() { PrintF("CallFunctionStub (argc %d)\n", argc_); } |
| @@ -1070,6 +1072,7 @@ |
| Major MajorKey() { return CallFunction; } |
| int MinorKey() { return argc_; } |
| + InlineCacheInLoop InLoop() { return in_loop_; } |
| }; |
| @@ -1087,7 +1090,8 @@ |
| CodeForSourcePosition(position); |
| // Use the shared code stub to call the function. |
| - CallFunctionStub call_function(arg_count); |
| + InlineCacheInLoop in_loop = loop_nesting() > 0 ? IN_LOOP : NOT_IN_LOOP; |
| + CallFunctionStub call_function(arg_count, in_loop); |
| frame_->CallStub(&call_function, arg_count + 1); |
| // Restore context and pop function from the stack. |
| @@ -3050,7 +3054,8 @@ |
| } |
| // Setup the receiver register and call the IC initialization code. |
| - Handle<Code> stub = ComputeCallInitialize(arg_count); |
| + InlineCacheInLoop in_loop = loop_nesting() > 0 ? IN_LOOP : NOT_IN_LOOP; |
| + Handle<Code> stub = ComputeCallInitialize(arg_count, in_loop); |
| CodeForSourcePosition(node->position()); |
| frame_->CallCodeObject(stub, RelocInfo::CODE_TARGET_CONTEXT, |
| arg_count + 1); |
| @@ -3101,7 +3106,8 @@ |
| } |
| // Set the receiver register and call the IC initialization code. |
| - Handle<Code> stub = ComputeCallInitialize(arg_count); |
| + InlineCacheInLoop in_loop = loop_nesting() > 0 ? IN_LOOP : NOT_IN_LOOP; |
| + Handle<Code> stub = ComputeCallInitialize(arg_count, in_loop); |
| CodeForSourcePosition(node->position()); |
| frame_->CallCodeObject(stub, RelocInfo::CODE_TARGET, arg_count + 1); |
| __ ldr(cp, frame_->Context()); |
| @@ -3199,7 +3205,8 @@ |
| // Call the function. |
| CodeForSourcePosition(node->position()); |
| - CallFunctionStub call_function(arg_count); |
| + InlineCacheInLoop in_loop = loop_nesting() > 0 ? IN_LOOP : NOT_IN_LOOP; |
| + CallFunctionStub call_function(arg_count, in_loop); |
| frame_->CallStub(&call_function, arg_count + 1); |
| __ ldr(cp, frame_->Context()); |
| @@ -3461,7 +3468,8 @@ |
| if (function == NULL) { |
| // Call the JS runtime function. |
| - Handle<Code> stub = ComputeCallInitialize(arg_count); |
| + InlineCacheInLoop in_loop = loop_nesting() > 0 ? IN_LOOP : NOT_IN_LOOP; |
| + Handle<Code> stub = ComputeCallInitialize(arg_count, in_loop); |
| frame_->CallCodeObject(stub, RelocInfo::CODE_TARGET, arg_count + 1); |
| __ ldr(cp, frame_->Context()); |
| frame_->Drop(); |