Deal with backend case of 1Sto64



git-svn-id: svn://svn.valgrind.org/vex/trunk@1505 8f6e269a-dfd6-0310-a8e1-e2731360e62c
diff --git a/priv/host-ppc32/isel.c b/priv/host-ppc32/isel.c
index 0ea8577..13a5c6d 100644
--- a/priv/host-ppc32/isel.c
+++ b/priv/host-ppc32/isel.c
@@ -1582,6 +1582,17 @@
                                 r_dst, r_dst, PPCRH_Imm(False,31)));
          return r_dst;
       }
+      case Iop_1Sto64: {
+         /* could do better than this, but for now ... */
+         HReg        r_dst = newVRegI(env);
+         PPCCondCode cond  = iselCondCode(env, e->Iex.Unop.arg);
+         addInstr(env, PPCInstr_Set(cond,r_dst));
+         addInstr(env, PPCInstr_Shft(Pshft_SHL, False/*64bit shift*/,
+                                     r_dst, r_dst, PPCRH_Imm(False,63)));
+         addInstr(env, PPCInstr_Shft(Pshft_SAR, False/*64bit shift*/,
+                                     r_dst, r_dst, PPCRH_Imm(False,63)));
+         return r_dst;
+      }
       case Iop_Clz32:
       case Iop_Clz64: {
          PPCUnaryOp op_clz = (op_unop == Iop_Clz32) ? Pun_CLZ32 :