diff options
| author | Vikram S. Adve <vadve@cs.uiuc.edu> | 2002-03-31 19:04:50 +0000 |
|---|---|---|
| committer | Vikram S. Adve <vadve@cs.uiuc.edu> | 2002-03-31 19:04:50 +0000 |
| commit | 02662bd39088bb876b2ea269e8a7c05613e25b8e (patch) | |
| tree | 1b3b4def77d9fcb7c864ddcbf0389f74dab5a828 /llvm | |
| parent | 07c874547bd7fa6ccf0e9d9419b0ebf197f8d6fc (diff) | |
| download | bcm5719-llvm-02662bd39088bb876b2ea269e8a7c05613e25b8e.tar.gz bcm5719-llvm-02662bd39088bb876b2ea269e8a7c05613e25b8e.zip | |
Added function getCallInstIndirectAddrVal() to set call interference
for that value.
llvm-svn: 2074
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/Target/Sparc/SparcInternals.h | 4 | ||||
| -rw-r--r-- | llvm/lib/Target/Sparc/SparcRegInfo.cpp | 8 |
2 files changed, 11 insertions, 1 deletions
diff --git a/llvm/lib/Target/Sparc/SparcInternals.h b/llvm/lib/Target/Sparc/SparcInternals.h index 1de5496cbfe..7f836c7a20f 100644 --- a/llvm/lib/Target/Sparc/SparcInternals.h +++ b/llvm/lib/Target/Sparc/SparcInternals.h @@ -415,9 +415,11 @@ public: } - // To obtain the return value contained in a CALL machine instruction + // To obtain the return value and the indirect call address (if any) + // contained in a CALL machine instruction // const Value * getCallInstRetVal(const MachineInstr *CallMI) const; + const Value * getCallInstIndirectAddrVal(const MachineInstr *CallMI) const; // The following methods are used to generate "copy" machine instructions diff --git a/llvm/lib/Target/Sparc/SparcRegInfo.cpp b/llvm/lib/Target/Sparc/SparcRegInfo.cpp index 9a3c7bd0b5f..434816e0a6b 100644 --- a/llvm/lib/Target/Sparc/SparcRegInfo.cpp +++ b/llvm/lib/Target/Sparc/SparcRegInfo.cpp @@ -93,6 +93,7 @@ unsigned UltraSparcRegInfo::getStackPointer() const { //--------------------------------------------------------------------------- // Finds the return value of a sparc specific call instruction //--------------------------------------------------------------------------- + const Value * UltraSparcRegInfo::getCallInstRetVal(const MachineInstr *CallMI) const { unsigned OpCode = CallMI->getOpCode(); @@ -121,6 +122,13 @@ UltraSparcRegInfo::getCallInstRetVal(const MachineInstr *CallMI) const { } +const Value * +UltraSparcRegInfo::getCallInstIndirectAddrVal(const MachineInstr *CallMI) const +{ + return (CallMI->getOpCode() == JMPLCALL)? + CallMI->getOperand(0).getVRegValue() : NULL; +} + //--------------------------------------------------------------------------- // Finds the return address of a call sparc specific call instruction |

