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

Reply via email to