libmicroemu 0.2.0
ARM Microcontroller Emulator Library
Loading...
Searching...
No Matches
intstr_to_mnemonic.h
1#pragma once
2#include "libmicroemu/internal/trace/mnemonic_builder.h"
4#include "libmicroemu/types.h"
5#include <cstddef>
6
7namespace libmicroemu::internal {
8
9template <typename TCpuAccessor, typename TItOps> class InstrToMnemonic : public IInstrToMnemonic {
10public:
11 using RegOps = typename TCpuAccessor::Reg;
12 using SRegOps = typename TCpuAccessor::SReg;
13 InstrToMnemonic(const TCpuAccessor &cpua, const Instr &instr) : cpua_(cpua), instr_(instr) {}
14 ~InstrToMnemonic() = default;
15 InstrToMnemonic(const InstrToMnemonic &r_src) = delete;
16 InstrToMnemonic &operator=(const InstrToMnemonic &r_src) = delete;
17 InstrToMnemonic(InstrToMnemonic &&r_src) = delete;
18 InstrToMnemonic &operator=(InstrToMnemonic &&r_src) = delete;
19
20 void Build(char *buf, std::size_t buf_len) const override {
21 MnemonicBuilder::Build<TCpuAccessor, TItOps, RegOps, SRegOps>(cpua_, instr_, buf, buf_len);
22 }
23
24private:
25 const TCpuAccessor &cpua_;
26 const Instr &instr_;
27};
28
29} // namespace libmicroemu::internal
Definition emu_context.h:17
Contains the Machine class which is the main emulation machine for handling microcontroller emulation...
The libmicroemu::internal namespace contains all classes and functions of libmicroemu which are priva...
Definition bkpt_flags.h:6
Definition instr.h:734