diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2024-12-15 10:06:09 +0100 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2025-01-23 11:35:33 +0100 |
commit | 0360b781870a628379de20e03305c4e62dbdcca4 (patch) | |
tree | 3dd5e8959d83a2e31d420507cf4c868694666e0f /rust/qemu-api/src | |
parent | 365811602572054b1c1173b19e8fd28689d827d9 (diff) | |
download | qemu-0360b781870a628379de20e03305c4e62dbdcca4.zip qemu-0360b781870a628379de20e03305c4e62dbdcca4.tar.gz qemu-0360b781870a628379de20e03305c4e62dbdcca4.tar.bz2 |
target/i386: optimize CX handling in repeated string operations
In a repeated string operation, CX/ECX will be decremented until it
is 0 but never underflow. Use this observation to avoid a deposit or
zero-extend operation if the address size of the operation is smaller
than MO_TL.
As in the previous patch, the patch is structured to include some
preparatory work for subsequent changes. In particular, introducing
cx_next prepares for when ECX will be decremented *before* calling
fn(s, ot), and therefore cannot yet be written back to cpu_regs.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Link: https://lore.kernel.org/r/20241215090613.89588-11-pbonzini@redhat.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'rust/qemu-api/src')
0 files changed, 0 insertions, 0 deletions