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.y...@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 _______________________________________________ Beignet mailing list Beignet@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/beignet