summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AMDGPU/SIInstrFormats.td
diff options
context:
space:
mode:
authorTom Stellard <thomas.stellard@amd.com>2016-02-16 18:14:56 +0000
committerTom Stellard <thomas.stellard@amd.com>2016-02-16 18:14:56 +0000
commitcc4c8718ed09b783a03f93500b96aea41f8273b4 (patch)
treeb94e70f32e84881ebfa9a42d2e655477f53e7a63 /llvm/lib/Target/AMDGPU/SIInstrFormats.td
parent845435c86ac9fdc92093b7f1459589324b73d41f (diff)
downloadbcm5719-llvm-cc4c8718ed09b783a03f93500b96aea41f8273b4.tar.gz
bcm5719-llvm-cc4c8718ed09b783a03f93500b96aea41f8273b4.zip
[AMDGPU] Rename $dst operand to $vdst for VOP instructions.
Summary: This change renames output operand for VOP instructions from dst to vdst. This is needed to enable decoding named operands for disassembler. Reviewers: vpykhtin, tstellarAMD, arsenm Subscribers: arsenm, llvm-commits, nhaustov Projects: #llvm-amdgpu-spb Differential Revision: http://reviews.llvm.org/D16920 llvm-svn: 260986
Diffstat (limited to 'llvm/lib/Target/AMDGPU/SIInstrFormats.td')
-rw-r--r--llvm/lib/Target/AMDGPU/SIInstrFormats.td18
1 files changed, 15 insertions, 3 deletions
diff --git a/llvm/lib/Target/AMDGPU/SIInstrFormats.td b/llvm/lib/Target/AMDGPU/SIInstrFormats.td
index a94212a665e..259638e9e8f 100644
--- a/llvm/lib/Target/AMDGPU/SIInstrFormats.td
+++ b/llvm/lib/Target/AMDGPU/SIInstrFormats.td
@@ -362,8 +362,7 @@ class VOP2_MADKe <bits<6> op> : Enc64 {
let Inst{63-32} = src2;
}
-class VOP3e <bits<9> op> : Enc64 {
- bits<8> vdst;
+class VOP3a <bits<9> op> : Enc64 {
bits<2> src0_modifiers;
bits<9> src0;
bits<2> src1_modifiers;
@@ -373,7 +372,6 @@ class VOP3e <bits<9> op> : Enc64 {
bits<1> clamp;
bits<2> omod;
- let Inst{7-0} = vdst;
let Inst{8} = src0_modifiers{1};
let Inst{9} = src1_modifiers{1};
let Inst{10} = src2_modifiers{1};
@@ -389,6 +387,20 @@ class VOP3e <bits<9> op> : Enc64 {
let Inst{63} = src2_modifiers{0};
}
+class VOP3e <bits<9> op> : VOP3a <op> {
+ bits<8> vdst;
+
+ let Inst{7-0} = vdst;
+}
+
+// Encoding used for VOPC instructions encoded as VOP3
+// Differs from VOP3e by destination name (sdst) as VOPC doesn't have vector dst
+class VOP3ce <bits<9> op> : VOP3a <op> {
+ bits<8> sdst;
+
+ let Inst{7-0} = sdst;
+}
+
class VOP3be <bits<9> op> : Enc64 {
bits<8> vdst;
bits<2> src0_modifiers;
OpenPOWER on IntegriCloud