Bug 1289054 - Part 2: Implement the 64bit variant of AsmJSParameter on arm, r=sstangl
authorHannes Verschore <hv1989@gmail.com>
Fri, 29 Jul 2016 16:53:48 +0200
changeset 349421 8b30ccb87d0a5b9b0d2f39dcb2861098b224dfa6
parent 349420 c98e305712c8ee7b1eac1db8a68533ac35574367
child 349422 14fb049c6eabf0519e95ddc840915b561860a3e1
push id1230
push userjlund@mozilla.com
push dateMon, 31 Oct 2016 18:13:35 +0000
treeherdermozilla-release@5e06e3766db2 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerssstangl
bugs1289054
milestone50.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1289054 - Part 2: Implement the 64bit variant of AsmJSParameter on arm, r=sstangl
js/src/jit/Lowering.cpp
--- a/js/src/jit/Lowering.cpp
+++ b/js/src/jit/Lowering.cpp
@@ -4105,18 +4105,28 @@ LIRGenerator::visitAsmJSLoadFFIFunc(MAsm
     define(new(alloc()) LAsmJSLoadFFIFunc, ins);
 }
 
 void
 LIRGenerator::visitAsmJSParameter(MAsmJSParameter* ins)
 {
     ABIArg abi = ins->abi();
     if (abi.argInRegister()) {
+#if defined(JS_NUNBOX32)
+        if (abi.isGeneralRegPair()) {
+            defineInt64Fixed(new(alloc()) LAsmJSParameterI64, ins,
+                LInt64Allocation(LAllocation(AnyRegister(abi.gpr64().high)),
+                                 LAllocation(AnyRegister(abi.gpr64().low))));
+            return;
+        }
+#endif
         defineFixed(new(alloc()) LAsmJSParameter, ins, LAllocation(abi.reg()));
-    } else if (ins->type() == MIRType::Int64) {
+        return;
+    }
+    if (ins->type() == MIRType::Int64) {
         MOZ_ASSERT(!abi.argInRegister());
         defineInt64Fixed(new(alloc()) LAsmJSParameterI64, ins,
 #if defined(JS_NUNBOX32)
             LInt64Allocation(LArgument(abi.offsetFromArgBase() + INT64HIGH_OFFSET),
                              LArgument(abi.offsetFromArgBase() + INT64LOW_OFFSET))
 #else
             LInt64Allocation(LArgument(abi.offsetFromArgBase()))
 #endif