Hi, On Mon, 18 Nov 2013, Peter Maydell wrote:
> >> >> + case 3: > >> >> + tcg_gen_rotr_i64(r, cpu_reg(reg), tcg_shift); > >> >> + break; > >> > > >> > Incorrect rotate for 32bit? > > > > 32bit rotates and shifts were fixed in a patch later than the 60er series > > Alex posted. See attached. (Generally there are many fixes to emulated > > instructions in that branch) > > I think we're going to need to look through and fold in those fixes, > otherwise we'll end up reduplicating that work in the course of code > review :-( Most probably. Authorship will be lost :-/ I was planning to submit all of these once the 60er set of Alex would be applied. If you're reworking that set more of less completely then it indeed makes more sense to fold in those things and so it'd probably be better to have them applied (i.e. basically have our full branch applied when dissecting things). The commits that fix things in the a64 decoder proper (not the linux-user implementation) would be: e14c1a5 softfloat: correctly handle overflow in float[32|64] to uint64 conversion cbc98b1 aarch64: Fix FCVTZU for single float a91f762 aarch64: Fix UZP/ZIP/TRN 644c748 aarch64: Fix 32bit TST 2a717e8 Fix FCVTAS and FCVTAU 0dd22d0 Fix decoding of floating<->fixed conversions d52c999 Fix implementation of USHLL/SSHLL cfbb9e1 Fix using uninitialized value ecfdfcd Fix typo in FSUB detection 87fd8ca Increase MAX_OP_PER_INSTR 38452d8 Fix USHLL, and implement other SIMD shifts 4146d40 Fix INS element a62437c Fix fcmp(e) with NaNs ec2b8f3 softfloat: Fix float64_to_uint64 b003867 Fix EXTR for 32bit df54486 Fix 32bit rotates. 33137f8 Fix the pstate flags helpers 75cb838 Don't set flush to zero by default 564e811 Fix 128bit ldr (literal) 0ff91a0 Fix long immediate constants (That's all on top Alex' posted patchset but not git rebased onto it, top of Alex roughly corresponds to commit 40d66b61) Ciao, Michael.