From: Rob Clark Date: Mon, 20 Mar 2023 21:54:16 +0000 (-0700) Subject: freedreno/rnn: Fix reg names for regs with variants X-Git-Tag: upstream/23.3.3~11212 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=75d029b717000ce486af5f607bf04914e21ef2bb;p=platform%2Fupstream%2Fmesa.git freedreno/rnn: Fix reg names for regs with variants Fixes reg names with headergen2, so that if we have separate a6xx and a7xx variants for a register we get REG_A6XX_foo and REG_A7XX_foo instead of both being REG_A6XX_foo. Otherwise generated headers for the kernel wouldn't compile. Signed-off-by: Rob Clark Part-of: --- diff --git a/src/freedreno/rnn/rnn.c b/src/freedreno/rnn/rnn.c index d82d2a5..1533d45 100644 --- a/src/freedreno/rnn/rnn.c +++ b/src/freedreno/rnn/rnn.c @@ -1259,8 +1259,18 @@ static void prepdelem(struct rnndb *db, struct rnndelem *elem, char *prefix, str elem->length = 1; elem->name = 0; } - if (elem->name) - elem->fullname = catstr(prefix, elem->name); + if (elem->name) { + if (elem->varinfo.variantsstr && !strstr(elem->varinfo.variantsstr, "-")) { + /* Special hack for headergen2 to deal with variant regs (like a6xx vs + * a7xx).. gen_header.py handles this differently by generating C++ + * template based reg builder to handle variants. But for now we still + * need something that can be used for kernel headers. + */ + elem->fullname = catstr(elem->varinfo.variantsstr, elem->name); + } else { + elem->fullname = catstr(prefix, elem->name); + } + } prepvarinfo (db, elem->fullname?elem->fullname:prefix, &elem->varinfo, parvi); if (elem->varinfo.dead) return;