| OLD | NEW | 
|     1 // Copyright 2012 the V8 project authors. All rights reserved. |     1 // Copyright 2012 the V8 project authors. All rights reserved. | 
|     2 // Use of this source code is governed by a BSD-style license that can be |     2 // Use of this source code is governed by a BSD-style license that can be | 
|     3 // found in the LICENSE file. |     3 // found in the LICENSE file. | 
|     4  |     4  | 
|     5 #if V8_TARGET_ARCH_IA32 |     5 #if V8_TARGET_ARCH_IA32 | 
|     6  |     6  | 
|     7 #include "src/full-codegen/full-codegen.h" |     7 #include "src/full-codegen/full-codegen.h" | 
|     8 #include "src/ast/compile-time-value.h" |     8 #include "src/ast/compile-time-value.h" | 
|     9 #include "src/ast/scopes.h" |     9 #include "src/ast/scopes.h" | 
|    10 #include "src/code-factory.h" |    10 #include "src/code-factory.h" | 
| (...skipping 2264 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  2275   SetCallPosition(expr, expr->tail_call_mode()); |  2275   SetCallPosition(expr, expr->tail_call_mode()); | 
|  2276   if (expr->tail_call_mode() == TailCallMode::kAllow) { |  2276   if (expr->tail_call_mode() == TailCallMode::kAllow) { | 
|  2277     if (FLAG_trace) { |  2277     if (FLAG_trace) { | 
|  2278       __ CallRuntime(Runtime::kTraceTailCall); |  2278       __ CallRuntime(Runtime::kTraceTailCall); | 
|  2279     } |  2279     } | 
|  2280     // Update profiling counters before the tail call since we will |  2280     // Update profiling counters before the tail call since we will | 
|  2281     // not return to this function. |  2281     // not return to this function. | 
|  2282     EmitProfilingCounterHandlingForReturnSequence(true); |  2282     EmitProfilingCounterHandlingForReturnSequence(true); | 
|  2283   } |  2283   } | 
|  2284   Handle<Code> code = |  2284   Handle<Code> code = | 
|  2285       CodeFactory::CallIC(isolate(), arg_count, mode, expr->tail_call_mode()) |  2285       CodeFactory::CallIC(isolate(), mode, expr->tail_call_mode()).code(); | 
|  2286           .code(); |  | 
|  2287   __ Move(edx, Immediate(SmiFromSlot(expr->CallFeedbackICSlot()))); |  2286   __ Move(edx, Immediate(SmiFromSlot(expr->CallFeedbackICSlot()))); | 
|  2288   __ mov(edi, Operand(esp, (arg_count + 1) * kPointerSize)); |  2287   __ mov(edi, Operand(esp, (arg_count + 1) * kPointerSize)); | 
 |  2288   __ Move(eax, Immediate(arg_count)); | 
|  2289   __ call(code, RelocInfo::CODE_TARGET); |  2289   __ call(code, RelocInfo::CODE_TARGET); | 
|  2290   OperandStackDepthDecrement(arg_count + 1); |  2290   OperandStackDepthDecrement(arg_count + 1); | 
|  2291  |  2291  | 
|  2292   RecordJSReturnSite(expr); |  2292   RecordJSReturnSite(expr); | 
|  2293   RestoreContext(); |  2293   RestoreContext(); | 
|  2294   context()->DropAndPlug(1, eax); |  2294   context()->DropAndPlug(1, eax); | 
|  2295 } |  2295 } | 
|  2296  |  2296  | 
|  2297 void FullCodeGenerator::EmitResolvePossiblyDirectEval(Call* expr) { |  2297 void FullCodeGenerator::EmitResolvePossiblyDirectEval(Call* expr) { | 
|  2298   int arg_count = expr->arguments()->length(); |  2298   int arg_count = expr->arguments()->length(); | 
| (...skipping 1261 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  3560       isolate->builtins()->OnStackReplacement()->entry(), |  3560       isolate->builtins()->OnStackReplacement()->entry(), | 
|  3561       Assembler::target_address_at(call_target_address, unoptimized_code)); |  3561       Assembler::target_address_at(call_target_address, unoptimized_code)); | 
|  3562   return ON_STACK_REPLACEMENT; |  3562   return ON_STACK_REPLACEMENT; | 
|  3563 } |  3563 } | 
|  3564  |  3564  | 
|  3565  |  3565  | 
|  3566 }  // namespace internal |  3566 }  // namespace internal | 
|  3567 }  // namespace v8 |  3567 }  // namespace v8 | 
|  3568  |  3568  | 
|  3569 #endif  // V8_TARGET_ARCH_IA32 |  3569 #endif  // V8_TARGET_ARCH_IA32 | 
| OLD | NEW |