[pypy-commit] pypy libgccjit-backend: Get test_ooops/test_ooops_non_gc to pass
dmalcolm
noreply at buildbot.pypy.org
Mon Jan 5 20:51:34 CET 2015
Author: David Malcolm <dmalcolm at redhat.com>
Branch: libgccjit-backend
Changeset: r75246:207274050e18
Date: 2014-12-24 05:30 -0500
http://bitbucket.org/pypy/pypy/changeset/207274050e18/
Log: Get test_ooops/test_ooops_non_gc to pass
diff --git a/rpython/jit/backend/libgccjit/assembler.py b/rpython/jit/backend/libgccjit/assembler.py
--- a/rpython/jit/backend/libgccjit/assembler.py
+++ b/rpython/jit/backend/libgccjit/assembler.py
@@ -998,6 +998,29 @@
#
+ def _impl_ptr_cmp(self, resop, gcc_jit_comparison):
+ rval0 = self.expr_to_rvalue(resop._arg0)
+ rval1 = self.expr_to_rvalue(resop._arg1)
+ lvalres = self.expr_to_lvalue(resop.result)
+ resop_cmp = (
+ self.ctxt.new_cast(
+ self.ctxt.new_comparison(gcc_jit_comparison,
+ rval0, rval1),
+ self.t_Signed)
+ )
+ self.b_current.add_assignment(lvalres,
+ resop_cmp)
+ def emit_ptr_eq(self, resop):
+ self._impl_ptr_cmp(resop, self.lib.GCC_JIT_COMPARISON_EQ)
+ def emit_ptr_ne(self, resop):
+ self._impl_ptr_cmp(resop, self.lib.GCC_JIT_COMPARISON_NE)
+ def emit_instance_ptr_eq(self, resop):
+ self._impl_ptr_cmp(resop, self.lib.GCC_JIT_COMPARISON_EQ)
+ def emit_instance_ptr_ne(self, resop):
+ self._impl_ptr_cmp(resop, self.lib.GCC_JIT_COMPARISON_NE)
+
+ #
+
def impl_get_lvalue_at_offset_from_ptr(self, ptr_expr, ll_offset, t_field):
ptr = self.expr_to_rvalue(ptr_expr)
More information about the pypy-commit
mailing list