diff options
author | Dale Johannesen <dalej@apple.com> | 2008-09-17 21:13:11 +0000 |
---|---|---|
committer | Dale Johannesen <dalej@apple.com> | 2008-09-17 21:13:11 +0000 |
commit | bac3c81377340735d0674a0529dba69ef20e679b (patch) | |
tree | c8440b8031a0fe3d7c63fcf9145ffc930759c547 /lib/CodeGen/AsmPrinter | |
parent | 13af991aa22eabaf36be6acb70edd354d0242a89 (diff) | |
download | external_llvm-bac3c81377340735d0674a0529dba69ef20e679b.zip external_llvm-bac3c81377340735d0674a0529dba69ef20e679b.tar.gz external_llvm-bac3c81377340735d0674a0529dba69ef20e679b.tar.bz2 |
Add a bit to mark operands of asm's that conflict
with an earlyclobber operand elsewhere. Propagate
this bit and the earlyclobber bit through SDISel.
Change linear-scan RA not to allocate regs in a way
that conflicts with an earlyclobber. See also comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56290 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/AsmPrinter')
-rw-r--r-- | lib/CodeGen/AsmPrinter/AsmPrinter.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp index 98f4b7d..42a61c6 100644 --- a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp +++ b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp @@ -1325,7 +1325,8 @@ void AsmPrinter::printInlineAsm(const MachineInstr *MI) const { false, false, false); else { AsmPrinter *AP = const_cast<AsmPrinter*>(this); - if ((OpFlags & 7) == 4 /*ADDR MODE*/) { + if ((OpFlags & 7) == 4 /*ADDR MODE*/ || + (OpFlags & 7) == 7) /*ADDR MODE OVERLAPS EARLYCLOBBER*/ { Error = AP->PrintAsmMemoryOperand(MI, OpNo, AsmPrinterVariant, Modifier[0] ? Modifier : 0); } else { |