]> git.proxmox.com Git - qemu.git/commit - target-mips/translate.c
target-mips: Fix accumulator selection for MIPS16 and microMIPS
authorRichard Sandiford <rdsandiford@googlemail.com>
Mon, 21 Jan 2013 20:43:31 +0000 (20:43 +0000)
committerAurelien Jarno <aurelien@aurel32.net>
Tue, 5 Mar 2013 00:02:09 +0000 (01:02 +0100)
commit26135ead80fa1fd13e95c162dacfd06f2ba82981
treef70e76d296af77b1d891653966e1ddc568ee7fdf
parent54b2f42cb1eef758b6070e805a5d6f7a84315ace
target-mips: Fix accumulator selection for MIPS16 and microMIPS

Add accumulator arguments to gen_HILO and gen_muldiv, rather than
extracting the accumulator directly from ctx->opcode.  The extraction
was only right for the standard encoding: MIPS16 doesn't have access
to the DSP registers, while microMIPS encodes the accumulator register
in a different field (bits 14 and 15).

Passing the accumulator register is probably an over-generalisation
for division and 64-bit multiplication, which never access anything
other than HI and LO, and which always pass 0 as the new argument.
Separating them felt a bit fussy though.

Signed-off-by: Richard Sandiford <rdsandiford@googlemail.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
target-mips/translate.c