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

Unified Diff: src/mips64/simulator-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, 11 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 side-by-side diff with in-line comments
Download patch
Index: src/mips64/simulator-mips64.cc
diff --git a/src/mips64/simulator-mips64.cc b/src/mips64/simulator-mips64.cc
index 01cf03569710549beed00120fa1b4632f50d09ff..4702e7db44349783c955079b778d3c5b1ca70fde 100644
--- a/src/mips64/simulator-mips64.cc
+++ b/src/mips64/simulator-mips64.cc
@@ -1160,7 +1160,7 @@ double Simulator::get_fpu_register_double(int fpureg) const {
// from a0-a3 or f12 and f13 (n64), or f14 (O32).
void Simulator::GetFpArgs(double* x, double* y, int32_t* z) {
if (!IsMipsSoftFloatABI) {
- const int fparg2 = (kMipsAbi == kN64) ? 13 : 14;
+ const int fparg2 = 13;
*x = get_fpu_register_double(12);
*y = get_fpu_register_double(fparg2);
*z = static_cast<int32_t>(get_register(a2));
@@ -2009,15 +2009,9 @@ void Simulator::SoftwareInterrupt(Instruction* instr) {
int64_t arg3 = get_register(a3);
int64_t arg4, arg5;
- if (kMipsAbi == kN64) {
- arg4 = get_register(a4); // Abi n64 register a4.
- arg5 = get_register(a5); // Abi n64 register a5.
- } else { // Abi O32.
- int64_t* stack_pointer = reinterpret_cast<int64_t*>(get_register(sp));
- // Args 4 and 5 are on the stack after the reserved space for args 0..3.
- arg4 = stack_pointer[4];
- arg5 = stack_pointer[5];
- }
+ arg4 = get_register(a4); // Abi n64 register a4.
+ arg5 = get_register(a5); // Abi n64 register a5.
+
bool fp_call =
(redirection->type() == ExternalReference::BUILTIN_FP_FP_CALL) ||
(redirection->type() == ExternalReference::BUILTIN_COMPARE_CALL) ||
@@ -4799,7 +4793,7 @@ void Simulator::CallInternal(byte* entry) {
int64_t Simulator::Call(byte* entry, int argument_count, ...) {
- const int kRegisterPassedArguments = (kMipsAbi == kN64) ? 8 : 4;
+ const int kRegisterPassedArguments = 8;
va_list parameters;
va_start(parameters, argument_count);
// Set up arguments.
@@ -4811,14 +4805,12 @@ int64_t Simulator::Call(byte* entry, int argument_count, ...) {
set_register(a2, va_arg(parameters, int64_t));
set_register(a3, va_arg(parameters, int64_t));
- if (kMipsAbi == kN64) {
- // Up to eight arguments passed in registers in N64 ABI.
- // TODO(plind): N64 ABI calls these regs a4 - a7. Clarify this.
- if (argument_count >= 5) set_register(a4, va_arg(parameters, int64_t));
- if (argument_count >= 6) set_register(a5, va_arg(parameters, int64_t));
- if (argument_count >= 7) set_register(a6, va_arg(parameters, int64_t));
- if (argument_count >= 8) set_register(a7, va_arg(parameters, int64_t));
- }
+ // Up to eight arguments passed in registers in N64 ABI.
+ // TODO(plind): N64 ABI calls these regs a4 - a7. Clarify this.
+ if (argument_count >= 5) set_register(a4, va_arg(parameters, int64_t));
+ if (argument_count >= 6) set_register(a5, va_arg(parameters, int64_t));
+ if (argument_count >= 7) set_register(a6, va_arg(parameters, int64_t));
+ if (argument_count >= 8) set_register(a7, va_arg(parameters, int64_t));
// Remaining arguments passed on stack.
int64_t original_stack = get_register(sp);
@@ -4853,7 +4845,7 @@ int64_t Simulator::Call(byte* entry, int argument_count, ...) {
double Simulator::CallFP(byte* entry, double d0, double d1) {
if (!IsMipsSoftFloatABI) {
- const FPURegister fparg2 = (kMipsAbi == kN64) ? f13 : f14;
+ const FPURegister fparg2 = f13;
set_fpu_register_double(f12, d0);
set_fpu_register_double(fparg2, d1);
} else {

Powered by Google App Engine
This is Rietveld 408576698