From: Christian Borntraeger Date: Wed, 8 Aug 2012 14:11:33 +0000 (+0000) Subject: fix the put optimization. It is ok to have F-types in the CC_* X-Git-Tag: svn/VALGRIND_3_8_1^2~14 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=68c179fb2d5c91823115662ab8a58fe00c8d07a4;p=thirdparty%2Fvalgrind.git 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 --- diff --git a/VEX/priv/host_s390_isel.c b/VEX/priv/host_s390_isel.c index aacf4b453d..6d019713ba 100644 --- a/VEX/priv/host_s390_isel.c +++ b/VEX/priv/host_s390_isel.c @@ -2297,10 +2297,11 @@ s390_isel_stmt(ISelEnv *env, IRStmt *stmt) 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;