x86emul: fold local variables

Declare some variables to they can be used by multiple pieces of code,
allowing some figure braces to be dropped (which don't align nicely
when used inside of case labeled statements).

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
This commit is contained in:
Jan Beulich committed 2016-07-05 11:17:53 +02:00
1 parent a800e4f611
commit fea586d801
1 file changed
+16 -20
+16 -20
View File
@@ -3561,6 +3561,8 @@ x86_emulate(
case 0xf6 ... 0xf7: /* Grp3 */
switch ( modrm_reg & 7 )
{
unsigned long u[2], v;
case 0 ... 1: /* test */
goto test;
case 2: /* not */
@@ -3599,15 +3601,15 @@ x86_emulate(
_regs.edx = (uint32_t)(dst.val >> 32);
break;
#endif
default: {
unsigned long m[2] = { src.val, dst.val };
if ( mul_dbl(m) )
default:
u[0] = src.val;
u[1] = dst.val;
if ( mul_dbl(u) )
_regs.eflags |= EFLG_OF|EFLG_CF;
_regs.edx = m[1];
dst.val = m[0];
_regs.edx = u[1];
dst.val = u[0];
break;
}
}
break;
case 5: /* imul */
dst.type = OP_REG;
@@ -3643,20 +3645,18 @@ x86_emulate(
_regs.edx = (uint32_t)(dst.val >> 32);
break;
#endif
default: {
unsigned long m[2] = { src.val, dst.val };
if ( imul_dbl(m) )
default:
u[0] = src.val;
u[1] = dst.val;
if ( imul_dbl(u) )
_regs.eflags |= EFLG_OF|EFLG_CF;
if ( b > 0x6b )
_regs.edx = m[1];
dst.val = m[0];
_regs.edx = u[1];
dst.val = u[0];
break;
}
}
break;
case 6: /* div */ {
unsigned long u[2], v;
case 6: /* div */
dst.type = OP_REG;
dst.reg = (unsigned long *)&_regs.eax;
switch ( dst.bytes = src.bytes )
@@ -3703,10 +3703,7 @@ x86_emulate(
break;
}
break;
}
case 7: /* idiv */ {
unsigned long u[2], v;
case 7: /* idiv */
dst.type = OP_REG;
dst.reg = (unsigned long *)&_regs.eax;
switch ( dst.bytes = src.bytes )
@@ -3754,7 +3751,6 @@ x86_emulate(
}
break;
}
}
break;
case 0xf8: /* clc */
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.