diff --git a/src/panfrost/compiler/valhall/asm.py b/src/panfrost/compiler/valhall/asm.py index bd996396d66..ae07bf34c43 100644 --- a/src/panfrost/compiler/valhall/asm.py +++ b/src/panfrost/compiler/valhall/asm.py @@ -22,11 +22,12 @@ # IN THE SOFTWARE. import argparse +import os import sys import struct from valhall import valhall_parse_isa -(instructions, immediates, enums, typesize, safe_name) = valhall_parse_isa() +(instructions, immediates, enums, typesize, safe_name) = valhall_parse_isa(os.path.join(os.path.dirname(__file__), 'ISA.xml')) LINE = '' diff --git a/src/panfrost/compiler/valhall/disasm.py b/src/panfrost/compiler/valhall/disasm.py index 2c2903a7729..cd6006a4be3 100644 --- a/src/panfrost/compiler/valhall/disasm.py +++ b/src/panfrost/compiler/valhall/disasm.py @@ -21,12 +21,18 @@ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS # IN THE SOFTWARE. +import argparse import sys from valhall import valhall_parse_isa from mako.template import Template from mako import exceptions -(instructions, immediates, enums, typesize, safe_name) = valhall_parse_isa() +parser = argparse.ArgumentParser() +parser.add_argument('--xml', required=True, help='Input ISA XML file') + +args = parser.parse_args() + +(instructions, immediates, enums, typesize, safe_name) = valhall_parse_isa(args.xml) template = """ #include "disassemble.h" diff --git a/src/panfrost/compiler/valhall/meson.build b/src/panfrost/compiler/valhall/meson.build index 3bddb2869ca..9cf75fdf78e 100644 --- a/src/panfrost/compiler/valhall/meson.build +++ b/src/panfrost/compiler/valhall/meson.build @@ -6,7 +6,7 @@ valhall_c = custom_target( 'valhall_c', input : ['valhall.c.py', 'ISA.xml'], output : 'valhall.c', - command : [prog_python, '@INPUT@'], + command : [prog_python, '@INPUT0@', '--xml', '@INPUT1@'], capture : true, depend_files : files('valhall.py'), ) @@ -15,7 +15,7 @@ valhall_enums_h = custom_target( 'valhall_enums.h', input : ['valhall_enums.h.py', 'ISA.xml'], output : 'valhall_enums.h', - command : [prog_python, '@INPUT@'], + command : [prog_python, '@INPUT0@', '--xml', '@INPUT1@'], capture : true, depend_files : files('valhall.py'), ) @@ -29,7 +29,7 @@ valhall_disasm_c = custom_target( 'valhall_disasm_c', input : ['disasm.py', 'ISA.xml'], output : 'valhall_disasm.c', - command : [prog_python, '@INPUT@'], + command : [prog_python, '@INPUT0@', '--xml', '@INPUT1@'], capture : true, depend_files : files('valhall.py'), ) diff --git a/src/panfrost/compiler/valhall/valhall.c.py b/src/panfrost/compiler/valhall/valhall.c.py index f17704b7ae7..aad53a6ae36 100644 --- a/src/panfrost/compiler/valhall/valhall.c.py +++ b/src/panfrost/compiler/valhall/valhall.c.py @@ -21,12 +21,18 @@ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS # IN THE SOFTWARE. +import argparse import sys from valhall import valhall_parse_isa from mako.template import Template from mako import exceptions -(instructions, immediates, enums, typesize, safe_name) = valhall_parse_isa() +parser = argparse.ArgumentParser() +parser.add_argument('--xml', required=True, help='Input ISA XML file') + +args = parser.parse_args() + +(instructions, immediates, enums, typesize, safe_name) = valhall_parse_isa(args.xml) SKIP = set([ # Extra conversions diff --git a/src/panfrost/compiler/valhall/valhall.py b/src/panfrost/compiler/valhall/valhall.py index 7b2bb9d0c4e..6a0ed2a8a38 100644 --- a/src/panfrost/compiler/valhall/valhall.py +++ b/src/panfrost/compiler/valhall/valhall.py @@ -367,13 +367,12 @@ def typesize(opcode): return 32 # Parse the ISA -def valhall_parse_isa(xmlfile = False): +def valhall_parse_isa(xmlfile): global MODIFIERS global enums global immediates global root - xmlfile = os.path.join(os.path.dirname(__file__), 'ISA.xml') tree = ET.parse(xmlfile) root = tree.getroot() diff --git a/src/panfrost/compiler/valhall/valhall_enums.h.py b/src/panfrost/compiler/valhall/valhall_enums.h.py index 1333b62e614..8d0b37fdf3c 100644 --- a/src/panfrost/compiler/valhall/valhall_enums.h.py +++ b/src/panfrost/compiler/valhall/valhall_enums.h.py @@ -21,10 +21,16 @@ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS # IN THE SOFTWARE. +import argparse import sys from valhall import valhall_parse_isa -(_, _, enums, _, safe_name) = valhall_parse_isa() +parser = argparse.ArgumentParser() +parser.add_argument('--xml', required=True, help='Input ISA XML file') + +args = parser.parse_args() + +(_, _, enums, _, safe_name) = valhall_parse_isa(args.xml) print("#ifndef __VALHALL_ENUMS_H_") print("#define __VALHALL_ENUMS_H_")