On 8/21/19 5:23 AM, Bastian Koppelmann wrote:
> @@ -3928,7 +3937,7 @@ static void decode_sr_system(DisasContext *ctx)
>          ctx->base.is_jmp = DISAS_NORETURN;
>          break;
>      case OPC2_16_SR_DEBUG:
> -        /* raise EXCP_DEBUG */
> +        generate_qemu_excp(ctx, EXCP_DEBUG);
>          break;
>      case OPC2_16_SR_FRET:
>          gen_fret(ctx);
> @@ -8354,7 +8363,7 @@ static void decode_sys_interrupts(DisasContext *ctx)
>  
>      switch (op2) {
>      case OPC2_32_SYS_DEBUG:
> -        /* raise EXCP_DEBUG */
> +        generate_qemu_excp(ctx, EXCP_DEBUG);
>          break;
>      case OPC2_32_SYS_DISABLE:
>          tcg_gen_andi_tl(cpu_ICR, cpu_ICR, ~MASK_ICR_IE_1_3);

This is not correct -- EXCP_DEBUG is an internal qemu exception.

The manual I have only describes the ISA and does not describe what a "Debug
Event" would be.  I note that you're missing the DBGSR.DE check.  I also note
that whatever a "Debug Event" is, RFM appears to be the return from it.  So one
can deduce some things about what it should be.


r~

Reply via email to