Arm add vldmia (#154)

* Add VLDMIA

* Add vldmia tests
This commit is contained in:
Mark Mossberg
2017-04-20 15:30:50 -04:00
committed by GitHub
parent 5ae5daa5c4
commit a52be7459d
2 changed files with 30 additions and 0 deletions
+26
View File
@@ -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)