}
-/* Generate IR that takes an I64 and sign- or zero- widens each
- lane, giving a V128 value. */
-static
-IRTemp math_WIDEN_LANES ( Bool zWiden, UInt sizeNarrow, IRExpr* srcE )
-{
- IRTemp src = newTemp(Ity_I64);
- assign(src, srcE);
- return math_WIDEN_LO_OR_HI_LANES(
- zWiden,
- False/*!fromUpperHalf*/,
- sizeNarrow,
- binop(Iop_64HLtoV128, mkexpr(src), mkexpr(src))
- );
-}
-
-
/* Return a temp which holds the vector dup of the lane of width
(1 << size) obtained from src[laneNo]. */
static
start of each insn, but nevertheless be paranoid and update
it again right now. */
putPC( mkU64(guest_PC_curr_instr) );
- dres.whatNext = Dis_StopHere;
dres.len = 0;
- dres.continueAt = 0;
+ dres.whatNext = Dis_StopHere;
dres.jk_StopHere = Ijk_NoDecode;
+ dres.continueAt = 0;
}
return dres;
}
now. */
vassert(0 == (guest_R15_curr_instr_notENC & 3));
llPutIReg( 15, mkU32(guest_R15_curr_instr_notENC) );
+ dres.len = 0;
dres.whatNext = Dis_StopHere;
dres.jk_StopHere = Ijk_NoDecode;
- dres.len = 0;
+ dres.continueAt = 0;
return dres;
decode_success:
now. */
vassert(0 == (guest_R15_curr_instr_notENC & 1));
llPutIReg( 15, mkU32(guest_R15_curr_instr_notENC | 1) );
+ dres.len = 0;
dres.whatNext = Dis_StopHere;
dres.jk_StopHere = Ijk_NoDecode;
- dres.len = 0;
+ dres.continueAt = 0;
return dres;
decode_success:
insn, but nevertheless be paranoid and update it again right
now. */
putGST( PPC_GST_CIA, mkSzImm(ty, guest_CIA_curr_instr) );
+ dres.len = 0;
dres.whatNext = Dis_StopHere;
dres.jk_StopHere = Ijk_NoDecode;
- dres.len = 0;
+ dres.continueAt = 0;
return dres;
-
} /* switch (opc) for the main (primary) opcode switch. */
decode_success:
ty = mode64 ? Ity_I64 : Ity_I32;
if (!mode64 && (host_endness_IN == VexEndnessLE)) {
vex_printf("disInstr(ppc): Little Endian 32-bit mode is not supported\n");
+ dres.len = 0;
dres.whatNext = Dis_StopHere;
dres.jk_StopHere = Ijk_NoDecode;
- dres.len = 0;
dres.continueAt = 0;
return dres;
}
incorrect address. */
put_IA(mkaddr_expr(guest_IA_curr_instr));
+ dres.len = 0;
dres.whatNext = Dis_StopHere;
dres.jk_StopHere = Ijk_NoDecode;
dres.continueAt = 0;
- dres.len = 0;
} else {
/* Decode success */
switch (dres.whatNext) {