[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH stable-1.1 09/26] target-xtensa: fix CCOUNT for cond
From: |
Michael Roth |
Subject: |
[Qemu-devel] [PATCH stable-1.1 09/26] target-xtensa: fix CCOUNT for conditional branches |
Date: |
Fri, 22 Jun 2012 19:33:13 -0500 |
From: Max Filippov <address@hidden>
Taken conditional branches fail to update CCOUNT register because
accumulated ccount_delta is reset during translation of non-taken
branch. To fix it only update CCOUNT once per conditional branch
instruction translation.
This fixes guest linux freeze on LTP waitpid06 test.
Signed-off-by: Max Filippov <address@hidden>
Signed-off-by: Blue Swirl <address@hidden>
---
target-xtensa/translate.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/target-xtensa/translate.c b/target-xtensa/translate.c
index 521c0e6..a542a31 100644
--- a/target-xtensa/translate.c
+++ b/target-xtensa/translate.c
@@ -388,6 +388,7 @@ static bool gen_check_loop_end(DisasContext *dc, int slot)
dc->next_pc == dc->lend) {
int label = gen_new_label();
+ gen_advance_ccount(dc);
tcg_gen_brcondi_i32(TCG_COND_EQ, cpu_SR[LCOUNT], 0, label);
tcg_gen_subi_i32(cpu_SR[LCOUNT], cpu_SR[LCOUNT], 1);
gen_jumpi(dc, dc->lbeg, slot);
@@ -410,6 +411,7 @@ static void gen_brcond(DisasContext *dc, TCGCond cond,
{
int label = gen_new_label();
+ gen_advance_ccount(dc);
tcg_gen_brcond_i32(cond, t0, t1, label);
gen_jumpi_check_loop_end(dc, 0);
gen_set_label(label);
--
1.7.4.1
- [Qemu-devel] [PATCH stable-1.1 00/26] Initial tree and candidates for stable-1.1, Michael Roth, 2012/06/22
- [Qemu-devel] [PATCH stable-1.1 01/26] virtio-blk: Fix geometry sector calculation, Michael Roth, 2012/06/22
- [Qemu-devel] [PATCH stable-1.1 02/26] target-xtensa: flush TLB page for new MMU mapping, Michael Roth, 2012/06/22
- [Qemu-devel] [PATCH stable-1.1 03/26] target-xtensa: update EXCVADDR in case of page table lookup, Michael Roth, 2012/06/22
- [Qemu-devel] [PATCH stable-1.1 04/26] target-xtensa: extract TLB entry setting method, Michael Roth, 2012/06/22
- [Qemu-devel] [PATCH stable-1.1 05/26] target-xtensa: update autorefill TLB entries conditionally, Michael Roth, 2012/06/22
- [Qemu-devel] [PATCH stable-1.1 06/26] target-xtensa: control page table lookup explicitly, Michael Roth, 2012/06/22
- [Qemu-devel] [PATCH stable-1.1 07/26] target-xtensa: add MMU pagewalking tests, Michael Roth, 2012/06/22
- [Qemu-devel] [PATCH stable-1.1 08/26] exec: fix TB invalidation after breakpoint insertion/deletion, Michael Roth, 2012/06/22
- [Qemu-devel] [PATCH stable-1.1 09/26] target-xtensa: fix CCOUNT for conditional branches,
Michael Roth <=
- [Qemu-devel] [PATCH stable-1.1 10/26] trace/simple.c: fix deprecated glib2 interface, Michael Roth, 2012/06/22
- [Qemu-devel] [PATCH stable-1.1 11/26] configure: report missing libraries for virtfs, Michael Roth, 2012/06/22
- [Qemu-devel] [PATCH stable-1.1 12/26] kvm/apic: correct short memset, Michael Roth, 2012/06/22
- [Qemu-devel] [PATCH stable-1.1 13/26] kvm: i8254: Fix conversion of in-kernel to userspace state, Michael Roth, 2012/06/22
- [Qemu-devel] [PATCH stable-1.1 14/26] qcow2: Silence false warning, Michael Roth, 2012/06/22
- [Qemu-devel] [PATCH stable-1.1 15/26] monitor: Fix memory leak with readline completion, Michael Roth, 2012/06/22
- [Qemu-devel] [PATCH stable-1.1 16/26] configure: Fix build for some versions of glibc (9pfs), Michael Roth, 2012/06/22
- [Qemu-devel] [PATCH stable-1.1 17/26] rtl8139: honor RxOverflow flag in can_receive method, Michael Roth, 2012/06/22
- [Qemu-devel] [PATCH stable-1.1 18/26] ahci: Fix reset of MSI function, Michael Roth, 2012/06/22
- [Qemu-devel] [PATCH stable-1.1 21/26] pci_bridge_dev: fix error path in pci_bridge_dev_initfn(), Michael Roth, 2012/06/22