- std::string Triple = sys::getDefaultTargetTriple();
-
- std::string Error;
- const Target *T = TargetRegistry::lookupTarget(Triple, Error);
-
-#if HAVE_LLVM >= 0x0304
- OwningPtr<const MCAsmInfo> AsmInfo(T->createMCAsmInfo(*T->createMCRegInfo(Triple), Triple));
-#else
- OwningPtr<const MCAsmInfo> AsmInfo(T->createMCAsmInfo(Triple));
-#endif
-
- if (!AsmInfo) {
- Out << "error: no assembly info for target " << Triple << "\n";
- Out.flush();
- return 0;
- }
-
- unsigned int AsmPrinterVariant = AsmInfo->getAssemblerDialect();
-
- OwningPtr<const MCRegisterInfo> MRI(T->createMCRegInfo(Triple));
- if (!MRI) {
- Out << "error: no register info for target " << Triple.c_str() << "\n";
- Out.flush();
- return 0;
- }
-
- OwningPtr<const MCInstrInfo> MII(T->createMCInstrInfo());
- if (!MII) {
- Out << "error: no instruction info for target " << Triple.c_str() << "\n";
- Out.flush();
- return 0;
- }
-
-#if HAVE_LLVM >= 0x0305
- OwningPtr<const MCSubtargetInfo> STI(T->createMCSubtargetInfo(Triple, sys::getHostCPUName(), ""));
- OwningPtr<MCContext> MCCtx(new MCContext(AsmInfo.get(), MRI.get(), 0));
- OwningPtr<const MCDisassembler> DisAsm(T->createMCDisassembler(*STI, *MCCtx));
-#else
- OwningPtr<const MCSubtargetInfo> STI(T->createMCSubtargetInfo(Triple, sys::getHostCPUName(), ""));
- OwningPtr<const MCDisassembler> DisAsm(T->createMCDisassembler(*STI));
-#endif
- if (!DisAsm) {
- Out << "error: no disassembler for target " << Triple << "\n";
- Out.flush();
- return 0;
- }
-
+ std::string Triple = llvm::sys::getProcessTriple();
+ LLVMDisasmContextRef D = LLVMCreateDisasm(Triple.c_str(), NULL, 0, NULL, NULL);
+ char outline[1024];