Bug 771320 - Use payloadOf/PAYLOAD_OFFSET when constructing PIC stubs. r=bhackett

This commit is contained in:
Cameron Kaiser 2012-07-10 18:31:04 -04:00
parent 592eef2d4e
commit 48aa5533c8
2 changed files with 7 additions and 4 deletions

View File

@ -1056,8 +1056,11 @@ class GetPropCompiler : public PICStubCompiler
int32_t idHandleOffset = (char *) (f.regs.sp + 1) - (char *) f.fp();
int32_t objHandleOffset = (char *) (f.regs.sp + 2) - (char *) f.fp();
masm.storePtr(holdObjReg, Address(JSFrameReg, objHandleOffset));
masm.storePtr(ImmPtr((void *) JSID_BITS(userid)), Address(JSFrameReg, idHandleOffset));
/*
* Make sure we handle endianness correctly.
*/
masm.storePtr(holdObjReg, masm.payloadOf(Address(JSFrameReg, objHandleOffset)));
masm.storePtr(ImmPtr((void *) JSID_BITS(userid)), masm.payloadOf(Address(JSFrameReg, idHandleOffset)));
/*
* On 32 bit platforms zero the upper portion of the values so that
@ -1096,7 +1099,7 @@ class GetPropCompiler : public PICStubCompiler
masm.restoreStackBase();
masm.setupABICall(Registers::NormalCall, 4);
masm.storeArg(3, t0);
masm.addPtr(Imm32(idHandleOffset - vpOffset), t0);
masm.addPtr(Imm32(idHandleOffset - vpOffset + Assembler::PAYLOAD_OFFSET), t0);
masm.storeArg(2, t0);
masm.addPtr(Imm32(objHandleOffset - idHandleOffset), t0);
masm.storeArg(1, t0);

View File

@ -49,9 +49,9 @@ struct ImmPayload : Imm64
class PunboxAssembler : public JSC::MacroAssembler
{
public:
static const uint32_t PAYLOAD_OFFSET = 0;
public:
static const JSC::MacroAssembler::Scale JSVAL_SCALE = JSC::MacroAssembler::TimesEight;
template <typename T>