KVM: x86 emulator: SSE support
Add support for marking an instruction as SSE, switching registers used to the SSE register file. Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
@ -162,9 +162,11 @@ struct x86_emulate_ops {
|
||||
void (*put_fpu)(struct x86_emulate_ctxt *ctxt); /* reenables preempt */
|
||||
};
|
||||
|
||||
typedef u32 __attribute__((vector_size(16))) sse128_t;
|
||||
|
||||
/* Type, address-of, and value of an instruction's operand. */
|
||||
struct operand {
|
||||
enum { OP_REG, OP_MEM, OP_IMM, OP_NONE } type;
|
||||
enum { OP_REG, OP_MEM, OP_IMM, OP_XMM, OP_NONE } type;
|
||||
unsigned int bytes;
|
||||
union {
|
||||
unsigned long orig_val;
|
||||
@ -176,11 +178,13 @@ struct operand {
|
||||
ulong ea;
|
||||
unsigned seg;
|
||||
} mem;
|
||||
unsigned xmm;
|
||||
} addr;
|
||||
union {
|
||||
unsigned long val;
|
||||
u64 val64;
|
||||
char valptr[sizeof(unsigned long) + 2];
|
||||
sse128_t vec_val;
|
||||
};
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user