|
From: Josef W. <Jos...@gm...> - 2014-04-28 13:00:19
|
Am 28.04.2014 13:57, schrieb Huanghao (Alex, SingleAS): > / argv = mkIRExprVec_2( addr, data);/ > / di = unsafeIRDirty_0_N( 2/*regparms*/,/ > / hName, VG_(fnptr_to_fnentry)( hAddr ),/ > / argv ); / > / addStmtToIRSB( sbOut, IRStmt_Dirty(di) );/ > /vex: priv/host_amd64_isel.c:627 (doHelperCall): Assertion > `typeOfIRExpr(env->type_env, args[i]) == Ity_I64' failed./ >From the error: obviously, a dirty helper on amd64 only accepts arguments which have a size of 64 bit. For addresses, this is correct. But data may have different size. You must add a VEX instruction which extends your data to 64bit before using it as argument for a dirty helper. Josef |