summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Sparc/InstPrinter/SparcInstPrinter.cpp
diff options
context:
space:
mode:
authorVenkatraman Govindaraju <venkatra@cs.wisc.edu>2014-01-08 06:14:52 +0000
committerVenkatraman Govindaraju <venkatra@cs.wisc.edu>2014-01-08 06:14:52 +0000
commitb3b7c389831d063c2f3058ac272517b2d68962b9 (patch)
tree4f4866810894dfe819777c5fbdd9363fcf3f15b9 /llvm/lib/Target/Sparc/InstPrinter/SparcInstPrinter.cpp
parent173c69f2267594d2dbba0bde2a81e55c8e494987 (diff)
downloadbcm5719-llvm-b3b7c389831d063c2f3058ac272517b2d68962b9.tar.gz
bcm5719-llvm-b3b7c389831d063c2f3058ac272517b2d68962b9.zip
[Sparc] Add support for parsing branch instructions and conditional moves.
llvm-svn: 198738
Diffstat (limited to 'llvm/lib/Target/Sparc/InstPrinter/SparcInstPrinter.cpp')
-rw-r--r--llvm/lib/Target/Sparc/InstPrinter/SparcInstPrinter.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/llvm/lib/Target/Sparc/InstPrinter/SparcInstPrinter.cpp b/llvm/lib/Target/Sparc/InstPrinter/SparcInstPrinter.cpp
index 77404f83146..5e39bd6cb1f 100644
--- a/llvm/lib/Target/Sparc/InstPrinter/SparcInstPrinter.cpp
+++ b/llvm/lib/Target/Sparc/InstPrinter/SparcInstPrinter.cpp
@@ -82,6 +82,17 @@ void SparcInstPrinter::printCCOperand(const MCInst *MI, int opNum,
raw_ostream &O)
{
int CC = (int)MI->getOperand(opNum).getImm();
+ switch (MI->getOpcode()) {
+ default: break;
+ case SP::FBCOND:
+ case SP::MOVFCCrr:
+ case SP::MOVFCCri:
+ case SP::FMOVS_FCC:
+ case SP::FMOVD_FCC:
+ case SP::FMOVQ_FCC: // Make sure CC is a fp conditional flag.
+ CC = (CC < 16) ? (CC + 16) : CC;
+ break;
+ }
O << SPARCCondCodeToString((SPCC::CondCodes)CC);
}
OpenPOWER on IntegriCloud