On 6/14/19 10:11 AM, Alex Bennée wrote: > From: "Emilio G. Cota" <c...@braap.org> > > I considered using translator_ld* from arm_ldl_code > et al. However, note that there's a helper that also calls > arm_ldl_code, so we'd have to change that caller.
We should in fact change that caller. Unfortunately, the SVC immediate copied into env->exception.syndrome is truncated to 16 bits, which means that the aa32 0x123456 won't match. However, it would be easy enough to create new EXCP_SWI_SEMIHOST, generate it within translate*.c when the svc immediate matches. Everywhere except check_for_semihosting(), we'd treat the two exceptions the same. The BKPT instruction is only used for semihosting by thumb (and maybe only v7m?). The exception syndrome does contain the entire 8-bit immediate, however for consistency it might be convenient to create an EXCP_BKPT_SEMIHOST so that all of the checks are always done at translation time. r~