From 926c1e32b2351197cc19bc39f9047b703509372c Mon Sep 17 00:00:00 2001 From: Andrew Cooper Date: Fri, 20 Jan 2017 15:34:54 +0000 Subject: [PATCH] x86/emul: Fix clang build following BMI1/BMI2/TBM instruction support Travis reports that Clang objects to integer truncation during assignments to a bitfield: ./x86_emulate/x86_emulate.c:6150:19: error: implicit truncation from 'int' to bitfield changes value from -1 to 15 [-Werror,-Wbitfield-constant-conversion] pxop->reg = ~0; /* rAX */ ^ ~~ Use 0xf instead. Signed-off-by: Andrew Cooper Reviewed-by: Jan Beulich --- xen/arch/x86/x86_emulate/x86_emulate.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/xen/arch/x86/x86_emulate/x86_emulate.c b/xen/arch/x86/x86_emulate/x86_emulate.c index 2810c73ce6..bd48290c5d 100644 --- a/xen/arch/x86/x86_emulate/x86_emulate.c +++ b/xen/arch/x86/x86_emulate/x86_emulate.c @@ -6015,7 +6015,7 @@ x86_emulate( *pvex = vex; pvex->b = 1; pvex->r = 1; - pvex->reg = ~0; /* rAX */ + pvex->reg = 0xf; /* rAX */ buf[3] = b; buf[4] = 0x09; /* reg=rCX r/m=(%rCX) */ buf[5] = 0xc3; @@ -6049,7 +6049,7 @@ x86_emulate( *pvex = vex; pvex->b = 1; pvex->r = 1; - pvex->reg = ~0; /* rAX */ + pvex->reg = 0xf; /* rAX */ buf[3] = b; buf[4] = (modrm & 0x38) | 0x01; /* r/m=(%rCX) */ buf[5] = 0xc3; @@ -6147,7 +6147,7 @@ x86_emulate( *pxop = vex; pxop->b = 1; pxop->r = 1; - pxop->reg = ~0; /* rAX */ + pxop->reg = 0xf; /* rAX */ buf[3] = b; buf[4] = (modrm & 0x38) | 0x01; /* r/m=(%rCX) */ buf[5] = 0xc3; -- 2.30.2