summaryrefslogtreecommitdiff
path: root/tools/llvm-mc
diff options
context:
space:
mode:
authorRoman Divacky <rdivacky@FreeBSD.org>2010-03-21 10:49:05 +0000
committerRoman Divacky <rdivacky@FreeBSD.org>2010-03-21 10:49:05 +0000
commit2f12f10af369d468b14617276446166383d692ed (patch)
tree2caca31db4facdc95c23930c0c745c8ef0dee97d /tools/llvm-mc
parentc69102774f9739c81ae1285ed9ae62405071c63c (diff)
Notes
Diffstat (limited to 'tools/llvm-mc')
-rw-r--r--tools/llvm-mc/Disassembler.cpp17
-rw-r--r--tools/llvm-mc/llvm-mc.cpp19
2 files changed, 15 insertions, 21 deletions
diff --git a/tools/llvm-mc/Disassembler.cpp b/tools/llvm-mc/Disassembler.cpp
index dbfe7a5d06f0..0caf539ac959 100644
--- a/tools/llvm-mc/Disassembler.cpp
+++ b/tools/llvm-mc/Disassembler.cpp
@@ -47,8 +47,8 @@ public:
};
}
-static bool PrintInsts(const llvm::MCDisassembler &DisAsm,
- llvm::MCInstPrinter &Printer, const ByteArrayTy &Bytes,
+static bool PrintInsts(const MCDisassembler &DisAsm,
+ MCInstPrinter &Printer, const ByteArrayTy &Bytes,
SourceMgr &SM) {
// Wrap the vector in a MemoryObject.
VectorMemoryObject memoryObject(Bytes);
@@ -77,24 +77,23 @@ static bool PrintInsts(const llvm::MCDisassembler &DisAsm,
}
int Disassembler::disassemble(const Target &T, const std::string &Triple,
- MemoryBuffer &Buffer) {
+ MemoryBuffer &Buffer) {
// Set up disassembler.
- llvm::OwningPtr<const llvm::MCAsmInfo> AsmInfo(T.createAsmInfo(Triple));
+ OwningPtr<const MCAsmInfo> AsmInfo(T.createAsmInfo(Triple));
if (!AsmInfo) {
errs() << "error: no assembly info for target " << Triple << "\n";
return -1;
}
- llvm::OwningPtr<const llvm::MCDisassembler> DisAsm(T.createMCDisassembler());
+ OwningPtr<const MCDisassembler> DisAsm(T.createMCDisassembler());
if (!DisAsm) {
errs() << "error: no disassembler for target " << Triple << "\n";
return -1;
}
- llvm::MCInstPrinter *InstPrinter = T.createMCInstPrinter(0, *AsmInfo, outs());
-
- if (!InstPrinter) {
+ OwningPtr<MCInstPrinter> IP(T.createMCInstPrinter(0, *AsmInfo, outs()));
+ if (!IP) {
errs() << "error: no instruction printer for target " << Triple << '\n';
return -1;
}
@@ -151,7 +150,7 @@ int Disassembler::disassemble(const Target &T, const std::string &Triple,
}
if (!ByteArray.empty())
- ErrorOccurred |= PrintInsts(*DisAsm, *InstPrinter, ByteArray, SM);
+ ErrorOccurred |= PrintInsts(*DisAsm, *IP, ByteArray, SM);
return ErrorOccurred;
}
diff --git a/tools/llvm-mc/llvm-mc.cpp b/tools/llvm-mc/llvm-mc.cpp
index 66e126092db2..3c23990af6bf 100644
--- a/tools/llvm-mc/llvm-mc.cpp
+++ b/tools/llvm-mc/llvm-mc.cpp
@@ -152,7 +152,7 @@ static int AsLexInput(const char *ProgName) {
if (!TheTarget)
return 1;
- const MCAsmInfo *MAI = TheTarget->createAsmInfo(TripleName);
+ llvm::OwningPtr<MCAsmInfo> MAI((MCAsmInfo*) TheTarget->createAsmInfo(TripleName));
assert(MAI && "Unable to create target asm info!");
AsmLexer Lexer(*MAI);
@@ -260,7 +260,7 @@ static int AssembleInput(const char *ProgName) {
SrcMgr.setIncludeDirs(IncludeDirs);
- const MCAsmInfo *MAI = TheTarget->createAsmInfo(TripleName);
+ llvm::OwningPtr<MCAsmInfo> MAI((MCAsmInfo*) TheTarget->createAsmInfo(TripleName));
assert(MAI && "Unable to create target asm info!");
MCContext Ctx(*MAI);
@@ -278,18 +278,17 @@ static int AssembleInput(const char *ProgName) {
return 1;
}
- OwningPtr<MCInstPrinter> IP;
OwningPtr<MCCodeEmitter> CE;
OwningPtr<MCStreamer> Str;
OwningPtr<TargetAsmBackend> TAB;
if (FileType == OFT_AssemblyFile) {
- IP.reset(TheTarget->createMCInstPrinter(OutputAsmVariant, *MAI, *Out));
+ MCInstPrinter *IP =
+ TheTarget->createMCInstPrinter(OutputAsmVariant, *MAI, *Out);
if (ShowEncoding)
CE.reset(TheTarget->createCodeEmitter(*TM, Ctx));
Str.reset(createAsmStreamer(Ctx, *Out,TM->getTargetData()->isLittleEndian(),
- /*asmverbose*/true, IP.get(), CE.get(),
- ShowInst));
+ /*asmverbose*/true, IP, CE.get(), ShowInst));
} else {
assert(FileType == OFT_ObjectFile && "Invalid file type!");
CE.reset(TheTarget->createCodeEmitter(*TM, Ctx));
@@ -319,13 +318,9 @@ static int AssembleInput(const char *ProgName) {
}
static int DisassembleInput(const char *ProgName) {
- std::string Error;
- const Target *TheTarget = TargetRegistry::lookupTarget(TripleName, Error);
- if (TheTarget == 0) {
- errs() << ProgName << ": error: unable to get target for '" << TripleName
- << "', see --version and --triple.\n";
+ const Target *TheTarget = GetTarget(ProgName);
+ if (!TheTarget)
return 0;
- }
std::string ErrorMessage;