From 060496fc6ee331e2710ff8ade23317a0a79cbd6c Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Wed, 6 Nov 2024 22:23:49 +0100 Subject: Parse local variables --- TODO | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'TODO') diff --git a/TODO b/TODO index ec3d028..5da4303 100644 --- a/TODO +++ b/TODO @@ -1,9 +1,12 @@ # Intermediate code generation -- To access named parameters and local variables inside a procedure, IR should - be able to reference them. During the generation the needed information (e.g. - offsets or registers) can be extracted from the symbol table and saved in the - operands. +- To access named parameters inside a procedure, IR should be able to reference + them. During the generation the needed information (e.g. offsets or registers) + can be extracted from the symbol table and saved in the operands. +- Glue always generates the same intermediate variable (LocalVariable 0) for + local variables. (LocalVariable 0) is handled the same as temporary variables + that are currently saved only in registers. There space on the stack allocated + for local variables. # ELF generation @@ -15,3 +18,9 @@ - Each temporary variable gets a tn register where n is the variable index. If there more variables the allocation will fail with out of bounds runtime error. Implement spill over. +- The allocator puts temporary and local variables into the same registers, + causing conflicts. + +# Language + +- Array support. -- cgit v1.2.3