This patchset is largely aimed at rolling back the changes from an earlier patchset of mine: http://lists.gnu.org/archive/html/qemu-devel/2011-04/msg00244.html which made various Neon helper routines use the correct FP status flags by having them use the global env.
Since we've decided we're trying to get rid of the global CPUState pointer (at least in C code), patches 1, 5, 6 here are basically reverting patches 1,2,3 of that earlier patchset. In order not to throw the baby out with the bathwater, patches 2, 3, 4 make the helper routines which need to use the FP status take a pointer to the fp status word. (In a few cases we can then merge them with the equivalent VFP helpers.) This obviously still leaves some global CPUState use in op_helper.c, but it's a move in the right direction. v1->v2 changes: * rebased * fix TCGv_ptr/TCGv_i32 bug when getting fpstatus pointer * correct the generated call to helper_vfp_mul* in gen_vfp_F1_mul() (accidentally omitted from v1, causing VMLA/VNMLS bugs) Peter Maydell (6): Revert "target-arm: Use global env in iwmmxt_helper.c helpers" target-arm: Add helper function to generate code to get fpstatus pointer target-arm: Make VFP binop helpers take pointer to fpstatus, not CPUState target-arm: Pass fp status pointer explicitly to neon fp helpers Revert "target-arm: Use global env in neon_helper.c helpers" Revert "Makefile.target: Allow target helpers to be in any *_helper.c file" Makefile.target | 2 +- target-arm/helper.c | 10 +- target-arm/helper.h | 293 +++++++++++++++--------------- target-arm/iwmmxt_helper.c | 80 +++++---- target-arm/neon_helper.c | 201 ++++++++++----------- target-arm/translate.c | 437 ++++++++++++++++++++++++++------------------ 6 files changed, 558 insertions(+), 465 deletions(-)