]> granicus.if.org Git - llvm/commitdiff
[X86] Add nopq instruction which is a rex encoded version of nopl for gas compatibility.
authorCraig Topper <craig.topper@intel.com>
Sat, 22 Jul 2017 01:30:53 +0000 (01:30 +0000)
committerCraig Topper <craig.topper@intel.com>
Sat, 22 Jul 2017 01:30:53 +0000 (01:30 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@308818 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86InstrInfo.td
test/MC/Disassembler/X86/x86-64.txt
test/MC/X86/x86-32-coverage.s
test/MC/X86/x86-64.s

index 700a9c0da7962ee2d09ee8e46a9587b3b84be820..e3e8d2d613c75d57f2c1f6f679ed2d6aafeb3614 100644 (file)
@@ -1108,11 +1108,15 @@ let hasSideEffects = 0, SchedRW = [WriteZero] in {
                 "nop{w}\t$zero", [], IIC_NOP>, TB, OpSize16;
   def NOOPL : I<0x1f, MRMXm, (outs), (ins i32mem:$zero),
                 "nop{l}\t$zero", [], IIC_NOP>, TB, OpSize32;
+  def NOOPQ : RI<0x1f, MRMXm, (outs), (ins i64mem:$zero),
+                "nop{q}\t$zero", [], IIC_NOP>, TB;
   // Also allow register so we can assemble/disassemble
   def NOOPWr : I<0x1f, MRMXr, (outs), (ins GR16:$zero),
                  "nop{w}\t$zero", [], IIC_NOP>, TB, OpSize16;
   def NOOPLr : I<0x1f, MRMXr, (outs), (ins GR32:$zero),
                  "nop{l}\t$zero", [], IIC_NOP>, TB, OpSize32;
+  def NOOPQr : RI<0x1f, MRMXr, (outs), (ins GR64:$zero),
+                  "nop{q}\t$zero", [], IIC_NOP>, TB;
 }
 
 
index 659ad9051fd559165c8896b1f6370134cf343ad7..dbfff0aed9b6efd154737236f57e3bad50b18ff7 100644 (file)
 
 # CHECK: lwpval $2309737967, (%esp), %edx
 0x67 0x8f 0xea 0x68 0x12 0x0c 0x24 0xef 0xcd 0xab 0x89
+
+# CHECK: nopq -559038737(%rbx,%rcx,8)
+0x48 0x0f 0x1f 0x84 0xcb 0xef 0xbe 0xad 0xde
+
+# CHECK: nopq %rax
+0x48 0x0f 0x1f 0xC0
index 706039a7a2156f0a519fcbff01fda16b7898aa15..f15ece17049ac311bcc07eaa974e860363d8f1d0 100644 (file)
 // CHECK:  encoding: [0x0f,0x1f,0x84,0xcb,0xef,0xbe,0xad,0xde]
                nopl    0xdeadbeef(%ebx,%ecx,8)
 
+
 // CHECK: nopw 32493
 // CHECK:  encoding: [0x66,0x0f,0x1f,0x05,0xed,0x7e,0x00,0x00]
                nopw    0x7eed
index d735737a92caace868fb9ae00cce39c845002a16..8612b9974f75547428b375d063a5ae1c37b3368b 100644 (file)
@@ -1509,3 +1509,11 @@ vmovq %xmm0, %rax
 // CHECK:      movl %r15d, (%r15,%r15)
 // CHECK:  encoding: [0x47,0x89,0x3c,0x3f]
 movl %r15d, (%r15,%r15)
+
+// CHECK: nopq 3735928559(%rbx,%rcx,8)
+// CHECK:  encoding: [0x48,0x0f,0x1f,0x84,0xcb,0xef,0xbe,0xad,0xde]
+nopq   0xdeadbeef(%rbx,%rcx,8)
+
+// CHECK: nopq %rax
+// CHECK:  encoding: [0x48,0x0f,0x1f,0xc0]
+nopq   %rax