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)
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)
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)
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)
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)
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)