summaryrefslogtreecommitdiffstats
path: root/fsdev
diff options
context:
space:
mode:
authorRichard Henderson2012-09-20 18:51:40 +0200
committerRichard Henderson2013-01-05 21:18:46 +0100
commitc95ec459c6c39b7a7e1850f82abd95eca4ccfcce (patch)
tree366fc1d5ba63b9fa304e2d520c9eb2fa568c6ca5 /fsdev
parenttarget-s390: Optimize ADDU/SUBU CC testing (diff)
downloadqemu-c95ec459c6c39b7a7e1850f82abd95eca4ccfcce.tar.gz
qemu-c95ec459c6c39b7a7e1850f82abd95eca4ccfcce.tar.xz
qemu-c95ec459c6c39b7a7e1850f82abd95eca4ccfcce.zip
target-s390: Optimize ADDC/SUBB
Giving the proper mask to disas_jcc allows us to generate an inline comparison generating the carry/borrow with setcond. In the very worst case, when we must use the external helper to compute a value for CC, we generate (cc > 1) instead of (cc >> 1), which is only very slightly slower on common cpus. In the very best case, when the CC comes from a COMPARE insn and the compiler is using ALCG with zero, everything folds out to become just the setcond that the compiler wanted. Signed-off-by: Richard Henderson <rth@twiddle.net>
Diffstat (limited to 'fsdev')
0 files changed, 0 insertions, 0 deletions