From: Tom Stellard <thomas.stell...@amd.com> --- lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.cpp | 11 +++++++++++ lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.h | 1 + lib/Target/AMDGPU/R600Instructions.td | 2 +- 3 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.cpp b/lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.cpp index fe2032e..7ed3d2c 100644 --- a/lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.cpp +++ b/lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.cpp @@ -63,6 +63,17 @@ void AMDGPUInstPrinter::printClamp(const MCInst *MI, unsigned OpNo, printIfSet(MI, OpNo, O, "_SAT"); } +void AMDGPUInstPrinter::printLiteral(const MCInst *MI, unsigned OpNo, + raw_ostream &O) { + union Literal { + float f; + int32_t i; + } L; + + L.i = MI->getOperand(OpNo).getImm(); + O << L.i << "(" << L.f << ")"; +} + void AMDGPUInstPrinter::printLast(const MCInst *MI, unsigned OpNo, raw_ostream &O) { printIfSet(MI, OpNo, O, " *"); diff --git a/lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.h b/lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.h index de94eda..1f70ef5 100644 --- a/lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.h +++ b/lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.h @@ -36,6 +36,7 @@ private: void printIfSet(const MCInst *MI, unsigned OpNo, raw_ostream &O, StringRef Asm); void printAbs(const MCInst *MI, unsigned OpNo, raw_ostream &O); void printClamp(const MCInst *MI, unsigned OpNo, raw_ostream &O); + void printLiteral(const MCInst *MI, unsigned OpNo, raw_ostream &O); void printLast(const MCInst *MI, unsigned OpNo, raw_ostream &O); void printNeg(const MCInst *MI, unsigned OpNo, raw_ostream &O); void printOMOD(const MCInst *MI, unsigned OpNo, raw_ostream &O); diff --git a/lib/Target/AMDGPU/R600Instructions.td b/lib/Target/AMDGPU/R600Instructions.td index c8cf012..ccec249 100644 --- a/lib/Target/AMDGPU/R600Instructions.td +++ b/lib/Target/AMDGPU/R600Instructions.td @@ -70,7 +70,7 @@ class InstFlag<string PM = "printOperand", int Default = 0> let PrintMethod = PM; } -def LITERAL : InstFlag; +def LITERAL : InstFlag<"printLiteral">; def WRITE : InstFlag <"printWrite", 1>; def OMOD : InstFlag <"printOMOD">; -- 1.7.11.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev