|
From: <sv...@va...> - 2012-08-08 14:11:43
|
cborntra 2012-08-08 15:11:33 +0100 (Wed, 08 Aug 2012)
New Revision: 2464
Log:
fix the put optimization. It is ok to have F-types in the CC_*
registers, dont assert, just use the slow path.
Modified files:
trunk/priv/host_s390_isel.c
Modified: trunk/priv/host_s390_isel.c (+4 -3)
===================================================================
--- trunk/priv/host_s390_isel.c 2012-08-06 19:33:21 +01:00 (rev 2463)
+++ trunk/priv/host_s390_isel.c 2012-08-08 15:11:33 +01:00 (rev 2464)
@@ -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;
|