mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
[JAEGER] Build fixes.
This commit is contained in:
parent
dff194f865
commit
c8844c4d54
@ -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;
|
||||
}
|
||||
|
@ -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());
|
||||
|
@ -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 {
|
||||
|
@ -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
|
||||
|
@ -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));
|
||||
}
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user