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 TargetData;
|
||||||
class TargetRegisterClass;
|
class TargetRegisterClass;
|
||||||
|
class MachineFunction;
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
class MachineFrameInfo {
|
class MachineFrameInfo {
|
||||||
@ -205,10 +206,10 @@ public:
|
|||||||
/// print - Used by the MachineFunction printer to print information about
|
/// print - Used by the MachineFunction printer to print information about
|
||||||
/// stack objects. Implemented in MachineFunction.cpp
|
/// 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.
|
/// dump - Call print(MF, std::cerr) to be called from the debugger.
|
||||||
void dump() const;
|
void dump(const MachineFunction &MF) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -120,7 +120,7 @@ void MachineFunction::print(std::ostream &OS) const {
|
|||||||
<< "\"\n";
|
<< "\"\n";
|
||||||
|
|
||||||
// Print Frame Information
|
// Print Frame Information
|
||||||
getFrameInfo()->print(OS);
|
getFrameInfo()->print(*this, OS);
|
||||||
|
|
||||||
// Print Constant Pool
|
// Print Constant Pool
|
||||||
getConstantPool()->print(OS);
|
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) {
|
for (unsigned i = 0, e = Objects.size(); i != e; ++i) {
|
||||||
const StackObject &SO = Objects[i];
|
const StackObject &SO = Objects[i];
|
||||||
OS << " <fi #" << (int)(i-NumFixedObjects) << "> is ";
|
OS << " <fi #" << (int)(i-NumFixedObjects) << "> is ";
|
||||||
@ -200,11 +202,12 @@ void MachineFrameInfo::print(std::ostream &OS) const {
|
|||||||
if (i < NumFixedObjects)
|
if (i < NumFixedObjects)
|
||||||
OS << " fixed";
|
OS << " fixed";
|
||||||
if (i < NumFixedObjects || SO.SPOffset != -1) {
|
if (i < NumFixedObjects || SO.SPOffset != -1) {
|
||||||
|
int Off = SO.SPOffset + ValOffset;
|
||||||
OS << " at location [SP";
|
OS << " at location [SP";
|
||||||
if (SO.SPOffset > 0)
|
if (Off > 0)
|
||||||
OS << "+" << SO.SPOffset;
|
OS << "+" << Off;
|
||||||
else if (SO.SPOffset < 0)
|
else if (Off < 0)
|
||||||
OS << SO.SPOffset;
|
OS << Off;
|
||||||
OS << "]";
|
OS << "]";
|
||||||
}
|
}
|
||||||
OS << "\n";
|
OS << "\n";
|
||||||
@ -214,7 +217,9 @@ void MachineFrameInfo::print(std::ostream &OS) const {
|
|||||||
OS << " Stack frame contains variable sized objects\n";
|
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