more fixes

This commit is contained in:
water111
2026-04-13 19:47:54 -04:00
parent 5670fce5bd
commit 0da265f87b
12 changed files with 319 additions and 176 deletions
+10 -3
View File
@@ -2776,8 +2776,13 @@ void VectorFloatLoadStoreElement::collect_vf_regs(RegSet& regs) const {
StackSpillStoreElement::StackSpillStoreElement(SimpleAtom value,
int size,
int stack_offset,
RegisterAccess access,
const std::optional<TypeSpec>& cast_type)
: m_value(value), m_size(size), m_stack_offset(stack_offset), m_cast_type(cast_type) {}
: m_value(value),
m_size(size),
m_stack_offset(stack_offset),
m_access(access),
m_cast_type(cast_type) {}
goos::Object StackSpillStoreElement::to_form_internal(const Env& env) const {
return pretty_print::build_list(
@@ -2804,15 +2809,17 @@ void StackSpillStoreElement::get_modified_regs(RegSet&) const {}
StackSpillValueElement::StackSpillValueElement(int size,
int stack_offset,
RegisterAccess access,
bool is_signed,
std::optional<TypeSpec> read_type)
: m_size(size),
m_stack_offset(stack_offset),
m_access(access),
m_is_signed(is_signed),
m_read_type(std::move(read_type)) {}
goos::Object StackSpillValueElement::to_form_internal(const Env& env) const {
auto var = make_stack_slot_access(m_stack_offset);
auto var = m_access;
auto base = pretty_print::to_symbol(env.get_spill_slot_var_name(m_stack_offset));
if (m_read_type && env.get_variable_type(var, true) != *m_read_type) {
return pretty_print::build_list("the-as", m_read_type->print(), base);
@@ -2826,7 +2833,7 @@ void StackSpillValueElement::apply(const std::function<void(FormElement*)>& f) {
void StackSpillValueElement::apply_form(const std::function<void(Form*)>&) {}
void StackSpillValueElement::collect_vars(RegAccessSet& vars, bool) const {
vars.insert(make_stack_slot_access(m_stack_offset));
vars.insert(m_access);
}
void StackSpillValueElement::get_modified_regs(RegSet&) const {}