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.
