[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 0/7] target-arm: Translate based on TB flags, not CP
From: |
Peter Maydell |
Subject: |
[Qemu-devel] [PATCH 0/7] target-arm: Translate based on TB flags, not CPUState |
Date: |
Fri, 7 Jan 2011 15:06:27 +0000 |
This patchset corrects a number of places in the ARM translation code
which were generating code which was dependent on values in the CPUState
structure which might change at runtime. This is a bad idea for two
reasons. Firstly, we might try to reuse the generated code later when
the assumptions baked into the generated code were no longer valid.
Secondly, we might try to retranslate the same TB (eg when an exception
results in our calling cpu_restore_state()) but get different generated
code, which could result in qemu crashing.
Bug https://bugs.launchpad.net/bugs/604872 is a particular example
of the latter case involving the IT bits; this patchset fixes that bug.
I believe that this patchset deals with all the problems. Remaining
CPUState fields referred to in translate.c are either constant after
system init or trigger flushing of affected TBs when they are changed.
Peter Maydell (7):
target-arm: Don't generate code specific to current CPU mode for SRS
target-arm: Translate with VFP-enabled from TB flags, not CPUState
target-arm: Translate with VFP len/stride from TB flags, not CPUState
target-arm: Translate with Thumb state from TB flags, not CPUState
target-arm: Translate with condexec bits from TB flags, not CPUState
target-arm: Set privileged bit in TB flags correctly for M profile
target-arm: Translate with user-state from TB flags, not CPUState
target-arm/cpu.h | 17 +++++++++-
target-arm/helper.c | 12 +++++-
target-arm/translate.c | 88 ++++++++++++++++++-----------------------------
3 files changed, 60 insertions(+), 57 deletions(-)
- [Qemu-devel] [PATCH 0/7] target-arm: Translate based on TB flags, not CPUState,
Peter Maydell <=
- [Qemu-devel] [PATCH 6/7] target-arm: Set privileged bit in TB flags correctly for M profile, Peter Maydell, 2011/01/07
- [Qemu-devel] [PATCH 3/7] target-arm: Translate with VFP len/stride from TB flags, not CPUState, Peter Maydell, 2011/01/07
- [Qemu-devel] [PATCH 2/7] target-arm: Translate with VFP-enabled from TB flags, not CPUState, Peter Maydell, 2011/01/07
- [Qemu-devel] [PATCH 4/7] target-arm: Translate with Thumb state from TB flags, not CPUState, Peter Maydell, 2011/01/07
- [Qemu-devel] [PATCH 1/7] target-arm: Don't generate code specific to current CPU mode for SRS, Peter Maydell, 2011/01/07
- [Qemu-devel] [PATCH 5/7] target-arm: Translate with condexec bits from TB flags, not CPUState, Peter Maydell, 2011/01/07
- [Qemu-devel] [PATCH 7/7] target-arm: Translate with user-state from TB flags, not CPUState, Peter Maydell, 2011/01/07
- Re: [Qemu-devel] [PATCH 0/7] target-arm: Translate based on TB flags, not CPUState, Aurelien Jarno, 2011/01/07