MCPcopy Create free account
hub / github.com/danoon2/Boxedwine / testPushE16

Function testPushE16

source/test/testCPU.cpp:8195–8236  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

8193}
8194
8195void testPushE16() {
8196 for (int i = 0; i < 8; i++) {
8197 U8 rm = i | (6 << 3) | 0xC0;
8198 newInstructionWithRM(0xff, rm, 0);
8199 U32 value = 0xDDDD1234;
8200 ESP -= 2;
8201 if (i == 4) {
8202 value = cpu->reg[i].u32;
8203 } else {
8204 cpu->reg[i].u32 = value;
8205 }
8206 memory->writew(cpu->seg[SS].address + ESP, 0xAAAA);
8207 memory->writew(cpu->seg[SS].address + ESP - 2, 0xCCCC);
8208 memory->writew(cpu->seg[SS].address + ESP - 4, 0xBBBB);
8209 runTestCPU();
8210 assertTrue(ESP == 4092);
8211 assertTrue(memory->readw(cpu->seg[SS].address + ESP) == (U16)value);
8212 assertTrue(memory->readw(cpu->seg[SS].address + ESP + 2) == 0xAAAA);
8213 assertTrue(memory->readw(cpu->seg[SS].address + ESP - 2) == 0xBBBB);
8214 }
8215
8216 U8 rm = (6 << 3);
8217 if (cpu->big)
8218 rm += 5;
8219 else
8220 rm += 6;
8221 newInstructionWithRM(0xff, rm, 0);
8222 pushCode16(200);
8223
8224 ESP -= 2;
8225 U16 value = 0x1234;
8226 memory->writew(cpu->seg[DS].address + 200, value);
8227
8228 memory->writew(cpu->seg[SS].address + ESP, 0xAAAA);
8229 memory->writew(cpu->seg[SS].address + ESP - 2, 0xCCCC);
8230 memory->writew(cpu->seg[SS].address + ESP - 4, 0xBBBB);
8231 runTestCPU();
8232 assertTrue(ESP == 4092);
8233 assertTrue(memory->readw(cpu->seg[SS].address + ESP) == (U16)value);
8234 assertTrue(memory->readw(cpu->seg[SS].address + ESP + 2) == 0xAAAA);
8235 assertTrue(memory->readw(cpu->seg[SS].address + ESP - 2) == 0xBBBB);
8236}
8237
8238void testPushE32() {
8239 for (int i = 0; i < 8; i++) {

Callers 1

testGrp50x0ffFunction · 0.85

Calls 6

newInstructionWithRMFunction · 0.85
runTestCPUFunction · 0.85
assertTrueFunction · 0.85
pushCode16Function · 0.85
writewMethod · 0.45
readwMethod · 0.45

Tested by

no test coverage detected