These patches implement movcond_i32 for the ARM TCG backend; we emit "mov dst, v2; cmp c1, c2; movcc dst, v1". We could have done this with a pair of conditional movs, but (a) this is not actually any shorter (b) it means we don't get the common TCG code doing the work of avoiding "mov reg to itself" (c) conditional moves aren't quite as free as they used to be on the ARM7.
(Tested using Aurelien's movcond-shift patches on the ARM frontend as something that will generate enough movconds.) Peter Maydell (2): tcg/arm: Factor out code to emit immediate or reg-reg op tcg/arm: Implement movcond_i32 tcg/arm/tcg-target.c | 56 +++++++++++++++++++++++++++----------------------- tcg/arm/tcg-target.h | 2 +- 2 files changed, 31 insertions(+), 27 deletions(-) -- 1.7.9.5