[-v8-dev, +v8-users]

Golem run of this (before some cleanup):
http://golem.spb:9013/v8/r6100-v8-sgjesse-instanceof-deferred-3-vs-6100-v8.html

/Søren

On Wed, Dec 22, 2010 at 13:27, <[email protected]> wrote:

> Reviewers: Kevin Millikin, Mads Ager,
>
> Description:
> Optimize instanceof further
>
> If the instance of is performed against what is beliwed to be a constant
> global
> function inline the instance of check and have the call to the instanceof
> stub
> in deferred code. The inlined check will be patched by the instanceof stub
> when
> called from deferred code. This is indicated by the lithium instruction
> LInstanceOfKnownGlobal.
>
> To help the patching the delta from the return address to the patch site is
> placed just below the return address in the edi slot of the pushad/popad
> ares.
> This is safe because the edi register (which is pushed last) is a temporary
> for
> the lithium instruction.
>
> As the instanceof stub can call other JavaScript an additional marking for
> saving all double registers have been added.
>
> Also tweaked the instanceof stub to produce true/false objects instead of
> 0/1
> for the case with deferred code.
>
> Please review this at http://codereview.chromium.org/5990005/
>
> SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/
>
> Affected files:
>  M     src/code-stubs.h
>  M     src/hydrogen-instructions.h
>  M     src/hydrogen.cc
>  M     src/ia32/code-stubs-ia32.cc
>  M     src/ia32/full-codegen-ia32.cc
>  M     src/ia32/lithium-codegen-ia32.h
>  M     src/ia32/lithium-codegen-ia32.cc
>  M     src/ia32/lithium-ia32.h
>  M     src/ia32/lithium-ia32.cc
>  M     src/lithium-allocator.h
>  M     src/lithium-allocator.cc
>  M     src/v8-counters.h
>
>
>

-- 
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users

Reply via email to