diff options
author | Venkatraman Govindaraju <venkatra@cs.wisc.edu> | 2014-03-02 21:17:44 +0000 |
---|---|---|
committer | Venkatraman Govindaraju <venkatra@cs.wisc.edu> | 2014-03-02 21:17:44 +0000 |
commit | 4fa2ab26f5dca2a038798d76e1760c52e8786b72 (patch) | |
tree | 9d939a8153915287ac3e5b15a506688fd3f40885 /llvm/lib/Target/Sparc/InstPrinter/SparcInstPrinter.cpp | |
parent | 49c8ae21f59608479727cdaafa880e51c5f10e15 (diff) | |
download | bcm5719-llvm-4fa2ab26f5dca2a038798d76e1760c52e8786b72.tar.gz bcm5719-llvm-4fa2ab26f5dca2a038798d76e1760c52e8786b72.zip |
[Sparc] Add support for decoding jmpl/retl/ret instruction.
llvm-svn: 202663
Diffstat (limited to 'llvm/lib/Target/Sparc/InstPrinter/SparcInstPrinter.cpp')
-rw-r--r-- | llvm/lib/Target/Sparc/InstPrinter/SparcInstPrinter.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/llvm/lib/Target/Sparc/InstPrinter/SparcInstPrinter.cpp b/llvm/lib/Target/Sparc/InstPrinter/SparcInstPrinter.cpp index 045c99087a4..fabc1252cdf 100644 --- a/llvm/lib/Target/Sparc/InstPrinter/SparcInstPrinter.cpp +++ b/llvm/lib/Target/Sparc/InstPrinter/SparcInstPrinter.cpp @@ -61,7 +61,15 @@ bool SparcInstPrinter::printSparcAliasInstr(const MCInst *MI, raw_ostream &O) return false; switch (MI->getOperand(0).getReg()) { default: return false; - case SP::G0: // jmp $addr + case SP::G0: // jmp $addr | ret | retl + if (MI->getOperand(2).isImm() && + MI->getOperand(2).getImm() == 8) { + switch(MI->getOperand(1).getReg()) { + default: break; + case SP::I7: O << "\tret"; return true; + case SP::O7: O << "\tretl"; return true; + } + } O << "\tjmp "; printMemOperand(MI, 1, O); return true; case SP::O7: // call $addr |