]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmPkg/Library/ArmDisassemblerLib/ArmDisassembler.c
Move ARM disassembler into a library and out of the exception handler. Add a hook...
[mirror_edk2.git] / ArmPkg / Library / ArmDisassemblerLib / ArmDisassembler.c
index 5b43f5542e83d2b819ba9064a2b31d75aba90645..c3eecbcbcb90b000020af0d3af161263c9c96442 100644 (file)
@@ -154,13 +154,15 @@ RotateRight (
   @param  OpCodePtr   Pointer to pointer of ARM instruction to disassemble.  \r
   @param  Buf         Buffer to sprintf disassembly into.\r
   @param  Size        Size of Buf in bytes. \r
+  @param  Extended    TRUE dump hex for instruction too.\r
   \r
 **/\r
 VOID\r
 DisassembleArmInstruction (\r
   IN  UINT32    **OpCodePtr,\r
   OUT CHAR8     *Buf,\r
-  OUT UINTN     Size\r
+  OUT UINTN     Size,\r
+  IN  BOOLEAN   Extended\r
   )\r
 {\r
   UINT32    OpCode = **OpCodePtr;\r
@@ -183,6 +185,13 @@ DisassembleArmInstruction (
   Rd = (OpCode >> 12) & 0xf;\r
   Rm = (OpCode & 0xf);\r
 \r
+\r
+  if (Extended) {\r
+    Index = AsciiSPrint (Buf, Size, "0x%08x   ", OpCode);\r
+    Buf += Index;\r
+    Size -= Index;\r
+  }\r
+\r
   // LDREX, STREX\r
   if ((OpCode  & 0x0fe000f0) == 0x01800090) {\r
     if (L) {\r