@@ -1352,3 +1352,29 @@ class Armv7CpuInstructions(unittest.TestCase):
|
||||
def test_dmb(self):
|
||||
# This is a nop, ensure that the instruction exists
|
||||
self.assertTrue(True)
|
||||
|
||||
@itest_custom("vldmia r1, {d8, d9, d10}")
|
||||
def test_vldmia(self):
|
||||
self.cpu.stack_push(20)
|
||||
self.cpu.stack_push(21)
|
||||
self.cpu.stack_push(22)
|
||||
self.cpu.R1 = self.cpu.SP
|
||||
pre = self.cpu.R1
|
||||
self.cpu.execute()
|
||||
self.assertEqual(self.cpu.D8, 22)
|
||||
self.assertEqual(self.cpu.D9, 21)
|
||||
self.assertEqual(self.cpu.D10, 20)
|
||||
self.assertEqual(self.cpu.R1, pre)
|
||||
|
||||
@itest_custom("vldmia r1!, {d8, d9, d10}")
|
||||
def test_vldmia_wb(self):
|
||||
pre = self.cpu.SP
|
||||
self.cpu.stack_push(20)
|
||||
self.cpu.stack_push(21)
|
||||
self.cpu.stack_push(22)
|
||||
self.cpu.R1 = self.cpu.SP
|
||||
self.cpu.execute()
|
||||
self.assertEqual(self.cpu.D8, 22)
|
||||
self.assertEqual(self.cpu.D9, 21)
|
||||
self.assertEqual(self.cpu.D10, 20)
|
||||
self.assertEqual(self.cpu.R1, pre)
|
||||
|
||||
Reference in New Issue
Block a user