summary refs log tree commit diff stats
path: root/rust/qemu-api/src/callbacks.rs
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2024-12-15 10:06:07 +0100
committerPaolo Bonzini <pbonzini@redhat.com>2025-01-23 11:35:33 +0100
commit6986cf003226ddf7e5af36a9f4f033cb16c8636c (patch)
treecf6f1c567f53acc646034fa796596671bcf606ce /rust/qemu-api/src/callbacks.rs
parent0d82d9e84644ecee3e626bdf204e9847ffe10bce (diff)
downloadfocaccia-qemu-6986cf003226ddf7e5af36a9f4f033cb16c8636c.tar.gz
focaccia-qemu-6986cf003226ddf7e5af36a9f4f033cb16c8636c.zip
target/i386: make cc_op handling more explicit for repeated string instructions.
Since the cost of gen_update_cc_op() must be paid anyway, it's easier
to place them manually and not rely on spilling that is buried under
multiple levels of function calls.  While at it, clarify the circumstances
in which the gen_update_cc_op() is needed, and why it is not for REPxx
SCAS and REPxx CMPS.

And since cc_op will have been spilled at the point of a fault, just
make the whole insn CC_OP_DYNAMIC.  Once repz_opt is reintroduced,
a fault could happen either before or after the first execution of
CMPS/SCAS, and CC_OP_DYNAMIC sidesteps the complicated matter of what
x86_restore_state_to_opc would do.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Link: https://lore.kernel.org/r/20241215090613.89588-9-pbonzini@redhat.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'rust/qemu-api/src/callbacks.rs')
0 files changed, 0 insertions, 0 deletions