ReinUsesLisp and ameerj
75fd0079db
glasm: Remove unnecessary value types
2021-07-22 21:51:33 -04:00
ReinUsesLisp and ameerj
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 and ameerj
1ee7f8b943
glasm: Do not alias ConditionRef for now
...
Immediate condition refs where not handled correctly. Just move the
value for now.
2021-07-22 21:51:32 -04:00
ReinUsesLisp and ameerj
9bb3e008c9
shader: Read branch conditions from an instruction
...
Fixes the identity removal pass.
2021-07-22 21:51:32 -04:00
ReinUsesLisp and ameerj
fb3ba62b3a
glasm: Fix aliased bitcasts ref counting
2021-07-22 21:51:31 -04:00
ReinUsesLisp and ameerj
31d402ee74
glasm: Add Void type to GLASM values
2021-07-22 21:51:31 -04:00
ReinUsesLisp and ameerj
deda89372f
glasm: Fix register allocation when moving immediate on GLASM
2021-07-22 21:51:31 -04:00
ReinUsesLisp and ameerj
ad61b47f80
glasm: Add conversion instructions to GLASM
2021-07-22 21:51:31 -04:00
ReinUsesLisp and ameerj
4502595bc2
glasm: Initial GLASM fp64 support
2021-07-22 21:51:30 -04:00
ReinUsesLisp and ameerj
1c9307969c
glasm: Make GLASM aware of types
2021-07-22 21:51:30 -04:00
ameerj
68cc445b8e
glasm: Implement more logical ops
2021-07-22 21:51:30 -04:00
ReinUsesLisp and ameerj
3e841f6441
glasm: Use BitField instead of C bitfields
2021-07-22 21:51:30 -04:00
ReinUsesLisp and ameerj
c1ba685d9c
glasm: Changes to GLASM register allocator and emit context
2021-07-22 21:51:30 -04:00
ReinUsesLisp and ameerj
b10cf64c48
glasm: Add GLASM backend infrastructure
2021-07-22 21:51:30 -04:00