gallivm: Handle code have ret correctly.
authorJosé Fonseca <jfonseca@vmware.com>
Sat, 9 Oct 2010 11:08:25 +0000 (12:08 +0100)
committerJosé Fonseca <jfonseca@vmware.com>
Sat, 9 Oct 2010 11:12:59 +0000 (12:12 +0100)
Stop disassembling on unconditional backwards jumps.

src/gallium/auxiliary/gallivm/lp_bld_debug.c

index d3a5afff8c23029bd7c45a4e63632d5252e37e30..8c1df0d8e309dd8e4b203f43f997af9237ce18b2 100644 (file)
@@ -115,8 +115,10 @@ lp_disassemble(const void* func)
          }
       }
 
-      if ((ud_insn_off(&ud_obj) >= max_jmp_pc && ud_obj.mnemonic == UD_Iret) ||
-           ud_obj.mnemonic == UD_Iinvalid)
+      if (ud_obj.mnemonic == UD_Iinvalid ||
+          (ud_insn_off(&ud_obj) >= max_jmp_pc &&
+           (ud_obj.mnemonic == UD_Iret ||
+            ud_obj.mnemonic == UD_Ijmp)))
          break;
    }