diff options
author | Richard Henderson <richard.henderson@linaro.org> | 2024-03-27 11:52:21 -1000 |
---|---|---|
committer | Richard Henderson <richard.henderson@linaro.org> | 2024-05-15 10:03:44 +0200 |
commit | 9dfcd2434989bb09b1ca11258180d9095c1d7ba8 (patch) | |
tree | 63074c78b9ef8e5fde1a2ff2536d5479c975aa93 /target/hppa/cpu.h | |
parent | 3c13b0ffe76057e93e007bedbad3cc556146e3ed (diff) | |
download | qemu-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.h | 2 |
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); |