mirror of
https://github.com/revng/revng
synced 2026-06-21 14:07:57 +00:00
ee0b8f44c1
This is a big step to split revng-lift in two parts: one that only writes the model and one that actually lifts to LLVM IR. * Introduce `revng import binary` * Split off `BinaryFile.h` * Drop `revng.h` * `GeneratedCodeBasicInfo`: use model * Reduce role of `GeneratedCodeBasicInfo` in favor of `model::Architecture` and `model::Register` methods * `CodeGenerator`: adopt `RawBinaryView` and model * `JumpTargetManager`: adopt `RawBinaryView` and model * `ExternalJumpsHandler`: adopt model * `InstructionTranslator`: discard `Architecture` in favor of `EndianessMismatch` * Many other changes
24 lines
617 B
C++
24 lines
617 B
C++
#pragma once
|
|
|
|
//
|
|
// This file is distributed under the MIT License. See LICENSE.md for details.
|
|
//
|
|
|
|
#include "llvm/ADT/StringRef.h"
|
|
#include "llvm/Object/Binary.h"
|
|
|
|
#include "revng/Model/Binary.h"
|
|
|
|
namespace llvm {
|
|
namespace object {
|
|
class ObjectFile;
|
|
}
|
|
} // namespace llvm
|
|
|
|
llvm::Error importBinary(TupleTree<model::Binary> &Model,
|
|
llvm::object::ObjectFile &BinaryHandle,
|
|
uint64_t PreferredBaseAddress);
|
|
llvm::Error importBinary(TupleTree<model::Binary> &Model,
|
|
llvm::StringRef Path,
|
|
uint64_t PreferredBaseAddress);
|