On Tue, 2013-12-24 at 07:17 -0800, Richard Henderson wrote: > On 12/18/2013 12:48 PM, Tom Musta wrote: > > +DEF_HELPER_3(bpermd, i64, env, i64, i64) > > Should be DEF_HELPER_FLAGS_2(bpermd, TCG_CALL_NO_RWG_SE, i64, i64, i64) > > > +uint64_t helper_bpermd(CPUPPCState *env, uint64_t rs, uint64_t rb) > > +{ > > + int i; > > + uint64_t ra = 0; > > + > > + for (i = 0; i < 8; i++) { > > + int index = (rs >> (i*8)) & 0xFF; > > + if (index < 64) { > > + if (rb & (1ul << (63-index))) { > > + ra |= 1 << i; > > + } > > + } > > + } > > + return ra; > > +} > > + > > You don't need env as an argument; it's unused. > > Why is all of this specific to ppc64? Can't you run an ISA2.06B machine in > 32-bit mode?
bpermd is a 64-bit instruction. 32-bit implementations do not have it. -Scott