2024-08-17 14:16:16 +02:00
|
|
|
# Intermediate code generation
|
|
|
|
|
2024-09-27 00:22:44 +02:00
|
|
|
- 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.
|
2024-09-08 22:53:07 +02:00
|
|
|
|
|
|
|
# ELF generation
|
|
|
|
|
|
|
|
- Don't ignore relocations where the symbol is not defined in the symbol table.
|
|
|
|
Report an error about an undefined symbol.
|
2024-09-20 13:32:24 +02:00
|
|
|
|
|
|
|
# Name analysis
|
|
|
|
|
|
|
|
- Format error messages.
|
2024-09-24 22:20:57 +02:00
|
|
|
- Return non-zero error code on errors.
|
|
|
|
|
|
|
|
# Built-in
|
|
|
|
|
2024-09-29 19:50:55 +02:00
|
|
|
- Implement printc (with int argument).
|
|
|
|
- Implement exit() as standalone function.
|
|
|
|
|
|
|
|
# Register allocation
|
|
|
|
|
|
|
|
- Temporary variables always use the same register, t0. Allocate registers for
|
|
|
|
temporaries.
|
2024-09-27 00:22:44 +02:00
|
|
|
|
2024-10-01 00:02:19 +02:00
|
|
|
# Other
|
|
|
|
|
|
|
|
- Type analysis.
|
|
|
|
- Move platform dependent code generation into a submodule.
|