- renamed assembler_runner to just assembler
- implemented type parsing including custom types and generics (useless for now as we do no semantic analysis) - implemented struct literal parsing - implemented struct definition parsing (no generics yet) - implemented tuple parsing - registers are now allocated starting from zero - updated to-dos
This commit is contained in:
+21
-5
@@ -1,10 +1,26 @@
|
||||
# General TODO's
|
||||
|
||||
# Compiler optimisations!
|
||||
# Bugfixes
|
||||
- [x] [EASY] Investigate logical and operator not compiling - either a lexer or parser issue.
|
||||
- **note**: this was a parser issue.
|
||||
|
||||
# Missing features
|
||||
- [x] [MEDIUM] Get shift operations working correctly.
|
||||
- [ ] [MEDIUM] proper prefix/postfix inc/dec implementation. slightly more complex as we need to check for a variable and modify it in place
|
||||
- [ ] [EASY] Add multiply and divide operations to code generation
|
||||
- **note**: very easy to do but our division algorithm is hopelessly slow so not worth doing for now.
|
||||
|
||||
# Performance Improvements
|
||||
- [ ] [MEDIUM] implement a proper div/mod library that's not slow af.
|
||||
- [ ] [HARD] Immediate operations for values that support it (up to +/- u16::max for addi and subi respectively)
|
||||
- this requires significant complexity in code generation as we need to traverse down the tree when we come across these operations to prevent additional register allocations.
|
||||
|
||||
- [ ] [EASY] Add multiply and divide operations to code generation
|
||||
- [ ] [MEDIUM] proper prefix/postfix inc/dec implementation. slightly more complex as we need to check for a variable and modify it in place
|
||||
- [ ] [EASY] Investigate logical and operator not compiling - either a lexer or parser issue.
|
||||
- [x] [MEDIUM] Get shift operations working correctly.
|
||||
# Compiler optimisations
|
||||
|
||||
# Codegen improvements
|
||||
- [ ] [MEDIUM / time consuming] Add scoping to code generation
|
||||
- [ ] [MEDIUM / time consuming] Rewrite entire codegen to imrpove code quality and make the code more readable.
|
||||
- [ ] type-safe instruction builder
|
||||
- [ ] Instruction & Register enums
|
||||
- [ ] Instruction builder helper fns eg `fn add(left: &Register, right: &Register, dest: &Register) -> Instruction`
|
||||
- [ ] Instruction Block types.
|
||||
|
||||
Reference in New Issue
Block a user