aboutsummaryrefslogtreecommitdiff
path: root/boot/symbol.cc
diff options
context:
space:
mode:
Diffstat (limited to 'boot/symbol.cc')
-rw-r--r--boot/symbol.cc18
1 files changed, 18 insertions, 0 deletions
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<std::string>{ "condition" });
result->enter("assert", assert_info);
+ const type load_parameter = type(std::make_shared<parameter_type>("T"));
+ procedure_type volatile_load_symbol{ procedure_type::return_t(load_parameter) };
+ volatile_load_symbol.parameters.emplace_back(std::make_shared<pointer_type>(load_parameter));
+ std::shared_ptr<procedure_info> const volatile_load_info =
+ std::make_shared<procedure_info>(volatile_load_symbol, std::vector<std::string>{ "source" });
+ volatile_load_info->parameters.push_back(load_parameter);
+ result->enter("volatile_load", volatile_load_info);
+
+ const type store_parameter = type(std::make_shared<parameter_type>("T"));
+ procedure_type volatile_store_symbol{ procedure_type::return_t() };
+ volatile_store_symbol.parameters.emplace_back(std::make_shared<pointer_type>(store_parameter));
+ volatile_store_symbol.parameters.push_back(store_parameter);
+ std::shared_ptr<procedure_info> const volatile_store_info =
+ std::make_shared<procedure_info>(volatile_store_symbol,
+ std::vector<std::string>{ "target", "value" });
+ volatile_store_info->parameters.push_back(store_parameter);
+ result->enter("volatile_store", volatile_store_info);
+
return result;
}