コード例 #1
0
ファイル: rewrite.py プロジェクト: Qointum/pypy
 def handle_write_barrier_setarrayitem(self, op):
     val = op.getarg(0)
     if val not in self.write_barrier_applied:
         v = op.getarg(2)
         if isinstance(v, BoxPtr) or (isinstance(v, ConstPtr) and rgc.needs_write_barrier(v.value)):
             self.gen_write_barrier_array(val, op.getarg(1))
             # op = op.copy_and_change(rop.SET{ARRAYITEM,INTERIORFIELD}_RAW)
     self.newops.append(op)
コード例 #2
0
ファイル: rewrite.py プロジェクト: Qointum/pypy
 def handle_write_barrier_setfield(self, op):
     val = op.getarg(0)
     if val not in self.write_barrier_applied:
         v = op.getarg(1)
         if isinstance(v, BoxPtr) or (isinstance(v, ConstPtr) and rgc.needs_write_barrier(v.value)):
             self.gen_write_barrier(val)
             # op = op.copy_and_change(rop.SETFIELD_RAW)
     self.newops.append(op)
コード例 #3
0
ファイル: rewrite.py プロジェクト: tools-env/mesapy
 def handle_write_barrier_setarrayitem(self, op):
     val = op.getarg(0)
     if not self.write_barrier_applied(val):
         v = op.getarg(2)
         if (v.type == 'r' and (not isinstance(v, ConstPtr)
                                or rgc.needs_write_barrier(v.value))):
             self.gen_write_barrier_array(val, op.getarg(1))
             #op = op.copy_and_change(rop.SET{ARRAYITEM,INTERIORFIELD}_RAW)
     self.emit_op(op)
コード例 #4
0
ファイル: rewrite.py プロジェクト: tools-env/mesapy
 def handle_write_barrier_setfield(self, op):
     val = op.getarg(0)
     if not self.write_barrier_applied(val):
         v = op.getarg(1)
         if (v.type == 'r' and (not isinstance(v, ConstPtr)
                                or rgc.needs_write_barrier(v.value))):
             self.gen_write_barrier(val)
             #op = op.copy_and_change(rop.SETFIELD_RAW)
     self.emit_op(op)
コード例 #5
0
ファイル: rewrite.py プロジェクト: abhinavthomas/pypy
 def handle_write_barrier_setarrayitem(self, op):
     val = op.getarg(0)
     if not self.write_barrier_applied(val):
         v = op.getarg(2)
         if (v.type == 'r' and (not isinstance(v, ConstPtr) or
             rgc.needs_write_barrier(v.value))):
             self.gen_write_barrier_array(val, op.getarg(1))
             #op = op.copy_and_change(rop.SET{ARRAYITEM,INTERIORFIELD}_RAW)
     self.emit_op(op)
コード例 #6
0
ファイル: rewrite.py プロジェクト: abhinavthomas/pypy
 def handle_write_barrier_setfield(self, op):
     val = op.getarg(0)
     if not self.write_barrier_applied(val):
         v = op.getarg(1)
         if (v.type == 'r' and (not isinstance(v, ConstPtr) or
             rgc.needs_write_barrier(v.value))):
             self.gen_write_barrier(val)
             #op = op.copy_and_change(rop.SETFIELD_RAW)
     self.emit_op(op)
コード例 #7
0
 def handle_write_barrier_setarrayitem(self, op):
     val = op.getarg(0)
     if val not in self.write_barrier_applied:
         v = op.getarg(2)
         if (isinstance(v, BoxPtr)
                 or (isinstance(v, ConstPtr)
                     and rgc.needs_write_barrier(v.value))):
             self.gen_write_barrier_array(val, op.getarg(1))
             #op = op.copy_and_change(rop.SET{ARRAYITEM,INTERIORFIELD}_RAW)
     self.newops.append(op)
コード例 #8
0
 def handle_write_barrier_setfield(self, op):
     val = op.getarg(0)
     if val not in self.write_barrier_applied:
         v = op.getarg(1)
         if (isinstance(v, BoxPtr)
                 or (isinstance(v, ConstPtr)
                     and rgc.needs_write_barrier(v.value))):
             self.gen_write_barrier(val)
             #op = op.copy_and_change(rop.SETFIELD_RAW)
     self.newops.append(op)