Author: Armin Rigo <ar...@tunes.org> Branch: Changeset: r70152:53058f410b21 Date: 2014-03-22 08:06 +0100 http://bitbucket.org/pypy/pypy/changeset/53058f410b21/
Log: Untested: implement increment_debug_counter for ARM diff --git a/rpython/jit/backend/arm/opassembler.py b/rpython/jit/backend/arm/opassembler.py --- a/rpython/jit/backend/arm/opassembler.py +++ b/rpython/jit/backend/arm/opassembler.py @@ -584,7 +584,10 @@ emit_op_getfield_gc_pure = emit_op_getfield_gc def emit_op_increment_debug_counter(self, op, arglocs, regalloc, fcond): - # XXX implement me + base_loc, value_loc = arglocs + self.mc.LDR_ri(value_loc.value, base_loc.value, 0, cond=fcond) + self.mc.ADD_ri(value_loc.value, value_loc.value, 1, cond=fcond) + self.mc.STR_ri(value_loc.value, base_loc.value, 0, cond=fcond) return fcond def emit_op_getinteriorfield_gc(self, op, arglocs, regalloc, fcond): diff --git a/rpython/jit/backend/arm/regalloc.py b/rpython/jit/backend/arm/regalloc.py --- a/rpython/jit/backend/arm/regalloc.py +++ b/rpython/jit/backend/arm/regalloc.py @@ -850,8 +850,12 @@ prepare_op_getfield_gc_pure = prepare_op_getfield_gc def prepare_op_increment_debug_counter(self, op, fcond): - # XXX implement me - return [] + boxes = op.getarglist() + a0, = boxes + base_loc = self.make_sure_var_in_reg(a0, boxes) + value_loc = self.get_scratch_reg(INT, boxes) + self.free_temp_vars() + return [base_loc, value_loc] def prepare_op_getinteriorfield_gc(self, op, fcond): t = unpack_interiorfielddescr(op.getdescr()) _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit