[PATCH] R600/SI: Fix hardcoded values for modifiers.
Tom Stellard
tom at stellard.net
Mon Sep 29 08:33:06 PDT 2014
On Mon, Sep 29, 2014 at 03:28:54PM +0000, Matt Arsenault wrote:
> Move enums to SIDefines.h
>
> http://reviews.llvm.org/D5521
LGTM.
>
> Files:
> lib/Target/R600/InstPrinter/AMDGPUInstPrinter.cpp
> lib/Target/R600/SIDefines.h
> lib/Target/R600/SIInsertWaits.cpp
> lib/Target/R600/SIInstrInfo.h
> Index: lib/Target/R600/InstPrinter/AMDGPUInstPrinter.cpp
> ===================================================================
> --- lib/Target/R600/InstPrinter/AMDGPUInstPrinter.cpp
> +++ lib/Target/R600/InstPrinter/AMDGPUInstPrinter.cpp
> @@ -9,6 +9,8 @@
> //===----------------------------------------------------------------------===//
>
> #include "AMDGPUInstPrinter.h"
> +#include "SIDefines.h"
> +
> #include "MCTargetDesc/AMDGPUMCTargetDesc.h"
> #include "llvm/MC/MCExpr.h"
> #include "llvm/MC/MCInst.h"
> @@ -239,12 +241,12 @@
> void AMDGPUInstPrinter::printOperandAndMods(const MCInst *MI, unsigned OpNo,
> raw_ostream &O) {
> unsigned InputModifiers = MI->getOperand(OpNo).getImm();
> - if (InputModifiers & 0x1)
> + if (InputModifiers & SISrcMods::NEG)
> O << '-';
> - if (InputModifiers & 0x2)
> + if (InputModifiers & SISrcMods::ABS)
> O << '|';
> printOperand(MI, OpNo + 1, O);
> - if (InputModifiers & 0x2)
> + if (InputModifiers & SISrcMods::ABS)
> O << '|';
> }
>
> Index: lib/Target/R600/SIDefines.h
> ===================================================================
> --- lib/Target/R600/SIDefines.h
> +++ lib/Target/R600/SIDefines.h
> @@ -27,6 +27,22 @@
> };
> }
>
> +namespace SIInstrFlags {
> + enum Flags {
> + // First 4 bits are the instruction encoding
> + VM_CNT = 1 << 0,
> + EXP_CNT = 1 << 1,
> + LGKM_CNT = 1 << 2
> + };
> +}
> +
> +namespace SISrcMods {
> + enum {
> + NEG = 1 << 0,
> + ABS = 1 << 1
> + };
> +}
> +
> #define R_00B028_SPI_SHADER_PGM_RSRC1_PS 0x00B028
> #define R_00B02C_SPI_SHADER_PGM_RSRC2_PS 0x00B02C
> #define S_00B02C_EXTRA_LDS_SIZE(x) (((x) & 0xFF) << 8)
> Index: lib/Target/R600/SIInsertWaits.cpp
> ===================================================================
> --- lib/Target/R600/SIInsertWaits.cpp
> +++ lib/Target/R600/SIInsertWaits.cpp
> @@ -19,6 +19,7 @@
> #include "AMDGPU.h"
> #include "AMDGPUSubtarget.h"
> #include "SIInstrInfo.h"
> +#include "SIDefines.h"
> #include "SIMachineFunctionInfo.h"
> #include "llvm/CodeGen/MachineFunction.h"
> #include "llvm/CodeGen/MachineFunctionPass.h"
> Index: lib/Target/R600/SIInstrInfo.h
> ===================================================================
> --- lib/Target/R600/SIInstrInfo.h
> +++ lib/Target/R600/SIInstrInfo.h
> @@ -270,20 +270,4 @@
>
> } // End namespace llvm
>
> -namespace SIInstrFlags {
> - enum Flags {
> - // First 4 bits are the instruction encoding
> - VM_CNT = 1 << 0,
> - EXP_CNT = 1 << 1,
> - LGKM_CNT = 1 << 2
> - };
> -}
> -
> -namespace SISrcMods {
> - enum {
> - NEG = 1 << 0,
> - ABS = 1 << 1
> - };
> -}
> -
> #endif
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list