Author: Armin Rigo <ar...@tunes.org> Branch: Changeset: r58934:0f4be873cc08 Date: 2012-11-15 21:45 +0100 http://bitbucket.org/pypy/pypy/changeset/0f4be873cc08/
Log: merge heads diff --git a/pypy/jit/backend/arm/test/test_regalloc.py b/pypy/jit/backend/arm/test/test_regalloc.py --- a/pypy/jit/backend/arm/test/test_regalloc.py +++ b/pypy/jit/backend/arm/test/test_regalloc.py @@ -77,6 +77,17 @@ return -1 +def get_zero_division_error(self): + # for tests, a random emulated ll_inst will do + ll_inst = lltype.malloc(rclass.OBJECT) + ll_inst.typeptr = lltype.malloc(rclass.OBJECT_VTABLE, + immortal=True) + _zer_error_vtable = llmemory.cast_ptr_to_adr(ll_inst.typeptr) + zer_vtable = self.cast_adr_to_int(_zer_error_vtable) + zer_inst = lltype.cast_opaque_ptr(llmemory.GCREF, ll_inst) + return zer_vtable, zer_inst + + class BaseTestRegalloc(object): cpu = CPU(None, None) cpu.setup_once() @@ -96,7 +107,7 @@ f_calldescr = cpu.calldescrof(FPTR.TO, FPTR.TO.ARGS, FPTR.TO.RESULT, EffectInfo.MOST_GENERAL) - zero_division_tp, zero_division_value = cpu.get_zero_division_error() + zero_division_tp, zero_division_value = get_zero_division_error(cpu) zd_addr = cpu.cast_int_to_adr(zero_division_tp) zero_division_error = llmemory.cast_adr_to_ptr(zd_addr, lltype.Ptr(rclass.OBJECT_VTABLE)) diff --git a/pypy/jit/backend/llgraph/runner.py b/pypy/jit/backend/llgraph/runner.py --- a/pypy/jit/backend/llgraph/runner.py +++ b/pypy/jit/backend/llgraph/runner.py @@ -644,16 +644,6 @@ else: return ootype.NULL - def get_overflow_error(self): - ll_err = llimpl._get_error(OverflowError) - return (ootype.cast_to_object(ll_err.args[0]), - ootype.cast_to_object(ll_err.args[1])) - - def get_zero_division_error(self): - ll_err = llimpl._get_error(ZeroDivisionError) - return (ootype.cast_to_object(ll_err.args[0]), - ootype.cast_to_object(ll_err.args[1])) - def do_new_with_vtable(self, clsbox): cls = clsbox.getref_base() typedescr = self.class_sizes[cls] diff --git a/pypy/jit/backend/llsupport/llmodel.py b/pypy/jit/backend/llsupport/llmodel.py --- a/pypy/jit/backend/llsupport/llmodel.py +++ b/pypy/jit/backend/llsupport/llmodel.py @@ -39,8 +39,6 @@ self.vtable_offset, _ = symbolic.get_field_token(rclass.OBJECT, 'typeptr', translate_support_code) - self._setup_prebuilt_error('ovf', OverflowError) - self._setup_prebuilt_error('zer', ZeroDivisionError) if translate_support_code: self._setup_exception_handling_translated() else: @@ -56,21 +54,6 @@ def setup(self): pass - def _setup_prebuilt_error(self, prefix, Class): - if self.rtyper is not None: # normal case - bk = self.rtyper.annotator.bookkeeper - clsdef = bk.getuniqueclassdef(Class) - ll_inst = self.rtyper.exceptiondata.get_standard_ll_exc_instance( - self.rtyper, clsdef) - else: - # for tests, a random emulated ll_inst will do - ll_inst = lltype.malloc(rclass.OBJECT) - ll_inst.typeptr = lltype.malloc(rclass.OBJECT_VTABLE, - immortal=True) - setattr(self, '_%s_error_vtable' % prefix, - llmemory.cast_ptr_to_adr(ll_inst.typeptr)) - setattr(self, '_%s_error_inst' % prefix, ll_inst) - def _setup_exception_handling_untranslated(self): # for running un-translated only, all exceptions occurring in the @@ -293,18 +276,6 @@ return ffisupport.calldescr_dynamic_for_tests(self, atypes, rtype, abiname) - def get_overflow_error(self): - ovf_vtable = self.cast_adr_to_int(self._ovf_error_vtable) - ovf_inst = lltype.cast_opaque_ptr(llmemory.GCREF, - self._ovf_error_inst) - return ovf_vtable, ovf_inst - - def get_zero_division_error(self): - zer_vtable = self.cast_adr_to_int(self._zer_error_vtable) - zer_inst = lltype.cast_opaque_ptr(llmemory.GCREF, - self._zer_error_inst) - return zer_vtable, zer_inst - # ____________________________________________________________ def bh_arraylen_gc(self, array, arraydescr): diff --git a/pypy/jit/backend/x86/test/test_regalloc.py b/pypy/jit/backend/x86/test/test_regalloc.py --- a/pypy/jit/backend/x86/test/test_regalloc.py +++ b/pypy/jit/backend/x86/test/test_regalloc.py @@ -79,6 +79,18 @@ def _compute_next_usage(self, v, _): return -1 + +def get_zero_division_error(self): + # for tests, a random emulated ll_inst will do + ll_inst = lltype.malloc(rclass.OBJECT) + ll_inst.typeptr = lltype.malloc(rclass.OBJECT_VTABLE, + immortal=True) + _zer_error_vtable = llmemory.cast_ptr_to_adr(ll_inst.typeptr) + zer_vtable = self.cast_adr_to_int(_zer_error_vtable) + zer_inst = lltype.cast_opaque_ptr(llmemory.GCREF, ll_inst) + return zer_vtable, zer_inst + + class BaseTestRegalloc(object): cpu = CPU(None, None) cpu.setup_once() @@ -89,7 +101,7 @@ zero_division_value) FPTR = lltype.Ptr(lltype.FuncType([lltype.Signed], lltype.Void)) raising_fptr = llhelper(FPTR, raising_func) - zero_division_tp, zero_division_value = cpu.get_zero_division_error() + zero_division_tp, zero_division_value = get_zero_division_error(cpu) zd_addr = cpu.cast_int_to_adr(zero_division_tp) zero_division_error = llmemory.cast_adr_to_ptr(zd_addr, lltype.Ptr(rclass.OBJECT_VTABLE)) _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit