| 5318 | } |
| 5319 | |
| 5320 | void testPushA32() { |
| 5321 | cpu->big = true; |
| 5322 | |
| 5323 | newInstruction(0x60, 0); |
| 5324 | memory->memset(cpu->seg[SS].address + ESP - 32, 0, 32); |
| 5325 | |
| 5326 | EAX = 0xFFFF1111; |
| 5327 | ECX = 0xEEEE2222; |
| 5328 | EDX = 0xDDDD3333; |
| 5329 | EBX = 0xCCCC4444; |
| 5330 | EBP = 0xBBBB6666; |
| 5331 | ESI = 0xAAAA7777; |
| 5332 | EDI = 0x99998888; |
| 5333 | |
| 5334 | U32 esp = ESP; |
| 5335 | runTestCPU(); |
| 5336 | U32 newEsp = esp - 32; |
| 5337 | assertTrue(ESP == newEsp); |
| 5338 | assertTrue(memory->readd(cpu->seg[SS].address + newEsp) == 0x99998888); |
| 5339 | assertTrue(memory->readd(cpu->seg[SS].address + newEsp + 4) == 0xAAAA7777); |
| 5340 | assertTrue(memory->readd(cpu->seg[SS].address + newEsp + 8) == 0xBBBB6666); |
| 5341 | assertTrue(memory->readd(cpu->seg[SS].address + newEsp + 12) == esp); |
| 5342 | assertTrue(memory->readd(cpu->seg[SS].address + newEsp + 16) == 0xCCCC4444); |
| 5343 | assertTrue(memory->readd(cpu->seg[SS].address + newEsp + 20) == 0xDDDD3333); |
| 5344 | assertTrue(memory->readd(cpu->seg[SS].address + newEsp + 24) == 0xEEEE2222); |
| 5345 | assertTrue(memory->readd(cpu->seg[SS].address + newEsp + 28) == 0xFFFF1111); |
| 5346 | } |
| 5347 | |
| 5348 | void testPopA16() { |
| 5349 | cpu->big = false; |
nothing calls this directly
no test coverage detected