| OLD | NEW | 
|    1 // Copyright 2011 the V8 project authors. All rights reserved. |    1 // Copyright 2011 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 #include "src/codegen.h" |    5 #include "src/codegen.h" | 
|    6 #include "src/deoptimizer.h" |    6 #include "src/deoptimizer.h" | 
|    7 #include "src/full-codegen/full-codegen.h" |    7 #include "src/full-codegen/full-codegen.h" | 
|    8 #include "src/register-configuration.h" |    8 #include "src/register-configuration.h" | 
|    9 #include "src/safepoint-table.h" |    9 #include "src/safepoint-table.h" | 
|   10  |   10  | 
| (...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  147   // Get the address of the location in the code object (a3) (return |  147   // Get the address of the location in the code object (a3) (return | 
|  148   // address for lazy deoptimization) and compute the fp-to-sp delta in |  148   // address for lazy deoptimization) and compute the fp-to-sp delta in | 
|  149   // register t0. |  149   // register t0. | 
|  150   __ mov(a3, ra); |  150   __ mov(a3, ra); | 
|  151   // Correct one word for bailout id. |  151   // Correct one word for bailout id. | 
|  152   __ Addu(t0, sp, Operand(kSavedRegistersAreaSize + (1 * kPointerSize))); |  152   __ Addu(t0, sp, Operand(kSavedRegistersAreaSize + (1 * kPointerSize))); | 
|  153  |  153  | 
|  154   __ Subu(t0, fp, t0); |  154   __ Subu(t0, fp, t0); | 
|  155  |  155  | 
|  156   // Allocate a new deoptimizer object. |  156   // Allocate a new deoptimizer object. | 
 |  157   __ PrepareCallCFunction(6, t1); | 
|  157   // Pass four arguments in a0 to a3 and fifth & sixth arguments on stack. |  158   // Pass four arguments in a0 to a3 and fifth & sixth arguments on stack. | 
|  158   __ PrepareCallCFunction(6, t1); |  159   __ mov(a0, zero_reg); | 
 |  160   Label context_check; | 
 |  161   __ lw(a1, MemOperand(fp, CommonFrameConstants::kContextOrFrameTypeOffset)); | 
 |  162   __ JumpIfSmi(a1, &context_check); | 
|  159   __ lw(a0, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset)); |  163   __ lw(a0, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset)); | 
|  160   __ li(a1, Operand(type()));  // bailout type, |  164   __ bind(&context_check); | 
 |  165   __ li(a1, Operand(type()));  // Bailout type. | 
|  161   // a2: bailout id already loaded. |  166   // a2: bailout id already loaded. | 
|  162   // a3: code address or 0 already loaded. |  167   // a3: code address or 0 already loaded. | 
|  163   __ sw(t0, CFunctionArgumentOperand(5));  // Fp-to-sp delta. |  168   __ sw(t0, CFunctionArgumentOperand(5));  // Fp-to-sp delta. | 
|  164   __ li(t1, Operand(ExternalReference::isolate_address(isolate()))); |  169   __ li(t1, Operand(ExternalReference::isolate_address(isolate()))); | 
|  165   __ sw(t1, CFunctionArgumentOperand(6));  // Isolate. |  170   __ sw(t1, CFunctionArgumentOperand(6));  // Isolate. | 
|  166   // Call Deoptimizer::New(). |  171   // Call Deoptimizer::New(). | 
|  167   { |  172   { | 
|  168     AllowExternalCallThatCantCauseGC scope(masm()); |  173     AllowExternalCallThatCantCauseGC scope(masm()); | 
|  169     __ CallCFunction(ExternalReference::new_deoptimizer_function(isolate()), 6); |  174     __ CallCFunction(ExternalReference::new_deoptimizer_function(isolate()), 6); | 
|  170   } |  175   } | 
| (...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  376   // No embedded constant pool support. |  381   // No embedded constant pool support. | 
|  377   UNREACHABLE(); |  382   UNREACHABLE(); | 
|  378 } |  383 } | 
|  379  |  384  | 
|  380  |  385  | 
|  381 #undef __ |  386 #undef __ | 
|  382  |  387  | 
|  383  |  388  | 
|  384 }  // namespace internal |  389 }  // namespace internal | 
|  385 }  // namespace v8 |  390 }  // namespace v8 | 
| OLD | NEW |