diff options
| author | Tom Stellard <thomas.stellard@amd.com> | 2016-02-16 18:14:56 +0000 |
|---|---|---|
| committer | Tom Stellard <thomas.stellard@amd.com> | 2016-02-16 18:14:56 +0000 |
| commit | cc4c8718ed09b783a03f93500b96aea41f8273b4 (patch) | |
| tree | b94e70f32e84881ebfa9a42d2e655477f53e7a63 /llvm/lib/Target/AMDGPU/SIInstrFormats.td | |
| parent | 845435c86ac9fdc92093b7f1459589324b73d41f (diff) | |
| download | bcm5719-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.td | 18 |
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; |

