Esempio n. 1
0
 def f(n):
     o = llop.extract_ushort(llgroup.HALFWORD, goffsets[n])
     p = llop.get_group_member(Ptr(S1), grpptr, o)
     p.x = 5
     for i in range(len(goffsets)):
         if i != n:
             o = llop.extract_ushort(llgroup.HALFWORD, goffsets[i])
             q = llop.get_group_member(Ptr(S1), grpptr, o)
             q.x = 666
     return p.x
Esempio n. 2
0
 def test_simple(self):
     self.build()
     grpptr = self.grpptr
     S1 = self.S1
     S2 = self.S2
     Ptr = lltype.Ptr
     assert llop.get_group_member(Ptr(S1), grpptr, self.g1a) == self.p1a
     assert llop.get_group_member(Ptr(S1), grpptr, self.g1b) == self.p1b
     assert llop.get_group_member(Ptr(S2), grpptr, self.g2a) == self.p2a
     assert llop.get_group_member(Ptr(S2), grpptr, self.g2b) == self.p2b
Esempio n. 3
0
 def test_simple(self):
     self.build()
     grpptr = self.grpptr
     S1 = self.S1
     S2 = self.S2
     Ptr = lltype.Ptr
     assert llop.get_group_member(Ptr(S1), grpptr, self.g1a) == self.p1a
     assert llop.get_group_member(Ptr(S1), grpptr, self.g1b) == self.p1b
     assert llop.get_group_member(Ptr(S2), grpptr, self.g2a) == self.p2a
     assert llop.get_group_member(Ptr(S2), grpptr, self.g2b) == self.p2b
Esempio n. 4
0
 def f():
     p = llop.get_group_member(lltype.Ptr(test.S1), grpptr, test.g1a)
     assert p == test.p1a
     p = llop.get_group_member(lltype.Ptr(test.S1), grpptr, test.g1b)
     assert p == test.p1b
     p = llop.get_group_member(lltype.Ptr(test.S2), grpptr, test.g2a)
     assert p == test.p2a
     p = llop.get_group_member(lltype.Ptr(test.S2), grpptr, test.g2b)
     assert p == test.p2b
     #
     p = llop.get_next_group_member(lltype.Ptr(test.S2), grpptr, test.g1a,
                                    llmemory.sizeof(test.S1))
     assert p == test.p2a
     p = llop.get_next_group_member(lltype.Ptr(test.S2), grpptr, test.g2a,
                                    llmemory.sizeof(test.S2))
     assert p == test.p2b
     p = llop.get_next_group_member(lltype.Ptr(test.S1), grpptr, test.g2b,
                                    llmemory.sizeof(test.S2))
     assert p == test.p1b
     #
     expected = [123, 456]
     for i in range(2):
         p = llop.get_group_member(lltype.Ptr(test.S1), grpptr, g1x[i])
         assert p.x == expected[i]
     #
     for i in range(2):
         s = llop.extract_ushort(HALFWORD, cslist[i])
         p = llop.get_group_member(lltype.Ptr(test.S1), grpptr, s)
         assert p == test.p1b
     assert cslist[0] & ~MASK == 0x45 << HALFSHIFT
     assert cslist[1] & ~MASK == 0x41 << HALFSHIFT
     assert cslist[0] >> HALFSHIFT == 0x45
     assert cslist[1] >> (HALFSHIFT + 1) == 0x41 >> 1
     #
     return 42
Esempio n. 5
0
 def f():
     p = llop.get_group_member(lltype.Ptr(test.S1), grpptr, test.g1a)
     assert p == test.p1a
     p = llop.get_group_member(lltype.Ptr(test.S1), grpptr, test.g1b)
     assert p == test.p1b
     p = llop.get_group_member(lltype.Ptr(test.S2), grpptr, test.g2a)
     assert p == test.p2a
     p = llop.get_group_member(lltype.Ptr(test.S2), grpptr, test.g2b)
     assert p == test.p2b
     #
     p = llop.get_next_group_member(lltype.Ptr(test.S2), grpptr,
                                    test.g1a, llmemory.sizeof(test.S1))
     assert p == test.p2a
     p = llop.get_next_group_member(lltype.Ptr(test.S2), grpptr,
                                    test.g2a, llmemory.sizeof(test.S2))
     assert p == test.p2b
     p = llop.get_next_group_member(lltype.Ptr(test.S1), grpptr,
                                    test.g2b, llmemory.sizeof(test.S2))
     assert p == test.p1b
     #
     expected = [123, 456]
     for i in range(2):
         p = llop.get_group_member(lltype.Ptr(test.S1), grpptr, g1x[i])
         assert p.x == expected[i]
     #
     for i in range(2):
         s = llop.extract_ushort(HALFWORD, cslist[i])
         p = llop.get_group_member(lltype.Ptr(test.S1), grpptr, s)
         assert p == test.p1b
     assert cslist[0] & ~MASK == 0x45 << HALFSHIFT
     assert cslist[1] & ~MASK == 0x41 << HALFSHIFT
     assert cslist[0] >> HALFSHIFT == 0x45
     assert cslist[1] >> (HALFSHIFT+1) == 0x41 >> 1
     #
     return 42
Esempio n. 6
0
 def get_varsize(self, typeid):
     res = llop.get_group_member(GCData.VARSIZE_TYPE_INFO_PTR,
                                 self.type_info_group_ptr,
                                 typeid)
     _check_valid_type_info_varsize(res)
     return res
Esempio n. 7
0
 def get(self, typeid):
     res = llop.get_group_member(GCData.TYPE_INFO_PTR,
                                 self.type_info_group_ptr,
                                 typeid)
     _check_valid_type_info(res)
     return res
Esempio n. 8
0
 def get_varsize(self, typeid):
     res = llop.get_group_member(GCData.VARSIZE_TYPE_INFO_PTR,
                                 self.type_info_group_ptr, typeid)
     _check_valid_type_info_varsize(res)
     return res
Esempio n. 9
0
 def get(self, typeid):
     res = llop.get_group_member(GCData.TYPE_INFO_PTR,
                                 self.type_info_group_ptr, typeid)
     _check_valid_type_info(res)
     return res