|
From: Christian B. <bor...@de...> - 2012-08-08 08:44:58
|
Florian,
are you ok with this fix?
Index: VEX/priv/host_s390_isel.c
===================================================================
--- VEX/priv/host_s390_isel.c (revision 2463)
+++ VEX/priv/host_s390_isel.c (working copy)
@@ -2297,11 +2297,12 @@
goto not_special;
}
+ /* We can only handle Ity_I64, but the CC_DEPS field can have floats */
+ if (tyd != Ity_I64)
+ goto not_special;
+
/* OK. Necessary conditions are satisfied. */
- /* Get the old value and update it */
- vassert(tyd == Ity_I64);
-
old_value = env->old_value[guest_reg];
new_value = stmt->Ist.Put.data->Iex.Const.con->Ico.U64;
env->old_value[guest_reg] = new_value;
Christian
|
|
From: Florian K. <br...@ac...> - 2012-08-08 14:05:08
|
On 08/08/2012 04:44 AM, Christian Borntraeger wrote: > Florian, > > are you ok with this fix? Yes, this is OK and should go in. Julian, is it OK to check this s390-specific patch into trunk? This affects programs using floating point that would possibly run into an assert, that was too strict.. Florian > > Index: VEX/priv/host_s390_isel.c > =================================================================== > --- VEX/priv/host_s390_isel.c (revision 2463) > +++ VEX/priv/host_s390_isel.c (working copy) > @@ -2297,11 +2297,12 @@ > goto not_special; > } > > + /* We can only handle Ity_I64, but the CC_DEPS field can have floats */ > + if (tyd != Ity_I64) > + goto not_special; > + > /* OK. Necessary conditions are satisfied. */ > > - /* Get the old value and update it */ > - vassert(tyd == Ity_I64); > - > old_value = env->old_value[guest_reg]; > new_value = stmt->Ist.Put.data->Iex.Const.con->Ico.U64; > env->old_value[guest_reg] = new_value; > > > Christian > > |