[JAEGER] Build fixes.

This commit is contained in:
David Anderson 2010-05-30 20:13:07 -07:00
parent dff194f865
commit c8844c4d54
5 changed files with 25 additions and 17 deletions

View File

@ -71,7 +71,7 @@ class FrameEntry
return type.isConstant();
}
uint32 getTypeTag() const {
JSValueMask32 getTypeTag() const {
return v_.s.mask32;
}
@ -86,7 +86,7 @@ class FrameEntry
return index_;
}
void setTypeTag(uint32 u32) {
void setTypeTag(JSValueMask32 u32) {
type.setConstant();
v_.s.mask32 = u32;
}

View File

@ -168,7 +168,7 @@ FrameState::pushSynced()
}
inline void
FrameState::pushSyncedType(uint32 tag)
FrameState::pushSyncedType(JSValueMask32 tag)
{
FrameEntry *fe = rawPush();
@ -204,7 +204,7 @@ FrameState::push(Address address)
}
inline void
FrameState::pushTypedPayload(uint32 tag, RegisterID payload)
FrameState::pushTypedPayload(JSValueMask32 tag, RegisterID payload)
{
JS_ASSERT(!freeRegs.hasReg(payload));
@ -217,7 +217,7 @@ FrameState::pushTypedPayload(uint32 tag, RegisterID payload)
}
inline void
FrameState::pushUntypedPayload(uint32 tag, RegisterID payload)
FrameState::pushUntypedPayload(JSValueMask32 tag, RegisterID payload)
{
JS_ASSERT(!freeRegs.hasReg(payload));
@ -228,7 +228,7 @@ FrameState::pushUntypedPayload(uint32 tag, RegisterID payload)
fe->type.unsync();
#endif
masm.storeTypeTag(Imm32(tag), addressOf(fe));
masm.storeTypeTag(ImmTag(tag), addressOf(fe));
fe->type.sync();
fe->data.unsync();
fe->data.setRegister(payload);
@ -287,7 +287,7 @@ FrameState::syncType(const FrameEntry *fe, Assembler &masm) const
if (fe->type.isConstant()) {
JS_ASSERT(fe->isTypeKnown());
masm.storeTypeTag(Imm32(fe->getTypeTag()), addressOf(fe));
masm.storeTypeTag(ImmTag(fe->getTypeTag()), addressOf(fe));
} else {
masm.storeTypeTag(fe->type.reg(), addressOf(fe));
}
@ -310,7 +310,7 @@ FrameState::syncData(const FrameEntry *fe, Assembler &masm) const
}
inline void
FrameState::learnType(FrameEntry *fe, uint32 tag)
FrameState::learnType(FrameEntry *fe, JSValueMask32 tag)
{
if (fe->type.inRegister())
forgetReg(fe->type.reg());

View File

@ -136,7 +136,7 @@ FrameState::storeTo(FrameEntry *fe, Address address, bool popped)
}
if (fe->isTypeKnown()) {
masm.storeTypeTag(Imm32(fe->getTypeTag()), address);
masm.storeTypeTag(ImmTag(fe->getTypeTag()), address);
} else if (fe->type.inRegister()) {
masm.storeTypeTag(fe->type.reg(), address);
} else {

View File

@ -144,7 +144,7 @@ class FrameState
/*
* Pushes a slot that has a known, synced type and payload.
*/
inline void pushSyncedType(uint32 tag);
inline void pushSyncedType(JSValueMask32 tag);
/*
* Pushes a constant value.
@ -159,14 +159,14 @@ class FrameState
/*
* Pushes a known type and allocated payload onto the operation stack.
*/
inline void pushTypedPayload(uint32 tag, RegisterID payload);
inline void pushTypedPayload(JSValueMask32 tag, RegisterID payload);
/*
* Pushes a known type and allocated payload onto the operation stack.
* This must be used when the type is known, but cannot be propagated
* because it is not known to be correct at a slow-path merge point.
*/
inline void pushUntypedPayload(uint32 tag, RegisterID payload);
inline void pushUntypedPayload(JSValueMask32 tag, RegisterID payload);
/*
* Pops a value off the operation stack, freeing any of its resources.
@ -280,7 +280,7 @@ class FrameState
/*
* Mark an existing slot with a type.
*/
inline void learnType(FrameEntry *fe, uint32 tag);
inline void learnType(FrameEntry *fe, JSValueMask32 tag);
/*
* Helper function. Tests if a slot's type is an integer. Condition should

View File

@ -45,6 +45,14 @@
namespace js {
namespace mjit {
class ImmTag : public JSC::MacroAssembler::Imm32
{
public:
ImmTag(JSValueMask32 mask)
: Imm32(int32(mask))
{ }
};
class Assembler : public BaseAssembler
{
static const uint32 PAYLOAD_OFFSET = 0;
@ -63,7 +71,7 @@ class Assembler : public BaseAssembler
load32(Address(address.base, address.offset + TAG_OFFSET), reg);
}
void storeTypeTag(Imm32 imm, Address address) {
void storeTypeTag(ImmTag imm, Address address) {
store32(imm, Address(address.base, address.offset + TAG_OFFSET));
}
@ -87,17 +95,17 @@ class Assembler : public BaseAssembler
jsval_layout jv;
jv.asBits = Jsvalify(v);
store32(Imm32(jv.s.mask32), tagOf(address));
store32(ImmTag(jv.s.mask32), tagOf(address));
if (!v.isUndefined())
store32(Imm32(jv.s.payload.u32), payloadOf(address));
}
Jump testInt32(Assembler::Condition cond, RegisterID reg) {
return branch32(cond, reg, Imm32(JSVAL_MASK32_INT32));
return branch32(cond, reg, ImmTag(JSVAL_MASK32_INT32));
}
Jump testInt32(Assembler::Condition cond, Address address) {
return branch32(cond, tagOf(address), Imm32(JSVAL_MASK32_INT32));
return branch32(cond, tagOf(address), ImmTag(JSVAL_MASK32_INT32));
}
};