aco: create long jumps
authorRhys Perry <pendingchaos02@gmail.com>
Tue, 4 Aug 2020 15:06:56 +0000 (16:06 +0100)
committerMarge Bot <eric+marge@anholt.net>
Wed, 26 Aug 2020 13:26:58 +0000 (13:26 +0000)
commitfe2dc41258b1d868b59c44256ef8397f301ed7da
tree9e7e3f382fe5caaab564998005b09803b456e824
parent156fd58cdacb28a7fca88fc9ffc84c3cdfbbb8f3
aco: create long jumps

When the branch offset can't be encoded, we have to use s_setpc_b64.

Fixes hang in RPCS3 vertex ubershader.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3231
Cc: 20.2 <mesa-stable>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6212>
src/amd/compiler/aco_assembler.cpp
src/amd/compiler/aco_builder_h.py