mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 520714 - nanojit: distinguish 64-bit int and float loads/stores (TM-specific part). r=gal.
This commit is contained in:
parent
3267ce577e
commit
35c7cbbb81
@ -487,7 +487,7 @@ TraceRecorder::slurpDownFrames(jsbytecode* return_pc)
|
||||
rval_ins = lir->insLoad(LIR_ld, lirbuf->sp, exit->sp_adj - sizeof(double));
|
||||
break;
|
||||
case TT_DOUBLE:
|
||||
rval_ins = lir->insLoad(LIR_ldq, lirbuf->sp, exit->sp_adj - sizeof(double));
|
||||
rval_ins = lir->insLoad(LIR_ldf, lirbuf->sp, exit->sp_adj - sizeof(double));
|
||||
break;
|
||||
case TT_FUNCTION:
|
||||
case TT_OBJECT:
|
||||
|
@ -3504,7 +3504,7 @@ TraceRecorder::import(LIns* base, ptrdiff_t offset, jsval* p, JSTraceType t,
|
||||
} else {
|
||||
JS_ASSERT_IF(t != TT_JSVAL, isNumber(*p) == (t == TT_DOUBLE));
|
||||
if (t == TT_DOUBLE) {
|
||||
ins = lir->insLoad(LIR_ldq, base, offset);
|
||||
ins = lir->insLoad(LIR_ldf, base, offset);
|
||||
} else if (t == TT_PSEUDOBOOLEAN) {
|
||||
ins = lir->insLoad(LIR_ld, base, offset);
|
||||
} else {
|
||||
@ -3770,7 +3770,7 @@ TraceRecorder::set(jsval* p, LIns* i, bool initializing, bool demote)
|
||||
x = writeBack(i, lirbuf->sp, nativespOffset(p), demote);
|
||||
nativeFrameTracker.set(p, x);
|
||||
} else {
|
||||
JS_ASSERT(x->isop(LIR_sti) || x->isop(LIR_stqi));
|
||||
JS_ASSERT(x->isop(LIR_sti) || x->isop(LIR_stqi) || x->isop(LIR_stfi));
|
||||
|
||||
int disp;
|
||||
LIns *base = x->oprnd2();
|
||||
@ -12273,7 +12273,7 @@ LIns* TraceRecorder::stackLoad(LIns* base, uint8 type)
|
||||
LOpcode loadOp;
|
||||
switch (type) {
|
||||
case TT_DOUBLE:
|
||||
loadOp = LIR_ldq;
|
||||
loadOp = LIR_ldf;
|
||||
break;
|
||||
case TT_OBJECT:
|
||||
case TT_STRING:
|
||||
|
Loading…
Reference in New Issue
Block a user