def produce_into(self, builder, r): v, A, v_index, descr = self.field_descr(builder, r) while True: if r.random() < 0.3: w = ConstInt(r.random_integer()) else: w = r.choice(builder.intvars) value = w.getint() if rffi.cast(lltype.Signed, rffi.cast(A.OF, value)) == value: break builder.do(self.opnum, [v, v_index, w], descr)
def gen_guard(self, builder, r): v = r.choice(builder.intvars) if r.random() > 0.8: other = r.choice(builder.intvars) else: if r.random() < 0.75: value = v.getint() elif r.random() < 0.5: value = v.getint() ^ 1 else: value = r.random_integer() other = ConstInt(value) op = ResOperation(self.opnum, [v, other]) return op, (v.getint() == other.getint())