mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-13 09:33:50 +00:00
Print machine frame objects with the frame offset intrinsic to the machine
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5329 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
55f6fab9f1
commit
9085d8a9a9
@ -33,6 +33,7 @@
|
||||
|
||||
class TargetData;
|
||||
class TargetRegisterClass;
|
||||
class MachineFunction;
|
||||
#include <vector>
|
||||
|
||||
class MachineFrameInfo {
|
||||
@ -205,10 +206,10 @@ public:
|
||||
/// print - Used by the MachineFunction printer to print information about
|
||||
/// stack objects. Implemented in MachineFunction.cpp
|
||||
///
|
||||
void print(std::ostream &OS) const;
|
||||
void print(const MachineFunction &MF, std::ostream &OS) const;
|
||||
|
||||
/// dump - Call print(std::cerr) to be called from the debugger.
|
||||
void dump() const;
|
||||
/// dump - Call print(MF, std::cerr) to be called from the debugger.
|
||||
void dump(const MachineFunction &MF) const;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -120,7 +120,7 @@ void MachineFunction::print(std::ostream &OS) const {
|
||||
<< "\"\n";
|
||||
|
||||
// Print Frame Information
|
||||
getFrameInfo()->print(OS);
|
||||
getFrameInfo()->print(*this, OS);
|
||||
|
||||
// Print Constant Pool
|
||||
getConstantPool()->print(OS);
|
||||
@ -188,7 +188,9 @@ int MachineFrameInfo::CreateStackObject(const TargetRegisterClass *RC) {
|
||||
}
|
||||
|
||||
|
||||
void MachineFrameInfo::print(std::ostream &OS) const {
|
||||
void MachineFrameInfo::print(const MachineFunction &MF, std::ostream &OS) const{
|
||||
int ValOffset = MF.getTarget().getFrameInfo().getOffsetOfLocalArea();
|
||||
|
||||
for (unsigned i = 0, e = Objects.size(); i != e; ++i) {
|
||||
const StackObject &SO = Objects[i];
|
||||
OS << " <fi #" << (int)(i-NumFixedObjects) << "> is ";
|
||||
@ -200,11 +202,12 @@ void MachineFrameInfo::print(std::ostream &OS) const {
|
||||
if (i < NumFixedObjects)
|
||||
OS << " fixed";
|
||||
if (i < NumFixedObjects || SO.SPOffset != -1) {
|
||||
int Off = SO.SPOffset + ValOffset;
|
||||
OS << " at location [SP";
|
||||
if (SO.SPOffset > 0)
|
||||
OS << "+" << SO.SPOffset;
|
||||
else if (SO.SPOffset < 0)
|
||||
OS << SO.SPOffset;
|
||||
if (Off > 0)
|
||||
OS << "+" << Off;
|
||||
else if (Off < 0)
|
||||
OS << Off;
|
||||
OS << "]";
|
||||
}
|
||||
OS << "\n";
|
||||
@ -214,7 +217,9 @@ void MachineFrameInfo::print(std::ostream &OS) const {
|
||||
OS << " Stack frame contains variable sized objects\n";
|
||||
}
|
||||
|
||||
void MachineFrameInfo::dump() const { print(std::cerr); }
|
||||
void MachineFrameInfo::dump(const MachineFunction &MF) const {
|
||||
print(MF, std::cerr);
|
||||
}
|
||||
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
Loading…
x
Reference in New Issue
Block a user