On 12/9/21 9:33 AM, Fabiano Rosas wrote:
This reverts commit 336e91f85332dda0ede4c1d15b87a19a0fb898a2.

It breaks the --disable-tcg build:

  ../target/ppc/excp_helper.c:463:29: error: implicit declaration of
  function ‘cpu_ldl_code’ [-Werror=implicit-function-declaration]

We should not have TCG code in powerpc_excp because some kvm-only
routines use it indirectly to dispatch interrupts. See
kvm_handle_debug, spapr_mce_req_event and
spapr_do_system_reset_on_cpu.

We can re-introduce the change once we have split the interrupt
injection code between KVM and TCG.

Signed-off-by: Fabiano Rosas <faro...@linux.ibm.com>
---
  target/ppc/excp_helper.c | 21 ++++++++++++---------
  1 file changed, 12 insertions(+), 9 deletions(-)

This is fine. I had thought it would turn out to be helpful in conjunction with my user-only unaligned patch set, but in the end I went a different way and have a separate hook for user-only.

It is correct to simply revert the patch first.

I have ideas for further cleanup, if you have time:

(1) The assignment to DSISR does not need to wait until powerpc_excp. I believe we can assign to it directly in do_unaligned_access, and avoid using env->error_code as an intermediary.

(2) The note about opcode fields being set incorrectly could be fixed during translation. You'd use TARGET_INSN_START_EXTRA_WORDS to record the necessary information during translation, is provided to restore_state_to_opc during unwinding, and then moved into DSISR in do_unaligned_access. Similar to target/arm and how env->exception.syndrome is managed, especially disas_set_insn_syndrome.


r~

Reply via email to