Chromium Code Reviews| 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_MIPS | 5 #if V8_TARGET_ARCH_MIPS |
| 6 | 6 |
| 7 #include "src/codegen.h" | 7 #include "src/codegen.h" |
| 8 #include "src/debug/debug.h" | 8 #include "src/debug/debug.h" |
| 9 #include "src/deoptimizer.h" | 9 #include "src/deoptimizer.h" |
| 10 #include "src/full-codegen/full-codegen.h" | 10 #include "src/full-codegen/full-codegen.h" |
| (...skipping 510 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 521 __ SmiTag(a0); | 521 __ SmiTag(a0); |
| 522 __ Push(a0, a1, a3, a1); | 522 __ Push(a0, a1, a3, a1); |
| 523 | 523 |
| 524 __ CallRuntime(function_id, 1); | 524 __ CallRuntime(function_id, 1); |
| 525 | 525 |
| 526 // Restore target function and new target. | 526 // Restore target function and new target. |
| 527 __ Pop(a0, a1, a3); | 527 __ Pop(a0, a1, a3); |
| 528 __ SmiUntag(a0); | 528 __ SmiUntag(a0); |
| 529 } | 529 } |
| 530 | 530 |
| 531 __ Addu(at, v0, Operand(Code::kHeaderSize - kHeapObjectTag)); | 531 if (IsMipsArchVariant(kMips32r6)) { |
| 532 __ Jump(at); | 532 __ Jump(v0, Code::kHeaderSize - kHeapObjectTag); |
|
ivica.bogosavljevic
2016/12/05 10:48:47
Common routine
| |
| 533 } else { | |
| 534 __ Addu(at, v0, Operand(Code::kHeaderSize - kHeapObjectTag)); | |
| 535 __ Jump(at); | |
| 536 } | |
| 533 } | 537 } |
| 534 | 538 |
| 535 void Builtins::Generate_InOptimizationQueue(MacroAssembler* masm) { | 539 void Builtins::Generate_InOptimizationQueue(MacroAssembler* masm) { |
| 536 // Checking whether the queued function is ready for install is optional, | 540 // Checking whether the queued function is ready for install is optional, |
| 537 // since we come across interrupts and stack checks elsewhere. However, | 541 // since we come across interrupts and stack checks elsewhere. However, |
| 538 // not checking may delay installing ready functions, and always checking | 542 // not checking may delay installing ready functions, and always checking |
| 539 // would be quite expensive. A good compromise is to first check against | 543 // would be quite expensive. A good compromise is to first check against |
| 540 // stack limit as a cue for an interrupt signal. | 544 // stack limit as a cue for an interrupt signal. |
| 541 Label ok; | 545 Label ok; |
| 542 __ LoadRoot(t0, Heap::kStackLimitRootIndex); | 546 __ LoadRoot(t0, Heap::kStackLimitRootIndex); |
| (...skipping 2401 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2944 __ break_(0xCC); | 2948 __ break_(0xCC); |
| 2945 } | 2949 } |
| 2946 } | 2950 } |
| 2947 | 2951 |
| 2948 #undef __ | 2952 #undef __ |
| 2949 | 2953 |
| 2950 } // namespace internal | 2954 } // namespace internal |
| 2951 } // namespace v8 | 2955 } // namespace v8 |
| 2952 | 2956 |
| 2953 #endif // V8_TARGET_ARCH_MIPS | 2957 #endif // V8_TARGET_ARCH_MIPS |
| OLD | NEW |