-/*++\r
+/** @file\r
\r
-Copyright (c) 2007, Intel Corporation\r
-All rights reserved. This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution. The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
+Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
\r
-Module Name:\r
-\r
- EdbDisasm.c\r
-\r
-Abstract:\r
-\r
-\r
---*/\r
+**/\r
\r
#include "Edb.h"\r
\r
EdbDisasmMOVREL, // opcode 0x39 MOVREL\r
};\r
\r
+/**\r
+\r
+ Disasm instruction - BREAK.\r
+\r
+ @param InstructionAddress - The instruction address\r
+ @param SystemContext - EBC system context.\r
+ @param DisasmString - The instruction string\r
+\r
+ @return Instruction length\r
+\r
+**/\r
UINTN\r
EdbDisasmBREAK (\r
IN EFI_PHYSICAL_ADDRESS InstructionAddress,\r
IN EFI_SYSTEM_CONTEXT SystemContext,\r
OUT CHAR16 **DisasmString\r
)\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Disasm instruction - BREAK\r
-\r
-Arguments:\r
-\r
- InstructionAddress - The instruction address\r
- SystemContext - EBC system context.\r
- DisasmString - The instruction string\r
-\r
-Returns:\r
-\r
- Instruction length\r
-\r
---*/\r
{\r
ASSERT (GET_OPCODE(InstructionAddress) == OPCODE_BREAK);\r
\r
\r
extern CONST UINT8 mJMPLen[];\r
\r
+/**\r
+\r
+ Disasm instruction - JMP.\r
+\r
+ @param InstructionAddress - The instruction address\r
+ @param SystemContext - EBC system context.\r
+ @param DisasmString - The instruction string\r
+\r
+ @return Instruction length\r
+\r
+**/\r
UINTN\r
EdbDisasmJMP (\r
IN EFI_PHYSICAL_ADDRESS InstructionAddress,\r
IN EFI_SYSTEM_CONTEXT SystemContext,\r
OUT CHAR16 **DisasmString\r
)\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Disasm instruction - JMP\r
-\r
-Arguments:\r
-\r
- InstructionAddress - The instruction address\r
- SystemContext - EBC system context.\r
- DisasmString - The instruction string\r
-\r
-Returns:\r
-\r
- Instruction length\r
-\r
---*/\r
{\r
UINT8 Modifiers;\r
UINT8 Operands;\r
// } else {\r
// EdbPrintInstructionName (L"32");\r
// }\r
- if (Modifiers & CONDITION_M_CONDITIONAL) {\r
- if (Modifiers & JMP_M_CS) {\r
+ if ((Modifiers & CONDITION_M_CONDITIONAL) != 0) {\r
+ if ((Modifiers & JMP_M_CS) != 0) {\r
EdbPrintInstructionName (L"cs");\r
} else {\r
EdbPrintInstructionName (L"cc");\r
}\r
\r
InstructionAddress += 2;\r
- if (Modifiers & OPCODE_M_IMMDATA64) {\r
+ if ((Modifiers & OPCODE_M_IMMDATA64) != 0) {\r
CopyMem (&Data64, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT64));\r
- if (Modifiers & OPCODE_M_IMMDATA) {\r
+ if ((Modifiers & OPCODE_M_IMMDATA) != 0) {\r
EdbPrintData64 (Data64);\r
} else {\r
return 0;\r
return Size;\r
}\r
\r
+/**\r
+\r
+ Disasm instruction - JMP8.\r
+\r
+ @param InstructionAddress - The instruction address\r
+ @param SystemContext - EBC system context.\r
+ @param DisasmString - The instruction string\r
+\r
+ @return Instruction length\r
+\r
+**/\r
UINTN\r
EdbDisasmJMP8 (\r
IN EFI_PHYSICAL_ADDRESS InstructionAddress,\r
IN EFI_SYSTEM_CONTEXT SystemContext,\r
OUT CHAR16 **DisasmString\r
)\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Disasm instruction - JMP8\r
-\r
-Arguments:\r
-\r
- InstructionAddress - The instruction address\r
- SystemContext - EBC system context.\r
- DisasmString - The instruction string\r
-\r
-Returns:\r
-\r
- Instruction length\r
-\r
---*/\r
{\r
UINT8 Modifiers;\r
\r
*DisasmString = EdbPreInstructionString ();\r
\r
EdbPrintInstructionName (L"JMP8");\r
- if (Modifiers & CONDITION_M_CONDITIONAL) {\r
- if (Modifiers & JMP_M_CS) {\r
+ if ((Modifiers & CONDITION_M_CONDITIONAL) != 0) {\r
+ if ((Modifiers & JMP_M_CS) != 0) {\r
EdbPrintInstructionName (L"cs");\r
} else {\r
EdbPrintInstructionName (L"cc");\r
return 2;\r
}\r
\r
+/**\r
+\r
+ Disasm instruction - CALL.\r
+\r
+ @param InstructionAddress - The instruction address\r
+ @param SystemContext - EBC system context.\r
+ @param DisasmString - The instruction string\r
+\r
+ @return Instruction length\r
+\r
+**/\r
UINTN\r
EdbDisasmCALL (\r
IN EFI_PHYSICAL_ADDRESS InstructionAddress,\r
IN EFI_SYSTEM_CONTEXT SystemContext,\r
OUT CHAR16 **DisasmString\r
)\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Disasm instruction - CALL\r
-\r
-Arguments:\r
-\r
- InstructionAddress - The instruction address\r
- SystemContext - EBC system context.\r
- DisasmString - The instruction string\r
-\r
-Returns:\r
-\r
- Instruction length\r
-\r
---*/\r
{\r
UINT8 Modifiers;\r
UINT8 Operands;\r
// } else {\r
// EdbPrintInstructionName (L"32");\r
// }\r
- if (Operands & OPERAND_M_NATIVE_CALL) {\r
+ if ((Operands & OPERAND_M_NATIVE_CALL) != 0) {\r
EdbPrintInstructionName (L"EX");\r
}\r
// if ((Operands & OPERAND_M_RELATIVE_ADDR) == 0) {\r
// }\r
\r
InstructionAddress += 2;\r
- if (Modifiers & OPCODE_M_IMMDATA64) {\r
+ if ((Modifiers & OPCODE_M_IMMDATA64) != 0) {\r
CopyMem (&Data64, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT64));\r
Ip = Data64;\r
- if (Modifiers & OPCODE_M_IMMDATA) {\r
+ if ((Modifiers & OPCODE_M_IMMDATA) != 0) {\r
Result = EdbFindAndPrintSymbol ((UINTN)Ip);\r
if (Result == 0) {\r
EdbPrintData64 (Data64);\r
return 0;\r
}\r
} else {\r
- if (Modifiers & OPCODE_M_IMMDATA) {\r
+ if ((Modifiers & OPCODE_M_IMMDATA) != 0) {\r
CopyMem (&Data32, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT32));\r
} else {\r
Data32 = 0;\r
}\r
\r
if ((Operands & OPERAND_M_INDIRECT1) == 0) {\r
- if (Operands & OPERAND_M_RELATIVE_ADDR) {\r
+ if ((Operands & OPERAND_M_RELATIVE_ADDR) != 0) {\r
Result = EdbFindAndPrintSymbol ((UINTN)(SavedInstructionAddress + Ip + Size));\r
} else {\r
Result = EdbFindAndPrintSymbol ((UINTN)Ip);\r
}\r
if (Result == 0) {\r
EdbPrintRegister1 (Operands);\r
- if (Modifiers & OPCODE_M_IMMDATA) {\r
+ if ((Modifiers & OPCODE_M_IMMDATA) != 0) {\r
EdbPrintImmData32 (Data32);\r
}\r
}\r
} else {\r
EdbPrintRegister1 (Operands);\r
- if (Modifiers & OPCODE_M_IMMDATA) {\r
+ if ((Modifiers & OPCODE_M_IMMDATA) != 0) {\r
EdbPrintRawIndexData32 (Data32);\r
}\r
}\r
return Size;\r
}\r
\r
+/**\r
+\r
+ Disasm instruction - RET.\r
+\r
+ @param InstructionAddress - The instruction address\r
+ @param SystemContext - EBC system context.\r
+ @param DisasmString - The instruction string\r
+\r
+ @return Instruction length\r
+\r
+**/\r
UINTN\r
EdbDisasmRET (\r
IN EFI_PHYSICAL_ADDRESS InstructionAddress,\r
IN EFI_SYSTEM_CONTEXT SystemContext,\r
OUT CHAR16 **DisasmString\r
)\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Disasm instruction - RET\r
-\r
-Arguments:\r
-\r
- InstructionAddress - The instruction address\r
- SystemContext - EBC system context.\r
- DisasmString - The instruction string\r
-\r
-Returns:\r
-\r
- Instruction length\r
-\r
---*/\r
{\r
ASSERT (GET_OPCODE(InstructionAddress) == OPCODE_RET);\r
\r
return 2;\r
}\r
\r
+/**\r
+\r
+ Disasm instruction - CMP.\r
+\r
+ @param InstructionAddress - The instruction address\r
+ @param SystemContext - EBC system context.\r
+ @param DisasmString - The instruction string\r
+\r
+ @return Instruction length\r
+\r
+**/\r
UINTN\r
EdbDisasmCMP (\r
IN EFI_PHYSICAL_ADDRESS InstructionAddress,\r
IN EFI_SYSTEM_CONTEXT SystemContext,\r
OUT CHAR16 **DisasmString\r
)\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Disasm instruction - CMP\r
-\r
-Arguments:\r
-\r
- InstructionAddress - The instruction address\r
- SystemContext - EBC system context.\r
- DisasmString - The instruction string\r
-\r
-Returns:\r
-\r
- Instruction length\r
-\r
---*/\r
{\r
UINT8 Opcode;\r
UINT8 Modifiers;\r
Opcode = GET_OPCODE (InstructionAddress);\r
Modifiers = GET_MODIFIERS (InstructionAddress);\r
Operands = GET_OPERANDS (InstructionAddress);\r
- if (Modifiers & OPCODE_M_IMMDATA) {\r
+ if ((Modifiers & OPCODE_M_IMMDATA) != 0) {\r
Size = 4;\r
} else {\r
Size = 2;\r
EdbPrintComma ();\r
EdbPrintRegister2 (Operands);\r
\r
- if (Modifiers & OPCODE_M_IMMDATA) {\r
+ if ((Modifiers & OPCODE_M_IMMDATA) != 0) {\r
CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT16));\r
- if (Operands & OPERAND_M_INDIRECT2) {\r
+ if ((Operands & OPERAND_M_INDIRECT2) != 0) {\r
EdbPrintRawIndexData16 (Data16);\r
} else {\r
EdbPrintImmDatan (Data16);\r
return Size;\r
}\r
\r
+/**\r
+\r
+ Disasm instruction - Unsigned Data Manipulate.\r
+\r
+ @param InstructionAddress - The instruction address\r
+ @param SystemContext - EBC system context.\r
+ @param DisasmString - The instruction string\r
+\r
+ @return Instruction length\r
+\r
+**/\r
UINTN\r
EdbDisasmUnsignedDataManip (\r
IN EFI_PHYSICAL_ADDRESS InstructionAddress,\r
IN EFI_SYSTEM_CONTEXT SystemContext,\r
OUT CHAR16 **DisasmString\r
)\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Disasm instruction - Unsigned Data Manipulate\r
-\r
-Arguments:\r
-\r
- InstructionAddress - The instruction address\r
- SystemContext - EBC system context.\r
- DisasmString - The instruction string\r
-\r
-Returns:\r
-\r
- Instruction length\r
-\r
---*/\r
{\r
UINT8 Modifiers;\r
UINT8 Opcode;\r
Opcode = GET_OPCODE (InstructionAddress);\r
Operands = GET_OPERANDS (InstructionAddress);\r
Modifiers = GET_MODIFIERS (InstructionAddress);\r
- if (Modifiers & DATAMANIP_M_IMMDATA) {\r
+ if ((Modifiers & DATAMANIP_M_IMMDATA) != 0) {\r
Size = 4;\r
} else {\r
Size = 2;\r
EdbPrintRegister2 (Operands);\r
\r
InstructionAddress += 2;\r
- if (Modifiers & DATAMANIP_M_IMMDATA) {\r
+ if ((Modifiers & DATAMANIP_M_IMMDATA) != 0) {\r
CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT16));\r
- if (Operands & OPERAND_M_INDIRECT2) {\r
+ if ((Operands & OPERAND_M_INDIRECT2) != 0) {\r
EdbPrintRawIndexData16 (Data16);\r
} else {\r
EdbPrintImmDatan (Data16);\r
return Size;\r
}\r
\r
+/**\r
+\r
+ Disasm instruction - Signed Data Manipulate,\r
+\r
+ @param InstructionAddress - The instruction address\r
+ @param SystemContext - EBC system context.\r
+ @param DisasmString - The instruction string\r
+\r
+ @return Instruction length\r
+\r
+**/\r
UINTN\r
EdbDisasmSignedDataManip (\r
IN EFI_PHYSICAL_ADDRESS InstructionAddress,\r
IN EFI_SYSTEM_CONTEXT SystemContext,\r
OUT CHAR16 **DisasmString\r
)\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Disasm instruction - Signed Data Manipulate\r
-\r
-Arguments:\r
-\r
- InstructionAddress - The instruction address\r
- SystemContext - EBC system context.\r
- DisasmString - The instruction string\r
-\r
-Returns:\r
-\r
- Instruction length\r
-\r
---*/\r
{\r
UINT8 Modifiers;\r
UINT8 Opcode;\r
Opcode = GET_OPCODE (InstructionAddress);\r
Operands = GET_OPERANDS (InstructionAddress);\r
Modifiers = GET_MODIFIERS (InstructionAddress);\r
- if (Modifiers & DATAMANIP_M_IMMDATA) {\r
+ if ((Modifiers & DATAMANIP_M_IMMDATA) != 0) {\r
Size = 4;\r
} else {\r
Size = 2;\r
EdbPrintRegister2 (Operands);\r
\r
InstructionAddress += 2;\r
- if (Modifiers & DATAMANIP_M_IMMDATA) {\r
+ if ((Modifiers & DATAMANIP_M_IMMDATA) != 0) {\r
CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT16));\r
- if (Operands & OPERAND_M_INDIRECT2) {\r
+ if ((Operands & OPERAND_M_INDIRECT2) != 0) {\r
EdbPrintRawIndexData16 (Data16);\r
} else {\r
EdbPrintImmDatan (Data16);\r
return Size;\r
}\r
\r
+/**\r
+\r
+ Disasm instruction - MOVxx.\r
+\r
+ @param InstructionAddress - The instruction address\r
+ @param SystemContext - EBC system context.\r
+ @param DisasmString - The instruction string\r
+\r
+ @return Instruction length\r
+\r
+**/\r
UINTN\r
EdbDisasmMOVxx (\r
IN EFI_PHYSICAL_ADDRESS InstructionAddress,\r
IN EFI_SYSTEM_CONTEXT SystemContext,\r
OUT CHAR16 **DisasmString\r
)\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Disasm instruction - MOVxx\r
-\r
-Arguments:\r
-\r
- InstructionAddress - The instruction address\r
- SystemContext - EBC system context.\r
- DisasmString - The instruction string\r
-\r
-Returns:\r
-\r
- Instruction length\r
-\r
---*/\r
{\r
UINT8 Modifiers;\r
UINT8 Opcode;\r
Modifiers = GET_MODIFIERS (InstructionAddress);\r
Operands = GET_OPERANDS (InstructionAddress);\r
Size = 2;\r
- if (Modifiers & (OPCODE_M_IMMED_OP1 | OPCODE_M_IMMED_OP2)) {\r
+ if ((Modifiers & (OPCODE_M_IMMED_OP1 | OPCODE_M_IMMED_OP2)) != 0) {\r
if ((Opcode <= OPCODE_MOVQW) || (Opcode == OPCODE_MOVNW)) {\r
- if (Modifiers & OPCODE_M_IMMED_OP1) {\r
+ if ((Modifiers & OPCODE_M_IMMED_OP1) != 0) {\r
Size += 2;\r
}\r
- if (Modifiers & OPCODE_M_IMMED_OP2) {\r
+ if ((Modifiers & OPCODE_M_IMMED_OP2) != 0) {\r
Size += 2;\r
}\r
- } else if ((Opcode <= OPCODE_MOVQD) || (Opcode == OPCODE_MOVND)) {\r
- if (Modifiers & OPCODE_M_IMMED_OP1) {\r
+ } else if (((Opcode <= OPCODE_MOVQD) || (Opcode == OPCODE_MOVND)) != 0) {\r
+ if ((Modifiers & OPCODE_M_IMMED_OP1) != 0) {\r
Size += 4;\r
}\r
- if (Modifiers & OPCODE_M_IMMED_OP2) {\r
+ if ((Modifiers & OPCODE_M_IMMED_OP2) != 0) {\r
Size += 4;\r
}\r
} else if (Opcode == OPCODE_MOVQQ) {\r
- if (Modifiers & OPCODE_M_IMMED_OP1) {\r
+ if ((Modifiers & OPCODE_M_IMMED_OP1) != 0) {\r
Size += 8;\r
}\r
- if (Modifiers & OPCODE_M_IMMED_OP2) {\r
+ if ((Modifiers & OPCODE_M_IMMED_OP2) != 0) {\r
Size += 8;\r
}\r
}\r
EdbPrintRegister1 (Operands);\r
\r
InstructionAddress += 2;\r
- if (Modifiers & OPCODE_M_IMMED_OP1) {\r
+ if ((Modifiers & OPCODE_M_IMMED_OP1) != 0) {\r
if ((Opcode <= OPCODE_MOVQW) || (Opcode == OPCODE_MOVNW)) {\r
CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT16));\r
InstructionAddress += 2;\r
EdbPrintComma ();\r
EdbPrintRegister2 (Operands);\r
\r
- if (Modifiers & OPCODE_M_IMMED_OP2) {\r
+ if ((Modifiers & OPCODE_M_IMMED_OP2) != 0) {\r
if ((Opcode <= OPCODE_MOVQW) || (Opcode == OPCODE_MOVNW)) {\r
CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT16));\r
EdbPrintRawIndexData16 (Data16);\r
return Size;\r
}\r
\r
+/**\r
+\r
+ Disasm instruction - MOVsnw.\r
+\r
+ @param InstructionAddress - The instruction address\r
+ @param SystemContext - EBC system context.\r
+ @param DisasmString - The instruction string\r
+\r
+ @return Instruction length\r
+\r
+**/\r
UINTN\r
EdbDisasmMOVsnw (\r
IN EFI_PHYSICAL_ADDRESS InstructionAddress,\r
IN EFI_SYSTEM_CONTEXT SystemContext,\r
OUT CHAR16 **DisasmString\r
)\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Disasm instruction - MOVsnw\r
-\r
-Arguments:\r
-\r
- InstructionAddress - The instruction address\r
- SystemContext - EBC system context.\r
- DisasmString - The instruction string\r
-\r
-Returns:\r
-\r
- Instruction length\r
-\r
---*/\r
{\r
UINT8 Modifiers;\r
UINT8 Operands;\r
Modifiers = GET_MODIFIERS (InstructionAddress);\r
Operands = GET_OPERANDS (InstructionAddress);\r
Size = 2;\r
- if (Modifiers & OPCODE_M_IMMED_OP1) {\r
+ if ((Modifiers & OPCODE_M_IMMED_OP1) != 0) {\r
Size += 2;\r
}\r
- if (Modifiers & OPCODE_M_IMMED_OP2) {\r
+ if ((Modifiers & OPCODE_M_IMMED_OP2) != 0) {\r
Size += 2;\r
}\r
\r
EdbPrintRegister1 (Operands);\r
\r
InstructionAddress += 2;\r
- if (Modifiers & OPCODE_M_IMMED_OP1) {\r
+ if ((Modifiers & OPCODE_M_IMMED_OP1) != 0) {\r
CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT16));\r
InstructionAddress += 2;\r
EdbPrintRawIndexData16 (Data16);\r
EdbPrintComma ();\r
EdbPrintRegister2 (Operands);\r
\r
- if (Modifiers & OPCODE_M_IMMED_OP2) {\r
+ if ((Modifiers & OPCODE_M_IMMED_OP2) != 0) {\r
CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT16));\r
- if (Operands & OPERAND_M_INDIRECT2) {\r
+ if ((Operands & OPERAND_M_INDIRECT2) != 0) {\r
EdbPrintRawIndexData16 (Data16);\r
} else {\r
EdbPrintImmDatan (Data16);\r
return Size;\r
}\r
\r
+/**\r
+\r
+ Disasm instruction - MOVsnd.\r
+\r
+ @param InstructionAddress - The instruction address\r
+ @param SystemContext - EBC system context.\r
+ @param DisasmString - The instruction string\r
+\r
+ @return Instruction length\r
+\r
+**/\r
UINTN\r
EdbDisasmMOVsnd (\r
IN EFI_PHYSICAL_ADDRESS InstructionAddress,\r
IN EFI_SYSTEM_CONTEXT SystemContext,\r
OUT CHAR16 **DisasmString\r
)\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Disasm instruction - MOVsnd\r
-\r
-Arguments:\r
-\r
- InstructionAddress - The instruction address\r
- SystemContext - EBC system context.\r
- DisasmString - The instruction string\r
-\r
-Returns:\r
-\r
- Instruction length\r
-\r
---*/\r
{\r
UINT8 Modifiers;\r
UINT8 Operands;\r
Modifiers = GET_MODIFIERS (InstructionAddress);\r
Operands = GET_OPERANDS (InstructionAddress);\r
Size = 2;\r
- if (Modifiers & OPCODE_M_IMMED_OP1) {\r
+ if ((Modifiers & OPCODE_M_IMMED_OP1) != 0) {\r
Size += 4;\r
}\r
- if (Modifiers & OPCODE_M_IMMED_OP2) {\r
+ if ((Modifiers & OPCODE_M_IMMED_OP2) != 0) {\r
Size += 4;\r
}\r
\r
EdbPrintRegister1 (Operands);\r
\r
InstructionAddress += 2;\r
- if (Modifiers & OPCODE_M_IMMED_OP1) {\r
+ if ((Modifiers & OPCODE_M_IMMED_OP1) != 0) {\r
CopyMem (&Data32, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT32));\r
InstructionAddress += 4;\r
EdbPrintRawIndexData32 (Data32);\r
EdbPrintComma ();\r
EdbPrintRegister2 (Operands);\r
\r
- if (Modifiers & OPCODE_M_IMMED_OP2) {\r
+ if ((Modifiers & OPCODE_M_IMMED_OP2) != 0) {\r
CopyMem (&Data32, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT32));\r
- if (Operands & OPERAND_M_INDIRECT2) {\r
+ if ((Operands & OPERAND_M_INDIRECT2) != 0) {\r
EdbPrintRawIndexData32 (Data32);\r
} else {\r
EdbPrintImmDatan (Data32);\r
return Size;\r
}\r
\r
+/**\r
+\r
+ Disasm instruction - LOADSP.\r
+\r
+ @param InstructionAddress - The instruction address\r
+ @param SystemContext - EBC system context.\r
+ @param DisasmString - The instruction string\r
+\r
+ @return Instruction length\r
+\r
+**/\r
UINTN\r
EdbDisasmLOADSP (\r
IN EFI_PHYSICAL_ADDRESS InstructionAddress,\r
IN EFI_SYSTEM_CONTEXT SystemContext,\r
OUT CHAR16 **DisasmString\r
)\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Disasm instruction - LOADSP\r
-\r
-Arguments:\r
-\r
- InstructionAddress - The instruction address\r
- SystemContext - EBC system context.\r
- DisasmString - The instruction string\r
-\r
-Returns:\r
-\r
- Instruction length\r
-\r
---*/\r
{\r
UINT8 Operands;\r
\r
return 2;\r
}\r
\r
+/**\r
+\r
+ Disasm instruction - STORESP.\r
+\r
+ @param InstructionAddress - The instruction address\r
+ @param SystemContext - EBC system context.\r
+ @param DisasmString - The instruction string\r
+\r
+ @return Instruction length\r
+\r
+**/\r
UINTN\r
EdbDisasmSTORESP (\r
IN EFI_PHYSICAL_ADDRESS InstructionAddress,\r
IN EFI_SYSTEM_CONTEXT SystemContext,\r
OUT CHAR16 **DisasmString\r
)\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Disasm instruction - STORESP\r
-\r
-Arguments:\r
-\r
- InstructionAddress - The instruction address\r
- SystemContext - EBC system context.\r
- DisasmString - The instruction string\r
-\r
-Returns:\r
-\r
- Instruction length\r
-\r
---*/\r
{\r
UINT8 Operands;\r
\r
return 2;\r
}\r
\r
+\r
+/**\r
+\r
+ Disasm instruction - PUSH.\r
+\r
+ @param InstructionAddress - The instruction address\r
+ @param SystemContext - EBC system context.\r
+ @param DisasmString - The instruction string\r
+\r
+ @return Instruction length\r
+\r
+**/\r
UINTN\r
EdbDisasmPUSH (\r
IN EFI_PHYSICAL_ADDRESS InstructionAddress,\r
IN EFI_SYSTEM_CONTEXT SystemContext,\r
OUT CHAR16 **DisasmString\r
)\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Disasm instruction - PUSH\r
-\r
-Arguments:\r
-\r
- InstructionAddress - The instruction address\r
- SystemContext - EBC system context.\r
- DisasmString - The instruction string\r
-\r
-Returns:\r
-\r
- Instruction length\r
-\r
---*/\r
{\r
UINT8 Modifiers;\r
UINT8 Operands;\r
\r
Operands = GET_OPERANDS (InstructionAddress);\r
Modifiers = GET_MODIFIERS (InstructionAddress);\r
- if (Modifiers & PUSHPOP_M_IMMDATA) {\r
+ if ((Modifiers & PUSHPOP_M_IMMDATA) != 0) {\r
Size = 4;\r
} else {\r
Size = 2;\r
EdbPrintRegister1 (Operands);\r
\r
InstructionAddress += 2;\r
- if (Modifiers & PUSHPOP_M_IMMDATA) {\r
+ if ((Modifiers & PUSHPOP_M_IMMDATA) != 0) {\r
CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT16));\r
- if (Operands & OPERAND_M_INDIRECT1) {\r
+ if ((Operands & OPERAND_M_INDIRECT1) != 0) {\r
EdbPrintRawIndexData16 (Data16);\r
} else {\r
EdbPrintImmDatan (Data16);\r
return Size;\r
}\r
\r
+/**\r
+\r
+ Disasm instruction - POP.\r
+\r
+ @param InstructionAddress - The instruction address\r
+ @param SystemContext - EBC system context.\r
+ @param DisasmString - The instruction string\r
+\r
+ @return Instruction length\r
+\r
+**/\r
UINTN\r
EdbDisasmPOP (\r
IN EFI_PHYSICAL_ADDRESS InstructionAddress,\r
IN EFI_SYSTEM_CONTEXT SystemContext,\r
OUT CHAR16 **DisasmString\r
)\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Disasm instruction - POP\r
-\r
-Arguments:\r
-\r
- InstructionAddress - The instruction address\r
- SystemContext - EBC system context.\r
- DisasmString - The instruction string\r
-\r
-Returns:\r
-\r
- Instruction length\r
-\r
---*/\r
{\r
UINT8 Modifiers;\r
UINT8 Operands;\r
\r
Operands = GET_OPERANDS (InstructionAddress);\r
Modifiers = GET_MODIFIERS (InstructionAddress);\r
- if (Modifiers & PUSHPOP_M_IMMDATA) {\r
+ if ((Modifiers & PUSHPOP_M_IMMDATA) != 0) {\r
Size = 4;\r
} else {\r
Size = 2;\r
EdbPrintRegister1 (Operands);\r
\r
InstructionAddress += 2;\r
- if (Modifiers & PUSHPOP_M_IMMDATA) {\r
+ if ((Modifiers & PUSHPOP_M_IMMDATA) != 0) {\r
CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT16));\r
- if (Operands & OPERAND_M_INDIRECT1) {\r
+ if ((Operands & OPERAND_M_INDIRECT1) != 0) {\r
EdbPrintRawIndexData16 (Data16);\r
} else {\r
EdbPrintImmDatan (Data16);\r
return Size;\r
}\r
\r
+/**\r
+\r
+ Disasm instruction - CMPI.\r
+\r
+ @param InstructionAddress - The instruction address\r
+ @param SystemContext - EBC system context.\r
+ @param DisasmString - The instruction string\r
+\r
+ @return Instruction length\r
+\r
+**/\r
UINTN\r
EdbDisasmCMPI (\r
IN EFI_PHYSICAL_ADDRESS InstructionAddress,\r
IN EFI_SYSTEM_CONTEXT SystemContext,\r
OUT CHAR16 **DisasmString\r
)\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Disasm instruction - CMPI\r
-\r
-Arguments:\r
-\r
- InstructionAddress - The instruction address\r
- SystemContext - EBC system context.\r
- DisasmString - The instruction string\r
-\r
-Returns:\r
-\r
- Instruction length\r
-\r
---*/\r
{\r
UINT8 Modifiers;\r
UINT8 Opcode;\r
}\r
\r
Size = 2;\r
- if (Operands & OPERAND_M_CMPI_INDEX) {\r
+ if ((Operands & OPERAND_M_CMPI_INDEX) != 0) {\r
Size += 2;\r
}\r
- if (Modifiers & OPCODE_M_CMPI32_DATA) {\r
+ if ((Modifiers & OPCODE_M_CMPI32_DATA) != 0) {\r
Size += 4;\r
} else {\r
Size += 2;\r
// } else {\r
// EdbPrintInstructionName (L"32");\r
// }\r
- if (Modifiers & OPCODE_M_CMPI32_DATA) {\r
+ if ((Modifiers & OPCODE_M_CMPI32_DATA) != 0) {\r
EdbPrintInstructionName (L"d");\r
} else {\r
EdbPrintInstructionName (L"w");\r
EdbPrintRegister1 (Operands);\r
\r
InstructionAddress += 2;\r
- if (Operands & OPERAND_M_CMPI_INDEX) {\r
+ if ((Operands & OPERAND_M_CMPI_INDEX) != 0) {\r
CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT16));\r
InstructionAddress += 2;\r
EdbPrintRawIndexData16 (Data16);\r
\r
EdbPrintComma ();\r
\r
- if (Modifiers & OPCODE_M_CMPI32_DATA) {\r
+ if ((Modifiers & OPCODE_M_CMPI32_DATA) != 0) {\r
CopyMem (&Data32, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT32));\r
EdbPrintDatan (Data32);\r
} else {\r
return Size;\r
}\r
\r
+/**\r
+\r
+ Disasm instruction - PUSHn.\r
+\r
+ @param InstructionAddress - The instruction address\r
+ @param SystemContext - EBC system context.\r
+ @param DisasmString - The instruction string\r
+\r
+ @return Instruction length\r
+\r
+**/\r
UINTN\r
EdbDisasmPUSHn (\r
IN EFI_PHYSICAL_ADDRESS InstructionAddress,\r
IN EFI_SYSTEM_CONTEXT SystemContext,\r
OUT CHAR16 **DisasmString\r
)\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Disasm instruction - PUSHn\r
-\r
-Arguments:\r
-\r
- InstructionAddress - The instruction address\r
- SystemContext - EBC system context.\r
- DisasmString - The instruction string\r
-\r
-Returns:\r
-\r
- Instruction length\r
-\r
---*/\r
{\r
UINT8 Modifiers;\r
UINT8 Operands;\r
\r
Operands = GET_OPERANDS (InstructionAddress);\r
Modifiers = GET_MODIFIERS (InstructionAddress);\r
- if (Modifiers & PUSHPOP_M_IMMDATA) {\r
+ if ((Modifiers & PUSHPOP_M_IMMDATA) != 0) {\r
Size = 4;\r
} else {\r
Size = 2;\r
EdbPrintRegister1 (Operands);\r
\r
InstructionAddress += 2;\r
- if (Modifiers & PUSHPOP_M_IMMDATA) {\r
+ if ((Modifiers & PUSHPOP_M_IMMDATA) != 0) {\r
CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT16));\r
- if (Operands & OPERAND_M_INDIRECT1) {\r
+ if ((Operands & OPERAND_M_INDIRECT1) != 0) {\r
EdbPrintRawIndexData16 (Data16);\r
} else {\r
EdbPrintImmDatan (Data16);\r
return Size;\r
}\r
\r
+/**\r
+\r
+ Disasm instruction - POPn.\r
+\r
+ @param InstructionAddress - The instruction address\r
+ @param SystemContext - EBC system context.\r
+ @param DisasmString - The instruction string\r
+\r
+ @return Instruction length\r
+\r
+**/\r
UINTN\r
EdbDisasmPOPn (\r
IN EFI_PHYSICAL_ADDRESS InstructionAddress,\r
IN EFI_SYSTEM_CONTEXT SystemContext,\r
OUT CHAR16 **DisasmString\r
)\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Disasm instruction - POPn\r
-\r
-Arguments:\r
-\r
- InstructionAddress - The instruction address\r
- SystemContext - EBC system context.\r
- DisasmString - The instruction string\r
-\r
-Returns:\r
-\r
- Instruction length\r
-\r
---*/\r
{\r
UINT8 Modifiers;\r
UINT8 Operands;\r
\r
Operands = GET_OPERANDS (InstructionAddress);\r
Modifiers = GET_MODIFIERS (InstructionAddress);\r
- if (Modifiers & PUSHPOP_M_IMMDATA) {\r
+ if ((Modifiers & PUSHPOP_M_IMMDATA) != 0) {\r
Size = 4;\r
} else {\r
Size = 2;\r
EdbPrintRegister1 (Operands);\r
\r
InstructionAddress += 2;\r
- if (Modifiers & PUSHPOP_M_IMMDATA) {\r
+ if ((Modifiers & PUSHPOP_M_IMMDATA) != 0) {\r
CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT16));\r
- if (Operands & OPERAND_M_INDIRECT1) {\r
+ if ((Operands & OPERAND_M_INDIRECT1) != 0) {\r
EdbPrintRawIndexData16 (Data16);\r
} else {\r
EdbPrintImmDatan (Data16);\r
return Size;\r
}\r
\r
+/**\r
+\r
+ Disasm instruction - MOVI.\r
+\r
+ @param InstructionAddress - The instruction address\r
+ @param SystemContext - EBC system context.\r
+ @param DisasmString - The instruction string\r
+\r
+ @return Instruction length\r
+\r
+**/\r
UINTN\r
EdbDisasmMOVI (\r
IN EFI_PHYSICAL_ADDRESS InstructionAddress,\r
IN EFI_SYSTEM_CONTEXT SystemContext,\r
OUT CHAR16 **DisasmString\r
)\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Disasm instruction - MOVI\r
-\r
-Arguments:\r
-\r
- InstructionAddress - The instruction address\r
- SystemContext - EBC system context.\r
- DisasmString - The instruction string\r
-\r
-Returns:\r
-\r
- Instruction length\r
-\r
---*/\r
{\r
UINT8 Modifiers;\r
UINT8 Operands;\r
Modifiers = GET_MODIFIERS (InstructionAddress);\r
Operands = GET_OPERANDS (InstructionAddress);\r
\r
- if (Operands & MOVI_M_IMMDATA) {\r
+ if ((Operands & MOVI_M_IMMDATA) != 0) {\r
Size = 4;\r
} else {\r
Size = 2;\r
EdbPrintRegister1 (Operands);\r
\r
InstructionAddress += 2;\r
- if (Operands & MOVI_M_IMMDATA) {\r
+ if ((Operands & MOVI_M_IMMDATA) != 0) {\r
CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT16));\r
InstructionAddress += 2;\r
EdbPrintRawIndexData16 (Data16);\r
return Size;\r
}\r
\r
+/**\r
+\r
+ Disasm instruction - MOVIn.\r
+\r
+ @param InstructionAddress - The instruction address\r
+ @param SystemContext - EBC system context.\r
+ @param DisasmString - The instruction string\r
+\r
+ @return Instruction length\r
+\r
+**/\r
UINTN\r
EdbDisasmMOVIn (\r
IN EFI_PHYSICAL_ADDRESS InstructionAddress,\r
IN EFI_SYSTEM_CONTEXT SystemContext,\r
OUT CHAR16 **DisasmString\r
)\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Disasm instruction - MOVIn\r
-\r
-Arguments:\r
-\r
- InstructionAddress - The instruction address\r
- SystemContext - EBC system context.\r
- DisasmString - The instruction string\r
-\r
-Returns:\r
-\r
- Instruction length\r
-\r
---*/\r
{\r
UINT8 Modifiers;\r
UINT8 Operands;\r
Modifiers = GET_MODIFIERS (InstructionAddress);\r
Operands = GET_OPERANDS (InstructionAddress);\r
\r
- if (Operands & MOVI_M_IMMDATA) {\r
+ if ((Operands & MOVI_M_IMMDATA) != 0) {\r
Size = 4;\r
} else {\r
Size = 2;\r
EdbPrintRegister1 (Operands);\r
\r
InstructionAddress += 2;\r
- if (Operands & MOVI_M_IMMDATA) {\r
+ if ((Operands & MOVI_M_IMMDATA) != 0) {\r
CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT16));\r
InstructionAddress += 2;\r
EdbPrintRawIndexData16 (Data16);\r
return Size;\r
}\r
\r
+/**\r
+\r
+ Disasm instruction - MOVREL.\r
+\r
+ @param InstructionAddress - The instruction address\r
+ @param SystemContext - EBC system context.\r
+ @param DisasmString - The instruction string\r
+\r
+ @return Instruction length\r
+\r
+**/\r
UINTN\r
EdbDisasmMOVREL (\r
IN EFI_PHYSICAL_ADDRESS InstructionAddress,\r
IN EFI_SYSTEM_CONTEXT SystemContext,\r
OUT CHAR16 **DisasmString\r
)\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Disasm instruction - MOVREL\r
-\r
-Arguments:\r
-\r
- InstructionAddress - The instruction address\r
- SystemContext - EBC system context.\r
- DisasmString - The instruction string\r
-\r
-Returns:\r
-\r
- Instruction length\r
-\r
---*/\r
{\r
UINT8 Modifiers;\r
UINT8 Operands;\r
Modifiers = GET_MODIFIERS (InstructionAddress);\r
Operands = GET_OPERANDS (InstructionAddress);\r
\r
- if (Operands & MOVI_M_IMMDATA) {\r
+ if ((Operands & MOVI_M_IMMDATA) != 0) {\r
Size = 4;\r
} else {\r
Size = 2;\r
EdbPrintRegister1 (Operands);\r
\r
InstructionAddress += 2;\r
- if (Operands & MOVI_M_IMMDATA) {\r
+ if ((Operands & MOVI_M_IMMDATA) != 0) {\r
CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT16));\r
InstructionAddress += 2;\r
EdbPrintRawIndexData16 (Data16);\r