コード例 #1
0
ファイル: test_auto_store.py プロジェクト: rcrowther/Gravel
 def setUp(self):
     self.a = AutoStoreStack(arch['bytesize'], 3, 1)
     self.var = Var(
         "testVar",
         Loc.StackX64(1), 
         Type.Bit64
     )
     # mimic the allocation action
     # Will be slot 2
     freeSlot = self.a.findSlot()
     self.a._set(freeSlot, self.var)
コード例 #2
0
ファイル: tpl_autostore.py プロジェクト: rcrowther/Gravel
 def varStackCreate(self, name, tpe, priority):
     '''
     Create a var on the stack.
     return
         the allocated var
     ''' 
     slot = self.autoStack.findSlot()
     var = Var(
         name,
         Loc.StackX64(slot),
         tpe
     )   
     var.priority = priority
     self.autoStack._set(slot, var)
     return var
コード例 #3
0
 def test_stack_fail1(self):
     with self.assertRaises(Exception):
         Loc.StackX64(-3)
コード例 #4
0
 def test_stack(self):
     Loc.StackX64(7)
コード例 #5
0
 def test_stack(self):
     loc = Loc.StackX64(3)
     b = AccessAddress(loc)
     with self.assertRaises(AssertionError):
         self.assertEqual(b.result(), '[rbp-24]')
コード例 #6
0
 def test_stack_offset_register(self):
     loc = Loc.StackX64(3)
     b = AccessValue(loc)
     b.addOffset(8)
     b.addRegister('r12')
     self.assertEqual(b.result(), '[rbp-r12-32]')
コード例 #7
0
 def test_stack_offset(self):
     loc = Loc.StackX64(3)
     b = AccessValue(loc)
     b.addOffset(8)
     self.assertEqual(b.result(), '[rbp-32]')
コード例 #8
0
 def test_stack(self):
     loc = Loc.StackX64(3)
     b = AccessValue(loc)
     self.assertEqual(b.result(), '[rbp-24]')