On 03/08/13 23:01, Aurelien Jarno wrote: > On Thu, Aug 01, 2013 at 11:02:27AM +0100, Leon Alrae wrote: >> These are not DSP instructions, thus there is no "ac" field. >> >> For more details please refer to instruction encoding of >> MULT, MULTU, MADD, MADDU, MSUB, MSUBU, MFHI, MFLO, MTHI, MTLO in >> MIPS Architecture for Programmers Volume II-B: The microMIPS32 Instruction >> Set > > These instructions have both a non DSP version without the "ac" field, > and a DSP version with the "ac" field. The encoding of the "ac" field is > done in bits 14 and 15, so the current QEMU code is correct. > > Please refer to the MIPS32® Architecture Manual Volume IV-e: The > MIPS® DSP Application-Specific Extension to the microMIPS32® > Architecture (document MD00764). >
Please note that the patch modifies non-DSP version of listed instructions, where "ac" field doesn't exist. In this case reading bits 14 and 15 and passing it as acc argument to gen_muldiv() or gen_HILO() is not correct. If those bits are not 0 (and for most of the listed instructions this is true) then check_dsp() is called which will cause an exception if DSP is not supported / disabled.
