Citron/src/shader_recompiler/backend/glasm
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
..
emit_context.cpp glasm: Implement indirect attribute loads 2021-07-22 21:51:33 -04:00
emit_context.h glasm: Implement indirect attribute loads 2021-07-22 21:51:33 -04:00
emit_glasm.cpp glasm: Catch more register leaks 2021-07-22 21:51:33 -04:00
emit_glasm.h shader: Split profile and runtime information in separate structs 2021-07-22 21:51:33 -04:00
emit_glasm_atomic.cpp glasm: Implement Storage atomics 2021-07-22 21:51:31 -04:00
emit_glasm_barriers.cpp glasm: Add GLASM backend infrastructure 2021-07-22 21:51:30 -04:00
emit_glasm_bitwise_conversion.cpp glasm: Catch more register leaks 2021-07-22 21:51:33 -04:00
emit_glasm_composite.cpp glasm: Catch more register leaks 2021-07-22 21:51:33 -04:00
emit_glasm_context_get_set.cpp emit_glasm_context_get_set: Remove unused variable 2021-07-22 21:51:33 -04:00
emit_glasm_control_flow.cpp glasm: Add GLASM backend infrastructure 2021-07-22 21:51:30 -04:00
emit_glasm_convert.cpp glasm: Add conversion instructions to GLASM 2021-07-22 21:51:31 -04:00
emit_glasm_floating_point.cpp glasm: Implement PREC on relevant instructions 2021-07-22 21:51:32 -04:00
emit_glasm_image.cpp glasm: Catch more register leaks 2021-07-22 21:51:33 -04:00
emit_glasm_instructions.h glasm: Fix usage counting on phi nodes 2021-07-22 21:51:33 -04:00
emit_glasm_integer.cpp glasm: Catch more register leaks 2021-07-22 21:51:33 -04:00
emit_glasm_logical.cpp glasm: Add GLASM backend infrastructure 2021-07-22 21:51:30 -04:00
emit_glasm_memory.cpp glasm: Implement global memory fallbacks 2021-07-22 21:51:33 -04:00
emit_glasm_not_implemented.cpp glasm: Fix usage counting on phi nodes 2021-07-22 21:51:33 -04:00
emit_glasm_select.cpp glasm: Implement SelectU1 2021-07-22 21:51:32 -04:00
emit_glasm_shared_memory.cpp glasm: Implement rest of shared mem 2021-07-22 21:51:31 -04:00
emit_glasm_special.cpp glasm: Add GLASM backend infrastructure 2021-07-22 21:51:30 -04:00
emit_glasm_undefined.cpp glasm: Add GLASM backend infrastructure 2021-07-22 21:51:30 -04:00
emit_glasm_warp.cpp glasm: Catch more register leaks 2021-07-22 21:51:33 -04:00
reg_alloc.cpp glasm: Catch more register leaks 2021-07-22 21:51:33 -04:00
reg_alloc.h glasm: Catch more register leaks 2021-07-22 21:51:33 -04:00