OSDN Git Service

tcg/arm: Fix broken CONFIG_TCG_PASS_AREG0 code
authorPeter Maydell <peter.maydell@linaro.org>
Sun, 26 Aug 2012 13:40:02 +0000 (14:40 +0100)
committerBlue Swirl <blauwirbel@gmail.com>
Sun, 26 Aug 2012 18:14:46 +0000 (18:14 +0000)
commit9716ef3b1b48ebbb4b6515fb4685a5db96ce41d9
tree9a67fcef37b5a88066f63483b64eb62ce068218a
parentf278d4947fff814dcde2ef2acad36d172ff8be35
tcg/arm: 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.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
tcg/arm/tcg-target.c