Thx Ben. Your help is great.

On Tuesday, August 9, 2016 at 7:04:19 PM UTC+7, Ben Noordhuis wrote:
>
> On Tue, Aug 9, 2016 at 12:54 PM, Dmitriy - <[email protected] 
> <javascript:>> wrote: 
> > Hi, 
> > 
> > in x64 implementation I can see that code 
> > 
> > const Register kRootRegister = { 13 };         // r13 (callee save). 
> > // Actual value of root register is offset from the root array's start 
> > // to take advantage of negitive 8-bit displacement values. 
> > 
> > What does it mean? 
> > 
> > It used here: 
> > Label convert_global_proxy; 
> >         __ JumpIfRoot(rcx, Heap::kUndefinedValueRootIndex, 
> >                       &convert_global_proxy, Label::kNear); 
> >         __ JumpIfNotRoot(rcx, Heap::kNullValueRootIndex, 
> &convert_to_object, 
> >                          Label::kNear); 
> > 
> > In asm this code is: 
> > 
> > 0x2ecf4661ca9a    58 493b4da8       REX.W cmpq rcx,[r13-0x58] 
> > 0x2ecf4661ca9e    62 7406           jz 70  (0x2ecf4661caa6) 
> > 0x2ecf4661caa0    64 493b4db8       REX.W cmpq rcx,[r13-0x48] 
> > 0x2ecf4661caa4    68 750d           jnz 83  (0x2ecf4661cab3) 
> > 
> > Somebody knows what are purposes for r13 (root register)? 
>
> It's a pointer to a list of singletons, like the null and undefined 
> values, the hole value, the canonical NaN, etc.  See ROOT_LIST in 
> heap/heap.h for the full list. 
>

-- 
-- 
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- 
You received this message because you are subscribed to the Google Groups 
"v8-dev" 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