This was never a real problem, but keeps us on the safe side. Found by Coverity Scan, CID 25731/25808/25817. Change-Id: Ie4bd9fb52ff6140ce7ae024738b43c82f6f5045c
56 lines
1.5 KiB
C++
56 lines
1.5 KiB
C++
#ifndef __REGISTER_IMPORTER_H__
|
|
#define __REGISTER_IMPORTER_H__
|
|
|
|
#include <set>
|
|
#include "util/CommandLine.hpp"
|
|
#include "Importer.hpp"
|
|
|
|
#include "util/llvmdisassembler/LLVMDisassembler.hpp"
|
|
|
|
|
|
class RegisterImporter : public Importer {
|
|
llvm::OwningPtr<llvm::object::Binary> binary;
|
|
llvm::OwningPtr<fail::LLVMDisassembler> disas;
|
|
|
|
bool addRegisterTrace(fail::simtime_t curtime, instruction_count_t instr,
|
|
Trace_Event &ev,
|
|
const fail::LLVMtoFailTranslator::reginfo_t &info,
|
|
char access_type);
|
|
|
|
fail::CommandLine::option_handle NO_GP, FLAGS, IP, NO_SPLIT;
|
|
bool do_gp, do_flags, do_ip, do_split_registers;
|
|
|
|
std::set<unsigned> m_register_ids;
|
|
unsigned m_ip_register_id;
|
|
|
|
public:
|
|
RegisterImporter() : Importer(), do_gp(true), do_flags(false), do_ip(false),
|
|
do_split_registers(true), m_ip_register_id(0) {}
|
|
/**
|
|
* Callback function that can be used to add command line options
|
|
* to the cmd interface
|
|
*/
|
|
virtual bool cb_commandline_init();
|
|
|
|
protected:
|
|
virtual bool handle_ip_event(fail::simtime_t curtime, instruction_count_t instr,
|
|
Trace_Event &ev);
|
|
virtual bool handle_mem_event(fail::simtime_t curtime, instruction_count_t instr,
|
|
Trace_Event &ev) {
|
|
/* ignore on purpose */
|
|
return true;
|
|
}
|
|
|
|
virtual void open_unused_ec_intervals() {
|
|
/* empty, Memory Map has a different meaning in this importer */
|
|
}
|
|
|
|
void getAliases(std::deque<std::string> *aliases) {
|
|
aliases->push_back("RegisterImporter");
|
|
aliases->push_back("regs");
|
|
}
|
|
|
|
};
|
|
|
|
#endif
|