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 |