Author: Armin Rigo <ar...@tunes.org> Branch: Changeset: r65783:80e614cc3039 Date: 2013-07-29 15:22 +0200 http://bitbucket.org/pypy/pypy/changeset/80e614cc3039/
Log: Only save registers that really contain something 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 @@ -2174,7 +2174,10 @@ # first save away the 4 registers from 'cond_call_register_arguments' # plus the register 'eax' base_ofs = self.cpu.get_baseofs_of_frame_field() + should_be_saved = self._regalloc.rm.reg_bindings.values() for gpr in cond_call_register_arguments + [eax]: + if gpr not in should_be_saved: + continue v = gpr_reg_mgr_cls.all_reg_indexes[gpr.value] self.mc.MOV_br(v * WORD + base_ofs, gpr.value) # _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit