def do_getarrayitem_gc(self, arraybox, indexbox, arraydescr): assert isinstance(arraydescr, Descr) array = arraybox.getref_base() index = indexbox.getint() if arraydescr.typeinfo == REF: return history.BoxPtr(llimpl.do_getarrayitem_gc_ptr(array, index)) elif arraydescr.typeinfo == INT: return history.BoxInt(llimpl.do_getarrayitem_gc_int(array, index, self.memo_cast)) elif arraydescr.typeinfo == FLOAT: return history.BoxFloat(llimpl.do_getarrayitem_gc_float(array, index)) else: raise NotImplementedError
def do_getarrayitem_gc(self, arraybox, indexbox, arraydescr): assert isinstance(arraydescr, Descr) array = arraybox.getref_base() index = indexbox.getint() if arraydescr.typeinfo == REF: return history.BoxPtr(llimpl.do_getarrayitem_gc_ptr(array, index)) elif arraydescr.typeinfo == INT: return history.BoxInt( llimpl.do_getarrayitem_gc_int(array, index, self.memo_cast)) elif arraydescr.typeinfo == FLOAT: return history.BoxFloat( llimpl.do_getarrayitem_gc_float(array, index)) else: raise NotImplementedError
def bh_getarrayitem_gc_i(self, arraydescr, array, index): assert isinstance(arraydescr, Descr) return llimpl.do_getarrayitem_gc_int(array, index)