Commit graph

14 commits

Author SHA1 Message Date
ReinUsesLisp 75fd0079db glasm: Remove unnecessary value types 2021-07-22 21:51:33 -04:00
ReinUsesLisp 379b305b4b glasm: Throw when there are register leaks 2021-07-22 21:51:33 -04:00
ReinUsesLisp ca05a13c62 glasm: Catch more register leaks
Add support for null registers. These are used when an instruction has
no usages.

This comes handy when an instruction is only used for its CC value, with
the caveat of having to invalidate all pseudo-instructions before
defining the instruction itself in the register allocator. This commits
changes this.

Workaround a bug on Nvidia's condition codes conditional execution using
branches.
2021-07-22 21:51:33 -04:00
ReinUsesLisp fb3ba62b3a glasm: Fix aliased bitcasts ref counting 2021-07-22 21:51:31 -04:00
ReinUsesLisp 31d402ee74 glasm: Add Void type to GLASM values 2021-07-22 21:51:31 -04:00
ReinUsesLisp deda89372f glasm: Fix register allocation when moving immediate on GLASM 2021-07-22 21:51:31 -04:00
ReinUsesLisp 8eb72ff0dc glasm: Fix moving U64 immediates to registers in GLASM 2021-07-22 21:51:31 -04:00
ReinUsesLisp ad61b47f80 glasm: Add conversion instructions to GLASM 2021-07-22 21:51:31 -04:00
ReinUsesLisp 4502595bc2 glasm: Initial GLASM fp64 support 2021-07-22 21:51:30 -04:00
ReinUsesLisp 6358b0d0c1 glasm: Specify namespace when using FormatTo 2021-07-22 21:51:30 -04:00
ReinUsesLisp 1c9307969c glasm: Make GLASM aware of types 2021-07-22 21:51:30 -04:00
ReinUsesLisp 3e841f6441 glasm: Use BitField instead of C bitfields 2021-07-22 21:51:30 -04:00
ReinUsesLisp c1ba685d9c glasm: Changes to GLASM register allocator and emit context 2021-07-22 21:51:30 -04:00
ReinUsesLisp b10cf64c48 glasm: Add GLASM backend infrastructure 2021-07-22 21:51:30 -04:00