Author: Armin Rigo <[email protected]>
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
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit