Hi Ben,

Thanks for the reply.

Will the code get further optimizations at run-time or --print-opt-code
gives the maximum optimization?

---
Best Regards,
Ilya Kantor


2014-05-26 22:16 GMT+03:00 Ben Noordhuis <[email protected]>:

> On Mon, May 26, 2014 at 8:40 PM, Ilya Kantor <[email protected]> wrote:
> > Hello,
> >
> > I'm exploring v8 disasm or this code:
> > ```
> > function walkLength(x) {
> >   for(var i=0; i<arr.length; i++) arr[i]++;
> > }
> > ```
> >
> > That's what I analyze:
> > out/ia32.release/d8 --print-opt-code --print_code_verbose --code-comments
> > in.js  > res
> >
> > In section B4 of walkLength I see:
> >
> > ```
> >                   ;;; <@48,#40> bounds-check
> > 0x2e34f629   105  3bd1           cmp edx,ecx                 ;; debug:
> > position 271
> > 0x2e34f62b   107  0f833e000000   jnc 175  (0x2e34f66f)
> >                   ;;; <@50,#41> load-keyed
> > 0x2e34f631   113  8b5c5007       mov ebx,[eax+edx*2+0x7]
> >                   ;;; <@52,#43> add-i
> > 0x2e34f635   117  83c302         add ebx,0x2
> > 0x2e34f638   120  0f8036000000   jo 180  (0x2e34f674)
> >                   ;;; <@54,#55> store-keyed
> > 0x2e34f63e   126  895c5007       mov [eax+edx*2+0x7],ebx
> >                   ;;; <@56,#58> add-i
> > 0x2e34f642   130  83c202         add edx,0x2                 ;; debug:
> > position 260
> > ```
> >
> > The question is: why is it increment as "add ebx, 0x2" on line 117, why
> not
> > "add ebx, 0x1" ?
>
> V8 uses tagged pointers[1] internally.  The least significant bit is
> used to discern between pointers and integers.  Adding two to a tagged
> integer increments it by one while leaving the tag bit intact.
>
> [1] http://en.wikipedia.org/wiki/Tagged_pointer
>
> --
> --
> v8-users mailing list
> [email protected]
> http://groups.google.com/group/v8-users
> ---
> You received this message because you are subscribed to a topic in the
> Google Groups "v8-users" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/v8-users/NQ5LX6Wj9NI/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
-- 
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users
--- 
You received this message because you are subscribed to the Google Groups 
"v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to