Fix bug
authorandrewfish <andrewfish@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 17 Mar 2010 02:29:58 +0000 (02:29 +0000)
committerandrewfish <andrewfish@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 17 Mar 2010 02:29:58 +0000 (02:29 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk@10263 6f19259b-4bc3-4df7-8a09-765794883524

edk2/ArmPkg/Library/ArmDisassemblerLib/ArmDisassembler.c

index c3eecbc..8d95a68 100644 (file)
@@ -37,11 +37,10 @@ CHAR8 *gCondition[] = {
   "2"\r
 };\r
 \r
-#define COND(_a)  gCondition[(_a) >> 28]\r
+#define COND(_a)  gCondition[((_a) >> 28)]\r
 \r
 CHAR8 *gReg[] = {\r
   "r0",\r
-  "r1",\r
   "r2",\r
   "r3",\r
   "r4",\r
@@ -225,7 +224,7 @@ DisassembleArmInstruction (
     if ((OpCode & 0xfd70f000 ) == 0xf550f000) {\r
       Index = AsciiSPrint (Buf, Size, "PLD");\r
     } else {\r
-      Index = AsciiSPrint (Buf, Size, "%a%a%a%a %a, ", L ? "LDR" : "STR", COND (OpCode), BYTE (B), (!& W) ? "T":"", gReg[Rd]); \r
+      Index = AsciiSPrint (Buf, Size, "%a%a%a%a %a, ", L ? "LDR" : "STR", COND (OpCode), BYTE (B), (!(P) && W) ? "T":"", gReg[Rd]); \r
     }\r
     if (P) {\r
       if (!I) {\r