def do_getfield_gc(self, structbox, fielddescr): assert isinstance(fielddescr, Descr) struct = structbox.getref_base() if fielddescr.typeinfo == REF: return history.BoxPtr(llimpl.do_getfield_gc_ptr(struct, fielddescr.ofs)) elif fielddescr.typeinfo == INT: return history.BoxInt(llimpl.do_getfield_gc_int(struct, fielddescr.ofs, self.memo_cast)) elif fielddescr.typeinfo == FLOAT: return history.BoxFloat(llimpl.do_getfield_gc_float(struct, fielddescr.ofs)) else: raise NotImplementedError
def do_getfield_gc(self, structbox, fielddescr): assert isinstance(fielddescr, Descr) struct = structbox.getref_base() if fielddescr.typeinfo == REF: return history.BoxPtr( llimpl.do_getfield_gc_ptr(struct, fielddescr.ofs)) elif fielddescr.typeinfo == INT: return history.BoxInt( llimpl.do_getfield_gc_int(struct, fielddescr.ofs, self.memo_cast)) elif fielddescr.typeinfo == FLOAT: return history.BoxFloat( llimpl.do_getfield_gc_float(struct, fielddescr.ofs)) else: raise NotImplementedError
def bh_getfield_gc_f(self, struct, fielddescr): assert isinstance(fielddescr, Descr) return llimpl.do_getfield_gc_float(struct, fielddescr.ofs)