зеркало из https://github.com/mozilla/gecko-dev.git
Backed out changeset 5f64a0d18e53
This commit is contained in:
Родитель
085515db7e
Коммит
408d4afb78
|
@ -5020,8 +5020,6 @@ TraceRecorder::test_property_cache(JSObject* obj, LIns* obj_ins, JSObject*& obj2
|
||||||
JS_ASSERT(cx->requestDepth);
|
JS_ASSERT(cx->requestDepth);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
LIns* exit = snapshot(BRANCH_EXIT);
|
|
||||||
|
|
||||||
// Emit guard(s), common code for both hit and miss cases.
|
// Emit guard(s), common code for both hit and miss cases.
|
||||||
// Check for first-level cache hit and guard on kshape if possible.
|
// Check for first-level cache hit and guard on kshape if possible.
|
||||||
// Otherwise guard on key object exact match.
|
// Otherwise guard on key object exact match.
|
||||||
|
@ -5029,9 +5027,8 @@ TraceRecorder::test_property_cache(JSObject* obj, LIns* obj_ins, JSObject*& obj2
|
||||||
if (aobj != globalObj) {
|
if (aobj != globalObj) {
|
||||||
LIns* shape_ins = addName(lir->insLoad(LIR_ld, map_ins, offsetof(JSScope, shape)),
|
LIns* shape_ins = addName(lir->insLoad(LIR_ld, map_ins, offsetof(JSScope, shape)),
|
||||||
"shape");
|
"shape");
|
||||||
guard(true,
|
guard(true, addName(lir->ins2i(LIR_eq, shape_ins, entry->kshape), "guard(kshape)"),
|
||||||
addName(lir->ins2i(LIR_eq, shape_ins, entry->kshape), "guard(kshape)"),
|
MISMATCH_EXIT);
|
||||||
exit);
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
|
@ -5043,9 +5040,8 @@ TraceRecorder::test_property_cache(JSObject* obj, LIns* obj_ins, JSObject*& obj2
|
||||||
JS_ASSERT(entry->kshape == jsuword(aobj));
|
JS_ASSERT(entry->kshape == jsuword(aobj));
|
||||||
#endif
|
#endif
|
||||||
if (aobj != globalObj) {
|
if (aobj != globalObj) {
|
||||||
guard(true,
|
guard(true, addName(lir->ins2i(LIR_eq, obj_ins, entry->kshape), "guard(kobj)"),
|
||||||
addName(lir->ins2i(LIR_eq, obj_ins, entry->kshape), "guard(kobj)"),
|
MISMATCH_EXIT);
|
||||||
exit);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5060,7 +5056,7 @@ TraceRecorder::test_property_cache(JSObject* obj, LIns* obj_ins, JSObject*& obj2
|
||||||
if (PCVCAP_TAG(entry->vcap) == 1) {
|
if (PCVCAP_TAG(entry->vcap) == 1) {
|
||||||
// Duplicate the special case in PROPERTY_CACHE_TEST.
|
// Duplicate the special case in PROPERTY_CACHE_TEST.
|
||||||
obj2_ins = stobj_get_fslot(obj_ins, JSSLOT_PROTO);
|
obj2_ins = stobj_get_fslot(obj_ins, JSSLOT_PROTO);
|
||||||
guard(false, lir->ins_eq0(obj2_ins), exit);
|
guard(false, lir->ins_eq0(obj2_ins), MISMATCH_EXIT);
|
||||||
} else {
|
} else {
|
||||||
obj2_ins = INS_CONSTPTR(obj2);
|
obj2_ins = INS_CONSTPTR(obj2);
|
||||||
}
|
}
|
||||||
|
@ -5072,7 +5068,7 @@ TraceRecorder::test_property_cache(JSObject* obj, LIns* obj_ins, JSObject*& obj2
|
||||||
"shape");
|
"shape");
|
||||||
guard(true,
|
guard(true,
|
||||||
addName(lir->ins2i(LIR_eq, shape_ins, vshape), "guard(vshape)"),
|
addName(lir->ins2i(LIR_eq, shape_ins, vshape), "guard(vshape)"),
|
||||||
exit);
|
MISMATCH_EXIT);
|
||||||
}
|
}
|
||||||
|
|
||||||
pcval = entry->vword;
|
pcval = entry->vword;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче