Generate code for loops
This commit is contained in:
@ -146,8 +146,8 @@ namespace elna::riscv
|
||||
return -1;
|
||||
}
|
||||
|
||||
void riscv32_elf(source::program *ast, std::shared_ptr<source::symbol_table> table,
|
||||
const std::filesystem::path& out_file)
|
||||
void riscv32_elf(source::program *ast, source::intermediate_code_generator intermediate_code_generator,
|
||||
std::shared_ptr<source::symbol_table> table, const std::filesystem::path& out_file)
|
||||
{
|
||||
ELFIO::elfio writer;
|
||||
|
||||
@ -198,12 +198,14 @@ namespace elna::riscv
|
||||
ELFIO::relocation_section_accessor rela(writer, rel_sec);
|
||||
auto _writer = std::make_shared<elfio_writer>(text_sec, ro_sec, syma, stra);
|
||||
|
||||
visitor _visitor{ _writer, table };
|
||||
_visitor.visit(ast);
|
||||
// visitor _visitor{ _writer, table };
|
||||
// _visitor.visit(ast);
|
||||
auto references = generate(intermediate_code_generator, table, _writer);
|
||||
|
||||
syma.arrange_local_symbols();
|
||||
|
||||
for (auto& reference : _visitor.references)
|
||||
for (auto& reference : references)
|
||||
// for (auto& reference : _visitor.references)
|
||||
{
|
||||
ELFIO::Elf_Word relocated_symbol = lookup(syma, reference.name);
|
||||
|
||||
|
Reference in New Issue
Block a user