From: Andrew Cooper Date: Fri, 20 Jan 2017 15:34:54 +0000 (+0000) Subject: x86/emul: Fix clang build following BMI1/BMI2/TBM instruction support X-Git-Tag: archive/raspbian/4.11.1-1+rpi1~1^2~66^2~2942 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=926c1e32b2351197cc19bc39f9047b703509372c;p=xen.git 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 --- 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;