[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC PATCH] target/arm: drop CF_LAST_IO/dc->condjump check
From: |
Alex Bennée |
Subject: |
[RFC PATCH] target/arm: drop CF_LAST_IO/dc->condjump check |
Date: |
Fri, 16 Apr 2021 16:49:08 +0100 |
This is a left over erroneous check from the days front-ends handled
io start/end themselves. Regardless just because IO could be performed
on the last instruction doesn't obligate the front end to do so.
This fixes an abort faced by the aspeed execute-in-place support which
will necessarily trigger this state (even before the one-shot
CF_LAST_IO fix). The test still seems to hang once it attempts to boot
the Linux kernel but I suspect this is an unrelated issue with icount
and the timer handling code.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Cc: Cédric Le Goater <clg@kaod.org>
---
target/arm/translate.c | 5 -----
1 file changed, 5 deletions(-)
diff --git a/target/arm/translate.c b/target/arm/translate.c
index 62b1c2081b..7103da2d7a 100644
--- a/target/arm/translate.c
+++ b/target/arm/translate.c
@@ -9199,11 +9199,6 @@ static void arm_tr_tb_stop(DisasContextBase *dcbase,
CPUState *cpu)
{
DisasContext *dc = container_of(dcbase, DisasContext, base);
- if (tb_cflags(dc->base.tb) & CF_LAST_IO && dc->condjmp) {
- /* FIXME: This can theoretically happen with self-modifying code. */
- cpu_abort(cpu, "IO on conditional branch instruction");
- }
-
/* At this stage dc->condjmp will only be set when the skipped
instruction was a conditional branch or trap, and the PC has
already been written. */
--
2.20.1
- [RFC PATCH] target/arm: drop CF_LAST_IO/dc->condjump check,
Alex Bennée <=