]> git.ipfire.org Git - thirdparty/qemu.git/commit
tcg/mips: fix broken CONFIG_TCG_PASS_AREG0 code
authorAurelien Jarno <aurelien@aurel32.net>
Mon, 27 Aug 2012 20:13:27 +0000 (22:13 +0200)
committerMichael Roth <mdroth@linux.vnet.ibm.com>
Tue, 28 Aug 2012 19:38:44 +0000 (14:38 -0500)
commit69c67eca97298c37b084ddd6c961625079682579
tree4b5cff2153e6b49ac88d70b24a38c46ed1f8cdb3
parent256c89943262c4a10f4a1604d73918d37adad24e
tcg/mips: fix broken CONFIG_TCG_PASS_AREG0 code

The CONFIG_TCG_PASS_AREG0 code for calling ld/st helpers was
broken in that it did not respect the ABI requirement that 64
bit values were passed in even-odd register pairs. The simplest
way to fix this is to implement some new utility functions
for marshalling function arguments into the correct registers
and stack, so that the code which sets up the address and
data arguments does not need to care whether there has been
a preceding env argument.

Based on commit 9716ef3b for ARM by Peter Maydell.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
(cherry picked from commit 18fec301cd2a38f72a5eeba2656a0c5b4fa69fb7)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
tcg/mips/tcg-target.c