[AMDGPU] Assembler: Fix VOP3 only instructions
authorTom Stellard <thomas.stellard@amd.com>
Thu, 11 Feb 2016 03:28:15 +0000 (03:28 +0000)
committerTom Stellard <thomas.stellard@amd.com>
Thu, 11 Feb 2016 03:28:15 +0000 (03:28 +0000)
commita90b9526df693321a4dbebfeb1dcac672f403b41
treec22cad9c7c2d52df235e032c7828da9327b8b305
parentba284b60b87f62fbb52f29541141cf2afb9502bc
[AMDGPU] Assembler: Fix VOP3 only instructions

Separate methods to convert parsed instructions to MCInst:

  - VOP3 only instructions (always create modifiers as operands in MCInst)
  - VOP2 instrunctions with modifiers (create modifiers as operands
    in MCInst when e64 encoding is forced or modifiers are parsed)
  - VOP2 instructions without modifiers (do not create modifiers
    as operands in MCInst)
  - Add VOP3Only flag. Pass HasMods flag to VOP3Common.
  - Simplify code that deals with modifiers (-1 is now same as
    0). This is no longer needed.
  - Add few tests (more will be added separately).
    Update error message now correct.

Patch By: Nikolay Haustov

Differential Revision: http://reviews.llvm.org/D16778

llvm-svn: 260483
llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
llvm/lib/Target/AMDGPU/SIInstrFormats.td
llvm/lib/Target/AMDGPU/SIInstrInfo.td
llvm/lib/Target/AMDGPU/SIInstructions.td
llvm/test/MC/AMDGPU/vop3.s