Last Comment Bug 701962 - IonMonkey: Compile JSOP_NEW with callVM().
: IonMonkey: Compile JSOP_NEW with callVM().
Status: RESOLVED FIXED
:
Product: Core
Classification: Components
Component: JavaScript Engine (show other bugs)
: unspecified
: All All
: -- normal (vote)
: ---
Assigned To: Sean Stangl [:sstangl]
:
Mentors:
Depends on: 718122
Blocks: 684381
  Show dependency treegraph
 
Reported: 2011-11-11 17:57 PST by Nicolas B. Pierron [:nbp]
Modified: 2012-02-01 17:19 PST (History)
6 users (show)
See Also:
Crash Signature:
(edit)
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---


Attachments
Support JSOP_NEW via callVM. (5.52 KB, patch)
2012-01-12 15:56 PST, Sean Stangl [:sstangl]
dvander: review+
Details | Diff | Review

Description Nicolas B. Pierron [:nbp] 2011-11-11 17:57:42 PST
Necessary for benchmarks.
Comment 1 Sean Stangl [:sstangl] 2012-01-12 12:06:07 PST
Hot in some benchmarks currently (notably crypto-aes), so taking.
Comment 2 David Anderson [:dvander] 2012-01-12 13:45:19 PST
v8-earley-boyer, access-binary-trees, v8-raytrace, are also big ones that will benefit a lot
Comment 3 Sean Stangl [:sstangl] 2012-01-12 15:56:35 PST
Created attachment 588220 [details] [diff] [review]
Support JSOP_NEW via callVM.

Implements JSOP_NEW via a flag on Call/CallGeneric.

This establishes a baseline for regression to ensure that a performant implementation really does introduce no additional bugs.

Passes jit-tests on x64 with no new failures.
Comment 4 David Anderson [:dvander] 2012-01-12 16:03:57 PST
Comment on attachment 588220 [details] [diff] [review]
Support JSOP_NEW via callVM.

Review of attachment 588220 [details] [diff] [review]:
-----------------------------------------------------------------

::: js/src/ion/CodeGenerator.cpp
@@ +446,5 @@
> +    // in the case of a constructing call.
> +    // TODO: Bug 701692: performant support for JSOP_NEW.
> +    if (call->mir()->isConstruct()) {
> +
> +        typedef bool (*pf)(JSContext *, JSFunction *, uint32, Value *, Value *);

drop newline above

::: js/src/ion/VMFunctions.cpp
@@ +62,4 @@
>      return ok;
>  }
>  
> +bool InvokeConstructorFunction(JSContext *cx, JSFunction *fun, uint32 argc, Value *argv, Value *rval)

bool on separate line
Comment 5 Sean Stangl [:sstangl] 2012-01-12 16:21:54 PST
http://hg.mozilla.org/projects/ionmonkey/rev/af79cb016a99
Comment 6 Sean Stangl [:sstangl] 2012-01-12 18:52:56 PST
Backed out: caused x86 sunspider failure.
http://hg.mozilla.org/projects/ionmonkey/rev/770d43b354f4
Comment 7 Sean Stangl [:sstangl] 2012-02-01 15:35:29 PST
http://hg.mozilla.org/projects/ionmonkey/rev/4f9d917dd77f
Comment 8 Michael Clackler 2012-02-01 17:15:54 PST
Just wondering if there is something else to do in this bug or if this reference from patch is incorrect:

    1.14 +    // TODO: Bug 701692: performant support for JSOP_NEW.
Comment 9 Sean Stangl [:sstangl] 2012-02-01 17:19:32 PST
Whoops, I forgot about that comment! Attempting to keep one patch series per bug, the recently-filed bug for performant JSOP_NEW is bug 723333.

Note You need to log in before you can comment on or make changes to this bug.