Merge case statements to remove redundant code.
authorCraig Topper <craig.topper@gmail.com>
Mon, 30 Dec 2013 19:47:49 +0000 (19:47 +0000)
committerCraig Topper <craig.topper@gmail.com>
Mon, 30 Dec 2013 19:47:49 +0000 (19:47 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198241 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp

index 7952607aca0e5e4f2052d81a93f629b1e85f7c6b..7dd510159a984e37ded31b94f50dfd930a8d62a9 100644 (file)
@@ -1124,34 +1124,28 @@ void X86MCCodeEmitter::EmitOpcodePrefix(uint64_t TSFlags, unsigned &CurByte,
   case X86II::A7:  // 0F A7
     Need0FPrefix = true;
     break;
+  case X86II::XS:   // F3 0F
   case X86II::T8XS: // F3 0F 38
     EmitByte(0xF3, CurByte, OS);
     Need0FPrefix = true;
     break;
+  case X86II::XD:   // F2 0F
   case X86II::T8XD: // F2 0F 38
-    EmitByte(0xF2, CurByte, OS);
-    Need0FPrefix = true;
-    break;
   case X86II::TAXD: // F2 0F 3A
     EmitByte(0xF2, CurByte, OS);
     Need0FPrefix = true;
     break;
-  case X86II::XS:   // F3 0F
-    EmitByte(0xF3, CurByte, OS);
-    Need0FPrefix = true;
-    break;
-  case X86II::XD:   // F2 0F
-    EmitByte(0xF2, CurByte, OS);
-    Need0FPrefix = true;
+  case X86II::D8:
+  case X86II::D9:
+  case X86II::DA:
+  case X86II::DB:
+  case X86II::DC:
+  case X86II::DD:
+  case X86II::DE:
+  case X86II::DF:
+    EmitByte(0xD8+(((TSFlags & X86II::Op0Mask) - X86II::D8) >> X86II::Op0Shift),
+             CurByte, OS);
     break;
-  case X86II::D8: EmitByte(0xD8, CurByte, OS); break;
-  case X86II::D9: EmitByte(0xD9, CurByte, OS); break;
-  case X86II::DA: EmitByte(0xDA, CurByte, OS); break;
-  case X86II::DB: EmitByte(0xDB, CurByte, OS); break;
-  case X86II::DC: EmitByte(0xDC, CurByte, OS); break;
-  case X86II::DD: EmitByte(0xDD, CurByte, OS); break;
-  case X86II::DE: EmitByte(0xDE, CurByte, OS); break;
-  case X86II::DF: EmitByte(0xDF, CurByte, OS); break;
   }
 
   // Handle REX prefix.