diff --git a/include/oaknut/oaknut.hpp b/include/oaknut/oaknut.hpp index b67f7fd..29bd15f 100644 --- a/include/oaknut/oaknut.hpp +++ b/include/oaknut/oaknut.hpp @@ -80,12 +80,12 @@ public: : Policy(arg) {} - Label l() + Label l() const { return Label{Policy::current_address()}; } - void l(Label& label) + void l(Label& label) const { if (label.m_addr) throw OaknutException{ExceptionType::LabelRedefinition}; @@ -273,7 +273,7 @@ private: struct PointerCodeGeneratorPolicy { public: template - T ptr() + T ptr() const { static_assert(std::is_pointer_v || std::is_same_v || std::is_same_v); return reinterpret_cast(m_ptr); @@ -296,12 +296,12 @@ protected: *m_ptr++ = instruction; } - std::uintptr_t current_address() + std::uintptr_t current_address() const { return reinterpret_cast(m_ptr); } - void set_at_address(std::uintptr_t addr, std::uint32_t value, std::uint32_t mask) + void set_at_address(std::uintptr_t addr, std::uint32_t value, std::uint32_t mask) const { std::uint32_t* p = reinterpret_cast(addr); *p = (*p & mask) | value;