On 8/3/22 01:41, Sean Christopherson wrote: > On Wed, Aug 03, 2022, Michal Luczaj wrote: >> If so, am I supposed to restore the `check_exception_table()` handler? Or >> maybe using `test_for_exception()` would be more elegant: > > Hmm, I prefer ASM_TRY() over test_for_exception(), having to define a function > just to emit a single instruction is silly. What I'd really prefer is that we > wouldn't have so many ways for doing the same basic thing (obviously not your > fault, just ranting/whining). All right, ASM_TRY() then. But it does seem to have a problem with #UD thrown by the FEP-triggered emulator. Anyway, I've cobbled together a TRY_ASM_PREFIXED variant, but I'm not sure if that's what you want. > If you have bandwidth, can you create a small series to clean up emulator.c to at > least take a step in the right direction? > > 1. Save/restore the handlers. > 2. Use ASM_TRY for the UD_VECTOR cases (KVM_FEP probing and illegal MOVBE) > 3. Add this testcase as described above. Yeah, no problem. Thanks, Michal