Author: Maciej Fijalkowski <fij...@gmail.com> Branch: jitframe-on-heap Changeset: r60806:8634f509f474 Date: 2013-01-31 13:14 +0200 http://bitbucket.org/pypy/pypy/changeset/8634f509f474/
Log: remove this hack diff --git a/rpython/jit/backend/llsupport/llmodel.py b/rpython/jit/backend/llsupport/llmodel.py --- a/rpython/jit/backend/llsupport/llmodel.py +++ b/rpython/jit/backend/llsupport/llmodel.py @@ -72,16 +72,6 @@ llop.gc_assume_young_pointers(lltype.Void, new_frame) return lltype.cast_opaque_ptr(llmemory.GCREF, new_frame) - def realloc_frame_check(frame, size): - frame = lltype.cast_opaque_ptr(jitframe.JITFRAMEPTR, frame) - if size > len(frame.jf_frame) or size > frame.jf_frame_info.jfi_frame_depth: - print "CHECK FAILED" - import pdb - pdb.set_trace() - assert False - print "SOMETHING INCREDIBLY FISHY" - return lltype.cast_opaque_ptr(llmemory.GCREF, frame) - if not translate_support_code: fptr = llhelper(FUNC_TP, realloc_frame) else: @@ -94,18 +84,6 @@ mixlevelann.finish() self.realloc_frame = heaptracker.adr2int(llmemory.cast_ptr_to_adr(fptr)) - if not translate_support_code: - fptr = llhelper(FUNC_TP, realloc_frame_check) - else: - FUNC = FUNC_TP.TO - args_s = [annmodel.lltype_to_annotation(ARG) for ARG in FUNC.ARGS] - s_result = annmodel.lltype_to_annotation(FUNC.RESULT) - mixlevelann = MixLevelHelperAnnotator(self.rtyper) - graph = mixlevelann.getgraph(realloc_frame, args_s, s_result) - fptr = mixlevelann.graph2delayed(graph, FUNC) - mixlevelann.finish() - self.realloc_frame_check = heaptracker.adr2int(llmemory.cast_ptr_to_adr(fptr)) - def _setup_exception_handling_untranslated(self): # for running un-translated only, all exceptions occurring in the # llinterpreter are stored in '_exception_emulator', which is then diff --git a/rpython/jit/backend/x86/assembler.py b/rpython/jit/backend/x86/assembler.py --- a/rpython/jit/backend/x86/assembler.py +++ b/rpython/jit/backend/x86/assembler.py @@ -226,34 +226,6 @@ mc.RET() self._stack_check_failure = mc.materialize(self.cpu.asmmemmgr, []) - # XXX an almost identical copy for debugging, remove - - mc = codebuf.MachineCodeBlockWrapper() - self._push_all_regs_to_frame(mc, [], self.cpu.supports_floats) - assert not IS_X86_32 - # this is the gcmap stored by push_gcmap(mov=True) in _check_stack_frame - mc.MOV_rs(ecx.value, WORD) - gcmap_ofs = self.cpu.get_ofs_of_frame_field('jf_gcmap') - mc.MOV_br(gcmap_ofs, ecx.value) - # this is size that we're after, sanity checking only - mc.MOV_rs(esi.value, WORD*2) - # push first arg - mc.LEA_rb(edi.value, -base_ofs) - # align - mc.SUB_ri(esp.value, WORD) - mc.CALL(imm(self.cpu.realloc_frame_check)) - mc.ADD_ri(esp.value, WORD) - mc.LEA_rm(ebp.value, (eax.value, base_ofs)) - - gcrootmap = self.cpu.gc_ll_descr.gcrootmap - if gcrootmap and gcrootmap.is_shadow_stack: - self._load_shadowstack_top_in_ebx(mc, gcrootmap) - mc.MOV_mr((ebx.value, -WORD), eax.value) - mc.MOV_bi(gcmap_ofs, 0) - self._pop_all_regs_from_frame(mc, [], self.cpu.supports_floats) - mc.RET() - self._stack_check_failure_2 = mc.materialize(self.cpu.asmmemmgr, []) - def _build_malloc_slowpath(self): """ While arriving on slowpath, we have a gcpattern on stack, nursery_head in eax and the size in edi - eax @@ -580,10 +552,6 @@ looptoken._x86_fullsize = full_size looptoken._x86_ops_offset = ops_offset looptoken._x86_function_addr = rawstart - for label in self.labels_to_patch: - self._patch_stackadjust(label + rawstart, frame_depth_no_fixed_size - + JITFRAME_FIXED_SIZE) - self.labels_to_patch = None self.fixup_target_tokens(rawstart) self.teardown() @@ -634,9 +602,6 @@ frame_depth_no_fixed_size + JITFRAME_FIXED_SIZE) self._patch_stackadjust(stack_check_patch_ofs + rawstart, frame_depth) self._patch_stackadjust(ofs2 + rawstart, frame_depth) - for label in self.labels_to_patch: - self._patch_stackadjust(label + rawstart, frame_depth) - self.labels_to_patch = None self.fixup_target_tokens(rawstart) self.update_frame_depth(frame_depth) self.teardown() @@ -701,7 +666,7 @@ baseofs = self.cpu.get_baseofs_of_frame_field() self.current_clt.frame_info.set_frame_depth(baseofs, frame_depth) - def _check_frame_depth(self, mc, gcmap, expected_size=-1, check_only=False): + def _check_frame_depth(self, mc, gcmap, expected_size=-1): """ check if the frame is of enough depth to follow this bridge. Otherwise reallocate the frame in a helper. There are other potential solutions @@ -724,10 +689,7 @@ mc.MOV_si(WORD, expected_size) ofs2 = mc.get_relative_pos() - 4 self.push_gcmap(mc, gcmap, mov=True) - if check_only: - mc.CALL(imm(self._stack_check_failure_2)) - else: - mc.CALL(imm(self._stack_check_failure)) + mc.CALL(imm(self._stack_check_failure)) # patch the JG above offset = mc.get_relative_pos() - jg_location assert 0 < offset <= 127 @@ -829,7 +791,6 @@ def _assemble(self, regalloc, inputargs, operations): self._regalloc = regalloc - self.labels_to_patch = [] regalloc.compute_hint_frame_locations(operations) regalloc.walk_operations(inputargs, operations) if we_are_translated() or self.cpu.dont_keepalive_stuff: @@ -2546,10 +2507,7 @@ self.mc.JMP(imm(target)) def label(self): - ofs, ofs2 = self._check_frame_depth(self.mc, self._regalloc.get_gcmap(), - check_only=True) - self.labels_to_patch.append(ofs) - self.labels_to_patch.append(ofs2) + pass def malloc_cond(self, nursery_free_adr, nursery_top_adr, size, gcmap): assert size & (WORD-1) == 0 # must be correctly aligned _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit