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)
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
def test_stack_fail1(self): with self.assertRaises(Exception): Loc.StackX64(-3)
def test_stack(self): Loc.StackX64(7)
def test_stack(self): loc = Loc.StackX64(3) b = AccessAddress(loc) with self.assertRaises(AssertionError): self.assertEqual(b.result(), '[rbp-24]')
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]')
def test_stack_offset(self): loc = Loc.StackX64(3) b = AccessValue(loc) b.addOffset(8) self.assertEqual(b.result(), '[rbp-32]')
def test_stack(self): loc = Loc.StackX64(3) b = AccessValue(loc) self.assertEqual(b.result(), '[rbp-24]')