|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v2 1/2] x86emul: fold SrcImmByte fetching
There's no need for having identical code spelled out twice.
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
---
v2: Add braces (with quite a bit of reluctance).
--- a/xen/arch/x86/x86_emulate/x86_emulate.c
+++ b/xen/arch/x86/x86_emulate/x86_emulate.c
@@ -1979,9 +1979,14 @@ x86_emulate(
goto done;
break;
case SrcImm:
+ if ( !(d & ByteOp) )
+ src.bytes = op_bytes != 8 ? op_bytes : 4;
+ else
+ {
+ case SrcImmByte:
+ src.bytes = 1;
+ }
src.type = OP_IMM;
- src.bytes = (d & ByteOp) ? 1 : op_bytes;
- if ( src.bytes == 8 ) src.bytes = 4;
/* NB. Immediates are sign-extended as necessary. */
switch ( src.bytes )
{
@@ -1990,11 +1995,6 @@ x86_emulate(
case 4: src.val = insn_fetch_type(int32_t); break;
}
break;
- case SrcImmByte:
- src.type = OP_IMM;
- src.bytes = 1;
- src.val = insn_fetch_type(int8_t);
- break;
}
/* Decode and fetch the destination operand: register or memory. */
Attachment:
x86emul-fold-SrcImmByte-fetching.patch _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |