target-arm: Split DISAS_YIELD from DISAS_WFE
commit049e24a191c212d9468db84169197887f2c91586
authorPeter Maydell <peter.maydell@linaro.org>
Mon, 6 Jul 2015 09:05:44 +0000 (6 10:05 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Mon, 6 Jul 2015 09:05:44 +0000 (6 10:05 +0100)
treea3e485b8175ffb43636ec5556ff2e4ebc558a6d0
parenta7ffaf5c96e26820edffa94eeac766fe60bfdd31
target-arm: Split DISAS_YIELD from DISAS_WFE

Currently we use DISAS_WFE for both WFE and YIELD instructions.
This is functionally correct because at the moment both of them
are implemented as "yield this CPU back to the top level loop so
another CPU has a chance to run". However it's rather confusing
that YIELD ends up calling HELPER(wfe), and if we ever want to
implement real behaviour for WFE and SEV it's likely to trip us up.

Split out the yield codepath to use DISAS_YIELD and a new
HELPER(yield) function, and have HELPER(wfe) call HELPER(yield).

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 1435672316-3311-2-git-send-email-peter.maydell@linaro.org
Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
target-arm/helper.h
target-arm/op_helper.c
target-arm/translate-a64.c
target-arm/translate.h