On 4/2/25 13:13, Philippe Mathieu-Daudé wrote:
On 2/4/25 20:46, Richard Henderson wrote:
On 4/2/25 03:17, Philippe Mathieu-Daudé wrote:
Hi Richard,

On 8/3/25 23:58, Richard Henderson wrote:
Some of these bits are actually common to all cpus; while the
reset have common reservations for target-specific usage.
While generic code cannot know what the target-specific usage is,
common code can know what to do with the bits, e.g. single-step.

Tested-by: Philippe Mathieu-Daudé <phi...@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <phi...@linaro.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouv...@linaro.org>
Signed-off-by: Richard Henderson <richard.hender...@linaro.org>
---
  include/exec/cpu-all.h       | 53 +--------------------------
  include/exec/cpu-interrupt.h | 70 ++++++++++++++++++++++++++++++++++++
  include/exec/poison.h        | 13 -------
  3 files changed, 71 insertions(+), 65 deletions(-)
  create mode 100644 include/exec/cpu-interrupt.h


diff --git a/include/exec/poison.h b/include/exec/poison.h
index 35721366d7..8ed04b3108 100644
--- a/include/exec/poison.h
+++ b/include/exec/poison.h
@@ -46,19 +46,6 @@
  #pragma GCC poison TARGET_PHYS_ADDR_SPACE_BITS
-#pragma GCC poison CPU_INTERRUPT_HARD
-#pragma GCC poison CPU_INTERRUPT_EXITTB
-#pragma GCC poison CPU_INTERRUPT_HALT
-#pragma GCC poison CPU_INTERRUPT_DEBUG
-#pragma GCC poison CPU_INTERRUPT_TGT_EXT_0
-#pragma GCC poison CPU_INTERRUPT_TGT_EXT_1
-#pragma GCC poison CPU_INTERRUPT_TGT_EXT_2
-#pragma GCC poison CPU_INTERRUPT_TGT_EXT_3
-#pragma GCC poison CPU_INTERRUPT_TGT_EXT_4
-#pragma GCC poison CPU_INTERRUPT_TGT_INT_0
-#pragma GCC poison CPU_INTERRUPT_TGT_INT_1
-#pragma GCC poison CPU_INTERRUPT_TGT_INT_2

If I understood correctly yesterday's discussion, these
definitions are internal to target/ and shouldn't be used
by hw/ at all. If this is right, then we need to keep them
poisoned for hw/ code.

No.  They are used by generic code to mask CPU_INTERRUPT_TGT_EXT_* during single- stepping.  We don't know what they mean, but they're all external interrupts.

I'm wondering about CPU_INTERRUPT_HARD ... CPU_INTERRUPT_DEBUG.

HARD is probably akin to TGT_EXT_n, but EXITTB, HALT and DEBUG are completely 
generic.


r~

Reply via email to