diff options
author | Karol Herbst <[email protected]> | 2018-07-19 11:42:08 +0200 |
---|---|---|
committer | Karol Herbst <[email protected]> | 2018-11-14 02:09:11 +0100 |
commit | 80db331c2d477f8f4bc5c2b0373573f505f676e5 (patch) | |
tree | cdf6e53d8852883780d49f31969a61e6d5313890 /src/compiler/nir | |
parent | 95b513c937346f179cbddc8ac6e512a634aeab9e (diff) |
nir: add const_index parameters to system value builder function
this allows to replace some nir_load_system_value calls with the specific
system value constructor
Reviewed-by: Jason Ekstrand <[email protected]>
Reviewed-by: Eric Anholt <[email protected]>
Signed-off-by: Karol Herbst <[email protected]>
Diffstat (limited to 'src/compiler/nir')
-rw-r--r-- | src/compiler/nir/nir_builder_opcodes_h.py | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/src/compiler/nir/nir_builder_opcodes_h.py b/src/compiler/nir/nir_builder_opcodes_h.py index e600093e9f6..34b8c4371e1 100644 --- a/src/compiler/nir/nir_builder_opcodes_h.py +++ b/src/compiler/nir/nir_builder_opcodes_h.py @@ -55,11 +55,28 @@ nir_load_system_value(nir_builder *build, nir_intrinsic_op op, int index) return &load->dest.ssa; } +<% +def sysval_decl_list(opcode): + res = '' + if opcode.indices: + res += ', unsigned ' + opcode.indices[0].lower() + return res + +def sysval_arg_list(opcode): + args = [] + if opcode.indices: + args.append(opcode.indices[0].lower()) + else: + args.append('0') + return ', '.join(args) +%> + % for name, opcode in filter(lambda v: v[1].sysval, sorted(INTR_OPCODES.items())): static inline nir_ssa_def * -nir_${name}(nir_builder *build) +nir_${name}(nir_builder *build${sysval_decl_list(opcode)}) { - return nir_load_system_value(build, nir_intrinsic_${name}, 0); + return nir_load_system_value(build, nir_intrinsic_${name}, + ${sysval_arg_list(opcode)}); } % endfor |