nv50/ir/ra: fix memory corruption when spilling
[mesa.git] / src / gallium / drivers / vc4 / vc4_qpu_validate.c
index f18ba0364d0214f476edfe38f008029da2edec98..3765c87c757f803d1dfa7c00a0135ecda7143f6a 100644 (file)
@@ -22,6 +22,8 @@
  * IN THE SOFTWARE.
  */
 
+#include <stdlib.h>
+
 #include "vc4_qpu.h"
 
 static void
@@ -58,6 +60,10 @@ _reads_reg(uint64_t inst, uint32_t r, bool ignore_a, bool ignore_b)
         if (QPU_GET_FIELD(inst, QPU_SIG) == QPU_SIG_BRANCH)
                 return false;
 
+        /* Load immediates don't read any registers. */
+        if (QPU_GET_FIELD(inst, QPU_SIG) == QPU_SIG_LOAD_IMM)
+                return false;
+
         for (int i = 0; i < ARRAY_SIZE(src_regs); i++) {
                 if (!ignore_a &&
                     src_regs[i].mux == QPU_MUX_A &&