Compile scripts containing decomposed opcodes, fix warning. bug 728342.
authorBrian Hackett <bhackett1024@gmail.com>
Wed, 22 Feb 2012 12:57:25 -0800
changeset 87447 bf3651d2e149d3b6de62860f25060514428aacfa
parent 87446 046998d673fc27862e53de553f1ffce78aca0460
child 87448 18af6c2316d4abed9a097095b6f6afe22727f8cb
push id6355
push userbhackett@mozilla.com
push dateWed, 22 Feb 2012 20:57:42 +0000
treeherdermozilla-inbound@bf3651d2e149 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs728342
milestone13.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
Compile scripts containing decomposed opcodes, fix warning. bug 728342.
js/src/jsanalyze.cpp
js/src/methodjit/Compiler.cpp
--- a/js/src/jsanalyze.cpp
+++ b/js/src/jsanalyze.cpp
@@ -613,17 +613,18 @@ ScriptAnalysis::analyzeBytecode(JSContex
           case JSOP_INT8:
           case JSOP_INT32:
           case JSOP_HOLE:
           case JSOP_LOOPHEAD:
           case JSOP_LOOPENTRY:
             break;
 
           default:
-            isCompileable = isInlineable = false;
+            if (!(js_CodeSpec[op].format & JOF_DECOMPOSE))
+                isCompileable = isInlineable = false;
             break;
         }
 
         uint32_t type = JOF_TYPE(js_CodeSpec[op].format);
 
         /* Check basic jump opcodes, which may or may not have a fallthrough. */
         if (type == JOF_JUMP) {
             /* Some opcodes behave differently on their branching path. */
--- a/js/src/methodjit/Compiler.cpp
+++ b/js/src/methodjit/Compiler.cpp
@@ -76,24 +76,16 @@ using namespace js::mjit::ic;
 using namespace js::analyze;
 
 #define RETURN_IF_OOM(retval)                                   \
     JS_BEGIN_MACRO                                              \
         if (oomInVector || masm.oom() || stubcc.masm.oom())     \
             return retval;                                      \
     JS_END_MACRO
 
-#if defined(JS_METHODJIT_SPEW)
-static const char *OpcodeNames[] = {
-# define OPDEF(op,val,name,token,length,nuses,ndefs,prec,format) #name,
-# include "jsopcode.tbl"
-# undef OPDEF
-};
-#endif
-
 /*
  * Number of times a script must be called or had a backedge before we try to
  * inline its calls.
  */
 static const size_t USES_BEFORE_INLINING = 10000;
 
 mjit::Compiler::Compiler(JSContext *cx, JSScript *outerScript,
                          unsigned chunkIndex, bool isConstructing)