Added the LODS (load byte into register, usually
authorSean Callanan <scallanan@apple.com>
Wed, 16 Sep 2009 22:59:28 +0000 (22:59 +0000)
committerSean Callanan <scallanan@apple.com>
Wed, 16 Sep 2009 22:59:28 +0000 (22:59 +0000)
as part string parsing) instructions to the Intel
instruction tables.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82089 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86Instr64bit.td
lib/Target/X86/X86InstrInfo.td

index e6588f6bd0169a6bb5201e0c9a06acf172042f71..8fe8a82a3e780ee22d030beb9c2d87f663a7425b 100644 (file)
@@ -1548,6 +1548,10 @@ def LAR64rm : RI<0x02, MRMSrcMem, (outs GR64:$dst), (ins i16mem:$src),
                  "lar{q}\t{$src, $dst|$dst, $src}", []>, TB;
 def LAR64rr : RI<0x02, MRMSrcReg, (outs GR64:$dst), (ins GR32:$src),
                  "lar{q}\t{$src, $dst|$dst, $src}", []>, TB;
+                 
+// String manipulation instructions
+
+def LODSQ : RI<0xAD, RawFrm, (outs), (ins), "lodsq", []>;
 
 //===----------------------------------------------------------------------===//
 // Non-Instruction Patterns
index f84b274a3e31e7f73380f5eac1301543efbc128d..29fd5efabb1d938d0a7c9672c2ca1d692987ac87 100644 (file)
@@ -3684,6 +3684,12 @@ def LAR32rm : I<0x02, MRMSrcMem, (outs GR32:$dst), (ins i16mem:$src),
                 "lar{l}\t{$src, $dst|$dst, $src}", []>, TB;
 def LAR32rr : I<0x02, MRMSrcReg, (outs GR32:$dst), (ins GR32:$src),
                 "lar{l}\t{$src, $dst|$dst, $src}", []>, TB;
+                
+// String manipulation instructions
+
+def LODSB : I<0xAC, RawFrm, (outs), (ins), "lodsb", []>;
+def LODSW : I<0xAD, RawFrm, (outs), (ins), "lodsw", []>, OpSize;
+def LODSD : I<0xAD, RawFrm, (outs), (ins), "lodsd", []>;
 
 //===----------------------------------------------------------------------===//
 // Non-Instruction Patterns