[Beignet] [PATCH] GBE: fix a patch JMPI assert.

Yang Rong rong.r.yang at intel.com
Thu May 26 05:28:46 UTC 2016


If jmpi out of range (+/-32768), should use long jump.
Now decide the long jump in the gbe, use the GEN IR, but
one GEN IR may produce several GEN instructions, especially
long operation pre BDW. So use experiential 8000 as threshold.
But some case still out of range. So decrease the threshold to
3000. Need move it to context in the futher.

Fix bug:
https://bugs.freedesktop.org/show_bug.cgi?id=94810

Signed-off-by: Yang Rong <rong.r.yang at intel.com>
---
 backend/src/backend/gen_insn_selection.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/backend/src/backend/gen_insn_selection.cpp b/backend/src/backend/gen_insn_selection.cpp
index fbd9363..a9cd65a 100644
--- a/backend/src/backend/gen_insn_selection.cpp
+++ b/backend/src/backend/gen_insn_selection.cpp
@@ -1203,7 +1203,7 @@ namespace gbe
     }
     // FIXME, this longjmp check is too hacky. We need to support instruction
     // insertion at code emission stage in the future.
-    insn->extra.longjmp = ctx.getFunction().getDistance(start, end) > 8000;
+    insn->extra.longjmp = ctx.getFunction().getDistance(start, end) > 3000;
     return insn->extra.longjmp ? 2 : 1;
   }
 
-- 
2.1.4



More information about the Beignet mailing list