Nanojit merge death throes, no bug, r=dvander.
authorGraydon Hoare <graydon@mozilla.com>
Thu, 29 Oct 2009 18:42:14 -0700
changeset 34553 a658f130ad09ca1050268557f401289ca8b3fb35
parent 34385 59bdb4ad72685b1f9741a2ef8a7c761685d29bc1
child 34554 ff1bd7360d2f614867aa1fbceccf941d90fefe78
push idunknown
push userunknown
push dateunknown
reviewersdvander
milestone1.9.3a1pre
Nanojit merge death throes, no bug, r=dvander.
js/src/nanojit/LIR.cpp
js/src/nanojit/nanojit.h
--- a/js/src/nanojit/LIR.cpp
+++ b/js/src/nanojit/LIR.cpp
@@ -966,20 +966,18 @@ namespace nanojit
 
         uint32_t argt = ci->_argtypes;
         LOpcode op = k_callmap[argt & ARGSIZE_MASK_ANY];
         NanoAssert(op != LIR_skip); // LIR_skip here is just an error condition
 
         ArgSize sizes[MAXARGS];
         int32_t argc = ci->get_sizes(sizes);
 
-        if (AvmCore::config.soft_float) {
-            if (op == LIR_fcall)
-                op = LIR_callh;
-        }
+        if (!ARM_VFP && (op == LIR_fcall || op == LIR_qcall))
+            op = LIR_callh;
 
         NanoAssert(argc <= (int)MAXARGS);
 
         // Lay the call parameters out (in reverse order).
         // Nb: this must be kept in sync with arg().
         LInsp* newargs = (LInsp*)_buf->makeRoom(argc*sizeof(LInsp) + sizeof(LInsC)); // args + call
         for (int32_t i = 0; i < argc; i++)
             newargs[argc - i - 1] = args[i];
--- a/js/src/nanojit/nanojit.h
+++ b/js/src/nanojit/nanojit.h
@@ -67,26 +67,26 @@
     #define UNLESS_64BIT(...)
 #else
     #define IF_64BIT(...)
     #define UNLESS_64BIT(...) __VA_ARGS__
 #endif
 
 // set ARM_VFP constant if not already set
 #if !defined(ARM_VFP)
-    #if defined(AVMPLUS_ARM)
+    #ifdef AVMPLUS_ARM
         #if defined(NJ_ARM_VFP)
             #define ARM_VFP      1
         #else
             #define ARM_VFP      0
         #endif
     #else
         // some LIR features should test VFP on ARM,
         // but can be set to "always on" on non-ARM
-        #define ARM_VFP          1
+        #define ARM_VFP 1
     #endif
 #endif
 
 // Embed no-op macros that let Valgrind work with the JIT.
 #ifdef MOZ_VALGRIND
 #  define JS_VALGRIND
 #endif
 #ifdef JS_VALGRIND