From: Julian Seward Date: Sat, 13 Aug 2005 23:58:34 +0000 (+0000) Subject: Handle Iop_Sar16, so that front end amd64 "cwtd" does not bomb. X-Git-Tag: svn/VALGRIND_3_1_1^2~143 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8b6f59a55d391ea1d7a4c39b4a2d0cc357c4bd62;p=thirdparty%2Fvalgrind.git Handle Iop_Sar16, so that front end amd64 "cwtd" does not bomb. git-svn-id: svn://svn.valgrind.org/vex/trunk@1333 --- diff --git a/VEX/priv/host-amd64/isel.c b/VEX/priv/host-amd64/isel.c index 5ead7c4d8b..66588dda70 100644 --- a/VEX/priv/host-amd64/isel.c +++ b/VEX/priv/host-amd64/isel.c @@ -913,14 +913,14 @@ static HReg iselIntExpr_R_wrk ( ISelEnv* env, IRExpr* e ) case Iop_Shr32: addInstr(env, AMD64Instr_MovZLQ(dst,dst)); break; -//.. case Iop_Sar8: -//.. addInstr(env, X86Instr_Sh32(Xsh_SHL, 24, X86RM_Reg(dst))); -//.. addInstr(env, X86Instr_Sh32(Xsh_SAR, 24, X86RM_Reg(dst))); -//.. break; -//.. case Iop_Sar16: -//.. addInstr(env, X86Instr_Sh32(Xsh_SHL, 16, X86RM_Reg(dst))); -//.. addInstr(env, X86Instr_Sh32(Xsh_SAR, 16, X86RM_Reg(dst))); -//.. break; + case Iop_Sar8: + addInstr(env, AMD64Instr_Sh64(Ash_SHL, 56, dst)); + addInstr(env, AMD64Instr_Sh64(Ash_SAR, 56, dst)); + break; + case Iop_Sar16: + addInstr(env, AMD64Instr_Sh64(Ash_SHL, 48, dst)); + addInstr(env, AMD64Instr_Sh64(Ash_SAR, 48, dst)); + break; case Iop_Sar32: addInstr(env, AMD64Instr_Sh64(Ash_SHL, 32, dst)); addInstr(env, AMD64Instr_Sh64(Ash_SAR, 32, dst));