From a037c16a5bd907b3eb087636d8eb3d64652dc4bc Mon Sep 17 00:00:00 2001 From: Aleksandar Andrejevic Date: Sat, 25 Oct 2014 17:16:37 +0000 Subject: [PATCH] [FAST486] The opcode handlers don't need a return value, it's not used anywhere. svn path=/trunk/; revision=64988 --- reactos/lib/fast486/common.h | 2 +- reactos/lib/fast486/extraops.c | 465 +++++-------- reactos/lib/fast486/fpu.c | 42 +- reactos/lib/fast486/fpu.h | 2 +- reactos/lib/fast486/opcodes.c | 1114 +++++++++++++------------------- reactos/lib/fast486/opcodes.h | 4 +- reactos/lib/fast486/opgroups.c | 427 ++++++------ 7 files changed, 820 insertions(+), 1236 deletions(-) diff --git a/reactos/lib/fast486/common.h b/reactos/lib/fast486/common.h index 0e0c0c8d426..6b9cb6aa09e 100644 --- a/reactos/lib/fast486/common.h +++ b/reactos/lib/fast486/common.h @@ -44,7 +44,7 @@ if (State->PrefixFlags & FAST486_PREFIX_LOCK)\ {\ Fast486Exception(State, FAST486_EXCEPTION_UD);\ - return FALSE;\ + return;\ } #define TOGGLE_OPSIZE(x)\ diff --git a/reactos/lib/fast486/extraops.c b/reactos/lib/fast486/extraops.c index 38dfc3f0018..9d23cb97394 100644 --- a/reactos/lib/fast486/extraops.c +++ b/reactos/lib/fast486/extraops.c @@ -301,21 +301,19 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeInvalid) { DPRINT1("FAST486 -- Extended opcode 0x%02X is INVALID!\n", Opcode); Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } FAST486_OPCODE_HANDLER(Fast486ExtOpcodeUnimplemented) { DPRINT1("FAST486 -- Extended opcode 0x%02X is UNIMPLEMENTED\n", Opcode); // Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; } FAST486_OPCODE_HANDLER(Fast486ExtOpcode0F0B) { /* Reserved opcode (UD2) */ Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; } FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLar) @@ -333,7 +331,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLar) { /* Not recognized */ Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } NO_LOCK_PREFIX(); @@ -344,7 +342,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLar) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } if (OperandSize) @@ -355,7 +353,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLar) if (!Fast486ReadModrmDwordOperands(State, &ModRegRm, NULL, &Value)) { /* Exception occurred */ - return FALSE; + return; } Selector = LOWORD(Value); @@ -366,7 +364,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLar) if (!Fast486ReadModrmWordOperands(State, &ModRegRm, NULL, &Selector)) { /* Exception occurred */ - return FALSE; + return; } } @@ -376,7 +374,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLar) if (GET_SEGMENT_INDEX(Selector) >= (State->Gdtr.Size + 1)) { State->Flags.Zf = FALSE; - return TRUE; + return; } /* Read the GDT */ @@ -387,7 +385,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLar) sizeof(GdtEntry))) { /* Exception occurred */ - return FALSE; + return; } } else @@ -396,7 +394,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLar) if (GET_SEGMENT_INDEX(Selector) >= (State->Ldtr.Limit + 1)) { State->Flags.Zf = FALSE; - return TRUE; + return; } /* Read the LDT */ @@ -407,7 +405,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLar) sizeof(GdtEntry))) { /* Exception occurred */ - return FALSE; + return; } } @@ -416,7 +414,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLar) || (Fast486GetCurrentPrivLevel(State) > GdtEntry.Dpl)) { State->Flags.Zf = FALSE; - return TRUE; + return; } /* Set ZF */ @@ -426,24 +424,8 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLar) AccessRights = ((PDWORD)&GdtEntry)[1] & 0x00F0FF00; /* Return the access rights */ - if (OperandSize) - { - if (!Fast486WriteModrmDwordOperands(State, &ModRegRm, TRUE, AccessRights)) - { - /* Exception occurred */ - return FALSE; - } - } - else - { - if (!Fast486WriteModrmWordOperands(State, &ModRegRm, TRUE, LOWORD(AccessRights))) - { - /* Exception occurred */ - return FALSE; - } - } - - return TRUE; + if (OperandSize) Fast486WriteModrmDwordOperands(State, &ModRegRm, TRUE, AccessRights); + else Fast486WriteModrmWordOperands(State, &ModRegRm, TRUE, LOWORD(AccessRights)); } FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLsl) @@ -461,7 +443,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLsl) { /* Not recognized */ Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } NO_LOCK_PREFIX(); @@ -472,7 +454,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLsl) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } if (OperandSize) @@ -483,7 +465,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLsl) if (!Fast486ReadModrmDwordOperands(State, &ModRegRm, NULL, &Value)) { /* Exception occurred */ - return FALSE; + return; } Selector = LOWORD(Value); @@ -494,7 +476,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLsl) if (!Fast486ReadModrmWordOperands(State, &ModRegRm, NULL, &Selector)) { /* Exception occurred */ - return FALSE; + return; } } @@ -504,7 +486,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLsl) if (GET_SEGMENT_INDEX(Selector) >= (State->Gdtr.Size + 1)) { State->Flags.Zf = FALSE; - return TRUE; + return; } /* Read the GDT */ @@ -515,7 +497,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLsl) sizeof(GdtEntry))) { /* Exception occurred */ - return FALSE; + return; } } else @@ -524,7 +506,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLsl) if (GET_SEGMENT_INDEX(Selector) >= (State->Ldtr.Limit + 1)) { State->Flags.Zf = FALSE; - return TRUE; + return; } /* Read the LDT */ @@ -535,7 +517,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLsl) sizeof(GdtEntry))) { /* Exception occurred */ - return FALSE; + return; } } @@ -544,7 +526,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLsl) || (Fast486GetCurrentPrivLevel(State) > GdtEntry.Dpl)) { State->Flags.Zf = FALSE; - return TRUE; + return; } /* Calculate the limit */ @@ -554,26 +536,9 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLsl) /* Set ZF */ State->Flags.Zf = TRUE; - if (OperandSize) - { - /* Return the limit */ - if (!Fast486WriteModrmDwordOperands(State, &ModRegRm, TRUE, Limit)) - { - /* Exception occurred */ - return FALSE; - } - } - else - { - /* Return the limit */ - if (!Fast486WriteModrmWordOperands(State, &ModRegRm, TRUE, LOWORD(Limit))) - { - /* Exception occurred */ - return FALSE; - } - } - - return TRUE; + /* Return the limit */ + if (OperandSize) Fast486WriteModrmDwordOperands(State, &ModRegRm, TRUE, Limit); + else Fast486WriteModrmWordOperands(State, &ModRegRm, TRUE, LOWORD(Limit)); } FAST486_OPCODE_HANDLER(Fast486ExtOpcodeClts) @@ -584,13 +549,11 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeClts) if (Fast486GetCurrentPrivLevel(State) != 0) { Fast486Exception(State, FAST486_EXCEPTION_GP); - return FALSE; + return; } /* Clear the task switch bit */ State->ControlRegisters[FAST486_REG_CR0] &= ~FAST486_CR0_TS; - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486ExtOpcodeStoreControlReg) @@ -605,21 +568,21 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeStoreControlReg) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } /* The current privilege level must be zero */ if (Fast486GetCurrentPrivLevel(State) != 0) { Fast486Exception(State, FAST486_EXCEPTION_GP); - return FALSE; + return; } if ((ModRegRm.Register == 1) || (ModRegRm.Register > 3)) { /* CR1, CR4, CR5, CR6 and CR7 don't exist */ Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } if (ModRegRm.Register != 0) @@ -630,9 +593,6 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeStoreControlReg) /* Store the value of the control register */ State->GeneralRegs[ModRegRm.SecondRegister].Long = State->ControlRegisters[ModRegRm.Register]; - - /* Return success */ - return TRUE; } FAST486_OPCODE_HANDLER(Fast486ExtOpcodeStoreDebugReg) @@ -647,14 +607,14 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeStoreDebugReg) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } /* The current privilege level must be zero */ if (Fast486GetCurrentPrivLevel(State) != 0) { Fast486Exception(State, FAST486_EXCEPTION_GP); - return FALSE; + return; } if ((ModRegRm.Register == 6) || (ModRegRm.Register == 7)) @@ -667,14 +627,11 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeStoreDebugReg) { /* Disallow access to debug registers */ Fast486Exception(State, FAST486_EXCEPTION_GP); - return FALSE; + return; } /* Store the value of the debug register */ State->GeneralRegs[ModRegRm.SecondRegister].Long = State->DebugRegisters[ModRegRm.Register]; - - /* Return success */ - return TRUE; } FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLoadControlReg) @@ -690,21 +647,21 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLoadControlReg) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } /* The current privilege level must be zero */ if (Fast486GetCurrentPrivLevel(State) != 0) { Fast486Exception(State, FAST486_EXCEPTION_GP); - return FALSE; + return; } if ((ModRegRm.Register == 1) || (ModRegRm.Register > 3)) { /* CR1, CR4, CR5, CR6 and CR7 don't exist */ Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } if (ModRegRm.Register != 0) @@ -725,15 +682,12 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLoadControlReg) { /* Invalid value */ Fast486Exception(State, FAST486_EXCEPTION_GP); - return FALSE; + return; } } /* Load a value to the control register */ State->ControlRegisters[ModRegRm.Register] = Value; - - /* Return success */ - return TRUE; } FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLoadDebugReg) @@ -748,14 +702,14 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLoadDebugReg) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } /* The current privilege level must be zero */ if (Fast486GetCurrentPrivLevel(State) != 0) { Fast486Exception(State, FAST486_EXCEPTION_GP); - return FALSE; + return; } if ((ModRegRm.Register == 6) || (ModRegRm.Register == 7)) @@ -768,7 +722,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLoadDebugReg) { /* Disallow access to debug registers */ Fast486Exception(State, FAST486_EXCEPTION_GP); - return FALSE; + return; } /* Load a value to the debug register */ @@ -784,15 +738,12 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLoadDebugReg) /* The reserved bits are 0 */ State->DebugRegisters[ModRegRm.Register] &= ~FAST486_DR5_RESERVED; } - - /* Return success */ - return TRUE; } FAST486_OPCODE_HANDLER(Fast486ExtOpcodePushFs) { /* Call the internal API */ - return Fast486StackPush(State, State->SegmentRegs[FAST486_REG_FS].Selector); + Fast486StackPush(State, State->SegmentRegs[FAST486_REG_FS].Selector); } FAST486_OPCODE_HANDLER(Fast486ExtOpcodePopFs) @@ -802,11 +753,11 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodePopFs) if (!Fast486StackPop(State, &NewSelector)) { /* Exception occurred */ - return FALSE; + return; } /* Call the internal API */ - return Fast486LoadSegment(State, FAST486_REG_FS, LOWORD(NewSelector)); + Fast486LoadSegment(State, FAST486_REG_FS, LOWORD(NewSelector)); } FAST486_OPCODE_HANDLER(Fast486ExtOpcodeBitTest) @@ -828,7 +779,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeBitTest) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } /* Get the bit number */ @@ -855,7 +806,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeBitTest) if (!Fast486ReadModrmDwordOperands(State, &ModRegRm, NULL, &Value)) { /* Exception occurred */ - return FALSE; + return; } /* Set CF to the bit value */ @@ -869,15 +820,12 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeBitTest) if (!Fast486ReadModrmWordOperands(State, &ModRegRm, NULL, &Value)) { /* Exception occurred */ - return FALSE; + return; } /* Set CF to the bit value */ State->Flags.Cf = (Value >> BitNumber) & 1; } - - /* Return success */ - return TRUE; } FAST486_OPCODE_HANDLER(Fast486ExtOpcodeShld) @@ -897,7 +845,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeShld) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } if (Opcode == 0xA4) @@ -906,7 +854,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeShld) if (!Fast486FetchByte(State, &Count)) { /* Exception occurred */ - return FALSE; + return; } } else @@ -919,7 +867,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeShld) Count &= 0x1F; /* Do nothing if the count is zero */ - if (Count == 0) return TRUE; + if (Count == 0) return; if (OperandSize) { @@ -928,7 +876,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeShld) if (!Fast486ReadModrmDwordOperands(State, &ModRegRm, &Source, &Destination)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -943,7 +891,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeShld) State->Flags.Pf = Fast486CalculateParity(Result); /* Write back the result */ - return Fast486WriteModrmDwordOperands(State, &ModRegRm, FALSE, Result); + Fast486WriteModrmDwordOperands(State, &ModRegRm, FALSE, Result); } else { @@ -953,7 +901,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeShld) if (!Fast486ReadModrmWordOperands(State, &ModRegRm, &Source, &Destination)) { /* Exception occurred */ - return FALSE; + return; } DoubleSource = Source | (Source << 16); @@ -972,14 +920,14 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeShld) State->Flags.Pf = Fast486CalculateParity(Result); /* Write back the result */ - return Fast486WriteModrmWordOperands(State, &ModRegRm, FALSE, Result); + Fast486WriteModrmWordOperands(State, &ModRegRm, FALSE, Result); } } FAST486_OPCODE_HANDLER(Fast486ExtOpcodePushGs) { /* Call the internal API */ - return Fast486StackPush(State, State->SegmentRegs[FAST486_REG_GS].Selector); + Fast486StackPush(State, State->SegmentRegs[FAST486_REG_GS].Selector); } FAST486_OPCODE_HANDLER(Fast486ExtOpcodePopGs) @@ -989,11 +937,11 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodePopGs) if (!Fast486StackPop(State, &NewSelector)) { /* Exception occurred */ - return FALSE; + return; } /* Call the internal API */ - return Fast486LoadSegment(State, FAST486_REG_GS, LOWORD(NewSelector)); + Fast486LoadSegment(State, FAST486_REG_GS, LOWORD(NewSelector)); } FAST486_OPCODE_HANDLER(Fast486ExtOpcodeBts) @@ -1015,7 +963,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeBts) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } /* Get the bit number */ @@ -1042,7 +990,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeBts) if (!Fast486ReadModrmDwordOperands(State, &ModRegRm, NULL, &Value)) { /* Exception occurred */ - return FALSE; + return; } /* Set CF to the bit value */ @@ -1052,11 +1000,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeBts) Value |= 1 << BitNumber; /* Write back the result */ - if (!Fast486WriteModrmDwordOperands(State, &ModRegRm, FALSE, Value)) - { - /* Exception occurred */ - return FALSE; - } + Fast486WriteModrmDwordOperands(State, &ModRegRm, FALSE, Value); } else { @@ -1066,7 +1010,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeBts) if (!Fast486ReadModrmWordOperands(State, &ModRegRm, NULL, &Value)) { /* Exception occurred */ - return FALSE; + return; } /* Set CF to the bit value */ @@ -1076,15 +1020,8 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeBts) Value |= 1 << BitNumber; /* Write back the result */ - if (!Fast486WriteModrmWordOperands(State, &ModRegRm, FALSE, Value)) - { - /* Exception occurred */ - return FALSE; - } + Fast486WriteModrmWordOperands(State, &ModRegRm, FALSE, Value); } - - /* Return success */ - return TRUE; } FAST486_OPCODE_HANDLER(Fast486ExtOpcodeShrd) @@ -1104,7 +1041,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeShrd) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } if (Opcode == 0xAC) @@ -1113,7 +1050,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeShrd) if (!Fast486FetchByte(State, &Count)) { /* Exception occurred */ - return FALSE; + return; } } else @@ -1126,7 +1063,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeShrd) Count &= 0x1F; /* Do nothing if the count is zero */ - if (Count == 0) return TRUE; + if (Count == 0) return; if (OperandSize) { @@ -1135,7 +1072,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeShrd) if (!Fast486ReadModrmDwordOperands(State, &ModRegRm, &Source, &Destination)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -1150,7 +1087,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeShrd) State->Flags.Pf = Fast486CalculateParity(Result); /* Write back the result */ - return Fast486WriteModrmDwordOperands(State, &ModRegRm, FALSE, Result); + Fast486WriteModrmDwordOperands(State, &ModRegRm, FALSE, Result); } else { @@ -1159,7 +1096,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeShrd) if (!Fast486ReadModrmWordOperands(State, &ModRegRm, &Source, &Destination)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -1178,7 +1115,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeShrd) State->Flags.Pf = Fast486CalculateParity(Result); /* Write back the result */ - return Fast486WriteModrmWordOperands(State, &ModRegRm, FALSE, Result); + Fast486WriteModrmWordOperands(State, &ModRegRm, FALSE, Result); } } @@ -1196,7 +1133,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeImul) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } if (OperandSize) @@ -1211,7 +1148,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeImul) (PULONG)&Source)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -1221,7 +1158,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeImul) State->Flags.Cf = State->Flags.Of = ((Result < -2147483648LL) || (Result > 2147483647LL)); /* Write back the result */ - return Fast486WriteModrmDwordOperands(State, &ModRegRm, TRUE, (ULONG)((LONG)Result)); + Fast486WriteModrmDwordOperands(State, &ModRegRm, TRUE, (ULONG)((LONG)Result)); } else { @@ -1235,7 +1172,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeImul) (PUSHORT)&Source)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -1245,7 +1182,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeImul) State->Flags.Cf = State->Flags.Of = ((Result < -32768) || (Result > 32767)); /* Write back the result */ - return Fast486WriteModrmWordOperands(State, &ModRegRm, TRUE, (USHORT)((SHORT)Result)); + Fast486WriteModrmWordOperands(State, &ModRegRm, TRUE, (USHORT)((SHORT)Result)); } } @@ -1262,14 +1199,14 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeCmpXchgByte) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } /* Read the operands */ if (!Fast486ReadModrmByteOperands(State, &ModRegRm, &Source, &Destination)) { /* Exception occurred */ - return FALSE; + return; } /* Compare AL with the destination */ @@ -1287,16 +1224,13 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeCmpXchgByte) if (State->Flags.Zf) { /* Load the source operand into the destination */ - return Fast486WriteModrmByteOperands(State, &ModRegRm, FALSE, Source); + Fast486WriteModrmByteOperands(State, &ModRegRm, FALSE, Source); } else { /* Load the destination into AL */ State->GeneralRegs[FAST486_REG_EAX].LowByte = Destination; } - - /* Return success */ - return TRUE; } FAST486_OPCODE_HANDLER(Fast486ExtOpcodeCmpXchg) @@ -1313,7 +1247,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeCmpXchg) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } if (OperandSize) @@ -1325,7 +1259,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeCmpXchg) if (!Fast486ReadModrmDwordOperands(State, &ModRegRm, &Source, &Destination)) { /* Exception occurred */ - return FALSE; + return; } /* Compare EAX with the destination */ @@ -1343,7 +1277,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeCmpXchg) if (State->Flags.Zf) { /* Load the source operand into the destination */ - return Fast486WriteModrmDwordOperands(State, &ModRegRm, FALSE, Source); + Fast486WriteModrmDwordOperands(State, &ModRegRm, FALSE, Source); } else { @@ -1360,7 +1294,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeCmpXchg) if (!Fast486ReadModrmWordOperands(State, &ModRegRm, &Source, &Destination)) { /* Exception occurred */ - return FALSE; + return; } /* Compare AX with the destination */ @@ -1378,7 +1312,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeCmpXchg) if (State->Flags.Zf) { /* Load the source operand into the destination */ - return Fast486WriteModrmWordOperands(State, &ModRegRm, FALSE, Source); + Fast486WriteModrmWordOperands(State, &ModRegRm, FALSE, Source); } else { @@ -1386,9 +1320,6 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeCmpXchg) State->GeneralRegs[FAST486_REG_EAX].LowWord = Destination; } } - - /* Return success */ - return TRUE; } FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLss) @@ -1409,14 +1340,14 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLss) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } if (!ModRegRm.Memory) { /* Invalid */ Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } if (!Fast486ReadMemory(State, @@ -1428,7 +1359,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLss) OperandSize ? 6 : 4)) { /* Exception occurred */ - return FALSE; + return; } if (OperandSize) @@ -1440,9 +1371,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLss) State->GeneralRegs[ModRegRm.Register].Long = Offset; /* Load the segment */ - return Fast486LoadSegment(State, - FAST486_REG_SS, - Segment); + Fast486LoadSegment(State, FAST486_REG_SS, Segment); } else { @@ -1453,9 +1382,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLss) State->GeneralRegs[ModRegRm.Register].LowWord = Offset; /* Load the segment */ - return Fast486LoadSegment(State, - FAST486_REG_SS, - Segment); + Fast486LoadSegment(State, FAST486_REG_SS, Segment); } } @@ -1478,7 +1405,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeBtr) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } /* Get the bit number */ @@ -1505,7 +1432,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeBtr) if (!Fast486ReadModrmDwordOperands(State, &ModRegRm, NULL, &Value)) { /* Exception occurred */ - return FALSE; + return; } /* Set CF to the bit value */ @@ -1515,11 +1442,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeBtr) Value &= ~(1 << BitNumber); /* Write back the result */ - if (!Fast486WriteModrmDwordOperands(State, &ModRegRm, FALSE, Value)) - { - /* Exception occurred */ - return FALSE; - } + Fast486WriteModrmDwordOperands(State, &ModRegRm, FALSE, Value); } else { @@ -1529,7 +1452,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeBtr) if (!Fast486ReadModrmWordOperands(State, &ModRegRm, NULL, &Value)) { /* Exception occurred */ - return FALSE; + return; } /* Set CF to the bit value */ @@ -1539,15 +1462,8 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeBtr) Value &= ~(1 << BitNumber); /* Write back the result */ - if (!Fast486WriteModrmWordOperands(State, &ModRegRm, FALSE, Value)) - { - /* Exception occurred */ - return FALSE; - } + Fast486WriteModrmWordOperands(State, &ModRegRm, FALSE, Value); } - - /* Return success */ - return TRUE; } FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLfsLgs) @@ -1568,14 +1484,14 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLfsLgs) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } if (!ModRegRm.Memory) { /* Invalid */ Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } if (!Fast486ReadMemory(State, @@ -1587,7 +1503,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLfsLgs) OperandSize ? 6 : 4)) { /* Exception occurred */ - return FALSE; + return; } if (OperandSize) @@ -1599,10 +1515,10 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLfsLgs) State->GeneralRegs[ModRegRm.Register].Long = Offset; /* Load the segment */ - return Fast486LoadSegment(State, - (Opcode == 0xB4) - ? FAST486_REG_FS : FAST486_REG_GS, - Segment); + Fast486LoadSegment(State, + (Opcode == 0xB4) + ? FAST486_REG_FS : FAST486_REG_GS, + Segment); } else { @@ -1613,10 +1529,10 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLfsLgs) State->GeneralRegs[ModRegRm.Register].LowWord = Offset; /* Load the segment */ - return Fast486LoadSegment(State, - (Opcode == 0xB4) - ? FAST486_REG_FS : FAST486_REG_GS, - Segment); + Fast486LoadSegment(State, + (Opcode == 0xB4) + ? FAST486_REG_FS : FAST486_REG_GS, + Segment); } } @@ -1635,21 +1551,21 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeMovzxByte) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } /* Read the operands */ if (!Fast486ReadModrmByteOperands(State, &ModRegRm, NULL, &Value)) { /* Exception occurred */ - return FALSE; + return; } /* Write back the zero-extended value */ - return Fast486WriteModrmDwordOperands(State, - &ModRegRm, - TRUE, - (ULONG)Value); + Fast486WriteModrmDwordOperands(State, + &ModRegRm, + TRUE, + (ULONG)Value); } FAST486_OPCODE_HANDLER(Fast486ExtOpcodeMovzxWord) @@ -1667,21 +1583,21 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeMovzxWord) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } /* Read the operands */ if (!Fast486ReadModrmWordOperands(State, &ModRegRm, NULL, &Value)) { /* Exception occurred */ - return FALSE; + return; } /* Write back the zero-extended value */ - return Fast486WriteModrmDwordOperands(State, - &ModRegRm, - TRUE, - (ULONG)Value); + Fast486WriteModrmDwordOperands(State, + &ModRegRm, + TRUE, + (ULONG)Value); } FAST486_OPCODE_HANDLER(Fast486ExtOpcodeBtc) @@ -1703,7 +1619,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeBtc) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } /* Get the bit number */ @@ -1730,7 +1646,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeBtc) if (!Fast486ReadModrmDwordOperands(State, &ModRegRm, NULL, &Value)) { /* Exception occurred */ - return FALSE; + return; } /* Set CF to the bit value */ @@ -1740,11 +1656,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeBtc) Value ^= 1 << BitNumber; /* Write back the result */ - if (!Fast486WriteModrmDwordOperands(State, &ModRegRm, FALSE, Value)) - { - /* Exception occurred */ - return FALSE; - } + Fast486WriteModrmDwordOperands(State, &ModRegRm, FALSE, Value); } else { @@ -1754,7 +1666,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeBtc) if (!Fast486ReadModrmWordOperands(State, &ModRegRm, NULL, &Value)) { /* Exception occurred */ - return FALSE; + return; } /* Set CF to the bit value */ @@ -1764,15 +1676,8 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeBtc) Value ^= 1 << BitNumber; /* Write back the result */ - if (!Fast486WriteModrmWordOperands(State, &ModRegRm, FALSE, Value)) - { - /* Exception occurred */ - return FALSE; - } + Fast486WriteModrmWordOperands(State, &ModRegRm, FALSE, Value); } - - /* Return success */ - return TRUE; } FAST486_OPCODE_HANDLER(Fast486ExtOpcodeBsf) @@ -1799,7 +1704,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeBsf) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } /* Read the value */ @@ -1808,7 +1713,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeBsf) if (!Fast486ReadModrmDwordOperands(State, &ModRegRm, NULL, &Value)) { /* Exception occurred */ - return FALSE; + return; } } else @@ -1819,13 +1724,13 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeBsf) (PUSHORT)&Value)) { /* Exception occurred */ - return FALSE; + return; } } /* Set ZF */ State->Flags.Zf = (Value == 0); - if (State->Flags.Zf) return TRUE; + if (State->Flags.Zf) return; for (i = 0; i < DataSize; i++) { @@ -1840,24 +1745,8 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeBsf) } /* Write back the result */ - if (OperandSize) - { - if (!Fast486WriteModrmDwordOperands(State, &ModRegRm, TRUE, BitNumber)) - { - /* Exception occurred */ - return FALSE; - } - } - else - { - if (!Fast486WriteModrmWordOperands(State, &ModRegRm, TRUE, LOWORD(BitNumber))) - { - /* Exception occurred */ - return FALSE; - } - } - - return TRUE; + if (OperandSize) Fast486WriteModrmDwordOperands(State, &ModRegRm, TRUE, BitNumber); + else Fast486WriteModrmWordOperands(State, &ModRegRm, TRUE, LOWORD(BitNumber)); } FAST486_OPCODE_HANDLER(Fast486ExtOpcodeBsr) @@ -1884,7 +1773,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeBsr) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } /* Read the value */ @@ -1893,7 +1782,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeBsr) if (!Fast486ReadModrmDwordOperands(State, &ModRegRm, NULL, &Value)) { /* Exception occurred */ - return FALSE; + return; } } else @@ -1904,13 +1793,13 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeBsr) (PUSHORT)&Value)) { /* Exception occurred */ - return FALSE; + return; } } /* Set ZF according to the value */ State->Flags.Zf = (Value == 0); - if (State->Flags.Zf) return TRUE; + if (State->Flags.Zf) return; for (i = DataSize - 1; i >= 0; i--) { @@ -1925,24 +1814,8 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeBsr) } /* Write back the result */ - if (OperandSize) - { - if (!Fast486WriteModrmDwordOperands(State, &ModRegRm, TRUE, BitNumber)) - { - /* Exception occurred */ - return FALSE; - } - } - else - { - if (!Fast486WriteModrmWordOperands(State, &ModRegRm, TRUE, LOWORD(BitNumber))) - { - /* Exception occurred */ - return FALSE; - } - } - - return TRUE; + if (OperandSize) Fast486WriteModrmDwordOperands(State, &ModRegRm, TRUE, BitNumber); + else Fast486WriteModrmWordOperands(State, &ModRegRm, TRUE, LOWORD(BitNumber)); } FAST486_OPCODE_HANDLER(Fast486ExtOpcodeMovsxByte) @@ -1960,21 +1833,21 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeMovsxByte) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } /* Read the operands */ if (!Fast486ReadModrmByteOperands(State, &ModRegRm, NULL, (PUCHAR)&Value)) { /* Exception occurred */ - return FALSE; + return; } /* Write back the sign-extended value */ - return Fast486WriteModrmDwordOperands(State, - &ModRegRm, - TRUE, - (ULONG)((LONG)Value)); + Fast486WriteModrmDwordOperands(State, + &ModRegRm, + TRUE, + (ULONG)((LONG)Value)); } FAST486_OPCODE_HANDLER(Fast486ExtOpcodeMovsxWord) @@ -1992,21 +1865,21 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeMovsxWord) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } /* Read the operands */ if (!Fast486ReadModrmWordOperands(State, &ModRegRm, NULL, (PUSHORT)&Value)) { /* Exception occurred */ - return FALSE; + return; } /* Write back the sign-extended value */ - return Fast486WriteModrmDwordOperands(State, - &ModRegRm, - TRUE, - (ULONG)((LONG)Value)); + Fast486WriteModrmDwordOperands(State, + &ModRegRm, + TRUE, + (ULONG)((LONG)Value)); } FAST486_OPCODE_HANDLER(Fast486ExtOpcodeConditionalJmp) @@ -2027,7 +1900,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeConditionalJmp) if (!Fast486FetchDword(State, (PULONG)&Offset)) { /* Exception occurred */ - return FALSE; + return; } } else @@ -2037,7 +1910,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeConditionalJmp) if (!Fast486FetchWord(State, (PUSHORT)&Value)) { /* Exception occurred */ - return FALSE; + return; } /* Sign-extend */ @@ -2114,9 +1987,6 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeConditionalJmp) /* Move the instruction pointer */ State->InstPtr.Long += Offset; } - - /* Return success */ - return TRUE; } FAST486_OPCODE_HANDLER(Fast486ExtOpcodeConditionalSet) @@ -2131,7 +2001,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeConditionalSet) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } /* Make sure this is the right instruction */ @@ -2203,7 +2073,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeConditionalSet) } /* Write back the result */ - return Fast486WriteModrmByteOperands(State, &ModRegRm, FALSE, Value); + Fast486WriteModrmByteOperands(State, &ModRegRm, FALSE, Value); } FAST486_OPCODE_HANDLER(Fast486ExtOpcodeXaddByte) @@ -2221,7 +2091,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeXaddByte) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } if (!Fast486ReadModrmByteOperands(State, @@ -2230,7 +2100,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeXaddByte) &Destination)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -2249,17 +2119,11 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeXaddByte) if (!Fast486WriteModrmByteOperands(State, &ModRegRm, FALSE, Result)) { /* Exception occurred */ - return FALSE; + return; } /* Write the old value of the destination to the source */ - if (!Fast486WriteModrmByteOperands(State, &ModRegRm, TRUE, Destination)) - { - /* Exception occurred */ - return FALSE; - } - - return TRUE; + Fast486WriteModrmByteOperands(State, &ModRegRm, TRUE, Destination); } FAST486_OPCODE_HANDLER(Fast486ExtOpcodeXadd) @@ -2279,7 +2143,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeXadd) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } /* Check the operand size */ @@ -2293,7 +2157,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeXadd) &Destination)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -2312,15 +2176,11 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeXadd) if (!Fast486WriteModrmDwordOperands(State, &ModRegRm, TRUE, Destination)) { /* Exception occurred */ - return FALSE; + return; } /* Write the sum to the destination */ - if (!Fast486WriteModrmDwordOperands(State, &ModRegRm, FALSE, Result)) - { - /* Exception occurred */ - return FALSE; - } + Fast486WriteModrmDwordOperands(State, &ModRegRm, FALSE, Result); } else { @@ -2332,7 +2192,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeXadd) &Destination)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -2351,18 +2211,12 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeXadd) if (!Fast486WriteModrmWordOperands(State, &ModRegRm, TRUE, Destination)) { /* Exception occurred */ - return FALSE; + return; } /* Write the sum to the destination */ - if (!Fast486WriteModrmWordOperands(State, &ModRegRm, FALSE, Result)) - { - /* Exception occurred */ - return FALSE; - } + Fast486WriteModrmWordOperands(State, &ModRegRm, FALSE, Result); } - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486ExtOpcodeBswap) @@ -2377,9 +2231,6 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeBswap) /* Swap the byte order */ SWAP(Pointer[0], Pointer[3]); SWAP(Pointer[1], Pointer[2]); - - /* Return success */ - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeExtended) @@ -2390,11 +2241,11 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeExtended) if (!Fast486FetchByte(State, &SecondOpcode)) { /* Exception occurred */ - return FALSE; + return; } /* Call the extended opcode handler */ - return Fast486ExtendedHandlers[SecondOpcode](State, SecondOpcode); + Fast486ExtendedHandlers[SecondOpcode](State, SecondOpcode); } /* EOF */ diff --git a/reactos/lib/fast486/fpu.c b/reactos/lib/fast486/fpu.c index 6a16fdfc838..a0399e57ebf 100644 --- a/reactos/lib/fast486/fpu.c +++ b/reactos/lib/fast486/fpu.c @@ -316,7 +316,7 @@ FAST486_OPCODE_HANDLER(Fast486FpuOpcodeD8DC) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } FPU_CHECK(); @@ -340,7 +340,7 @@ FAST486_OPCODE_HANDLER(Fast486FpuOpcodeD8DC) sizeof(ULONGLONG))) { /* Exception occurred */ - return FALSE; + return; } Fast486FpuGetDoubleReal(State, Value, &MemoryData); @@ -352,7 +352,7 @@ FAST486_OPCODE_HANDLER(Fast486FpuOpcodeD8DC) if (!Fast486ReadModrmDwordOperands(State, &ModRegRm, NULL, &Value)) { /* Exception occurred */ - return FALSE; + return; } Fast486FpuGetSingleReal(State, Value, &MemoryData); @@ -369,7 +369,7 @@ FAST486_OPCODE_HANDLER(Fast486FpuOpcodeD8DC) { /* Invalid operation */ State->FpuStatus.Ie = TRUE; - return FALSE; + return; } } @@ -380,7 +380,7 @@ FAST486_OPCODE_HANDLER(Fast486FpuOpcodeD8DC) { /* Invalid operation */ State->FpuStatus.Ie = TRUE; - return FALSE; + return; } /* Check the operation */ @@ -441,8 +441,6 @@ FAST486_OPCODE_HANDLER(Fast486FpuOpcodeD8DC) } #endif - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486FpuOpcodeD9) @@ -454,7 +452,7 @@ FAST486_OPCODE_HANDLER(Fast486FpuOpcodeD9) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } FPU_CHECK(); @@ -462,11 +460,8 @@ FAST486_OPCODE_HANDLER(Fast486FpuOpcodeD9) #ifndef FAST486_NO_FPU // TODO: NOT IMPLEMENTED UNIMPLEMENTED; - - return FALSE; #else /* Do nothing */ - return TRUE; #endif } @@ -479,7 +474,7 @@ FAST486_OPCODE_HANDLER(Fast486FpuOpcodeDA) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } FPU_CHECK(); @@ -487,11 +482,8 @@ FAST486_OPCODE_HANDLER(Fast486FpuOpcodeDA) #ifndef FAST486_NO_FPU // TODO: NOT IMPLEMENTED UNIMPLEMENTED; - - return FALSE; #else /* Do nothing */ - return TRUE; #endif } @@ -504,7 +496,7 @@ FAST486_OPCODE_HANDLER(Fast486FpuOpcodeDB) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } FPU_CHECK(); @@ -562,14 +554,11 @@ FAST486_OPCODE_HANDLER(Fast486FpuOpcodeDB) default: { Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; } } } #endif - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486FpuOpcodeDD) @@ -581,7 +570,7 @@ FAST486_OPCODE_HANDLER(Fast486FpuOpcodeDD) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } FPU_CHECK(); @@ -589,11 +578,8 @@ FAST486_OPCODE_HANDLER(Fast486FpuOpcodeDD) #ifndef FAST486_NO_FPU // TODO: NOT IMPLEMENTED UNIMPLEMENTED; - - return FALSE; #else /* Do nothing */ - return TRUE; #endif } @@ -606,7 +592,7 @@ FAST486_OPCODE_HANDLER(Fast486FpuOpcodeDE) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } FPU_CHECK(); @@ -614,11 +600,8 @@ FAST486_OPCODE_HANDLER(Fast486FpuOpcodeDE) #ifndef FAST486_NO_FPU // TODO: NOT IMPLEMENTED UNIMPLEMENTED; - - return FALSE; #else /* Do nothing */ - return TRUE; #endif } @@ -631,7 +614,7 @@ FAST486_OPCODE_HANDLER(Fast486FpuOpcodeDF) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } FPU_CHECK(); @@ -639,11 +622,8 @@ FAST486_OPCODE_HANDLER(Fast486FpuOpcodeDF) #ifndef FAST486_NO_FPU // TODO: NOT IMPLEMENTED UNIMPLEMENTED; - - return FALSE; #else /* Do nothing */ - return TRUE; #endif } diff --git a/reactos/lib/fast486/fpu.h b/reactos/lib/fast486/fpu.h index 00c292199bb..b23c795d32b 100644 --- a/reactos/lib/fast486/fpu.h +++ b/reactos/lib/fast486/fpu.h @@ -31,7 +31,7 @@ #define FPU_CHECK() if (State->ControlRegisters[FAST486_REG_CR0] & FAST486_CR0_EM) \ { \ Fast486Exception(State, FAST486_EXCEPTION_NM); \ - return FALSE; \ + return; \ } #define FPU_ST(i) State->FpuRegisters[(State->FpuStatus.Top + (i)) % FAST486_NUM_FPU_REGS] #define FPU_GET_TAG(i) ((State->FpuTag >> ((i) * 2)) & 3) diff --git a/reactos/lib/fast486/opcodes.c b/reactos/lib/fast486/opcodes.c index 06b3f9eea54..f31ce73d7f6 100644 --- a/reactos/lib/fast486/opcodes.c +++ b/reactos/lib/fast486/opcodes.c @@ -307,7 +307,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeInvalid) */ DPRINT1("FAST486 -- Calling ICEBP opcode\n"); Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; } FAST486_OPCODE_HANDLER(Fast486OpcodePrefix) @@ -465,10 +464,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodePrefix) /* Throw an exception */ Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; } - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeIncrement) @@ -500,9 +496,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeIncrement) State->Flags.Zf = (Value == 0); State->Flags.Af = ((Value & 0x0F) == 0); State->Flags.Pf = Fast486CalculateParity(LOBYTE(Value)); - - /* Return success */ - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeDecrement) @@ -534,9 +527,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeDecrement) State->Flags.Zf = (Value == 0); State->Flags.Af = ((Value & 0x0F) == 0x0F); State->Flags.Pf = Fast486CalculateParity(LOBYTE(Value)); - - /* Return success */ - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodePushReg) @@ -547,7 +537,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodePushReg) ASSERT((Opcode & 0xF8) == 0x50); /* Call the internal function */ - return Fast486StackPush(State, State->GeneralRegs[Opcode & 0x07].Long); + Fast486StackPush(State, State->GeneralRegs[Opcode & 0x07].Long); } FAST486_OPCODE_HANDLER(Fast486OpcodePopReg) @@ -562,19 +552,15 @@ FAST486_OPCODE_HANDLER(Fast486OpcodePopReg) ASSERT((Opcode & 0xF8) == 0x58); /* Call the internal function */ - if (!Fast486StackPop(State, &Value)) return FALSE; + if (!Fast486StackPop(State, &Value)) return; /* Store the value */ if (Size) State->GeneralRegs[Opcode & 0x07].Long = Value; else State->GeneralRegs[Opcode & 0x07].LowWord = Value; - - /* Return success */ - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeNop) { - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeExchangeEax) @@ -605,8 +591,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeExchangeEax) State->GeneralRegs[Reg].LowWord = State->GeneralRegs[FAST486_REG_EAX].LowWord; State->GeneralRegs[FAST486_REG_EAX].LowWord = Value; } - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeShortConditionalJmp) @@ -624,7 +608,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeShortConditionalJmp) if (!Fast486FetchByte(State, (PUCHAR)&Offset)) { /* An exception occurred */ - return FALSE; + return; } switch ((Opcode & 0x0F) >> 1) @@ -703,9 +687,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeShortConditionalJmp) State->InstPtr.Long &= 0xFFFF; } } - - /* Return success */ - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeClearCarry) @@ -717,12 +698,11 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeClearCarry) if (State->PrefixFlags) { Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } /* Clear CF and return success */ State->Flags.Cf = FALSE; - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeSetCarry) @@ -734,12 +714,11 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeSetCarry) if (State->PrefixFlags) { Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } /* Set CF and return success*/ State->Flags.Cf = TRUE; - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeComplCarry) @@ -751,12 +730,12 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeComplCarry) if (State->PrefixFlags) { Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } /* Toggle CF and return success */ State->Flags.Cf = !State->Flags.Cf; - return TRUE; + return; } FAST486_OPCODE_HANDLER(Fast486OpcodeClearInt) @@ -768,7 +747,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeClearInt) if (State->PrefixFlags) { Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } /* Check for protected mode */ @@ -784,7 +763,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeClearInt) { /* General Protection Fault */ Fast486Exception(State, FAST486_EXCEPTION_GP); - return FALSE; + return; } } else @@ -792,9 +771,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeClearInt) /* Just clear the interrupt flag */ State->Flags.If = FALSE; } - - /* Return success */ - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeSetInt) @@ -806,7 +782,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeSetInt) if (State->PrefixFlags) { Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } /* Check for protected mode */ @@ -822,7 +798,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeSetInt) { /* General Protection Fault */ Fast486Exception(State, FAST486_EXCEPTION_GP); - return FALSE; + return; } } else @@ -830,9 +806,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeSetInt) /* Just set the interrupt flag */ State->Flags.If = TRUE; } - - /* Return success */ - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeClearDir) @@ -844,12 +817,11 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeClearDir) if (State->PrefixFlags) { Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } - /* Clear DF and return success */ + /* Clear DF */ State->Flags.Df = FALSE; - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeSetDir) @@ -861,12 +833,11 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeSetDir) if (State->PrefixFlags) { Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } - /* Set DF and return success*/ + /* Set DF */ State->Flags.Df = TRUE; - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeHalt) @@ -878,21 +849,18 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeHalt) if (State->PrefixFlags) { Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } /* Privileged instructions can only be executed under CPL = 0 */ if (State->SegmentRegs[FAST486_REG_CS].Dpl != 0) { Fast486Exception(State, FAST486_EXCEPTION_GP); - return FALSE; + return; } /* Halt */ State->Halted = TRUE; - - /* Return success */ - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeInByte) @@ -909,7 +877,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeInByte) if (!Fast486FetchByte(State, &Data)) { /* Exception occurred */ - return FALSE; + return; } /* Set the port number to the parameter */ @@ -926,8 +894,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeInByte) /* Store the result in AL */ State->GeneralRegs[FAST486_REG_EAX].LowByte = Data; - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeIn) @@ -949,7 +915,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeIn) if (!Fast486FetchByte(State, &Data)) { /* Exception occurred */ - return FALSE; + return; } /* Set the port number to the parameter */ @@ -981,8 +947,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeIn) /* Store the value in AX */ State->GeneralRegs[FAST486_REG_EAX].LowWord = Data; } - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeOutByte) @@ -999,7 +963,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeOutByte) if (!Fast486FetchByte(State, &Data)) { /* Exception occurred */ - return FALSE; + return; } /* Set the port number to the parameter */ @@ -1016,8 +980,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeOutByte) /* Write the byte to the I/O port */ State->IoWriteCallback(State, Port, &Data, 1, sizeof(UCHAR)); - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeOut) @@ -1039,7 +1001,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeOut) if (!Fast486FetchByte(State, &Data)) { /* Exception occurred */ - return FALSE; + return; } /* Set the port number to the parameter */ @@ -1067,8 +1029,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeOut) /* Write a word to the I/O port */ State->IoWriteCallback(State, Port, &Data, 1, sizeof(USHORT)); } - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeShortJump) @@ -1085,7 +1045,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeShortJump) if (!Fast486FetchByte(State, (PUCHAR)&Offset)) { /* An exception occurred */ - return FALSE; + return; } /* Move the instruction pointer */ @@ -1096,8 +1056,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeShortJump) /* Clear the top half of EIP */ State->InstPtr.Long &= 0xFFFF; } - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeMovRegImm) @@ -1118,7 +1076,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeMovRegImm) if (!Fast486FetchDword(State, &Value)) { /* Exception occurred */ - return FALSE; + return; } /* Store the value in the register */ @@ -1132,14 +1090,12 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeMovRegImm) if (!Fast486FetchWord(State, &Value)) { /* Exception occurred */ - return FALSE; + return; } /* Store the value in the register */ State->GeneralRegs[Opcode & 0x07].LowWord = Value; } - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeMovByteRegImm) @@ -1153,14 +1109,14 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeMovByteRegImm) { /* Invalid prefix */ Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } /* Fetch the byte */ if (!Fast486FetchByte(State, &Value)) { /* Exception occurred */ - return FALSE; + return; } if (Opcode & 0x04) @@ -1173,8 +1129,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeMovByteRegImm) /* AL, CL, DL or BL */ State->GeneralRegs[Opcode & 0x03].LowByte = Value; } - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeAddByteModrm) @@ -1192,7 +1146,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAddByteModrm) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } if (!Fast486ReadModrmByteOperands(State, @@ -1201,7 +1155,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAddByteModrm) &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -1217,10 +1171,10 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAddByteModrm) State->Flags.Pf = Fast486CalculateParity(Result); /* Write back the result */ - return Fast486WriteModrmByteOperands(State, - &ModRegRm, - Opcode & FAST486_OPCODE_WRITE_REG, - Result); + Fast486WriteModrmByteOperands(State, + &ModRegRm, + Opcode & FAST486_OPCODE_WRITE_REG, + Result); } FAST486_OPCODE_HANDLER(Fast486OpcodeAddModrm) @@ -1240,7 +1194,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAddModrm) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } /* Check the operand size */ @@ -1254,7 +1208,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAddModrm) &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -1270,10 +1224,10 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAddModrm) State->Flags.Pf = Fast486CalculateParity(Result); /* Write back the result */ - return Fast486WriteModrmDwordOperands(State, - &ModRegRm, - Opcode & FAST486_OPCODE_WRITE_REG, - Result); + Fast486WriteModrmDwordOperands(State, + &ModRegRm, + Opcode & FAST486_OPCODE_WRITE_REG, + Result); } else { @@ -1285,7 +1239,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAddModrm) &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -1301,10 +1255,10 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAddModrm) State->Flags.Pf = Fast486CalculateParity(Result); /* Write back the result */ - return Fast486WriteModrmWordOperands(State, - &ModRegRm, - Opcode & FAST486_OPCODE_WRITE_REG, - Result); + Fast486WriteModrmWordOperands(State, + &ModRegRm, + Opcode & FAST486_OPCODE_WRITE_REG, + Result); } } @@ -1320,13 +1274,13 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAddAl) { /* This opcode doesn't take any prefixes */ Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } if (!Fast486FetchByte(State, &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -1343,8 +1297,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAddAl) /* Write back the result */ State->GeneralRegs[FAST486_REG_EAX].LowByte = Result; - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeAddEax) @@ -1365,7 +1317,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAddEax) if (!Fast486FetchDword(State, &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -1391,7 +1343,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAddEax) if (!Fast486FetchWord(State, &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -1409,8 +1361,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAddEax) /* Write back the result */ State->GeneralRegs[FAST486_REG_EAX].LowWord = Result; } - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeOrByteModrm) @@ -1428,7 +1378,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeOrByteModrm) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } if (!Fast486ReadModrmByteOperands(State, @@ -1437,7 +1387,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeOrByteModrm) &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -1451,10 +1401,10 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeOrByteModrm) State->Flags.Pf = Fast486CalculateParity(Result); /* Write back the result */ - return Fast486WriteModrmByteOperands(State, - &ModRegRm, - Opcode & FAST486_OPCODE_WRITE_REG, - Result); + Fast486WriteModrmByteOperands(State, + &ModRegRm, + Opcode & FAST486_OPCODE_WRITE_REG, + Result); } FAST486_OPCODE_HANDLER(Fast486OpcodeOrModrm) @@ -1474,7 +1424,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeOrModrm) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } /* Check the operand size */ @@ -1488,7 +1438,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeOrModrm) &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -1502,10 +1452,10 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeOrModrm) State->Flags.Pf = Fast486CalculateParity(Result); /* Write back the result */ - return Fast486WriteModrmDwordOperands(State, - &ModRegRm, - Opcode & FAST486_OPCODE_WRITE_REG, - Result); + Fast486WriteModrmDwordOperands(State, + &ModRegRm, + Opcode & FAST486_OPCODE_WRITE_REG, + Result); } else { @@ -1517,7 +1467,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeOrModrm) &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -1531,10 +1481,10 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeOrModrm) State->Flags.Pf = Fast486CalculateParity(Result); /* Write back the result */ - return Fast486WriteModrmWordOperands(State, - &ModRegRm, - Opcode & FAST486_OPCODE_WRITE_REG, - Result); + Fast486WriteModrmWordOperands(State, + &ModRegRm, + Opcode & FAST486_OPCODE_WRITE_REG, + Result); } } @@ -1550,13 +1500,13 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeOrAl) { /* This opcode doesn't take any prefixes */ Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } if (!Fast486FetchByte(State, &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -1571,8 +1521,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeOrAl) /* Write back the result */ State->GeneralRegs[FAST486_REG_EAX].LowByte = Result; - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeOrEax) @@ -1593,7 +1541,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeOrEax) if (!Fast486FetchDword(State, &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -1617,7 +1565,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeOrEax) if (!Fast486FetchWord(State, &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -1633,8 +1581,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeOrEax) /* Write back the result */ State->GeneralRegs[FAST486_REG_EAX].LowWord = Result; } - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeAndByteModrm) @@ -1652,7 +1598,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAndByteModrm) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } if (!Fast486ReadModrmByteOperands(State, @@ -1661,7 +1607,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAndByteModrm) &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -1675,10 +1621,10 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAndByteModrm) State->Flags.Pf = Fast486CalculateParity(Result); /* Write back the result */ - return Fast486WriteModrmByteOperands(State, - &ModRegRm, - Opcode & FAST486_OPCODE_WRITE_REG, - Result); + Fast486WriteModrmByteOperands(State, + &ModRegRm, + Opcode & FAST486_OPCODE_WRITE_REG, + Result); } FAST486_OPCODE_HANDLER(Fast486OpcodeAndModrm) @@ -1698,7 +1644,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAndModrm) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } /* Check the operand size */ @@ -1712,7 +1658,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAndModrm) &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -1726,10 +1672,10 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAndModrm) State->Flags.Pf = Fast486CalculateParity(Result); /* Write back the result */ - return Fast486WriteModrmDwordOperands(State, - &ModRegRm, - Opcode & FAST486_OPCODE_WRITE_REG, - Result); + Fast486WriteModrmDwordOperands(State, + &ModRegRm, + Opcode & FAST486_OPCODE_WRITE_REG, + Result); } else { @@ -1741,7 +1687,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAndModrm) &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -1755,10 +1701,10 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAndModrm) State->Flags.Pf = Fast486CalculateParity(Result); /* Write back the result */ - return Fast486WriteModrmWordOperands(State, - &ModRegRm, - Opcode & FAST486_OPCODE_WRITE_REG, - Result); + Fast486WriteModrmWordOperands(State, + &ModRegRm, + Opcode & FAST486_OPCODE_WRITE_REG, + Result); } } @@ -1775,7 +1721,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAndAl) if (!Fast486FetchByte(State, &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -1790,8 +1736,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAndAl) /* Write back the result */ State->GeneralRegs[FAST486_REG_EAX].LowByte = Result; - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeAndEax) @@ -1812,7 +1756,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAndEax) if (!Fast486FetchDword(State, &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -1836,7 +1780,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAndEax) if (!Fast486FetchWord(State, &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -1852,8 +1796,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAndEax) /* Write back the result */ State->GeneralRegs[FAST486_REG_EAX].LowWord = Result; } - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeXorByteModrm) @@ -1871,7 +1813,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeXorByteModrm) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } if (!Fast486ReadModrmByteOperands(State, @@ -1880,7 +1822,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeXorByteModrm) &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -1894,10 +1836,10 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeXorByteModrm) State->Flags.Pf = Fast486CalculateParity(Result); /* Write back the result */ - return Fast486WriteModrmByteOperands(State, - &ModRegRm, - Opcode & FAST486_OPCODE_WRITE_REG, - Result); + Fast486WriteModrmByteOperands(State, + &ModRegRm, + Opcode & FAST486_OPCODE_WRITE_REG, + Result); } FAST486_OPCODE_HANDLER(Fast486OpcodeXorModrm) @@ -1917,7 +1859,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeXorModrm) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } /* Check the operand size */ @@ -1931,7 +1873,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeXorModrm) &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -1945,10 +1887,10 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeXorModrm) State->Flags.Pf = Fast486CalculateParity(Result); /* Write back the result */ - return Fast486WriteModrmDwordOperands(State, - &ModRegRm, - Opcode & FAST486_OPCODE_WRITE_REG, - Result); + Fast486WriteModrmDwordOperands(State, + &ModRegRm, + Opcode & FAST486_OPCODE_WRITE_REG, + Result); } else { @@ -1960,7 +1902,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeXorModrm) &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -1974,10 +1916,10 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeXorModrm) State->Flags.Pf = Fast486CalculateParity(Result); /* Write back the result */ - return Fast486WriteModrmWordOperands(State, - &ModRegRm, - Opcode & FAST486_OPCODE_WRITE_REG, - Result); + Fast486WriteModrmWordOperands(State, + &ModRegRm, + Opcode & FAST486_OPCODE_WRITE_REG, + Result); } } @@ -1993,13 +1935,13 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeXorAl) { /* This opcode doesn't take any prefixes */ Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } if (!Fast486FetchByte(State, &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -2014,8 +1956,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeXorAl) /* Write back the result */ State->GeneralRegs[FAST486_REG_EAX].LowByte = Result; - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeXorEax) @@ -2036,7 +1976,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeXorEax) if (!Fast486FetchDword(State, &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -2060,7 +2000,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeXorEax) if (!Fast486FetchWord(State, &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -2076,8 +2016,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeXorEax) /* Write back the result */ State->GeneralRegs[FAST486_REG_EAX].LowWord = Result; } - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeTestByteModrm) @@ -2095,7 +2033,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeTestByteModrm) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } if (!Fast486ReadModrmByteOperands(State, @@ -2104,7 +2042,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeTestByteModrm) &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ Result = FirstValue & SecondValue; @@ -2115,9 +2053,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeTestByteModrm) State->Flags.Zf = (Result == 0); State->Flags.Sf = ((Result & SIGN_FLAG_BYTE) != 0); State->Flags.Pf = Fast486CalculateParity(Result); - - /* The result is discarded */ - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeTestModrm) @@ -2137,7 +2072,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeTestModrm) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } /* Check the operand size */ @@ -2151,7 +2086,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeTestModrm) &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -2174,7 +2109,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeTestModrm) &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -2187,9 +2122,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeTestModrm) State->Flags.Sf = ((Result & SIGN_FLAG_WORD) != 0); State->Flags.Pf = Fast486CalculateParity(Result); } - - /* The result is discarded */ - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeTestAl) @@ -2204,13 +2136,13 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeTestAl) { /* This opcode doesn't take any prefixes */ Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } if (!Fast486FetchByte(State, &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -2222,9 +2154,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeTestAl) State->Flags.Zf = (Result == 0); State->Flags.Sf = ((Result & SIGN_FLAG_BYTE) != 0); State->Flags.Pf = Fast486CalculateParity(Result); - - /* The result is discarded */ - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeTestEax) @@ -2245,7 +2174,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeTestEax) if (!Fast486FetchDword(State, &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -2266,7 +2195,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeTestEax) if (!Fast486FetchWord(State, &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -2279,9 +2208,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeTestEax) State->Flags.Sf = ((Result & SIGN_FLAG_WORD) != 0); State->Flags.Pf = Fast486CalculateParity(Result); } - - /* The result is discarded */ - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeXchgByteModrm) @@ -2299,7 +2225,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeXchgByteModrm) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } if (!Fast486ReadModrmByteOperands(State, @@ -2308,7 +2234,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeXchgByteModrm) &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Write the value from the register to the R/M */ @@ -2318,20 +2244,14 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeXchgByteModrm) FirstValue)) { /* Exception occurred */ - return FALSE; + return; } /* Write the value from the R/M to the register */ - if (!Fast486WriteModrmByteOperands(State, - &ModRegRm, - TRUE, - SecondValue)) - { - /* Exception occurred */ - return FALSE; - } - - return TRUE; + Fast486WriteModrmByteOperands(State, + &ModRegRm, + TRUE, + SecondValue); } FAST486_OPCODE_HANDLER(Fast486OpcodeXchgModrm) @@ -2351,7 +2271,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeXchgModrm) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } /* Check the operand size */ @@ -2365,7 +2285,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeXchgModrm) &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Write the value from the register to the R/M */ @@ -2375,18 +2295,14 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeXchgModrm) FirstValue)) { /* Exception occurred */ - return FALSE; + return; } /* Write the value from the R/M to the register */ - if (!Fast486WriteModrmDwordOperands(State, - &ModRegRm, - TRUE, - SecondValue)) - { - /* Exception occurred */ - return FALSE; - } + Fast486WriteModrmDwordOperands(State, + &ModRegRm, + TRUE, + SecondValue); } else { @@ -2398,7 +2314,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeXchgModrm) &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Write the value from the register to the R/M */ @@ -2408,28 +2324,21 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeXchgModrm) FirstValue)) { /* Exception occurred */ - return FALSE; + return; } /* Write the value from the R/M to the register */ - if (!Fast486WriteModrmWordOperands(State, - &ModRegRm, - TRUE, - SecondValue)) - { - /* Exception occurred */ - return FALSE; - } + Fast486WriteModrmWordOperands(State, + &ModRegRm, + TRUE, + SecondValue); } - - /* The result is discarded */ - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodePushEs) { /* Call the internal API */ - return Fast486StackPush(State, State->SegmentRegs[FAST486_REG_ES].Selector); + Fast486StackPush(State, State->SegmentRegs[FAST486_REG_ES].Selector); } FAST486_OPCODE_HANDLER(Fast486OpcodePopEs) @@ -2439,17 +2348,17 @@ FAST486_OPCODE_HANDLER(Fast486OpcodePopEs) if (!Fast486StackPop(State, &NewSelector)) { /* Exception occurred */ - return FALSE; + return; } /* Call the internal API */ - return Fast486LoadSegment(State, FAST486_REG_ES, LOWORD(NewSelector)); + Fast486LoadSegment(State, FAST486_REG_ES, LOWORD(NewSelector)); } FAST486_OPCODE_HANDLER(Fast486OpcodePushCs) { /* Call the internal API */ - return Fast486StackPush(State, State->SegmentRegs[FAST486_REG_CS].Selector); + Fast486StackPush(State, State->SegmentRegs[FAST486_REG_CS].Selector); } FAST486_OPCODE_HANDLER(Fast486OpcodeAdcByteModrm) @@ -2467,7 +2376,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAdcByteModrm) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } if (!Fast486ReadModrmByteOperands(State, @@ -2476,7 +2385,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAdcByteModrm) &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -2496,10 +2405,10 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAdcByteModrm) State->Flags.Pf = Fast486CalculateParity(Result); /* Write back the result */ - return Fast486WriteModrmByteOperands(State, - &ModRegRm, - Opcode & FAST486_OPCODE_WRITE_REG, - Result); + Fast486WriteModrmByteOperands(State, + &ModRegRm, + Opcode & FAST486_OPCODE_WRITE_REG, + Result); } FAST486_OPCODE_HANDLER(Fast486OpcodeAdcModrm) @@ -2519,7 +2428,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAdcModrm) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } /* Check the operand size */ @@ -2533,7 +2442,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAdcModrm) &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -2553,10 +2462,10 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAdcModrm) State->Flags.Pf = Fast486CalculateParity(Result); /* Write back the result */ - return Fast486WriteModrmDwordOperands(State, - &ModRegRm, - Opcode & FAST486_OPCODE_WRITE_REG, - Result); + Fast486WriteModrmDwordOperands(State, + &ModRegRm, + Opcode & FAST486_OPCODE_WRITE_REG, + Result); } else { @@ -2568,7 +2477,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAdcModrm) &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -2588,10 +2497,10 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAdcModrm) State->Flags.Pf = Fast486CalculateParity(Result); /* Write back the result */ - return Fast486WriteModrmWordOperands(State, - &ModRegRm, - Opcode & FAST486_OPCODE_WRITE_REG, - Result); + Fast486WriteModrmWordOperands(State, + &ModRegRm, + Opcode & FAST486_OPCODE_WRITE_REG, + Result); } } @@ -2608,13 +2517,13 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAdcAl) { /* This opcode doesn't take any prefixes */ Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } if (!Fast486FetchByte(State, &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -2635,8 +2544,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAdcAl) /* Write back the result */ State->GeneralRegs[FAST486_REG_EAX].LowByte = Result; - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeAdcEax) @@ -2657,7 +2564,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAdcEax) if (!Fast486FetchDword(State, &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -2687,7 +2594,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAdcEax) if (!Fast486FetchWord(State, &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -2709,14 +2616,12 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAdcEax) /* Write back the result */ State->GeneralRegs[FAST486_REG_EAX].LowWord = Result; } - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodePushSs) { /* Call the internal API */ - return Fast486StackPush(State, State->SegmentRegs[FAST486_REG_SS].Selector); + Fast486StackPush(State, State->SegmentRegs[FAST486_REG_SS].Selector); } FAST486_OPCODE_HANDLER(Fast486OpcodePopSs) @@ -2726,11 +2631,11 @@ FAST486_OPCODE_HANDLER(Fast486OpcodePopSs) if (!Fast486StackPop(State, &NewSelector)) { /* Exception occurred */ - return FALSE; + return; } /* Call the internal API */ - return Fast486LoadSegment(State, FAST486_REG_SS, LOWORD(NewSelector)); + Fast486LoadSegment(State, FAST486_REG_SS, LOWORD(NewSelector)); } FAST486_OPCODE_HANDLER(Fast486OpcodeSbbByteModrm) @@ -2749,7 +2654,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeSbbByteModrm) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } if (!Fast486ReadModrmByteOperands(State, @@ -2758,7 +2663,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeSbbByteModrm) &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Check if this is the instruction that writes to R/M */ @@ -2781,10 +2686,10 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeSbbByteModrm) State->Flags.Pf = Fast486CalculateParity(Result); /* Write back the result */ - return Fast486WriteModrmByteOperands(State, - &ModRegRm, - Opcode & FAST486_OPCODE_WRITE_REG, - Result); + Fast486WriteModrmByteOperands(State, + &ModRegRm, + Opcode & FAST486_OPCODE_WRITE_REG, + Result); } FAST486_OPCODE_HANDLER(Fast486OpcodeSbbModrm) @@ -2805,7 +2710,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeSbbModrm) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } /* Check the operand size */ @@ -2819,7 +2724,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeSbbModrm) &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Check if this is the instruction that writes to R/M */ @@ -2842,10 +2747,10 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeSbbModrm) State->Flags.Pf = Fast486CalculateParity(Result); /* Write back the result */ - return Fast486WriteModrmDwordOperands(State, - &ModRegRm, - Opcode & FAST486_OPCODE_WRITE_REG, - Result); + Fast486WriteModrmDwordOperands(State, + &ModRegRm, + Opcode & FAST486_OPCODE_WRITE_REG, + Result); } else { @@ -2857,7 +2762,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeSbbModrm) &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Check if this is the instruction that writes to R/M */ @@ -2880,10 +2785,10 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeSbbModrm) State->Flags.Pf = Fast486CalculateParity(Result); /* Write back the result */ - return Fast486WriteModrmWordOperands(State, - &ModRegRm, - Opcode & FAST486_OPCODE_WRITE_REG, - Result); + Fast486WriteModrmWordOperands(State, + &ModRegRm, + Opcode & FAST486_OPCODE_WRITE_REG, + Result); } } @@ -2900,13 +2805,13 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeSbbAl) { /* This opcode doesn't take any prefixes */ Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } if (!Fast486FetchByte(State, &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -2923,9 +2828,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeSbbAl) /* Write back the result */ State->GeneralRegs[FAST486_REG_EAX].LowByte = Result; - - return TRUE; - } FAST486_OPCODE_HANDLER(Fast486OpcodeSbbEax) @@ -2947,7 +2849,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeSbbEax) if (!Fast486FetchDword(State, &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -2973,7 +2875,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeSbbEax) if (!Fast486FetchWord(State, &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -2991,15 +2893,12 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeSbbEax) /* Write back the result */ State->GeneralRegs[FAST486_REG_EAX].LowWord = Result; } - - return TRUE; - } FAST486_OPCODE_HANDLER(Fast486OpcodePushDs) { /* Call the internal API */ - return Fast486StackPush(State, State->SegmentRegs[FAST486_REG_DS].Selector); + Fast486StackPush(State, State->SegmentRegs[FAST486_REG_DS].Selector); } FAST486_OPCODE_HANDLER(Fast486OpcodePopDs) @@ -3009,11 +2908,11 @@ FAST486_OPCODE_HANDLER(Fast486OpcodePopDs) if (!Fast486StackPop(State, &NewSelector)) { /* Exception occurred */ - return FALSE; + return; } /* Call the internal API */ - return Fast486LoadSegment(State, FAST486_REG_DS, LOWORD(NewSelector)); + Fast486LoadSegment(State, FAST486_REG_DS, LOWORD(NewSelector)); } FAST486_OPCODE_HANDLER(Fast486OpcodeDaa) @@ -3055,8 +2954,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeDaa) State->Flags.Sf = (Value & SIGN_FLAG_BYTE) != 0; State->Flags.Zf = (Value == 0); State->Flags.Pf = Fast486CalculateParity(Value); - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeCmpSubByteModrm) @@ -3074,7 +2971,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeCmpSubByteModrm) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } if (!Fast486ReadModrmByteOperands(State, @@ -3083,7 +2980,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeCmpSubByteModrm) &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Check if this is the instruction that writes to R/M */ @@ -3109,15 +3006,10 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeCmpSubByteModrm) if (!(Opcode & 0x10)) { /* Write back the result */ - return Fast486WriteModrmByteOperands(State, - &ModRegRm, - Opcode & FAST486_OPCODE_WRITE_REG, - Result); - } - else - { - /* Discard the result */ - return TRUE; + Fast486WriteModrmByteOperands(State, + &ModRegRm, + Opcode & FAST486_OPCODE_WRITE_REG, + Result); } } @@ -3138,7 +3030,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeCmpSubModrm) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } /* Check the operand size */ @@ -3152,7 +3044,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeCmpSubModrm) &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Check if this is the instruction that writes to R/M */ @@ -3178,15 +3070,10 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeCmpSubModrm) if (!(Opcode & 0x10)) { /* Write back the result */ - return Fast486WriteModrmDwordOperands(State, - &ModRegRm, - Opcode & FAST486_OPCODE_WRITE_REG, - Result); - } - else - { - /* Discard the result */ - return TRUE; + Fast486WriteModrmDwordOperands(State, + &ModRegRm, + Opcode & FAST486_OPCODE_WRITE_REG, + Result); } } else @@ -3199,7 +3086,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeCmpSubModrm) &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Check if this is the instruction that writes to R/M */ @@ -3225,15 +3112,10 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeCmpSubModrm) if (!(Opcode & 0x10)) { /* Write back the result */ - return Fast486WriteModrmWordOperands(State, - &ModRegRm, - Opcode & FAST486_OPCODE_WRITE_REG, - Result); - } - else - { - /* Discard the result */ - return TRUE; + Fast486WriteModrmWordOperands(State, + &ModRegRm, + Opcode & FAST486_OPCODE_WRITE_REG, + Result); } } } @@ -3250,13 +3132,13 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeCmpSubAl) { /* This opcode doesn't take any prefixes */ Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } if (!Fast486FetchByte(State, &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -3277,8 +3159,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeCmpSubAl) /* Write back the result */ State->GeneralRegs[FAST486_REG_EAX].LowByte = Result; } - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeCmpSubEax) @@ -3299,7 +3179,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeCmpSubEax) if (!Fast486FetchDword(State, &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -3329,7 +3209,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeCmpSubEax) if (!Fast486FetchWord(State, &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -3351,8 +3231,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeCmpSubEax) State->GeneralRegs[FAST486_REG_EAX].LowWord = Result; } } - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeDas) @@ -3394,8 +3272,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeDas) State->Flags.Sf = (Value & SIGN_FLAG_BYTE) != 0; State->Flags.Zf = (Value == 0); State->Flags.Pf = Fast486CalculateParity(Value); - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeAaa) @@ -3423,8 +3299,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAaa) /* Keep only the lowest 4 bits of AL */ State->GeneralRegs[FAST486_REG_EAX].LowByte &= 0x0F; - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeAas) @@ -3452,8 +3326,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAas) /* Keep only the lowest 4 bits of AL */ State->GeneralRegs[FAST486_REG_EAX].LowByte &= 0x0F; - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodePushAll) @@ -3477,7 +3349,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodePushAll) if (!Fast486StackPush(State, Size ? SavedEsp.Long : SavedEsp.LowWord)) { /* Exception occurred */ - return FALSE; + return; } } else @@ -3487,12 +3359,10 @@ FAST486_OPCODE_HANDLER(Fast486OpcodePushAll) : State->GeneralRegs[i].LowWord)) { /* Exception occurred */ - return FALSE; + return; } } } - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodePopAll) @@ -3514,7 +3384,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodePopAll) if (!Fast486StackPop(State, &Value)) { /* Exception occurred */ - return FALSE; + return; } /* Don't modify ESP */ @@ -3524,8 +3394,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodePopAll) else State->GeneralRegs[i].LowWord = LOWORD(Value); } } - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeBound) @@ -3543,14 +3411,14 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeBound) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } if (!ModRegRm.Memory) { /* Invalid */ Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } /* Check for the segment override */ @@ -3571,7 +3439,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeBound) (PULONG)&LowerBound)) { /* Exception occurred */ - return FALSE; + return; } if (!Fast486ReadMemory(State, @@ -3582,14 +3450,13 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeBound) sizeof(ULONG))) { /* Exception occurred */ - return FALSE; + return; } if ((Index < LowerBound) || (Index > UpperBound)) { /* Out of bounds */ Fast486Exception(State, FAST486_EXCEPTION_BR); - return FALSE; } } else @@ -3603,7 +3470,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeBound) (PUSHORT)&LowerBound)) { /* Exception occurred */ - return FALSE; + return; } if (!Fast486ReadMemory(State, @@ -3614,18 +3481,15 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeBound) sizeof(USHORT))) { /* Exception occurred */ - return FALSE; + return; } if ((Index < LowerBound) || (Index > UpperBound)) { /* Out of bounds */ Fast486Exception(State, FAST486_EXCEPTION_BR); - return FALSE; } } - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeArpl) @@ -3640,7 +3504,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeArpl) { /* Cannot be used in real mode or with a LOCK prefix */ Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } TOGGLE_ADSIZE(AddressSize); @@ -3649,7 +3513,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeArpl) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } /* Read the operands */ @@ -3659,7 +3523,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeArpl) &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } /* Check if the RPL needs adjusting */ @@ -3673,13 +3537,12 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeArpl) State->Flags.Zf = TRUE; /* Write back the result */ - return Fast486WriteModrmWordOperands(State, &ModRegRm, FALSE, SecondValue); + Fast486WriteModrmWordOperands(State, &ModRegRm, FALSE, SecondValue); } else { /* Clear ZF */ State->Flags.Zf = FALSE; - return TRUE; } } @@ -3700,11 +3563,11 @@ FAST486_OPCODE_HANDLER(Fast486OpcodePushImm) if (!Fast486FetchDword(State, &Data)) { /* Exception occurred */ - return FALSE; + return; } /* Call the internal API */ - return Fast486StackPush(State, Data); + Fast486StackPush(State, Data); } else { @@ -3713,11 +3576,11 @@ FAST486_OPCODE_HANDLER(Fast486OpcodePushImm) if (!Fast486FetchWord(State, (PUSHORT)&Data)) { /* Exception occurred */ - return FALSE; + return; } /* Call the internal API */ - return Fast486StackPush(State, Data); + Fast486StackPush(State, Data); } } @@ -3739,7 +3602,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeImulModrmImm) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } if (Opcode == 0x6B) @@ -3750,7 +3613,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeImulModrmImm) if (!Fast486FetchByte(State, (PUCHAR)&Byte)) { /* Exception occurred */ - return FALSE; + return; } Multiplier = (LONG)Byte; @@ -3765,7 +3628,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeImulModrmImm) if (!Fast486FetchDword(State, (PULONG)&Dword)) { /* Exception occurred */ - return FALSE; + return; } Multiplier = Dword; @@ -3778,7 +3641,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeImulModrmImm) if (!Fast486FetchWord(State, (PUSHORT)&Word)) { /* Exception occurred */ - return FALSE; + return; } Multiplier = (LONG)Word; @@ -3797,7 +3660,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeImulModrmImm) (PULONG)&Multiplicand)) { /* Exception occurred */ - return FALSE; + return; } /* Multiply */ @@ -3807,10 +3670,10 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeImulModrmImm) State->Flags.Cf = State->Flags.Of = ((Product < MINLONG) || (Product > MAXLONG)); /* Write-back the result */ - return Fast486WriteModrmDwordOperands(State, - &ModRegRm, - TRUE, - (ULONG)((LONG)Product)); + Fast486WriteModrmDwordOperands(State, + &ModRegRm, + TRUE, + (ULONG)((LONG)Product)); } else { @@ -3824,7 +3687,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeImulModrmImm) (PUSHORT)&Multiplicand)) { /* Exception occurred */ - return FALSE; + return; } /* Multiply */ @@ -3834,10 +3697,10 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeImulModrmImm) State->Flags.Cf = State->Flags.Of = ((Product < MINSHORT) || (Product > MAXSHORT)); /* Write-back the result */ - return Fast486WriteModrmWordOperands(State, - &ModRegRm, - TRUE, - (USHORT)((SHORT)Product)); + Fast486WriteModrmWordOperands(State, + &ModRegRm, + TRUE, + (USHORT)((SHORT)Product)); } } @@ -3851,11 +3714,11 @@ FAST486_OPCODE_HANDLER(Fast486OpcodePushByteImm) if (!Fast486FetchByte(State, (PUCHAR)&Data)) { /* Exception occurred */ - return FALSE; + return; } /* Call the internal API */ - return Fast486StackPush(State, Data); + Fast486StackPush(State, Data); } FAST486_OPCODE_HANDLER(Fast486OpcodeMovByteModrm) @@ -3873,7 +3736,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeMovByteModrm) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } if (!Fast486ReadModrmByteOperands(State, @@ -3882,17 +3745,17 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeMovByteModrm) &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } if (Opcode & FAST486_OPCODE_WRITE_REG) Result = SecondValue; else Result = FirstValue; /* Write back the result */ - return Fast486WriteModrmByteOperands(State, - &ModRegRm, - Opcode & FAST486_OPCODE_WRITE_REG, - Result); + Fast486WriteModrmByteOperands(State, + &ModRegRm, + Opcode & FAST486_OPCODE_WRITE_REG, + Result); } @@ -3913,7 +3776,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeMovModrm) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } /* Check the operand size */ @@ -3927,17 +3790,17 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeMovModrm) &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } if (Opcode & FAST486_OPCODE_WRITE_REG) Result = SecondValue; else Result = FirstValue; /* Write back the result */ - return Fast486WriteModrmDwordOperands(State, - &ModRegRm, - Opcode & FAST486_OPCODE_WRITE_REG, - Result); + Fast486WriteModrmDwordOperands(State, + &ModRegRm, + Opcode & FAST486_OPCODE_WRITE_REG, + Result); } else { @@ -3949,17 +3812,17 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeMovModrm) &SecondValue)) { /* Exception occurred */ - return FALSE; + return; } if (Opcode & FAST486_OPCODE_WRITE_REG) Result = SecondValue; else Result = FirstValue; /* Write back the result */ - return Fast486WriteModrmWordOperands(State, - &ModRegRm, - Opcode & FAST486_OPCODE_WRITE_REG, - Result); + Fast486WriteModrmWordOperands(State, + &ModRegRm, + Opcode & FAST486_OPCODE_WRITE_REG, + Result); } } @@ -3980,29 +3843,29 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeMovStoreSeg) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } if (ModRegRm.Register >= FAST486_NUM_SEG_REGS) { /* Invalid */ Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } if (OperandSize) { - return Fast486WriteModrmDwordOperands(State, - &ModRegRm, - FALSE, - State->SegmentRegs[ModRegRm.Register].Selector); + Fast486WriteModrmDwordOperands(State, + &ModRegRm, + FALSE, + State->SegmentRegs[ModRegRm.Register].Selector); } else { - return Fast486WriteModrmWordOperands(State, - &ModRegRm, - FALSE, - State->SegmentRegs[ModRegRm.Register].Selector); + Fast486WriteModrmWordOperands(State, + &ModRegRm, + FALSE, + State->SegmentRegs[ModRegRm.Register].Selector); } } @@ -4023,7 +3886,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeLea) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } /* The second operand must be memory */ @@ -4031,23 +3894,23 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeLea) { /* Invalid */ Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } /* Write the address to the register */ if (OperandSize) { - return Fast486WriteModrmDwordOperands(State, - &ModRegRm, - TRUE, - ModRegRm.MemoryAddress); + Fast486WriteModrmDwordOperands(State, + &ModRegRm, + TRUE, + ModRegRm.MemoryAddress); } else { - return Fast486WriteModrmWordOperands(State, - &ModRegRm, - TRUE, - ModRegRm.MemoryAddress); + Fast486WriteModrmWordOperands(State, + &ModRegRm, + TRUE, + ModRegRm.MemoryAddress); } } @@ -4069,7 +3932,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeMovLoadSeg) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } if ((ModRegRm.Register >= FAST486_NUM_SEG_REGS) @@ -4077,7 +3940,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeMovLoadSeg) { /* Invalid */ Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } if (OperandSize) @@ -4087,10 +3950,10 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeMovLoadSeg) if (!Fast486ReadModrmDwordOperands(State, &ModRegRm, NULL, &Selector)) { /* Exception occurred */ - return FALSE; + return; } - return Fast486LoadSegment(State, ModRegRm.Register, LOWORD(Selector)); + Fast486LoadSegment(State, ModRegRm.Register, LOWORD(Selector)); } else { @@ -4099,10 +3962,10 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeMovLoadSeg) if (!Fast486ReadModrmWordOperands(State, &ModRegRm, NULL, &Selector)) { /* Exception occurred */ - return FALSE; + return; } - return Fast486LoadSegment(State, ModRegRm.Register, Selector); + Fast486LoadSegment(State, ModRegRm.Register, Selector); } } @@ -4133,8 +3996,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeCwde) (State->GeneralRegs[FAST486_REG_EAX].LowByte & SIGN_FLAG_BYTE) ? 0xFF : 0x00; } - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeCdq) @@ -4161,8 +4022,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeCdq) (State->GeneralRegs[FAST486_REG_EAX].LowWord & SIGN_FLAG_WORD) ? 0xFFFF : 0x0000; } - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeCallAbs) @@ -4183,7 +4042,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeCallAbs) if (!Fast486FetchDword(State, &Offset)) { /* Exception occurred */ - return FALSE; + return; } } else @@ -4191,7 +4050,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeCallAbs) if (!Fast486FetchWord(State, (PUSHORT)&Offset)) { /* Exception occurred */ - return FALSE; + return; } } @@ -4199,43 +4058,39 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeCallAbs) if (!Fast486FetchWord(State, &Segment)) { /* Exception occurred */ - return FALSE; + return; } /* Push the current code segment selector */ if (!Fast486StackPush(State, State->SegmentRegs[FAST486_REG_CS].Selector)) { /* Exception occurred */ - return FALSE; + return; } /* Push the current value of the instruction pointer */ if (!Fast486StackPush(State, State->InstPtr.Long)) { /* Exception occurred */ - return FALSE; + return; } /* Load the new CS */ if (!Fast486LoadSegment(State, FAST486_REG_CS, Segment)) { /* Exception occurred */ - return FALSE; + return; } /* Load new (E)IP */ if (Size) State->InstPtr.Long = Offset; else State->InstPtr.LowWord = LOWORD(Offset); - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeWait) { // TODO: NOT IMPLEMENTED UNIMPLEMENTED; - - return FALSE; } FAST486_OPCODE_HANDLER(Fast486OpcodePushFlags) @@ -4250,12 +4105,12 @@ FAST486_OPCODE_HANDLER(Fast486OpcodePushFlags) { /* Call the VM86 monitor */ Fast486ExceptionWithErrorCode(State, FAST486_EXCEPTION_GP, 0); - return FALSE; + return; } /* Push the flags */ - if (Size) return Fast486StackPush(State, State->Flags.Long); - else return Fast486StackPush(State, LOWORD(State->Flags.Long)); + if (Size) Fast486StackPush(State, State->Flags.Long); + else Fast486StackPush(State, LOWORD(State->Flags.Long)); } FAST486_OPCODE_HANDLER(Fast486OpcodePopFlags) @@ -4271,7 +4126,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodePopFlags) if (!Fast486StackPop(State, &NewFlags.Long)) { /* Exception occurred */ - return FALSE; + return; } /* Check for VM86 mode when IOPL is not 3 */ @@ -4279,7 +4134,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodePopFlags) { /* Call the VM86 monitor */ Fast486ExceptionWithErrorCode(State, FAST486_EXCEPTION_GP, 0); - return FALSE; + return; } State->Flags.Cf = NewFlags.Cf; @@ -4295,8 +4150,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodePopFlags) if (Cpl == 0) State->Flags.Iopl = NewFlags.Iopl; if (Cpl <= State->Flags.Iopl) State->Flags.If = NewFlags.If; - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeSahf) @@ -4311,8 +4164,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeSahf) /* Restore the reserved bits of FLAGS */ State->Flags.AlwaysSet = TRUE; State->Flags.Reserved0 = State->Flags.Reserved1 = FALSE; - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeLahf) @@ -4322,8 +4173,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeLahf) /* Set AH to the low-order byte of FLAGS */ State->GeneralRegs[FAST486_REG_EAX].HighByte = LOBYTE(State->Flags.Long); - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeRet) @@ -4341,11 +4190,11 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeRet) if (Opcode == 0xC2) { /* Fetch the number of bytes to pop after the return */ - if (!Fast486FetchWord(State, &BytesToPop)) return FALSE; + if (!Fast486FetchWord(State, &BytesToPop)) return; } /* Pop the return address */ - if (!Fast486StackPop(State, &ReturnAddress)) return FALSE; + if (!Fast486StackPop(State, &ReturnAddress)) return; /* Return to the calling procedure, and if necessary, pop the parameters */ if (Size) @@ -4358,8 +4207,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeRet) State->InstPtr.LowWord = LOWORD(ReturnAddress); State->GeneralRegs[FAST486_REG_ESP].LowWord += BytesToPop; } - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeLdsLes) @@ -4380,7 +4227,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeLdsLes) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } if (!ModRegRm.Memory) @@ -4397,7 +4244,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeLdsLes) if (!Fast486FetchByte(State, &BopCode)) { /* Exception occurred */ - return FALSE; + return; } /* Call the BOP handler */ @@ -4414,13 +4261,12 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeLdsLes) State->IntStatus = FAST486_INT_DELAYED; } - /* Return success */ - return TRUE; + return; } /* Invalid */ Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } if (!Fast486ReadMemory(State, @@ -4432,7 +4278,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeLdsLes) OperandSize ? 6 : 4)) { /* Exception occurred */ - return FALSE; + return; } if (OperandSize) @@ -4444,10 +4290,10 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeLdsLes) State->GeneralRegs[ModRegRm.Register].Long = Offset; /* Load the segment */ - return Fast486LoadSegment(State, - (Opcode == 0xC4) - ? FAST486_REG_ES : FAST486_REG_DS, - Segment); + Fast486LoadSegment(State, + (Opcode == 0xC4) + ? FAST486_REG_ES : FAST486_REG_DS, + Segment); } else { @@ -4458,10 +4304,10 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeLdsLes) State->GeneralRegs[ModRegRm.Register].LowWord = Offset; /* Load the segment */ - return Fast486LoadSegment(State, - (Opcode == 0xC4) - ? FAST486_REG_ES : FAST486_REG_DS, - Segment); + Fast486LoadSegment(State, + (Opcode == 0xC4) + ? FAST486_REG_ES : FAST486_REG_DS, + Segment); } } @@ -4482,20 +4328,20 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeEnter) if (!Fast486FetchWord(State, &FrameSize)) { /* Exception occurred */ - return FALSE; + return; } if (!Fast486FetchByte(State, &NestingLevel)) { /* Exception occurred */ - return FALSE; + return; } /* Push EBP */ if (!Fast486StackPush(State, State->GeneralRegs[FAST486_REG_EBP].Long)) { /* Exception occurred */ - return FALSE; + return; } /* Save ESP */ @@ -4524,8 +4370,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeEnter) /* Reserve space for the frame */ if (Size) State->GeneralRegs[FAST486_REG_ESP].Long -= (ULONG)FrameSize; else State->GeneralRegs[FAST486_REG_ESP].LowWord -= FrameSize; - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeLeave) @@ -4544,7 +4388,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeLeave) State->GeneralRegs[FAST486_REG_ESP].Long = State->GeneralRegs[FAST486_REG_EBP].Long; /* Pop the saved base pointer from the stack */ - return Fast486StackPop(State, &State->GeneralRegs[FAST486_REG_EBP].Long); + Fast486StackPop(State, &State->GeneralRegs[FAST486_REG_EBP].Long); } else { @@ -4557,9 +4401,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeLeave) if (Fast486StackPop(State, &Value)) { State->GeneralRegs[FAST486_REG_EBP].LowWord = LOWORD(Value); - return TRUE; } - else return FALSE; } } @@ -4579,28 +4421,28 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeRetFar) if (Opcode == 0xCA) { /* Fetch the number of bytes to pop after the return */ - if (!Fast486FetchWord(State, &BytesToPop)) return FALSE; + if (!Fast486FetchWord(State, &BytesToPop)) return; } /* Pop the offset */ if (!Fast486StackPop(State, &Offset)) { /* Exception occurred */ - return FALSE; + return; } /* Pop the segment */ if (!Fast486StackPop(State, &Segment)) { /* Exception occurred */ - return FALSE; + return; } /* Load the new CS */ if (!Fast486LoadSegment(State, FAST486_REG_CS, Segment)) { /* Exception occurred */ - return FALSE; + return; } /* Load new (E)IP, and if necessary, pop the parameters */ @@ -4614,8 +4456,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeRetFar) State->InstPtr.LowWord = LOWORD(Offset); State->GeneralRegs[FAST486_REG_ESP].LowWord += BytesToPop; } - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeInt) @@ -4637,7 +4477,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeInt) if (!Fast486FetchByte(State, &IntNum)) { /* Exception occurred */ - return FALSE; + return; } break; @@ -4646,7 +4486,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeInt) case 0xCE: // INTO { /* Don't do anything if OF is cleared */ - if (!State->Flags.Of) return TRUE; + if (!State->Flags.Of) return; /* Exception #OF */ IntNum = FAST486_EXCEPTION_OF; @@ -4662,7 +4502,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeInt) } /* Perform the interrupt */ - return Fast486PerformInterrupt(State, IntNum); + Fast486PerformInterrupt(State, IntNum); } FAST486_OPCODE_HANDLER(Fast486OpcodeIret) @@ -4682,21 +4522,21 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeIret) if (!Fast486StackPop(State, &InstPtr)) { /* Exception occurred */ - return FALSE; + return; } /* Pop CS */ if (!Fast486StackPop(State, &CodeSel)) { /* Exception occurred */ - return FALSE; + return; } /* Pop EFLAGS */ if (!Fast486StackPop(State, &NewFlags.Long)) { /* Exception occurred */ - return FALSE; + return; } /* Check for protected mode */ @@ -4718,7 +4558,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeIret) if (!Fast486LoadSegment(State, FAST486_REG_CS, CodeSel)) { /* Exception occurred */ - return FALSE; + return; } /* Set the new flags */ @@ -4731,10 +4571,10 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeIret) { /* Call the VM86 monitor */ Fast486ExceptionWithErrorCode(State, FAST486_EXCEPTION_GP, 0); - return FALSE; + return; } - return TRUE; + return; } if (State->Flags.Nt) @@ -4742,7 +4582,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeIret) /* Nested task return */ UNIMPLEMENTED; - return FALSE; + return; } if (NewFlags.Vm) @@ -4751,12 +4591,12 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeIret) ULONG Es, Ds, Fs, Gs; /* Pop ESP, SS, ES, FS, GS */ - if (!Fast486StackPop(State, &StackPtr)) return FALSE; - if (!Fast486StackPop(State, &StackSel)) return FALSE; - if (!Fast486StackPop(State, &Es)) return FALSE; - if (!Fast486StackPop(State, &Ds)) return FALSE; - if (!Fast486StackPop(State, &Fs)) return FALSE; - if (!Fast486StackPop(State, &Gs)) return FALSE; + if (!Fast486StackPop(State, &StackPtr)) return; + if (!Fast486StackPop(State, &StackSel)) return; + if (!Fast486StackPop(State, &Es)) return; + if (!Fast486StackPop(State, &Ds)) return; + if (!Fast486StackPop(State, &Fs)) return; + if (!Fast486StackPop(State, &Gs)) return; /* Set the new IP */ State->InstPtr.Long = LOWORD(InstPtr); @@ -4767,21 +4607,21 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeIret) State->Flags.AlwaysSet = State->Flags.Vm = TRUE; /* Load the new segments */ - if (!Fast486LoadSegment(State, FAST486_REG_CS, CodeSel)) return FALSE; - if (!Fast486LoadSegment(State, FAST486_REG_SS, StackSel)) return FALSE; - if (!Fast486LoadSegment(State, FAST486_REG_ES, Es)) return FALSE; - if (!Fast486LoadSegment(State, FAST486_REG_DS, Ds)) return FALSE; - if (!Fast486LoadSegment(State, FAST486_REG_FS, Fs)) return FALSE; - if (!Fast486LoadSegment(State, FAST486_REG_GS, Gs)) return FALSE; + if (!Fast486LoadSegment(State, FAST486_REG_CS, CodeSel)) return; + if (!Fast486LoadSegment(State, FAST486_REG_SS, StackSel)) return; + if (!Fast486LoadSegment(State, FAST486_REG_ES, Es)) return; + if (!Fast486LoadSegment(State, FAST486_REG_DS, Ds)) return; + if (!Fast486LoadSegment(State, FAST486_REG_FS, Fs)) return; + if (!Fast486LoadSegment(State, FAST486_REG_GS, Gs)) return; - return TRUE; + return; } /* Load the new CS */ if (!Fast486LoadSegment(State, FAST486_REG_CS, CodeSel)) { /* Exception occurred */ - return FALSE; + return; } /* Set EIP */ @@ -4794,21 +4634,21 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeIret) if (!Fast486StackPop(State, &StackPtr)) { /* Exception */ - return FALSE; + return; } /* Pop SS */ if (!Fast486StackPop(State, &StackSel)) { /* Exception */ - return FALSE; + return; } /* Load new SS */ if (!Fast486LoadSegment(State, FAST486_REG_SS, StackSel)) { /* Exception */ - return FALSE; + return; } /* Set ESP */ @@ -4841,7 +4681,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeIret) || !State->SegmentRegs[i].DirConf)) { /* Load the NULL descriptor in the segment */ - if (!Fast486LoadSegment(State, i, 0)) return FALSE; + if (!Fast486LoadSegment(State, i, 0)) return; } } } @@ -4852,7 +4692,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeIret) { /* Invalid */ Fast486ExceptionWithErrorCode(State, FAST486_EXCEPTION_GP, 0); - return FALSE; + return; } /* Set new EIP */ @@ -4862,7 +4702,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeIret) if (!Fast486LoadSegment(State, FAST486_REG_CS, CodeSel)) { /* Exception occurred */ - return FALSE; + return; } /* Set the new flags */ @@ -4870,8 +4710,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeIret) else State->Flags.LowWord = NewFlags.LowWord & REAL_MODE_FLAGS_MASK; State->Flags.AlwaysSet = TRUE; } - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeAam) @@ -4885,7 +4723,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAam) if (!Fast486FetchByte(State, &Base)) { /* Exception occurred */ - return FALSE; + return; } /* Check if the base is zero */ @@ -4893,7 +4731,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAam) { /* Divide error */ Fast486Exception(State, FAST486_EXCEPTION_DE); - return FALSE; + return; } /* Adjust */ @@ -4905,8 +4743,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAam) State->Flags.Zf = (Value == 0); State->Flags.Sf = ((Value & SIGN_FLAG_BYTE) != 0); State->Flags.Pf = Fast486CalculateParity(Value); - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeAad) @@ -4920,7 +4756,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAad) if (!Fast486FetchByte(State, &Base)) { /* Exception occurred */ - return FALSE; + return; } /* Adjust */ @@ -4932,8 +4768,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeAad) State->Flags.Zf = (Value == 0); State->Flags.Sf = ((Value & SIGN_FLAG_BYTE) != 0); State->Flags.Pf = Fast486CalculateParity(Value); - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeXlat) @@ -4955,14 +4789,11 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeXlat) sizeof(UCHAR))) { /* Exception occurred */ - return FALSE; + return; } /* Set AL to the result */ State->GeneralRegs[FAST486_REG_EAX].LowByte = Value; - - /* Return success */ - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeLoop) @@ -4995,7 +4826,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeLoop) if (!Fast486FetchByte(State, (PUCHAR)&Offset)) { /* An exception occurred */ - return FALSE; + return; } if (Condition) @@ -5004,8 +4835,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeLoop) if (Size) State->InstPtr.Long += Offset; else State->InstPtr.LowWord += Offset; } - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeJecxz) @@ -5027,7 +4856,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeJecxz) if (!Fast486FetchByte(State, (PUCHAR)&Offset)) { /* An exception occurred */ - return FALSE; + return; } if (Condition) @@ -5036,8 +4865,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeJecxz) if (Size) State->InstPtr.Long += Offset; else State->InstPtr.LowWord += Offset; } - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeCall) @@ -5058,14 +4885,14 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeCall) if (!Fast486FetchDword(State, (PULONG)&Offset)) { /* An exception occurred */ - return FALSE; + return; } /* Push the current value of the instruction pointer */ if (!Fast486StackPush(State, State->InstPtr.Long)) { /* Exception occurred */ - return FALSE; + return; } /* Move the instruction pointer */ @@ -5079,21 +4906,19 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeCall) if (!Fast486FetchWord(State, (PUSHORT)&Offset)) { /* An exception occurred */ - return FALSE; + return; } /* Push the current value of the instruction pointer */ if (!Fast486StackPush(State, State->InstPtr.Long)) { /* Exception occurred */ - return FALSE; + return; } /* Move the instruction pointer */ State->InstPtr.LowWord += Offset; } - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeJmp) @@ -5114,7 +4939,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeJmp) if (!Fast486FetchDword(State, (PULONG)&Offset)) { /* An exception occurred */ - return FALSE; + return; } /* Move the instruction pointer */ @@ -5128,7 +4953,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeJmp) if (!Fast486FetchWord(State, (PUSHORT)&Offset)) { /* An exception occurred */ - return FALSE; + return; } /* Move the instruction pointer */ @@ -5137,8 +4962,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeJmp) /* Clear the top half of EIP */ State->InstPtr.Long &= 0xFFFF; } - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeJmpAbs) @@ -5159,7 +4982,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeJmpAbs) if (!Fast486FetchDword(State, &Offset)) { /* Exception occurred */ - return FALSE; + return; } } else @@ -5167,7 +4990,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeJmpAbs) if (!Fast486FetchWord(State, (PUSHORT)&Offset)) { /* Exception occurred */ - return FALSE; + return; } } @@ -5175,20 +4998,18 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeJmpAbs) if (!Fast486FetchWord(State, &Segment)) { /* Exception occurred */ - return FALSE; + return; } /* Load the new CS */ if (!Fast486LoadSegment(State, FAST486_REG_CS, Segment)) { /* Exception occurred */ - return FALSE; + return; } /* Load new EIP */ State->InstPtr.Long = Offset; - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeMovAlOffset) @@ -5206,7 +5027,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeMovAlOffset) if (!Fast486FetchDword(State, &Offset)) { /* Exception occurred */ - return FALSE; + return; } } else @@ -5216,20 +5037,20 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeMovAlOffset) if (!Fast486FetchWord(State, &WordOffset)) { /* Exception occurred */ - return FALSE; + return; } Offset = (ULONG)WordOffset; } /* Read from memory */ - return Fast486ReadMemory(State, - (State->PrefixFlags & FAST486_PREFIX_SEG) ? - State->SegmentOverride : FAST486_REG_DS, - Offset, - FALSE, - &State->GeneralRegs[FAST486_REG_EAX].LowByte, - sizeof(UCHAR)); + Fast486ReadMemory(State, + (State->PrefixFlags & FAST486_PREFIX_SEG) ? + State->SegmentOverride : FAST486_REG_DS, + Offset, + FALSE, + &State->GeneralRegs[FAST486_REG_EAX].LowByte, + sizeof(UCHAR)); } FAST486_OPCODE_HANDLER(Fast486OpcodeMovEaxOffset) @@ -5251,29 +5072,29 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeMovEaxOffset) if (!Fast486FetchDword(State, &Offset)) { /* Exception occurred */ - return FALSE; + return; } /* Read from memory */ if (OperandSize) { - return Fast486ReadMemory(State, - (State->PrefixFlags & FAST486_PREFIX_SEG) ? - State->SegmentOverride : FAST486_REG_DS, - Offset, - FALSE, - &State->GeneralRegs[FAST486_REG_EAX].Long, - sizeof(ULONG)); + Fast486ReadMemory(State, + (State->PrefixFlags & FAST486_PREFIX_SEG) ? + State->SegmentOverride : FAST486_REG_DS, + Offset, + FALSE, + &State->GeneralRegs[FAST486_REG_EAX].Long, + sizeof(ULONG)); } else { - return Fast486ReadMemory(State, - (State->PrefixFlags & FAST486_PREFIX_SEG) ? - State->SegmentOverride : FAST486_REG_DS, - Offset, - FALSE, - &State->GeneralRegs[FAST486_REG_EAX].LowWord, - sizeof(USHORT)); + Fast486ReadMemory(State, + (State->PrefixFlags & FAST486_PREFIX_SEG) ? + State->SegmentOverride : FAST486_REG_DS, + Offset, + FALSE, + &State->GeneralRegs[FAST486_REG_EAX].LowWord, + sizeof(USHORT)); } } else @@ -5283,29 +5104,29 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeMovEaxOffset) if (!Fast486FetchWord(State, &Offset)) { /* Exception occurred */ - return FALSE; + return; } /* Read from memory */ if (OperandSize) { - return Fast486ReadMemory(State, - (State->PrefixFlags & FAST486_PREFIX_SEG) ? - State->SegmentOverride : FAST486_REG_DS, - Offset, - FALSE, - &State->GeneralRegs[FAST486_REG_EAX].Long, - sizeof(ULONG)); + Fast486ReadMemory(State, + (State->PrefixFlags & FAST486_PREFIX_SEG) ? + State->SegmentOverride : FAST486_REG_DS, + Offset, + FALSE, + &State->GeneralRegs[FAST486_REG_EAX].Long, + sizeof(ULONG)); } else { - return Fast486ReadMemory(State, - (State->PrefixFlags & FAST486_PREFIX_SEG) ? - State->SegmentOverride : FAST486_REG_DS, - Offset, - FALSE, - &State->GeneralRegs[FAST486_REG_EAX].LowWord, - sizeof(USHORT)); + Fast486ReadMemory(State, + (State->PrefixFlags & FAST486_PREFIX_SEG) ? + State->SegmentOverride : FAST486_REG_DS, + Offset, + FALSE, + &State->GeneralRegs[FAST486_REG_EAX].LowWord, + sizeof(USHORT)); } } } @@ -5325,7 +5146,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeMovOffsetAl) if (!Fast486FetchDword(State, &Offset)) { /* Exception occurred */ - return FALSE; + return; } } else @@ -5335,19 +5156,19 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeMovOffsetAl) if (!Fast486FetchWord(State, &WordOffset)) { /* Exception occurred */ - return FALSE; + return; } Offset = (ULONG)WordOffset; } /* Write to memory */ - return Fast486WriteMemory(State, - (State->PrefixFlags & FAST486_PREFIX_SEG) ? - State->SegmentOverride : FAST486_REG_DS, - Offset, - &State->GeneralRegs[FAST486_REG_EAX].LowByte, - sizeof(UCHAR)); + Fast486WriteMemory(State, + (State->PrefixFlags & FAST486_PREFIX_SEG) ? + State->SegmentOverride : FAST486_REG_DS, + Offset, + &State->GeneralRegs[FAST486_REG_EAX].LowByte, + sizeof(UCHAR)); } FAST486_OPCODE_HANDLER(Fast486OpcodeMovOffsetEax) @@ -5369,27 +5190,27 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeMovOffsetEax) if (!Fast486FetchDword(State, &Offset)) { /* Exception occurred */ - return FALSE; + return; } /* Write to memory */ if (OperandSize) { - return Fast486WriteMemory(State, - (State->PrefixFlags & FAST486_PREFIX_SEG) ? - State->SegmentOverride : FAST486_REG_DS, - Offset, - &State->GeneralRegs[FAST486_REG_EAX].Long, - sizeof(ULONG)); + Fast486WriteMemory(State, + (State->PrefixFlags & FAST486_PREFIX_SEG) ? + State->SegmentOverride : FAST486_REG_DS, + Offset, + &State->GeneralRegs[FAST486_REG_EAX].Long, + sizeof(ULONG)); } else { - return Fast486WriteMemory(State, - (State->PrefixFlags & FAST486_PREFIX_SEG) ? - State->SegmentOverride : FAST486_REG_DS, - Offset, - &State->GeneralRegs[FAST486_REG_EAX].LowWord, - sizeof(USHORT)); + Fast486WriteMemory(State, + (State->PrefixFlags & FAST486_PREFIX_SEG) ? + State->SegmentOverride : FAST486_REG_DS, + Offset, + &State->GeneralRegs[FAST486_REG_EAX].LowWord, + sizeof(USHORT)); } } else @@ -5399,27 +5220,27 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeMovOffsetEax) if (!Fast486FetchWord(State, &Offset)) { /* Exception occurred */ - return FALSE; + return; } /* Write to memory */ if (OperandSize) { - return Fast486WriteMemory(State, - (State->PrefixFlags & FAST486_PREFIX_SEG) ? - State->SegmentOverride : FAST486_REG_DS, - Offset, - &State->GeneralRegs[FAST486_REG_EAX].Long, - sizeof(ULONG)); + Fast486WriteMemory(State, + (State->PrefixFlags & FAST486_PREFIX_SEG) ? + State->SegmentOverride : FAST486_REG_DS, + Offset, + &State->GeneralRegs[FAST486_REG_EAX].Long, + sizeof(ULONG)); } else { - return Fast486WriteMemory(State, - (State->PrefixFlags & FAST486_PREFIX_SEG) ? - State->SegmentOverride : FAST486_REG_DS, - Offset, - &State->GeneralRegs[FAST486_REG_EAX].LowWord, - sizeof(USHORT)); + Fast486WriteMemory(State, + (State->PrefixFlags & FAST486_PREFIX_SEG) ? + State->SegmentOverride : FAST486_REG_DS, + Offset, + &State->GeneralRegs[FAST486_REG_EAX].LowWord, + sizeof(USHORT)); } } } @@ -5438,8 +5259,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeSalc) /* Set all the bits of AL to CF */ State->GeneralRegs[FAST486_REG_EAX].LowByte = State->Flags.Cf ? 0xFF : 0x00; - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeMovs) @@ -5468,7 +5287,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeMovs) || (!AddressSize && (State->GeneralRegs[FAST486_REG_ECX].LowWord == 0))) { /* Do nothing */ - return TRUE; + return; } } @@ -5486,7 +5305,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeMovs) DataSize)) { /* Exception occurred */ - return FALSE; + return; } /* Write to the destination operand */ @@ -5498,7 +5317,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeMovs) DataSize)) { /* Exception occurred */ - return FALSE; + return; } /* Increment/decrement ESI and EDI */ @@ -5549,9 +5368,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeMovs) } } } - - /* Return success */ - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeCmps) @@ -5582,7 +5398,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeCmps) || (!AddressSize && (State->GeneralRegs[FAST486_REG_ECX].LowWord == 0))) { /* Do nothing */ - return TRUE; + return; } } @@ -5604,7 +5420,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeCmps) DataSize)) { /* Exception occurred */ - return FALSE; + return; } /* Read from the second source operand */ @@ -5617,7 +5433,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeCmps) DataSize)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -5698,9 +5514,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeCmps) State->InstPtr = State->SavedInstPtr; } } - - /* Return success */ - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeStos) @@ -5784,7 +5597,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeStos) else State->GeneralRegs[FAST486_REG_ECX].LowWord = LOWORD(Count); /* Exception occurred */ - return FALSE; + return; } if (!State->Flags.Df) @@ -5819,7 +5632,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeStos) DataSize)) { /* Exception occurred */ - return FALSE; + return; } /* Increment/decrement EDI */ @@ -5834,9 +5647,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeStos) else State->GeneralRegs[FAST486_REG_EDI].LowWord -= DataSize; } } - - /* Return success */ - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeLods) @@ -5869,7 +5679,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeLods) : State->GeneralRegs[FAST486_REG_ECX].LowWord; /* If the count is 0, do nothing */ - if (Count == 0) return TRUE; + if (Count == 0) return; /* Only the last entry will be loaded */ if (!State->Flags.Df) @@ -5898,7 +5708,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeLods) DataSize)) { /* Exception occurred */ - return FALSE; + return; } /* Increment/decrement ESI */ @@ -5912,9 +5722,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeLods) if (!State->Flags.Df) State->GeneralRegs[FAST486_REG_ESI].LowWord += DataSize; else State->GeneralRegs[FAST486_REG_ESI].LowWord -= DataSize; } - - /* Return success */ - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeScas) @@ -5940,7 +5747,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeScas) || (!AddressSize && (State->GeneralRegs[FAST486_REG_ECX].LowWord == 0))) { /* Do nothing */ - return TRUE; + return; } } @@ -5962,7 +5769,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeScas) DataSize)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -6027,9 +5834,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeScas) State->InstPtr = State->SavedInstPtr; } } - - /* Return success */ - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeIns) @@ -6115,7 +5919,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeIns) else State->GeneralRegs[FAST486_REG_ECX].LowWord = LOWORD(Count); /* Exception occurred */ - return FALSE; + return; } if (!State->Flags.Df) @@ -6153,7 +5957,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeIns) DataSize)) { /* Exception occurred */ - return FALSE; + return; } /* Increment/decrement EDI */ @@ -6168,9 +5972,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeIns) else State->GeneralRegs[FAST486_REG_EDI].LowWord -= DataSize; } } - - /* Return success */ - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeOuts) @@ -6230,7 +6031,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeOuts) else State->GeneralRegs[FAST486_REG_ECX].LowWord = LOWORD(Count); /* Exception occurred */ - return FALSE; + return; } if (State->Flags.Df) @@ -6291,7 +6092,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeOuts) DataSize)) { /* Exception occurred */ - return FALSE; + return; } /* Write to the I/O port */ @@ -6313,9 +6114,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeOuts) else State->GeneralRegs[FAST486_REG_ESI].LowWord -= DataSize; } } - - /* Return success */ - return TRUE; } /* EOF */ diff --git a/reactos/lib/fast486/opcodes.h b/reactos/lib/fast486/opcodes.h index 06de80ee138..193b38f5996 100644 --- a/reactos/lib/fast486/opcodes.h +++ b/reactos/lib/fast486/opcodes.h @@ -29,9 +29,9 @@ #define FAST486_NUM_OPCODE_HANDLERS 256 #define FAST486_OPCODE_WRITE_REG (1 << 1) #define FAST486_OPCODE_HANDLER(x) \ - BOOLEAN FASTCALL x(PFAST486_STATE State, UCHAR Opcode) + VOID FASTCALL x(PFAST486_STATE State, UCHAR Opcode) -typedef BOOLEAN (FASTCALL *FAST486_OPCODE_HANDLER_PROC)(PFAST486_STATE, UCHAR); +typedef VOID (FASTCALL *FAST486_OPCODE_HANDLER_PROC)(PFAST486_STATE, UCHAR); extern FAST486_OPCODE_HANDLER_PROC diff --git a/reactos/lib/fast486/opgroups.c b/reactos/lib/fast486/opgroups.c index 303fcd1958a..03eb09181d2 100644 --- a/reactos/lib/fast486/opgroups.c +++ b/reactos/lib/fast486/opgroups.c @@ -304,21 +304,21 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroup8082) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } /* Fetch the immediate operand */ if (!Fast486FetchByte(State, &Immediate)) { /* Exception occurred */ - return FALSE; + return; } /* Read the operands */ if (!Fast486ReadModrmByteOperands(State, &ModRegRm, NULL, &Value)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -327,10 +327,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroup8082) /* Unless this is CMP, write back the result */ if (ModRegRm.Register != 7) { - return Fast486WriteModrmByteOperands(State, &ModRegRm, FALSE, Value); + Fast486WriteModrmByteOperands(State, &ModRegRm, FALSE, Value); } - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeGroup81) @@ -346,7 +344,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroup81) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } if (OperandSize) @@ -357,14 +355,14 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroup81) if (!Fast486FetchDword(State, &Immediate)) { /* Exception occurred */ - return FALSE; + return; } /* Read the operands */ if (!Fast486ReadModrmDwordOperands(State, &ModRegRm, NULL, &Value)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -373,7 +371,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroup81) /* Unless this is CMP, write back the result */ if (ModRegRm.Register != 7) { - return Fast486WriteModrmDwordOperands(State, &ModRegRm, FALSE, Value); + Fast486WriteModrmDwordOperands(State, &ModRegRm, FALSE, Value); } } else @@ -384,14 +382,14 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroup81) if (!Fast486FetchWord(State, &Immediate)) { /* Exception occurred */ - return FALSE; + return; } /* Read the operands */ if (!Fast486ReadModrmWordOperands(State, &ModRegRm, NULL, &Value)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -400,11 +398,9 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroup81) /* Unless this is CMP, write back the result */ if (ModRegRm.Register != 7) { - return Fast486WriteModrmWordOperands(State, &ModRegRm, FALSE, Value); + Fast486WriteModrmWordOperands(State, &ModRegRm, FALSE, Value); } } - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeGroup83) @@ -421,14 +417,14 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroup83) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } /* Fetch the immediate operand */ if (!Fast486FetchByte(State, (PUCHAR)&ImmByte)) { /* Exception occurred */ - return FALSE; + return; } if (OperandSize) @@ -440,7 +436,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroup83) if (!Fast486ReadModrmDwordOperands(State, &ModRegRm, NULL, &Value)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -449,7 +445,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroup83) /* Unless this is CMP, write back the result */ if (ModRegRm.Register != 7) { - return Fast486WriteModrmDwordOperands(State, &ModRegRm, FALSE, Value); + Fast486WriteModrmDwordOperands(State, &ModRegRm, FALSE, Value); } } else @@ -461,7 +457,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroup83) if (!Fast486ReadModrmWordOperands(State, &ModRegRm, NULL, &Value)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -470,11 +466,9 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroup83) /* Unless this is CMP, write back the result */ if (ModRegRm.Register != 7) { - return Fast486WriteModrmWordOperands(State, &ModRegRm, FALSE, Value); + Fast486WriteModrmWordOperands(State, &ModRegRm, FALSE, Value); } } - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeGroup8F) @@ -492,7 +486,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroup8F) if (!Fast486StackPop(State, &Value)) { /* Exception occurred */ - return FALSE; + return; } if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) @@ -501,30 +495,18 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroup8F) if (OperandSize) State->GeneralRegs[FAST486_REG_ESP].Long -= sizeof(ULONG); else State->GeneralRegs[FAST486_REG_ESP].LowWord -= sizeof(USHORT); - return FALSE; + return; } if (ModRegRm.Register != 0) { /* Invalid */ Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } - if (OperandSize) - { - return Fast486WriteModrmDwordOperands(State, - &ModRegRm, - FALSE, - Value); - } - else - { - return Fast486WriteModrmWordOperands(State, - &ModRegRm, - FALSE, - LOWORD(Value)); - } + if (OperandSize) Fast486WriteModrmDwordOperands(State, &ModRegRm, FALSE, Value); + else Fast486WriteModrmWordOperands(State, &ModRegRm, FALSE, LOWORD(Value)); } FAST486_OPCODE_HANDLER(Fast486OpcodeGroupC0) @@ -538,21 +520,21 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupC0) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } /* Fetch the count */ if (!Fast486FetchByte(State, &Count)) { /* Exception occurred */ - return FALSE; + return; } /* Read the operands */ if (!Fast486ReadModrmByteOperands(State, &ModRegRm, NULL, &Value)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -563,10 +545,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupC0) Count)); /* Write back the result */ - return Fast486WriteModrmByteOperands(State, - &ModRegRm, - FALSE, - Value); + Fast486WriteModrmByteOperands(State, &ModRegRm, FALSE, Value); } FAST486_OPCODE_HANDLER(Fast486OpcodeGroupC1) @@ -583,14 +562,14 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupC1) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } /* Fetch the count */ if (!Fast486FetchByte(State, &Count)) { /* Exception occurred */ - return FALSE; + return; } if (OperandSize) @@ -601,7 +580,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupC1) if (!Fast486ReadModrmDwordOperands(State, &ModRegRm, NULL, &Value)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -612,7 +591,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupC1) Count); /* Write back the result */ - return Fast486WriteModrmDwordOperands(State, &ModRegRm, FALSE, Value); + Fast486WriteModrmDwordOperands(State, &ModRegRm, FALSE, Value); } else { @@ -622,7 +601,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupC1) if (!Fast486ReadModrmWordOperands(State, &ModRegRm, NULL, &Value)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -633,7 +612,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupC1) Count)); /* Write back the result */ - return Fast486WriteModrmWordOperands(State, &ModRegRm, FALSE, Value); + Fast486WriteModrmWordOperands(State, &ModRegRm, FALSE, Value); } } @@ -648,27 +627,24 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupC6) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } if (ModRegRm.Register != 0) { /* Invalid */ Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } /* Get the immediate operand */ if (!Fast486FetchByte(State, &Immediate)) { /* Exception occurred */ - return FALSE; + return; } - return Fast486WriteModrmByteOperands(State, - &ModRegRm, - FALSE, - Immediate); + Fast486WriteModrmByteOperands(State, &ModRegRm, FALSE, Immediate); } FAST486_OPCODE_HANDLER(Fast486OpcodeGroupC7) @@ -684,14 +660,14 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupC7) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } if (ModRegRm.Register != 0) { /* Invalid */ Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } if (OperandSize) @@ -702,13 +678,10 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupC7) if (!Fast486FetchDword(State, &Immediate)) { /* Exception occurred */ - return FALSE; + return; } - return Fast486WriteModrmDwordOperands(State, - &ModRegRm, - FALSE, - Immediate); + Fast486WriteModrmDwordOperands(State, &ModRegRm, FALSE, Immediate); } else { @@ -718,13 +691,10 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupC7) if (!Fast486FetchWord(State, &Immediate)) { /* Exception occurred */ - return FALSE; + return; } - return Fast486WriteModrmWordOperands(State, - &ModRegRm, - FALSE, - Immediate); + Fast486WriteModrmWordOperands(State, &ModRegRm, FALSE, Immediate); } } @@ -739,24 +709,21 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupD0) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } /* Read the operands */ if (!Fast486ReadModrmByteOperands(State, &ModRegRm, NULL, &Value)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ Value = LOBYTE(Fast486RotateOperation(State, ModRegRm.Register, Value, 8, 1)); /* Write back the result */ - return Fast486WriteModrmByteOperands(State, - &ModRegRm, - FALSE, - Value); + Fast486WriteModrmByteOperands(State, &ModRegRm, FALSE, Value); } @@ -773,7 +740,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupD1) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } if (OperandSize) @@ -784,14 +751,14 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupD1) if (!Fast486ReadModrmDwordOperands(State, &ModRegRm, NULL, &Value)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ Value = Fast486RotateOperation(State, ModRegRm.Register, Value, 32, 1); /* Write back the result */ - return Fast486WriteModrmDwordOperands(State, &ModRegRm, FALSE, Value); + Fast486WriteModrmDwordOperands(State, &ModRegRm, FALSE, Value); } else { @@ -801,14 +768,14 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupD1) if (!Fast486ReadModrmWordOperands(State, &ModRegRm, NULL, &Value)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ Value = LOWORD(Fast486RotateOperation(State, ModRegRm.Register, Value, 16, 1)); /* Write back the result */ - return Fast486WriteModrmWordOperands(State, &ModRegRm, FALSE, Value); + Fast486WriteModrmWordOperands(State, &ModRegRm, FALSE, Value); } } @@ -823,14 +790,14 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupD2) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } /* Read the operands */ if (!Fast486ReadModrmByteOperands(State, &ModRegRm, NULL, &Value)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -841,10 +808,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupD2) State->GeneralRegs[FAST486_REG_ECX].LowByte)); /* Write back the result */ - return Fast486WriteModrmByteOperands(State, - &ModRegRm, - FALSE, - Value); + Fast486WriteModrmByteOperands(State, &ModRegRm, FALSE, Value); } FAST486_OPCODE_HANDLER(Fast486OpcodeGroupD3) @@ -860,7 +824,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupD3) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } if (OperandSize) @@ -871,7 +835,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupD3) if (!Fast486ReadModrmDwordOperands(State, &ModRegRm, NULL, &Value)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -882,7 +846,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupD3) State->GeneralRegs[FAST486_REG_ECX].LowByte); /* Write back the result */ - return Fast486WriteModrmDwordOperands(State, &ModRegRm, FALSE, Value); + Fast486WriteModrmDwordOperands(State, &ModRegRm, FALSE, Value); } else { @@ -892,7 +856,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupD3) if (!Fast486ReadModrmWordOperands(State, &ModRegRm, NULL, &Value)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -903,7 +867,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupD3) State->GeneralRegs[FAST486_REG_ECX].LowByte)); /* Write back the result */ - return Fast486WriteModrmWordOperands(State, &ModRegRm, FALSE, Value); + Fast486WriteModrmWordOperands(State, &ModRegRm, FALSE, Value); } } @@ -918,14 +882,14 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupF6) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } /* Read the operands */ if (!Fast486ReadModrmByteOperands(State, &ModRegRm, NULL, &Value)) { /* Exception occurred */ - return FALSE; + return; } switch (ModRegRm.Register) @@ -940,7 +904,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupF6) if (!Fast486FetchByte(State, &Immediate)) { /* Exception occurred */ - return FALSE; + return; } /* Calculate the result */ @@ -960,7 +924,9 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupF6) case 2: { /* Write back the result */ - return Fast486WriteModrmByteOperands(State, &ModRegRm, FALSE, ~Value); + Fast486WriteModrmByteOperands(State, &ModRegRm, FALSE, ~Value); + + break; } /* NEG */ @@ -978,7 +944,9 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupF6) State->Flags.Pf = Fast486CalculateParity(Result); /* Write back the result */ - return Fast486WriteModrmByteOperands(State, &ModRegRm, FALSE, Result); + Fast486WriteModrmByteOperands(State, &ModRegRm, FALSE, Result); + + break; } /* MUL */ @@ -1018,7 +986,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupF6) { /* Divide error */ Fast486Exception(State, FAST486_EXCEPTION_DE); - return FALSE; + return; } Quotient = State->GeneralRegs[FAST486_REG_EAX].LowWord / Value; @@ -1040,7 +1008,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupF6) { /* Divide error */ Fast486Exception(State, FAST486_EXCEPTION_DE); - return FALSE; + return; } Quotient = (SHORT)State->GeneralRegs[FAST486_REG_EAX].LowWord / (CHAR)Value; @@ -1053,8 +1021,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupF6) break; } } - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeGroupF7) @@ -1071,7 +1037,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupF7) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } /* Set the sign flag */ @@ -1085,7 +1051,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupF7) if (!Fast486ReadModrmDwordOperands(State, &ModRegRm, NULL, &Value)) { /* Exception occurred */ - return FALSE; + return; } } else @@ -1094,7 +1060,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupF7) if (!Fast486ReadModrmWordOperands(State, &ModRegRm, NULL, (PUSHORT)&Value)) { /* Exception occurred */ - return FALSE; + return; } } @@ -1112,7 +1078,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupF7) if (!Fast486FetchDword(State, &Immediate)) { /* Exception occurred */ - return FALSE; + return; } } else @@ -1121,7 +1087,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupF7) if (!Fast486FetchWord(State, (PUSHORT)&Immediate)) { /* Exception occurred */ - return FALSE; + return; } } @@ -1145,13 +1111,15 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupF7) if (OperandSize) { /* 32-bit */ - return Fast486WriteModrmDwordOperands(State, &ModRegRm, FALSE, ~Value); + Fast486WriteModrmDwordOperands(State, &ModRegRm, FALSE, ~Value); } else { /* 16-bit */ - return Fast486WriteModrmWordOperands(State, &ModRegRm, FALSE, LOWORD(~Value)); + Fast486WriteModrmWordOperands(State, &ModRegRm, FALSE, LOWORD(~Value)); } + + break; } /* NEG */ @@ -1173,13 +1141,15 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupF7) if (OperandSize) { /* 32-bit */ - return Fast486WriteModrmDwordOperands(State, &ModRegRm, FALSE, Result); + Fast486WriteModrmDwordOperands(State, &ModRegRm, FALSE, Result); } else { /* 16-bit */ - return Fast486WriteModrmWordOperands(State, &ModRegRm, FALSE, LOWORD(Result)); + Fast486WriteModrmWordOperands(State, &ModRegRm, FALSE, LOWORD(Result)); } + + break; } /* MUL */ @@ -1247,7 +1217,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupF7) { /* Divide error */ Fast486Exception(State, FAST486_EXCEPTION_DE); - return FALSE; + return; } if (OperandSize) @@ -1283,7 +1253,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupF7) { /* Divide error */ Fast486Exception(State, FAST486_EXCEPTION_DE); - return FALSE; + return; } if (OperandSize) @@ -1312,8 +1282,6 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupF7) break; } } - - return TRUE; } FAST486_OPCODE_HANDLER(Fast486OpcodeGroupFE) @@ -1327,21 +1295,21 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupFE) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } if (ModRegRm.Register > 1) { /* Invalid */ Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } /* Read the operands */ if (!Fast486ReadModrmByteOperands(State, &ModRegRm, NULL, &Value)) { /* Exception occurred */ - return FALSE; + return; } if (ModRegRm.Register == 0) @@ -1365,10 +1333,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupFE) State->Flags.Pf = Fast486CalculateParity(Value); /* Write back the result */ - return Fast486WriteModrmByteOperands(State, - &ModRegRm, - FALSE, - Value); + Fast486WriteModrmByteOperands(State, &ModRegRm, FALSE, Value); } FAST486_OPCODE_HANDLER(Fast486OpcodeGroupFF) @@ -1384,14 +1349,14 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupFF) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } if (ModRegRm.Register == 7) { /* Invalid */ Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } /* Read the operands */ @@ -1402,7 +1367,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupFF) if (!Fast486ReadModrmDwordOperands(State, &ModRegRm, NULL, &Value)) { /* Exception occurred */ - return FALSE; + return; } if (ModRegRm.Register == 0) @@ -1425,7 +1390,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupFF) if (!Fast486StackPush(State, State->InstPtr.Long)) { /* Exception occurred */ - return FALSE; + return; } /* Set the EIP to the address */ @@ -1452,28 +1417,28 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupFF) sizeof(USHORT))) { /* Exception occurred */ - return FALSE; + return; } /* Push the current value of CS */ if (!Fast486StackPush(State, State->SegmentRegs[FAST486_REG_CS].Selector)) { /* Exception occurred */ - return FALSE; + return; } /* Push the current value of EIP */ if (!Fast486StackPush(State, State->InstPtr.Long)) { /* Exception occurred */ - return FALSE; + return; } /* Load the new code segment */ if (!Fast486LoadSegment(State, FAST486_REG_CS, Selector)) { /* Exception occurred */ - return FALSE; + return; } /* Set the EIP to the address */ @@ -1505,14 +1470,14 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupFF) sizeof(USHORT))) { /* Exception occurred */ - return FALSE; + return; } /* Load the new code segment */ if (!Fast486LoadSegment(State, FAST486_REG_CS, Selector)) { /* Exception occurred */ - return FALSE; + return; } /* Set the EIP to the address */ @@ -1521,7 +1486,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupFF) else if (ModRegRm.Register == 6) { /* Push the value on to the stack */ - return Fast486StackPush(State, Value); + Fast486StackPush(State, Value); + return; } if (ModRegRm.Register <= 1) @@ -1532,10 +1498,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupFF) State->Flags.Pf = Fast486CalculateParity(Value); /* Write back the result */ - return Fast486WriteModrmDwordOperands(State, - &ModRegRm, - FALSE, - Value); + Fast486WriteModrmDwordOperands(State, &ModRegRm, FALSE, Value); } } else @@ -1545,7 +1508,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupFF) if (!Fast486ReadModrmWordOperands(State, &ModRegRm, NULL, &Value)) { /* Exception occurred */ - return FALSE; + return; } if (ModRegRm.Register == 0) @@ -1568,7 +1531,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupFF) if (!Fast486StackPush(State, State->InstPtr.LowWord)) { /* Exception occurred */ - return FALSE; + return; } /* Set the IP to the address */ @@ -1598,28 +1561,28 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupFF) sizeof(USHORT))) { /* Exception occurred */ - return FALSE; + return; } /* Push the current value of CS */ if (!Fast486StackPush(State, State->SegmentRegs[FAST486_REG_CS].Selector)) { /* Exception occurred */ - return FALSE; + return; } /* Push the current value of IP */ if (!Fast486StackPush(State, State->InstPtr.LowWord)) { /* Exception occurred */ - return FALSE; + return; } /* Load the new code segment */ if (!Fast486LoadSegment(State, FAST486_REG_CS, Selector)) { /* Exception occurred */ - return FALSE; + return; } /* Set the IP to the address */ @@ -1657,14 +1620,14 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupFF) sizeof(USHORT))) { /* Exception occurred */ - return FALSE; + return; } /* Load the new code segment */ if (!Fast486LoadSegment(State, FAST486_REG_CS, Selector)) { /* Exception occurred */ - return FALSE; + return; } /* Set the IP to the address */ @@ -1676,13 +1639,14 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupFF) else if (ModRegRm.Register == 6) { /* Push the value on to the stack */ - return Fast486StackPush(State, Value); + Fast486StackPush(State, Value); + return; } else { /* Invalid */ Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } if (ModRegRm.Register <= 1) @@ -1693,17 +1657,11 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupFF) State->Flags.Pf = Fast486CalculateParity(Value); /* Write back the result */ - return Fast486WriteModrmWordOperands(State, - &ModRegRm, - FALSE, - Value); + Fast486WriteModrmWordOperands(State, &ModRegRm, FALSE, Value); } } - - return TRUE; } - FAST486_OPCODE_HANDLER(Fast486ExtOpcodeGroup0F00) { FAST486_MOD_REG_RM ModRegRm; @@ -1715,7 +1673,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeGroup0F00) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } /* Check which operation this is */ @@ -1729,13 +1687,11 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeGroup0F00) || State->Flags.Vm) { Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } - return Fast486WriteModrmWordOperands(State, - &ModRegRm, - FALSE, - State->Ldtr.Selector); + Fast486WriteModrmWordOperands(State, &ModRegRm, FALSE, State->Ldtr.Selector); + break; } /* STR */ @@ -1746,13 +1702,11 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeGroup0F00) || State->Flags.Vm) { Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } - return Fast486WriteModrmWordOperands(State, - &ModRegRm, - FALSE, - State->TaskReg.Selector); + Fast486WriteModrmWordOperands(State, &ModRegRm, FALSE, State->TaskReg.Selector); + break; } /* LLDT */ @@ -1766,14 +1720,14 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeGroup0F00) || State->Flags.Vm) { Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } /* This is a privileged instruction */ if (Fast486GetCurrentPrivLevel(State) != 0) { Fast486Exception(State, FAST486_EXCEPTION_GP); - return FALSE; + return; } if (!Fast486ReadModrmWordOperands(State, @@ -1782,14 +1736,14 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeGroup0F00) &Selector)) { /* Exception occurred */ - return FALSE; + return; } /* Make sure the GDT contains the entry */ if (GET_SEGMENT_INDEX(Selector) >= (State->Gdtr.Size + 1)) { Fast486ExceptionWithErrorCode(State, FAST486_EXCEPTION_GP, Selector); - return FALSE; + return; } /* Read the GDT */ @@ -1800,26 +1754,26 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeGroup0F00) sizeof(GdtEntry))) { /* Exception occurred */ - return FALSE; + return; } if (GET_SEGMENT_INDEX(Selector) == 0) { RtlZeroMemory(&State->Ldtr, sizeof(State->Ldtr)); - return TRUE; + return; } if (!GdtEntry.Present) { Fast486ExceptionWithErrorCode(State, FAST486_EXCEPTION_NP, Selector); - return FALSE; + return; } if (GdtEntry.Signature != FAST486_LDT_SIGNATURE) { /* This is not a LDT descriptor */ Fast486ExceptionWithErrorCode(State, FAST486_EXCEPTION_GP, Selector); - return FALSE; + return; } /* Update the LDTR */ @@ -1828,7 +1782,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeGroup0F00) State->Ldtr.Limit = GdtEntry.Limit | (GdtEntry.LimitHigh << 16); if (GdtEntry.Granularity) State->Ldtr.Limit <<= 12; - return TRUE; + break; } /* LTR */ @@ -1842,14 +1796,14 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeGroup0F00) || State->Flags.Vm) { Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } /* This is a privileged instruction */ if (Fast486GetCurrentPrivLevel(State) != 0) { Fast486Exception(State, FAST486_EXCEPTION_GP); - return FALSE; + return; } if (!Fast486ReadModrmWordOperands(State, @@ -1858,14 +1812,14 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeGroup0F00) &Selector)) { /* Exception occurred */ - return FALSE; + return; } /* Make sure the GDT contains the entry */ if (GET_SEGMENT_INDEX(Selector) >= (State->Gdtr.Size + 1)) { Fast486ExceptionWithErrorCode(State, FAST486_EXCEPTION_GP, Selector); - return FALSE; + return; } /* Read the GDT */ @@ -1876,26 +1830,26 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeGroup0F00) sizeof(GdtEntry))) { /* Exception occurred */ - return FALSE; + return; } if (GET_SEGMENT_INDEX(Selector) == 0) { Fast486Exception(State, FAST486_EXCEPTION_GP); - return FALSE; + return; } if (!GdtEntry.Present) { Fast486ExceptionWithErrorCode(State, FAST486_EXCEPTION_NP, Selector); - return FALSE; + return; } if (GdtEntry.Signature != FAST486_TSS_SIGNATURE) { /* This is not a TSS descriptor */ Fast486ExceptionWithErrorCode(State, FAST486_EXCEPTION_GP, Selector); - return FALSE; + return; } /* Update the TR */ @@ -1905,7 +1859,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeGroup0F00) if (GdtEntry.Granularity) State->TaskReg.Limit <<= 12; State->TaskReg.Busy = TRUE; - return TRUE; + break; } /* VERR/VERW */ @@ -1920,14 +1874,14 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeGroup0F00) || State->Flags.Vm) { Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } /* This is a privileged instruction */ if (Fast486GetCurrentPrivLevel(State) != 0) { Fast486Exception(State, FAST486_EXCEPTION_GP); - return FALSE; + return; } if (!Fast486ReadModrmWordOperands(State, @@ -1936,7 +1890,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeGroup0F00) &Selector)) { /* Exception occurred */ - return FALSE; + return; } if (!(Selector & SEGMENT_TABLE_INDICATOR)) @@ -1946,7 +1900,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeGroup0F00) { /* Clear ZF */ State->Flags.Zf = FALSE; - return TRUE; + return; } /* Read the GDT */ @@ -1957,7 +1911,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeGroup0F00) sizeof(GdtEntry))) { /* Exception occurred */ - return FALSE; + return; } } else @@ -1967,7 +1921,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeGroup0F00) { /* Clear ZF */ State->Flags.Zf = FALSE; - return TRUE; + return; } /* Read the LDT */ @@ -1978,7 +1932,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeGroup0F00) sizeof(GdtEntry))) { /* Exception occurred */ - return FALSE; + return; } } @@ -2003,14 +1957,13 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeGroup0F00) && (GdtEntry.Dpl <= Fast486GetCurrentPrivLevel(State))); - return TRUE; + break; } /* Invalid */ default: { Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; } } } @@ -2032,7 +1985,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeGroup0F01) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } /* Check for the segment override */ @@ -2052,7 +2005,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeGroup0F01) { /* The second operand must be a memory location */ Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } /* Fill the 6-byte table register */ @@ -2061,11 +2014,13 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeGroup0F01) *((PULONG)&TableReg[sizeof(USHORT)]) = State->Gdtr.Address; /* Store the GDTR */ - return Fast486WriteMemory(State, - Segment, - ModRegRm.MemoryAddress, - TableReg, - sizeof(TableReg)); + Fast486WriteMemory(State, + Segment, + ModRegRm.MemoryAddress, + TableReg, + sizeof(TableReg)); + + break; } /* SIDT */ @@ -2075,7 +2030,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeGroup0F01) { /* The second operand must be a memory location */ Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } /* Fill the 6-byte table register */ @@ -2084,11 +2039,13 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeGroup0F01) *((PULONG)&TableReg[sizeof(USHORT)]) = State->Idtr.Address; /* Store the IDTR */ - return Fast486WriteMemory(State, - Segment, - ModRegRm.MemoryAddress, - TableReg, - sizeof(TableReg)); + Fast486WriteMemory(State, + Segment, + ModRegRm.MemoryAddress, + TableReg, + sizeof(TableReg)); + + break; } /* LGDT */ @@ -2098,14 +2055,14 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeGroup0F01) if (Fast486GetCurrentPrivLevel(State) != 0) { Fast486Exception(State, FAST486_EXCEPTION_GP); - return FALSE; + return; } if (!ModRegRm.Memory) { /* The second operand must be a memory location */ Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } /* Read the new GDTR */ @@ -2117,7 +2074,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeGroup0F01) sizeof(TableReg))) { /* Exception occurred */ - return FALSE; + return; } /* Load the new GDT */ @@ -2128,7 +2085,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeGroup0F01) /* In 16-bit mode the highest byte is masked out */ if (!OperandSize) State->Gdtr.Address &= 0x00FFFFFF; - return TRUE; + break; } /* LIDT */ @@ -2138,14 +2095,14 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeGroup0F01) if (Fast486GetCurrentPrivLevel(State) != 0) { Fast486Exception(State, FAST486_EXCEPTION_GP); - return FALSE; + return; } if (!ModRegRm.Memory) { /* The second operand must be a memory location */ Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } /* Read the new IDTR */ @@ -2157,7 +2114,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeGroup0F01) sizeof(TableReg))) { /* Exception occurred */ - return FALSE; + return; } /* Load the new IDT */ @@ -2168,17 +2125,19 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeGroup0F01) /* In 16-bit mode the highest byte is masked out */ if (!OperandSize) State->Idtr.Address &= 0x00FFFFFF; - return TRUE; + break; } /* SMSW */ case 4: { /* Store the lower 16 bits (Machine Status Word) of CR0 */ - return Fast486WriteModrmWordOperands(State, - &ModRegRm, - FALSE, - LOWORD(State->ControlRegisters[FAST486_REG_CR0])); + Fast486WriteModrmWordOperands(State, + &ModRegRm, + FALSE, + LOWORD(State->ControlRegisters[FAST486_REG_CR0])); + + break; } /* LMSW */ @@ -2190,14 +2149,14 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeGroup0F01) if (Fast486GetCurrentPrivLevel(State) != 0) { Fast486Exception(State, FAST486_EXCEPTION_GP); - return FALSE; + return; } /* Read the new Machine Status Word */ if (!Fast486ReadModrmWordOperands(State, &ModRegRm, NULL, &MachineStatusWord)) { /* Exception occurred */ - return FALSE; + return; } /* This instruction cannot be used to return to real mode */ @@ -2205,28 +2164,27 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeGroup0F01) && !(MachineStatusWord & FAST486_CR0_PE)) { Fast486Exception(State, FAST486_EXCEPTION_GP); - return FALSE; + return; } /* Set the lowest 4 bits */ State->ControlRegisters[FAST486_REG_CR0] &= 0xFFFFFFF0; State->ControlRegisters[FAST486_REG_CR0] |= MachineStatusWord & 0x0F; - return TRUE; + break; } /* INVLPG */ case 7: { UNIMPLEMENTED; - return FALSE; + break; } /* Invalid */ default: { Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; } } } @@ -2241,12 +2199,12 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeGroup0FB9) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } /* All of them are reserved (UD2) */ Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } FAST486_OPCODE_HANDLER(Fast486ExtOpcodeGroup0FBA) @@ -2268,21 +2226,21 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeGroup0FBA) if (!Fast486ParseModRegRm(State, AddressSize, &ModRegRm)) { /* Exception occurred */ - return FALSE; + return; } if (ModRegRm.Register < 4) { /* Invalid */ Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; + return; } /* Get the bit number */ if (!Fast486FetchByte(State, &BitNumber)) { /* Exception occurred */ - return FALSE; + return; } if (ModRegRm.Memory) @@ -2305,7 +2263,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeGroup0FBA) if (!Fast486ReadModrmDwordOperands(State, &ModRegRm, NULL, &Value)) { /* Exception occurred */ - return FALSE; + return; } /* Set CF to the bit value */ @@ -2333,7 +2291,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeGroup0FBA) if (!Fast486WriteModrmDwordOperands(State, &ModRegRm, FALSE, Value)) { /* Exception occurred */ - return FALSE; + return; } } } @@ -2345,7 +2303,7 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeGroup0FBA) if (!Fast486ReadModrmWordOperands(State, &ModRegRm, NULL, &Value)) { /* Exception occurred */ - return FALSE; + return; } /* Set CF to the bit value */ @@ -2373,13 +2331,10 @@ FAST486_OPCODE_HANDLER(Fast486ExtOpcodeGroup0FBA) if (!Fast486WriteModrmWordOperands(State, &ModRegRm, FALSE, Value)) { /* Exception occurred */ - return FALSE; + return; } } } - - /* Return success */ - return TRUE; } /* EOF */ -- 2.17.1