aboutsummaryrefslogtreecommitdiff
path: root/target/hexagon/meson.build
diff options
context:
space:
mode:
authorAnton Johansson <anjo@rev.ng>2022-09-23 19:38:29 +0200
committerTaylor Simpson <tsimpson@quicinc.com>2022-12-16 12:29:42 -0800
commitc0a41ee631a146722a0d1365a788cbf503287570 (patch)
treec20f768044d0c5eca9c0af1041098a9041677f25 /target/hexagon/meson.build
parentfd8171fe52b5e56b2052e51b3f9e82acab58d87f (diff)
target/hexagon: import parser for idef-parser
Signed-off-by: Alessandro Di Federico <ale@rev.ng> Signed-off-by: Paolo Montesel <babush@rev.ng> Signed-off-by: Anton Johansson <anjo@rev.ng> Signed-off-by: Taylor Simpson <tsimpson@quicinc.com> Reviewed-by: Taylor Simpson <tsimpson@quicinc.com> Message-Id: <20220923173831.227551-10-anjo@rev.ng>
Diffstat (limited to 'target/hexagon/meson.build')
-rw-r--r--target/hexagon/meson.build29
1 files changed, 29 insertions, 0 deletions
diff --git a/target/hexagon/meson.build b/target/hexagon/meson.build
index 5af0a6f419..d782041069 100644
--- a/target/hexagon/meson.build
+++ b/target/hexagon/meson.build
@@ -203,6 +203,35 @@ if idef_parser_enabled and 'hexagon-linux-user' in target_dirs
output: ['@BASENAME@.yy.c', '@BASENAME@.yy.h'],
arguments: ['-o', '@OUTPUT0@', '--header-file=@OUTPUT1@', '@INPUT@']
)
+
+ bison = generator(
+ find_program('bison'),
+ output: ['@BASENAME@.tab.c', '@BASENAME@.tab.h'],
+ arguments: ['@INPUT@', '--defines=@OUTPUT1@', '--output=@OUTPUT0@']
+ )
+
+ glib_dep = dependency('glib-2.0', native: true)
+
+ idef_parser = executable(
+ 'idef-parser',
+ [flex.process(idef_parser_dir / 'idef-parser.lex'),
+ bison.process(idef_parser_dir / 'idef-parser.y'),
+ idef_parser_dir / 'parser-helpers.c'],
+ include_directories: ['idef-parser', '../../include/'],
+ dependencies: [glib_dep],
+ c_args: ['-Wextra'],
+ native: true
+ )
+
+ idef_generated_tcg = custom_target(
+ 'idef-generated-tcg',
+ output: ['idef-generated-emitter.c',
+ 'idef-generated-emitter.h.inc',
+ 'idef-generated-enabled-instructions'],
+ input: preprocessed_idef_parser_input_generated,
+ depend_files: [hex_common_py],
+ command: [idef_parser, '@INPUT@', '@OUTPUT0@', '@OUTPUT1@', '@OUTPUT2@']
+ )
endif
target_arch += {'hexagon': hexagon_ss}