Beispiel #1
0
 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
Beispiel #2
0
 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
Beispiel #3
0
 def bh_getarrayitem_gc_i(self, arraydescr, array, index):
     assert isinstance(arraydescr, Descr)
     return llimpl.do_getarrayitem_gc_int(array, index)
Beispiel #4
0
 def bh_getarrayitem_gc_i(self, arraydescr, array, index):
     assert isinstance(arraydescr, Descr)
     return llimpl.do_getarrayitem_gc_int(array, index)