From 52c8ca2c06da93c8d14e80a256e8996c1fa1e885 Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Mon, 14 Sep 2026 21:11:03 +0200 Subject: Implement volatile operations --- boot/symbol.cc | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'boot/symbol.cc') diff --git a/boot/symbol.cc b/boot/symbol.cc index 466715b..55f91ea 100644 --- a/boot/symbol.cc +++ b/boot/symbol.cc @@ -401,6 +401,24 @@ namespace elna::boot std::vector{ "condition" }); result->enter("assert", assert_info); + const type load_parameter = type(std::make_shared("T")); + procedure_type volatile_load_symbol{ procedure_type::return_t(load_parameter) }; + volatile_load_symbol.parameters.emplace_back(std::make_shared(load_parameter)); + std::shared_ptr const volatile_load_info = + std::make_shared(volatile_load_symbol, std::vector{ "source" }); + volatile_load_info->parameters.push_back(load_parameter); + result->enter("volatile_load", volatile_load_info); + + const type store_parameter = type(std::make_shared("T")); + procedure_type volatile_store_symbol{ procedure_type::return_t() }; + volatile_store_symbol.parameters.emplace_back(std::make_shared(store_parameter)); + volatile_store_symbol.parameters.push_back(store_parameter); + std::shared_ptr const volatile_store_info = + std::make_shared(volatile_store_symbol, + std::vector{ "target", "value" }); + volatile_store_info->parameters.push_back(store_parameter); + result->enter("volatile_store", volatile_store_info); + return result; } -- cgit v1.2.3