x86, kvm: add ad_mask static inline
PATCH 1/3 x86, kvm: add ad_mask static inline
Replaces open-coded mask calculation in macros.
Signed-off-by Harvey Harrison <[email protected]>
---
Against kvm.git:master
arch/x86/kvm/x86_emulate.c | 11 ++++++++--- 1 files changed, 8 insertions(+), 3 deletions(-)
arch/x86/kvm/x86_emulate.c +8 -3
@@ -480,10 +480,15 @@ static u16 group2_table[] = { (_type )_x; \ }) +static inline unsigned long ad_mask (struct decode_cache *c) +{ +return (1UL << (c->ad_bytes <<3 )) -1 ; +} +/* Access/update address held in a register, based on addressing mode. */ #define address_mask (reg) \ ((c->ad_bytes == sizeof(unsigned long)) ? \ - (reg) : ((reg) & ((1UL << (c->ad_bytes << 3)) - 1))) + (reg) : ((reg) & ad_mask(c)))#define register_address (base, reg) \ ((base) + address_mask(reg))#define register_address_increment (reg, inc) \
@@ -494,9 +499,9 @@ static u16 group2_table[] = { (reg) += _inc; \ else \ (reg) = ((reg) & \ - ~((1UL << (c->ad_bytes <<3 )) -1 )) | \ + ~ad_mask (c)) | \ (((reg) + _inc) & \ - ((1UL << (c->ad_bytes <<3 )) -1 )); \ +ad_mask (c)); \ }while (0 ) #define JMP_REL(rel) \
Signature · 8 lines
1.5.4.2.200.g99e75 ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/