nova: mtd fields are unsigned

Bit 31 (FPU Mtd) got negative expanded when combined with 64bit value.

Detected during work on #1129
This commit is contained in:
Alexander Boettcher 2014-04-23 11:25:26 +02:00 committed by Norman Feske
parent 37dc5c2c78
commit 512c29c486
1 changed files with 22 additions and 22 deletions

View File

@ -193,28 +193,28 @@ namespace Nova {
public: public:
enum { enum {
ACDB = 1 << 0, /* eax, ecx, edx, ebx */ ACDB = 1U << 0, /* eax, ecx, edx, ebx */
EBSD = 1 << 1, /* ebp, esi, edi */ EBSD = 1U << 1, /* ebp, esi, edi */
ESP = 1 << 2, ESP = 1U << 2,
EIP = 1 << 3, EIP = 1U << 3,
EFL = 1 << 4, /* eflags */ EFL = 1U << 4, /* eflags */
ESDS = 1 << 5, ESDS = 1U << 5,
FSGS = 1 << 6, FSGS = 1U << 6,
CSSS = 1 << 7, CSSS = 1U << 7,
TR = 1 << 8, TR = 1U << 8,
LDTR = 1 << 9, LDTR = 1U << 9,
GDTR = 1 << 10, GDTR = 1U << 10,
IDTR = 1 << 11, IDTR = 1U << 11,
CR = 1 << 12, CR = 1U << 12,
DR = 1 << 13, /* DR7 */ DR = 1U << 13, /* DR7 */
SYS = 1 << 14, /* Sysenter MSRs CS, ESP, EIP */ SYS = 1U << 14, /* Sysenter MSRs CS, ESP, EIP */
QUAL = 1 << 15, /* exit qualification */ QUAL = 1U << 15, /* exit qualification */
CTRL = 1 << 16, /* execution controls */ CTRL = 1U << 16, /* execution controls */
INJ = 1 << 17, /* injection info */ INJ = 1U << 17, /* injection info */
STA = 1 << 18, /* interruptibility state */ STA = 1U << 18, /* interruptibility state */
TSC = 1 << 19, /* time-stamp counter */ TSC = 1U << 19, /* time-stamp counter */
EFER = 1 << 20, /* EFER MSR */ EFER = 1U << 20, /* EFER MSR */
FPU = 1 << 31, /* FPU state */ FPU = 1U << 31, /* FPU state */
IRQ = EFL | STA | INJ | TSC, IRQ = EFL | STA | INJ | TSC,
ALL = 0x000fffff & ~CTRL, ALL = 0x000fffff & ~CTRL,