]> granicus.if.org Git - llvm/commitdiff
[AMDGPU] Allow any value in unused src0 field in v_nop
authorTim Renouf <tpr.llvm@botech.co.uk>
Mon, 24 Jun 2019 17:35:20 +0000 (17:35 +0000)
committerTim Renouf <tpr.llvm@botech.co.uk>
Mon, 24 Jun 2019 17:35:20 +0000 (17:35 +0000)
Summary:
The LLVM disassembler assumes that the unused src0 operand of v_nop is
zero. Other tools can put another value in that field, which is still
valid. This commit fixes the LLVM disassembler to recognize such an
encoding as v_nop, in the same way as we already do for s_getpc.

Differential Revision: https://reviews.llvm.org/D63724

Change-Id: Iaf0363eae26ff92fc4ebc716216476adbff37a6f

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

lib/Target/AMDGPU/VOP1Instructions.td
test/MC/Disassembler/AMDGPU/nop.txt
test/MC/Disassembler/AMDGPU/vop1.txt
test/MC/Disassembler/AMDGPU/vop1_vi.txt

index a916091d6fb1e44be96f037764ca05e931c1bced..6bc416ed7d4bb638b8322ee2d2fa1b4c970c46b4 100644 (file)
@@ -14,7 +14,7 @@ class VOP1e <bits<8> op, VOPProfile P> : Enc32 {
   bits<8> vdst;
   bits<9> src0;
 
-  let Inst{8-0}   = !if(P.HasSrc0, src0{8-0}, 0);
+  let Inst{8-0}   = !if(P.HasSrc0, src0{8-0}, ?);
   let Inst{16-9}  = op;
   let Inst{24-17} = !if(P.EmitDst, vdst{7-0}, 0);
   let Inst{31-25} = 0x3f; //encoding
index 0305765e6f5795ad0086f40f8e23a0009cc59a14..d27c0bc6a583a81734af963eb74f7c96afd31c55 100644 (file)
@@ -2,3 +2,6 @@
 
 # CHECK: v_nop              ; encoding: [0x00,0x00,0x00,0x7e]
 0x00 0x00 0x00 0x7e
+
+# CHECK: v_nop              ; encoding: [0x00,0x00,0x00,0x7e]
+0x80 0x00 0x00 0x7e
index 0254084879608be62f59f4267a03428e8ce90219..3e65f6142b752c82b8bf41a63620588f0a099c8f 100644 (file)
@@ -3,6 +3,9 @@
 # CHECK: v_nop              ; encoding: [0x00,0x00,0x00,0x7e]
 0x00 0x00 0x00 0x7e
 
+# CHECK: v_nop              ; encoding: [0x00,0x00,0x00,0x7e]
+0x80 0x00 0x00 0x7e
+
 # CHECK: v_clrexcp                       ; encoding: [0x00,0x6a,0x00,0x7e]
 0x00 0x6a 0x00 0x7e
 
index c42c0a62810634500dcea4dd5b502cd4ac424c40..8e1a13e25896c8fce1d30a61dabf368c413ef369 100644 (file)
@@ -6,6 +6,9 @@
 # VI: v_nop ; encoding: [0x00,0x00,0x00,0x7e]
 0x00 0x00 0x00 0x7e
 
+# VI: v_nop ; encoding: [0x00,0x00,0x00,0x7e]
+0x80 0x00 0x00 0x7e
+
 # VI:   v_clrexcp ; encoding: [0x00,0x6a,0x00,0x7e]
 0x00 0x6a 0x00 0x7e