aboutsummaryrefslogtreecommitdiff
path: root/target/hppa/cpu.h
diff options
context:
space:
mode:
authorRichard Henderson <richard.henderson@linaro.org>2024-03-27 11:52:21 -1000
committerRichard Henderson <richard.henderson@linaro.org>2024-05-15 10:03:44 +0200
commit9dfcd2434989bb09b1ca11258180d9095c1d7ba8 (patch)
tree63074c78b9ef8e5fde1a2ff2536d5479c975aa93 /target/hppa/cpu.h
parent3c13b0ffe76057e93e007bedbad3cc556146e3ed (diff)
downloadqemu-9dfcd2434989bb09b1ca11258180d9095c1d7ba8.zip
qemu-9dfcd2434989bb09b1ca11258180d9095c1d7ba8.tar.gz
qemu-9dfcd2434989bb09b1ca11258180d9095c1d7ba8.tar.bz2
target/hppa: Store full iaoq_f and page offset of iaoq_b in TB
In preparation for CF_PCREL. store the iaoq_f in 3 parts: high bits in cs_base, middle bits in pc, and low bits in priv. For iaoq_b, set a bit for either of space or page differing, else the page offset. Install iaq entries before goto_tb. The change to not record the full direct branch difference in TB means that we have to store at least iaoq_b before goto_tb. But since a later change to enable CF_PCREL will require both iaoq_f and iaoq_b to be updated before goto_tb, go ahead and update both fields now. Reviewed-by: Helge Deller <deller@gmx.de> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'target/hppa/cpu.h')
-rw-r--r--target/hppa/cpu.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/target/hppa/cpu.h b/target/hppa/cpu.h
index 5a1e720..1232a4c 100644
--- a/target/hppa/cpu.h
+++ b/target/hppa/cpu.h
@@ -341,6 +341,8 @@ hwaddr hppa_abs_to_phys_pa2_w1(vaddr addr);
#define TB_FLAG_SR_SAME PSW_I
#define TB_FLAG_PRIV_SHIFT 8
#define TB_FLAG_UNALIGN 0x400
+#define CS_BASE_DIFFPAGE (1 << 12)
+#define CS_BASE_DIFFSPACE (1 << 13)
void cpu_get_tb_cpu_state(CPUHPPAState *env, vaddr *pc,
uint64_t *cs_base, uint32_t *pflags);