tcg-arm: Split out tcg_out_tlb_read
Share code between qemu_ld and qemu_st to process the tlb.
Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg-arm: Improve scheduling of tcg_out_tlb_read
The schedule was fully serial, with no possibility for dual issue.The old schedule had a minimal issue of 7 cycles; the new schedulehas a minimal issue of 5 cycles.
Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg-arm: Delete the 'S' constraint
After the previous patch, 's' and 'S' are the same.
tcg-arm: Use movi32 + blx for calls on v7
Work better with branch predition when we have movw+movt,as the size of the code is the same. Perhaps re-evaluatewhen we have a proper constant pool.
tcg-arm: Implement deposit for armv7
We have BFI and BFC available for implementing it.
tcg-arm: Implement division instructions
An armv7 extension implements division, present on Cortex A15.
tcg-arm: Use TCG_REG_TMP name for the tcg temporary
Don't hard-code R8.
tcg-arm: Use R12 for the tcg temporary
R12 is call clobbered, while R8 is call saved. This changegives tcg one more call saved register for real data.
tcg-arm: Cleanup multiply subroutines
Make the code more readable by only having one copy of the magicnumbers, swapping registers as needed prior to that. Speed thecompiler by not applying the rd == rn avoidance for v6 or later.
Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>...
tcg-arm: Cleanup most primitive load store subroutines
Use even more primitive helper functions to avoid lots of duplicated code.
View revisions
Also available in: Atom