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?
- Save/restore the handlers.
- Use ASM_TRY for the UD_VECTOR cases (KVM_FEP probing and illegal MOVBE)
- Add this testcase as described above.
Yeah, no problem.
Thanks, Michal