[PATCH] D41967: [PPC] Return PPC::CARRY for inline asm constraint "{xer}"
Guozhi Wei via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Jan 11 14:55:31 PST 2018
Carrot created this revision.
Carrot added reviewers: hfinkel, nemanjai, echristo.
Herald added a subscriber: kbarton.
When "xer" is specified as clobbered register in inline assembler, clang can accept it, but llvm simply ignore it when lowered to machine instructions. It may cause problems later in scheduler.
This patch checks the inline asm constraint "{xer}" and returns PPC::CARRY in function PPCTargetLowering::getRegForInlineAsmConstraint.
https://reviews.llvm.org/D41967
Files:
lib/Target/PowerPC/PPCISelLowering.cpp
Index: lib/Target/PowerPC/PPCISelLowering.cpp
===================================================================
--- lib/Target/PowerPC/PPCISelLowering.cpp
+++ lib/Target/PowerPC/PPCISelLowering.cpp
@@ -13084,6 +13084,9 @@
return std::make_pair(0U, &PPC::VSSRCRegClass);
else
return std::make_pair(0U, &PPC::VSFRCRegClass);
+ } else if (Constraint == "{xer}") {
+ // The only interesting bit of XER is CARRY.
+ return std::make_pair(PPC::CARRY, &PPC::CARRYRCRegClass);
}
std::pair<unsigned, const TargetRegisterClass *> R =
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D41967.129533.patch
Type: text/x-patch
Size: 559 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180111/6d399105/attachment.bin>
More information about the llvm-commits
mailing list