Nanojit merge death throes, no bug, r=dvander.
Nanojit merge death throes, no bug, r=dvander.
--- 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