Aarch64 compiler wip: properly handle scopes

This commit is contained in:
Nikita Lisitsa 2026-01-04 12:17:12 +03:00
parent 716d51221f
commit 43f2d4531a

View file

@ -1,3 +1,4 @@
#include "pslang/ast/statement_fwd.hpp"
#include <pslang/jit/arch/aarch64/compiler.hpp>
#include <pslang/jit/arch/aarch64/instruction_builder.hpp>
#include <pslang/jit/executable.hpp>
@ -342,9 +343,17 @@ namespace pslang::jit::aarch64
// Don't handle internal functions
}
void do_apply(ast::function_definition const & node)
void apply(ast::statement_list const & node)
{
scopes.emplace_back();
for (auto const & statement : node.statements)
apply(*statement);
builder.add_imm(31, 31, scopes.back().stack_offset);
scopes.pop_back();
}
void do_apply(ast::function_definition const & node)
{
// TODO: arguments
apply(*node.statements);
}