r600/asm: Fix AR force_add_cf setting if a clause is not open
authorVitaliy Triang3l Kuzmin <triang3l@yandex.ru>
Mon, 7 Aug 2023 19:34:38 +0000 (22:34 +0300)
committerMarge Bot <emma+marge@anholt.net>
Fri, 11 Aug 2023 08:04:05 +0000 (08:04 +0000)
Acked-by: Gert Wollny <gert.wollny@collabora.com>
Signed-off-by: Vitaliy Triang3l Kuzmin <triang3l@yandex.ru>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24545>

src/gallium/drivers/r600/r600_asm.c

index ec64c4d..84a7661 100644 (file)
@@ -1209,7 +1209,7 @@ static int load_ar_r6xx(struct r600_bytecode *bc, bool for_src)
                return 0;
 
        /* hack to avoid making MOVA the last instruction in the clause */
-       if ((bc->cf_last->ndw>>1) >= 110)
+       if (bc->cf_last == NULL || (bc->cf_last->ndw>>1) >= 110)
                bc->force_add_cf = 1;
    else if (for_src) {
       insert_nop_r6xx(bc, 4);
@@ -1244,7 +1244,7 @@ int r600_load_ar(struct r600_bytecode *bc, bool for_src)
                return 0;
 
        /* hack to avoid making MOVA the last instruction in the clause */
-       if ((bc->cf_last->ndw>>1) >= 110)
+       if (bc->cf_last == NULL || (bc->cf_last->ndw>>1) >= 110)
                bc->force_add_cf = 1;
 
        memset(&alu, 0, sizeof(alu));