pan/bi: Use consistent modifier lists in packing

If there are modifiers only used by pseudo instructions, not the real
instructions, bi_packer can get out-of-sync with bi_opcodes, causing
hard-to-debug issues. Do the stupid-simple thing to ensure this doesn't happen.

This may be a temporary issue, depending whether ISA.xml and the IR get split
out for better Valhall support.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15223>
This commit is contained in:
Alyssa Rosenzweig 2022-03-23 18:12:31 -04:00 committed by Marge Bot
parent b1fa2068b8
commit 3485b8dc78
1 changed files with 6 additions and 1 deletions

View File

@ -24,9 +24,14 @@ import sys
from bifrost_isa import *
from mako.template import Template
# Consider pseudo instructions when getting the modifier list
instructions_with_pseudo = parse_instructions(sys.argv[1], include_pseudo = True)
ir_instructions_with_pseudo = partition_mnemonics(instructions_with_pseudo)
modifier_lists = order_modifiers(ir_instructions_with_pseudo)
# ...but strip for packing
instructions = parse_instructions(sys.argv[1])
ir_instructions = partition_mnemonics(instructions)
modifier_lists = order_modifiers(ir_instructions)
# Packs sources into an argument. Offset argument to work around a quirk of our
# compiler IR when dealing with staging registers (TODO: reorder in the IR to