mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 534313 - nanojit: split isQuad() into isI64() + isF64() + is64() (TM-specific part). r=dvander.
This commit is contained in:
parent
402ef4a279
commit
126997f7d4
@ -1711,8 +1711,8 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
LIns *split(LIns *a) {
|
LIns *split(LIns *a) {
|
||||||
if (a->isQuad() && !a->isop(LIR_qjoin)) {
|
if (a->isF64() && !a->isop(LIR_qjoin)) {
|
||||||
// all quad-sized args must be qjoin's for soft-float
|
// all F64 args must be qjoin's for soft-float
|
||||||
a = ins2(LIR_qjoin, lo(a), hi(a));
|
a = ins2(LIR_qjoin, lo(a), hi(a));
|
||||||
}
|
}
|
||||||
return a;
|
return a;
|
||||||
@ -4309,7 +4309,7 @@ TraceRecorder::guard(bool expected, LIns* cond, VMSideExit* exit)
|
|||||||
|
|
||||||
if (!cond->isCond()) {
|
if (!cond->isCond()) {
|
||||||
expected = !expected;
|
expected = !expected;
|
||||||
cond = cond->isQuad() ? lir->ins_peq0(cond) : lir->ins_eq0(cond);
|
cond = cond->isI32() ? lir->ins_eq0(cond) : lir->ins_peq0(cond);
|
||||||
}
|
}
|
||||||
|
|
||||||
LIns* guardIns =
|
LIns* guardIns =
|
||||||
@ -4628,7 +4628,7 @@ class SlotMap : public SlotVisitorBase
|
|||||||
mRecorder.set(info.vp, mRecorder.f2i(mRecorder.get(info.vp)));
|
mRecorder.set(info.vp, mRecorder.f2i(mRecorder.get(info.vp)));
|
||||||
} else if (info.lastCheck == TypeCheck_Demote) {
|
} else if (info.lastCheck == TypeCheck_Demote) {
|
||||||
JS_ASSERT(info.type == TT_INT32 || info.type == TT_DOUBLE);
|
JS_ASSERT(info.type == TT_INT32 || info.type == TT_DOUBLE);
|
||||||
JS_ASSERT(mRecorder.get(info.vp)->isQuad());
|
JS_ASSERT(mRecorder.get(info.vp)->isF64());
|
||||||
|
|
||||||
/* Never demote this final i2f. */
|
/* Never demote this final i2f. */
|
||||||
mRecorder.set(info.vp, mRecorder.get(info.vp), false, false);
|
mRecorder.set(info.vp, mRecorder.get(info.vp), false, false);
|
||||||
@ -8463,7 +8463,7 @@ TraceRecorder::f2u(LIns* f)
|
|||||||
JS_REQUIRES_STACK LIns*
|
JS_REQUIRES_STACK LIns*
|
||||||
TraceRecorder::makeNumberInt32(LIns* f)
|
TraceRecorder::makeNumberInt32(LIns* f)
|
||||||
{
|
{
|
||||||
JS_ASSERT(f->isQuad());
|
JS_ASSERT(f->isF64());
|
||||||
LIns* x;
|
LIns* x;
|
||||||
if (!isPromote(f)) {
|
if (!isPromote(f)) {
|
||||||
x = f2i(f);
|
x = f2i(f);
|
||||||
@ -9622,7 +9622,7 @@ JS_REQUIRES_STACK LIns*
|
|||||||
TraceRecorder::box_jsval(jsval v, LIns* v_ins)
|
TraceRecorder::box_jsval(jsval v, LIns* v_ins)
|
||||||
{
|
{
|
||||||
if (isNumber(v)) {
|
if (isNumber(v)) {
|
||||||
JS_ASSERT(v_ins->isQuad());
|
JS_ASSERT(v_ins->isF64());
|
||||||
if (fcallinfo(v_ins) == &js_UnboxDouble_ci)
|
if (fcallinfo(v_ins) == &js_UnboxDouble_ci)
|
||||||
return fcallarg(v_ins, 0);
|
return fcallarg(v_ins, 0);
|
||||||
if (isPromoteInt(v_ins)) {
|
if (isPromoteInt(v_ins)) {
|
||||||
|
Loading…
Reference in New Issue
Block a user