Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(65)

Side by Side Diff: src/builtins/mips/builtins-mips.cc

Issue 2542403002: MIPS: Use JIC/JIALC offset when possible (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
OLDNEW
« no previous file with comments | « no previous file | src/compiler/mips/code-generator-mips.cc » ('j') | src/compiler/mips/code-generator-mips.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698