зеркало из https://github.com/mozilla/gecko-dev.git
Bug 511012 - TM: don't use addName() and insStorei() together. r=gal.
This commit is contained in:
Родитель
aa2009ea62
Коммит
5e7453dfaa
|
@ -8166,29 +8166,26 @@ TraceRecorder::guardPropertyCacheHit(LIns* obj_ins,
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
TraceRecorder::stobj_set_fslot(LIns *obj_ins, unsigned slot, LIns* v_ins, const char *name)
|
TraceRecorder::stobj_set_fslot(LIns *obj_ins, unsigned slot, LIns* v_ins)
|
||||||
{
|
{
|
||||||
addName(lir->insStorei(v_ins, obj_ins, offsetof(JSObject, fslots) + slot * sizeof(jsval)),
|
lir->insStorei(v_ins, obj_ins, offsetof(JSObject, fslots) + slot * sizeof(jsval));
|
||||||
name);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
TraceRecorder::stobj_set_dslot(LIns *obj_ins, unsigned slot, LIns*& dslots_ins, LIns* v_ins,
|
TraceRecorder::stobj_set_dslot(LIns *obj_ins, unsigned slot, LIns*& dslots_ins, LIns* v_ins)
|
||||||
const char *name)
|
|
||||||
{
|
{
|
||||||
if (!dslots_ins)
|
if (!dslots_ins)
|
||||||
dslots_ins = lir->insLoad(LIR_ldp, obj_ins, offsetof(JSObject, dslots));
|
dslots_ins = lir->insLoad(LIR_ldp, obj_ins, offsetof(JSObject, dslots));
|
||||||
addName(lir->insStorei(v_ins, dslots_ins, slot * sizeof(jsval)), name);
|
lir->insStorei(v_ins, dslots_ins, slot * sizeof(jsval));
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
TraceRecorder::stobj_set_slot(LIns* obj_ins, unsigned slot, LIns*& dslots_ins, LIns* v_ins)
|
TraceRecorder::stobj_set_slot(LIns* obj_ins, unsigned slot, LIns*& dslots_ins, LIns* v_ins)
|
||||||
{
|
{
|
||||||
if (slot < JS_INITIAL_NSLOTS) {
|
if (slot < JS_INITIAL_NSLOTS) {
|
||||||
stobj_set_fslot(obj_ins, slot, v_ins, "set_slot(fslots)");
|
stobj_set_fslot(obj_ins, slot, v_ins);
|
||||||
} else {
|
} else {
|
||||||
stobj_set_dslot(obj_ins, slot - JS_INITIAL_NSLOTS, dslots_ins, v_ins,
|
stobj_set_dslot(obj_ins, slot - JS_INITIAL_NSLOTS, dslots_ins, v_ins);
|
||||||
"set_slot(dslots)");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9106,11 +9103,11 @@ TraceRecorder::newArray(JSObject* ctor, uint32 argc, jsval* argv, jsval* rval)
|
||||||
for (uint32 i = 0; i < argc && !alloc->outOfMemory(); i++) {
|
for (uint32 i = 0; i < argc && !alloc->outOfMemory(); i++) {
|
||||||
LIns *elt_ins = get(argv + i);
|
LIns *elt_ins = get(argv + i);
|
||||||
box_jsval(argv[i], elt_ins);
|
box_jsval(argv[i], elt_ins);
|
||||||
stobj_set_dslot(arr_ins, i, dslots_ins, elt_ins, "set_array_elt");
|
stobj_set_dslot(arr_ins, i, dslots_ins, elt_ins);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (argc > 0)
|
if (argc > 0)
|
||||||
stobj_set_fslot(arr_ins, JSSLOT_ARRAY_COUNT, INS_CONST(argc), "set_array_count");
|
stobj_set_fslot(arr_ins, JSSLOT_ARRAY_COUNT, INS_CONST(argc));
|
||||||
}
|
}
|
||||||
|
|
||||||
set(rval, arr_ins);
|
set(rval, arr_ins);
|
||||||
|
@ -11934,7 +11931,7 @@ TraceRecorder::record_JSOP_LAMBDA_FC()
|
||||||
return JSRS_STOP;
|
return JSRS_STOP;
|
||||||
box_jsval(v, upvar_ins);
|
box_jsval(v, upvar_ins);
|
||||||
LIns* dslots_ins = NULL;
|
LIns* dslots_ins = NULL;
|
||||||
stobj_set_dslot(call_ins, i, dslots_ins, upvar_ins, "fc upvar");
|
stobj_set_dslot(call_ins, i, dslots_ins, upvar_ins);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -12894,11 +12891,11 @@ TraceRecorder::record_JSOP_NEWARRAY()
|
||||||
count++;
|
count++;
|
||||||
LIns* elt_ins = get(&v);
|
LIns* elt_ins = get(&v);
|
||||||
box_jsval(v, elt_ins);
|
box_jsval(v, elt_ins);
|
||||||
stobj_set_dslot(v_ins, i, dslots_ins, elt_ins, "set_array_elt");
|
stobj_set_dslot(v_ins, i, dslots_ins, elt_ins);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (count > 0)
|
if (count > 0)
|
||||||
stobj_set_fslot(v_ins, JSSLOT_ARRAY_COUNT, INS_CONST(count), "set_array_count");
|
stobj_set_fslot(v_ins, JSSLOT_ARRAY_COUNT, INS_CONST(count));
|
||||||
|
|
||||||
stack(-int(len), v_ins);
|
stack(-int(len), v_ins);
|
||||||
return JSRS_CONTINUE;
|
return JSRS_CONTINUE;
|
||||||
|
|
|
@ -775,9 +775,9 @@ class TraceRecorder : public avmplus::GCObject {
|
||||||
jsuword& pcval);
|
jsuword& pcval);
|
||||||
|
|
||||||
void stobj_set_fslot(nanojit::LIns *obj_ins, unsigned slot,
|
void stobj_set_fslot(nanojit::LIns *obj_ins, unsigned slot,
|
||||||
nanojit::LIns* v_ins, const char *name);
|
nanojit::LIns* v_ins);
|
||||||
void stobj_set_dslot(nanojit::LIns *obj_ins, unsigned slot, nanojit::LIns*& dslots_ins,
|
void stobj_set_dslot(nanojit::LIns *obj_ins, unsigned slot, nanojit::LIns*& dslots_ins,
|
||||||
nanojit::LIns* v_ins, const char *name);
|
nanojit::LIns* v_ins);
|
||||||
void stobj_set_slot(nanojit::LIns* obj_ins, unsigned slot, nanojit::LIns*& dslots_ins,
|
void stobj_set_slot(nanojit::LIns* obj_ins, unsigned slot, nanojit::LIns*& dslots_ins,
|
||||||
nanojit::LIns* v_ins);
|
nanojit::LIns* v_ins);
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче