Implement JSOP_CALLEE in JM (bug 794427, r=bhackett).
authorDavid Anderson <danderson@mozilla.com>
Wed, 13 Feb 2013 17:24:50 -0800
changeset 131704 507316db9c59d3c2c224f9ac6b3759d804355313
parent 131703 6be86adf9bf2011b5f0bffe0f46cff490988b08b
child 131705 394bbaa548e3e93d355bdb877c9b6f5f8d2c6060
push id2323
push userbbajaj@mozilla.com
push dateMon, 01 Apr 2013 19:47:02 +0000
treeherdermozilla-beta@7712be144d91 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersbhackett
bugs794427
milestone21.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
Implement JSOP_CALLEE in JM (bug 794427, r=bhackett).
js/src/jsanalyze.cpp
js/src/methodjit/Compiler.cpp
--- a/js/src/jsanalyze.cpp
+++ b/js/src/jsanalyze.cpp
@@ -452,16 +452,17 @@ ScriptAnalysis::analyzeBytecode(JSContex
           case JSOP_GETELEM:
           case JSOP_CALLELEM:
             numPropertyReads_++;
             break;
 
           /* Additional opcodes which can be compiled but which can't be inlined. */
           case JSOP_ARGUMENTS:
           case JSOP_FUNAPPLY:
+          case JSOP_CALLEE:
             isJaegerInlineable = false;
             break;
           case JSOP_THROW:
           case JSOP_EXCEPTION:
           case JSOP_DEBUGGER:
           case JSOP_FUNCALL:
             isIonInlineable = isJaegerInlineable = false;
             break;
--- a/js/src/methodjit/Compiler.cpp
+++ b/js/src/methodjit/Compiler.cpp
@@ -2811,16 +2811,20 @@ mjit::Compiler::generateMethod()
           BEGIN_CASE(JSOP_ONE)
             frame.push(JSVAL_ONE);
           END_CASE(JSOP_ONE)
 
           BEGIN_CASE(JSOP_NULL)
             frame.push(NullValue());
           END_CASE(JSOP_NULL)
 
+          BEGIN_CASE(JSOP_CALLEE)
+            frame.pushCallee();
+          END_CASE(JSOP_CALLEE)
+
           BEGIN_CASE(JSOP_THIS)
             jsop_this();
           END_CASE(JSOP_THIS)
 
           BEGIN_CASE(JSOP_FALSE)
             frame.push(Value(BooleanValue(false)));
           END_CASE(JSOP_FALSE)