From fac9d22773015377256444e79df07fa32cab628f Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Sun, 14 Nov 2021 12:00:07 -0800 Subject: [PATCH] isaspec: Add prototypes for expr evaluators Add function prototypes for generated expr evaluators, to avoid a use- before-declaration issue if an expression references a derived field. Signed-off-by: Rob Clark Part-of: --- src/compiler/isaspec/encode.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/compiler/isaspec/encode.py b/src/compiler/isaspec/encode.py index bc19209e743..1bb0f925da6 100755 --- a/src/compiler/isaspec/encode.py +++ b/src/compiler/isaspec/encode.py @@ -464,6 +464,14 @@ ${s.expr_name(leaf.get_root(), expr)}(struct encode_state *s, struct bitset_para ## note, we can't just iterate all the expressions, but we need to find ## the context in which they are used to know the correct src type +%for root in s.encode_roots(): +% for leaf in s.encode_leafs(root): +% for expr in s.bitset_used_exprs(leaf): +static inline int64_t ${s.expr_name(leaf.get_root(), expr)}(struct encode_state *s, struct bitset_params *p, ${leaf.get_root().encode.type} src); +% endfor +% endfor +%endfor + %for root in s.encode_roots(): <% rendered_exprs = []