|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH 5/9] x86emul: re-use new stub_exn field in state structure
This can now also be used to reduce the number of parameters
x86emul_fpu() needs to take.
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
---
We could of course set the struct field once early in x86_emulate(), but
for now I think we're better off leaving it as NULL where not actually
needed.
--- a/xen/arch/x86/x86_emulate/fpu.c
+++ b/xen/arch/x86/x86_emulate/fpu.c
@@ -90,9 +90,8 @@ int x86emul_fpu(struct x86_emulate_state
unsigned int *insn_bytes,
enum x86_emulate_fpu_type *fpu_type,
#define fpu_type (*fpu_type) /* for get_fpu() */
- struct stub_exn *stub_exn,
-#define stub_exn (*stub_exn) /* for invoke_stub() */
mmval_t *mmvalp)
+#define stub_exn (*s->stub_exn) /* for invoke_stub() */
{
uint8_t b;
int rc;
--- a/xen/arch/x86/x86_emulate/private.h
+++ b/xen/arch/x86/x86_emulate/private.h
@@ -764,7 +764,6 @@ int x86emul_fpu(struct x86_emulate_state
const struct x86_emulate_ops *ops,
unsigned int *insn_bytes,
enum x86_emulate_fpu_type *fpu_type,
- struct stub_exn *stub_exn,
mmval_t *mmvalp);
int x86emul_0f01(struct x86_emulate_state *s,
struct cpu_user_regs *regs,
--- a/xen/arch/x86/x86_emulate/x86_emulate.c
+++ b/xen/arch/x86/x86_emulate/x86_emulate.c
@@ -2058,8 +2058,9 @@ x86_emulate(
#ifndef X86EMUL_NO_FPU
case 0x9b: /* wait/fwait */
case 0xd8 ... 0xdf: /* FPU */
+ state->stub_exn = &stub_exn;
rc = x86emul_fpu(state, &_regs, &dst, &src, ctxt, ops,
- &insn_bytes, &fpu_type, &stub_exn, mmvalp);
+ &insn_bytes, &fpu_type, mmvalp);
goto dispatch_from_helper;
#endif
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |