mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-05 00:25:27 +00:00
[JAEGER] Merge.
This commit is contained in:
commit
55218d7e55
@ -294,6 +294,7 @@ mjit::Compiler::finishThisUp()
|
||||
script->mics[i].stubEntry = stubCode.locationOf(mics[i].stubEntry);
|
||||
script->mics[i].u.name.typeConst = mics[i].u.name.typeConst;
|
||||
script->mics[i].u.name.dataConst = mics[i].u.name.dataConst;
|
||||
script->mics[i].u.name.dataWrite = mics[i].u.name.dataWrite;
|
||||
#if defined JS_PUNBOX64
|
||||
script->mics[i].patchValueOffset = mics[i].patchValueOffset;
|
||||
#endif
|
||||
@ -3565,6 +3566,7 @@ mjit::Compiler::jsop_setgname(uint32 index)
|
||||
|
||||
mic.u.name.typeConst = fe->isTypeKnown();
|
||||
mic.u.name.dataConst = fe->isConstant();
|
||||
mic.u.name.dataWrite = !mic.u.name.dataConst || !fe->getValue().isUndefined();
|
||||
|
||||
if (!mic.u.name.dataConst) {
|
||||
dataReg = frame.ownRegForData(fe);
|
||||
|
@ -101,6 +101,7 @@ class Compiler
|
||||
struct {
|
||||
bool typeConst;
|
||||
bool dataConst;
|
||||
bool dataWrite;
|
||||
} name;
|
||||
struct {
|
||||
uint32 pcOffs;
|
||||
|
@ -175,7 +175,8 @@ ic::SetGlobalName(VMFrame &f, uint32 index)
|
||||
dataOffset = MICInfo::SET_DATA_CONST_TYPE_OFFSET;
|
||||
else
|
||||
dataOffset = MICInfo::SET_DATA_TYPE_OFFSET;
|
||||
stores.repatch(mic.load.dataLabel32AtOffset(dataOffset), slot);
|
||||
if (mic.u.name.dataWrite)
|
||||
stores.repatch(mic.load.dataLabel32AtOffset(dataOffset), slot);
|
||||
#elif defined JS_PUNBOX64
|
||||
stores.repatch(mic.load.dataLabel32AtOffset(mic.patchValueOffset), slot);
|
||||
#endif
|
||||
|
@ -107,6 +107,7 @@ struct MICInfo {
|
||||
bool touched : 1;
|
||||
bool typeConst : 1;
|
||||
bool dataConst : 1;
|
||||
bool dataWrite : 1;
|
||||
} name;
|
||||
/* Used by CALL. */
|
||||
bool generated;
|
||||
|
Loading…
Reference in New Issue
Block a user