fix the put optimization. It is ok to have F-types in the CC_*
registers, dont assert, just use the slow path.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2464 8f6e269a-dfd6-0310-a8e1-e2731360e62c
diff --git a/priv/host_s390_isel.c b/priv/host_s390_isel.c
index aacf4b4..6d01971 100644
--- a/priv/host_s390_isel.c
+++ b/priv/host_s390_isel.c
@@ -2297,10 +2297,11 @@
goto not_special;
}
- /* OK. Necessary conditions are satisfied. */
+ /* We can only handle Ity_I64, but the CC_DEPS field can have floats */
+ if (tyd != Ity_I64)
+ goto not_special;
- /* Get the old value and update it */
- vassert(tyd == Ity_I64);
+ /* OK. Necessary conditions are satisfied. */
old_value = env->old_value[guest_reg];
new_value = stmt->Ist.Put.data->Iex.Const.con->Ico.U64;