On 3/13/19 5:40 AM, Paolo Bonzini wrote:
> Add endbr annotations before indirect branch targets.  This lets QEMU enable
> IBT even for TCG-enabled builds.

> @@ -3514,6 +3526,7 @@ static void tcg_target_qemu_prologue(TCGContext *s)
>                    CPU_TEMP_BUF_NLONGS * sizeof(long));
>  
>      /* Save all callee saved registers.  */
> +    tcg_out_endbr(s);
>      for (i = 0; i < ARRAY_SIZE(tcg_target_callee_save_regs); i++) {
>          tcg_out_push(s, tcg_target_callee_save_regs[i]);
>      }

Nit: Keep the comment with the code to which it applies.

I'll note that there's one latent but currently unused indirect branch:

>         } else {
>             /* indirect jump method */
>             tcg_out_modrm_offset(s, OPC_GRP5, EXT5_JMPN_Ev, -1,
>                                  (intptr_t)(s->tb_jmp_target_addr + a0));
>         }
>         set_jmp_reset_offset(s, a0);

We can probably just delete that condition, and assert it instead.

Otherwise,
Reviewed-by: Richard Henderson <richard.hender...@linaro.org>


r~

Reply via email to