mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-24 19:18:11 +02:00
With array registers, there are two num's we care about:
1. The base num that the whole array starts at (->array.base)
2. The num that the instruction uses, plus possibly an indirect offset
(->num or ->array.offset)
For parallel copies we always copy the whole array, so (2) is irrelevant
here. For phis and parallel copies inserted for phis, we used
assign_reg() which assigned ->array.base, but we forgot about this when
constructing our own parallel copies for live range splitting, just
setting ->num instead. The parallel copy lowering was also inconsistent
here, using ra_reg_get_num() (which looks at ->array.base for arrays)
for sources but looking at ->num directly for destinations. This makes
everything use ->array.base consistently.
While we're here, make sure to remove IR3_REG_SSA from liveout copies to
make sure printing works correctly.
Fixes:
|
||
|---|---|---|
| .. | ||
| .gitlab-ci | ||
| afuc | ||
| ci | ||
| common | ||
| computerator | ||
| decode | ||
| drm | ||
| drm-shim | ||
| ds | ||
| fdl | ||
| ir2 | ||
| ir3 | ||
| isa | ||
| perfcntrs | ||
| registers | ||
| rnn | ||
| vulkan | ||
| .clang-format | ||
| .dir-locals.el | ||
| .editorconfig | ||
| Android.common.mk | ||
| Android.drm.mk | ||
| Android.ir2.mk | ||
| Android.ir3.mk | ||
| Android.isa.mk | ||
| Android.mk | ||
| Android.perfcntrs.mk | ||
| Android.registers.mk | ||
| Makefile.sources | ||
| meson.build | ||