On 3/23/15 1:12 AM, Jan de Mooij wrote:
Ok, I just tried this on x86 and 2704 is the dynamic slot offset of your "i" or "j" Value, they are stored in slots on the global object, not on the stack (the offset seemed pretty big for a stack slot..)
I see (r1 is the stack pointer on Power).
So the relevant code is CodeGenerator::visitLoadSlotT and CodeGenerator::visitStoreSlotT. The MacroAssembler's loadUnboxedValue method probably has to add the payload offset, at least our x86/x64/arm implementations aren't doing that..
That makes sense and is straightforward enough to add. But how is the store already correct? My storeUnboxedValue doesn't have an offset. Did this get picked up somewhere else?
That said, it still asserts without the change. What does the assertion
Assertion failure: safepoint->hasNunboxPayload(alloc)
actually mean? Do I need to change something else? The value slot is 8, but payload()->toStackSlot->slot() returns 4. (On PPC we're storing the return address at offset 0, same as x86, so payload()->toStackSlot->slot() is pointing at the type also.)
Thanks very much, Cameron Kaiser _______________________________________________ dev-tech-js-engine-internals mailing list dev-tech-js-engine-internals@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals