diff --git a/docs/ISA REVISION notes.md b/docs/ISA REVISION notes.md new file mode 100644 index 0000000..94bae35 --- /dev/null +++ b/docs/ISA REVISION notes.md @@ -0,0 +1,4 @@ + +- we definitely need to be able to use registers for shift operations. +- we need logical boolean operations in addition to the bitwise ones. +- better conditionals. diff --git a/docs/todo.md b/docs/todo.md new file mode 100644 index 0000000..4ecd16e --- /dev/null +++ b/docs/todo.md @@ -0,0 +1,10 @@ + +# Compiler optimisations! + +- [ ] [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.