mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-18 12:29:21 +00:00
Moved FInfo.cpp to lib/Target/Sparc as it is Sparc-specific.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6554 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
78ddcd7b03
commit
0ee48d24fe
@ -1,73 +0,0 @@
|
||||
#include "llvm/Reoptimizer/Mapping/FInfo.h"
|
||||
#include "llvm/Pass.h"
|
||||
#include "llvm/Module.h"
|
||||
|
||||
namespace {
|
||||
class FunctionInfo : public Pass {
|
||||
std::ostream &Out;
|
||||
public:
|
||||
FunctionInfo(std::ostream &out) : Out(out){}
|
||||
const char* getPassName() const{ return "Sparc FunctionInfo"; }
|
||||
bool run(Module &M);
|
||||
private:
|
||||
void writePrologue(const char *area, const char *label);
|
||||
void writeEpilogue(const char *area, const char *label);
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
Pass *getFunctionInfo(std::ostream &out){
|
||||
return new FunctionInfo(out);
|
||||
}
|
||||
|
||||
bool FunctionInfo::run(Module &M){
|
||||
unsigned f;
|
||||
|
||||
writePrologue("FUNCTION MAP", "FunctionBB");
|
||||
f=0;
|
||||
for(Module::iterator FI=M.begin(), FE=M.end(); FE!=FI; ++FI){
|
||||
if(FI->isExternal()) continue;
|
||||
Out << "\t.xword BBMIMap"<<f<<"\n";
|
||||
++f;
|
||||
}
|
||||
writeEpilogue("FUNCTION MAP", "FunctionBB");
|
||||
|
||||
writePrologue("FUNCTION MAP", "FunctionLI");
|
||||
f=0;
|
||||
for(Module::iterator FI=M.begin(), FE=M.end(); FE!=FI; ++FI){
|
||||
if(FI->isExternal()) continue;
|
||||
Out << "\t.xword LMIMap"<<f<<"\n";
|
||||
++f;
|
||||
}
|
||||
writeEpilogue("FUNCTION MAP", "FunctionLI");
|
||||
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
void FunctionInfo::writePrologue(const char *area,
|
||||
const char *label){
|
||||
Out << "\n\n\n!"<<area<<"\n";
|
||||
Out << "\t.section \".rodata\"\n\t.align 8\n";
|
||||
Out << "\t.global "<<label<<"\n";
|
||||
Out << "\t.type "<<label<<",#object\n";
|
||||
Out << label<<":\n";
|
||||
//Out << "\t.word .end_"<<label<<"-"<<label<<"\n";
|
||||
}
|
||||
|
||||
void FunctionInfo::writeEpilogue(const char *area,
|
||||
const char *label){
|
||||
Out << ".end_" << label << ":\n";
|
||||
Out << "\t.size " << label << ", .end_"
|
||||
<< label << "-" << label << "\n\n\n\n";
|
||||
|
||||
//Out << "\n\n!" << area << " Length\n";
|
||||
//Out << "\t.section \".bbdata\",#alloc,#write\n";
|
||||
//Out << "\t.global " << label << "_length\n";
|
||||
//Out << "\t.align 4\n";
|
||||
//Out << "\t.type " << label << "_length,#object\n";
|
||||
//Out << "\t.size "<< label <<"_length,4\n";
|
||||
//Out << label <<" _length:\n";
|
||||
//Out << "\t.word\t.end_"<<label<<"-"<<label<<"\n\n\n\n";
|
||||
}
|
Loading…
Reference in New Issue
Block a user