Commit message (Collapse) | Author | Age | |
---|---|---|---|
* | remove the need for explicit discard instructions | Mathias Magnusson | 2025-06-02 |
| | | | | | | | by also considering an instruction's destination register(s) to be uses and when cleaning up registers, also cleaning up those from previous instructions (specifically this is the output of the last instruction if it is not used anywhere) | ||
* | add read_int built in procedure | Mathias Magnusson | 2025-06-02 |
| | |||
* | stop printing non-existant errors | Mathias Magnusson | 2025-06-02 |
| | |||
* | stop freeing vregs twice when they are used twice in an instr | Mathias Magnusson | 2025-06-02 |
| | |||
* | codegen: use s registers instead of t | Mathias Magnusson | 2025-06-02 |
| | | | | | | | doesn't make any difference yet and I don't know exactly when to use what when it starts to matter. but binary ninja thought that syscalls could override t registers (which is not the case) so this makes decompilations slightly nicer | ||
* | force parenthesis around arguments | Mathias Magnusson | 2025-06-02 |
| | | | | | | would've been cool to not force that imo, but otherwise it seems like there can be absolutely no places where two expression-like things could be next to each other, which is a kinda meh | ||
* | add variable declarations | Mathias Magnusson | 2025-06-02 |
| | |||
* | make print return integer length | Mathias Magnusson | 2025-06-02 |
| | |||
* | run program output automatically & print parse tree better | Mathias Magnusson | 2025-06-02 |
| | |||
* | add statements ending in ; and allow parsing multiple of them | Mathias Magnusson | 2025-06-02 |
| | |||
* | make Lexer peekable without a wrapper | Mathias Magnusson | 2025-06-02 |
| | |||
* | dont set quotient in every loop iteration in integer print procedure | Mathias Magnusson | 2025-06-02 |
| | |||
* | add identifiers, procedure calls and a built in print procedure | Mathias Magnusson | 2025-06-01 |
| | |||
* | codegen: fix some small bugs | Mathias Magnusson | 2025-06-01 |
| | |||
* | codegen: add RV64M extension | Mathias Magnusson | 2025-06-01 |
| | |||
* | capitalize Lexer.zig correctly | Mathias Magnusson | 2025-06-01 |
| | |||
* | add (slightly) prett(ier) printing for exprs | Mathias Magnusson | 2025-06-01 |
| | |||
* | refactor slightly and fix bug in lexer | Mathias Magnusson | 2025-06-01 |
| | |||
* | add subtraction | Mathias Magnusson | 2025-06-01 |
| | |||
* | codegen: make register allocation fail with error rather than returning null | Mathias Magnusson | 2025-06-01 |
| | |||
* | codegen integer literals correctly | Mathias Magnusson | 2025-05-31 |
| | | | | This was not as easy as one would expect ☠️ | ||
* | Refactor codegen a bit | Mathias Magnusson | 2025-05-31 |
| | |||
* | actually codegen the provided code | Mathias Magnusson | 2025-05-31 |
| | | | | | | ... well, since all we can do is to add integer literals, we produce code for the calculations and then perform the exit syscall with the result | ||
* | write a riscy little elf | Mathias Magnusson | 2025-05-30 |
| | |||
* | create initial simple elf file | Mathias Magnusson | 2025-05-29 |
| | |||
* | compile some god damn additions | Mathias Magnusson | 2025-05-29 |
| | |||
* | initial commit | Mathias Magnusson | 2025-05-28 |