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

Side by Side Diff: src/mips64/macro-assembler-mips64.cc

Issue 1638303005: MIPS64: Eliminate ABI-dependent definitions. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 10 months 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 #include <limits.h> // For LONG_MIN, LONG_MAX. 5 #include <limits.h> // For LONG_MIN, LONG_MAX.
6 6
7 #if V8_TARGET_ARCH_MIPS64 7 #if V8_TARGET_ARCH_MIPS64
8 8
9 #include "src/base/division-by-constant.h" 9 #include "src/base/division-by-constant.h"
10 #include "src/bootstrapper.h" 10 #include "src/bootstrapper.h"
(...skipping 4341 matching lines...) Expand 10 before | Expand all | Expand 10 after
4352 } else { 4352 } else {
4353 Move(v1, v0, src); 4353 Move(v1, v0, src);
4354 } 4354 }
4355 } 4355 }
4356 } 4356 }
4357 4357
4358 4358
4359 void MacroAssembler::MovToFloatParameters(DoubleRegister src1, 4359 void MacroAssembler::MovToFloatParameters(DoubleRegister src1,
4360 DoubleRegister src2) { 4360 DoubleRegister src2) {
4361 if (!IsMipsSoftFloatABI) { 4361 if (!IsMipsSoftFloatABI) {
4362 const DoubleRegister fparg2 = (kMipsAbi == kN64) ? f13 : f14; 4362 const DoubleRegister fparg2 = f13;
4363 if (src2.is(f12)) { 4363 if (src2.is(f12)) {
4364 DCHECK(!src1.is(fparg2)); 4364 DCHECK(!src1.is(fparg2));
4365 Move(fparg2, src2); 4365 Move(fparg2, src2);
4366 Move(f12, src1); 4366 Move(f12, src1);
4367 } else { 4367 } else {
4368 Move(f12, src1); 4368 Move(f12, src1);
4369 Move(fparg2, src2); 4369 Move(fparg2, src2);
4370 } 4370 }
4371 } else { 4371 } else {
4372 if (kArchEndian == kLittle) { 4372 if (kArchEndian == kLittle) {
(...skipping 1570 matching lines...) Expand 10 before | Expand all | Expand 10 after
5943 Register scratch, 5943 Register scratch,
5944 Label* failure) { 5944 Label* failure) {
5945 const int kFlatOneByteStringMask = 5945 const int kFlatOneByteStringMask =
5946 kIsNotStringMask | kStringEncodingMask | kStringRepresentationMask; 5946 kIsNotStringMask | kStringEncodingMask | kStringRepresentationMask;
5947 const int kFlatOneByteStringTag = 5947 const int kFlatOneByteStringTag =
5948 kStringTag | kOneByteStringTag | kSeqStringTag; 5948 kStringTag | kOneByteStringTag | kSeqStringTag;
5949 And(scratch, type, Operand(kFlatOneByteStringMask)); 5949 And(scratch, type, Operand(kFlatOneByteStringMask));
5950 Branch(failure, ne, scratch, Operand(kFlatOneByteStringTag)); 5950 Branch(failure, ne, scratch, Operand(kFlatOneByteStringTag));
5951 } 5951 }
5952 5952
5953 5953 static const int kRegisterPassedArguments = 8;
5954 static const int kRegisterPassedArguments = (kMipsAbi == kN64) ? 8 : 4;
5955 5954
5956 int MacroAssembler::CalculateStackPassedWords(int num_reg_arguments, 5955 int MacroAssembler::CalculateStackPassedWords(int num_reg_arguments,
5957 int num_double_arguments) { 5956 int num_double_arguments) {
5958 int stack_passed_words = 0; 5957 int stack_passed_words = 0;
5959 num_reg_arguments += 2 * num_double_arguments; 5958 num_reg_arguments += 2 * num_double_arguments;
5960 5959
5961 // O32: Up to four simple arguments are passed in registers a0..a3. 5960 // O32: Up to four simple arguments are passed in registers a0..a3.
5962 // N64: Up to eight simple arguments are passed in registers a0..a7. 5961 // N64: Up to eight simple arguments are passed in registers a0..a7.
5963 if (num_reg_arguments > kRegisterPassedArguments) { 5962 if (num_reg_arguments > kRegisterPassedArguments) {
5964 stack_passed_words += num_reg_arguments - kRegisterPassedArguments; 5963 stack_passed_words += num_reg_arguments - kRegisterPassedArguments;
(...skipping 522 matching lines...) Expand 10 before | Expand all | Expand 10 after
6487 if (mag.shift > 0) sra(result, result, mag.shift); 6486 if (mag.shift > 0) sra(result, result, mag.shift);
6488 srl(at, dividend, 31); 6487 srl(at, dividend, 31);
6489 Addu(result, result, Operand(at)); 6488 Addu(result, result, Operand(at));
6490 } 6489 }
6491 6490
6492 6491
6493 } // namespace internal 6492 } // namespace internal
6494 } // namespace v8 6493 } // namespace v8
6495 6494
6496 #endif // V8_TARGET_ARCH_MIPS64 6495 #endif // V8_TARGET_ARCH_MIPS64
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698