Thanks Toon, here is the update we discussed.

The custom handler still has to check for an allocation site, as it's not the
sole controller of the vector slot.

The default handler does some extra checking when it's planning to stomp the
slot with the megamorphic sentinel. It will only stomp if there is a JSFunction
in place, otherwise it MISSes to the runtime for more deft handling.

By fiat, I declare that CallIC vector slots can't contain smis. They don't
currently, and in the next customization opportunities I don't need one. That way, we don't have to check for the smi type. I added some asserts around this.


https://codereview.chromium.org/418023002/diff/1/src/arm64/code-stubs-arm64.cc
File src/arm64/code-stubs-arm64.cc (right):

https://codereview.chromium.org/418023002/diff/1/src/arm64/code-stubs-arm64.cc#newcode3241
src/arm64/code-stubs-arm64.cc:3241: __ Ldr(map, FieldMemOperand(scratch,
AllocationSite::kMapOffset));
On 2014/07/28 14:11:38, Toon Verwaest wrote:
HeapObject::kMapOffset?
(You don't know yet whether it's an AllocationSite, just that it's a
HeapObject)

Right, we will store in this slot the uninitialized symbol, the
megamorphic symbol, a function pointer or an allocationsite. Since those
are all heap objects with maps, I can dereference here. Changed to
HeapObject::kMapOffset.

https://codereview.chromium.org/418023002/diff/1/src/x64/code-stubs-x64.cc
File src/x64/code-stubs-x64.cc (right):

https://codereview.chromium.org/418023002/diff/1/src/x64/code-stubs-x64.cc#newcode2262
src/x64/code-stubs-x64.cc:2262: __ Cmp(FieldOperand(rcx, 0),
factory->allocation_site_map());
On 2014/07/28 14:11:38, Toon Verwaest wrote:
HeapObject::kMapOffset?

Done.

https://codereview.chromium.org/418023002/

--
--
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