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

Function testPushE32

source/test/testCPU.cpp:8238–8279  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

8236}
8237
8238void testPushE32() {
8239 for (int i = 0; i < 8; i++) {
8240 U8 rm = i | (6 << 3) | 0xC0;
8241 newInstructionWithRM(0xff, rm, 0);
8242 U32 value = 0x56781234;
8243 ESP -= 4;
8244 if (i == 4) {
8245 value = cpu->reg[i].u32;
8246 } else {
8247 cpu->reg[i].u32 = value;
8248 }
8249 memory->writed(cpu->seg[SS].address + ESP, 0xAAAAAAAA);
8250 memory->writed(cpu->seg[SS].address + ESP - 4, 0xCCCCCCCC);
8251 memory->writed(cpu->seg[SS].address + ESP - 8, 0xBBBBBBBB);
8252 runTestCPU();
8253 assertTrue(ESP == 4088);
8254 assertTrue(memory->readd(cpu->seg[SS].address + ESP) == value);
8255 assertTrue(memory->readd(cpu->seg[SS].address + ESP + 4) == 0xAAAAAAAA);
8256 assertTrue(memory->readd(cpu->seg[SS].address + ESP - 4) == 0xBBBBBBBB);
8257 }
8258
8259 U8 rm = (6 << 3);
8260 if (cpu->big)
8261 rm += 5;
8262 else
8263 rm += 6;
8264 newInstructionWithRM(0xff, rm, 0);
8265 pushCode32(200);
8266
8267 ESP -= 4;
8268 U32 value = 0x56781234;
8269 memory->writed(cpu->seg[DS].address + 200, value);
8270
8271 memory->writed(cpu->seg[SS].address + ESP, 0xAAAAAAAA);
8272 memory->writed(cpu->seg[SS].address + ESP - 4, 0xCCCCCCCC);
8273 memory->writed(cpu->seg[SS].address + ESP - 8, 0xBBBBBBBB);
8274 runTestCPU();
8275 assertTrue(ESP == 4088);
8276 assertTrue(memory->readd(cpu->seg[SS].address + ESP) == value);
8277 assertTrue(memory->readd(cpu->seg[SS].address + ESP + 4) == 0xAAAAAAAA);
8278 assertTrue(memory->readd(cpu->seg[SS].address + ESP - 4) == 0xBBBBBBBB);
8279}
8280
8281void testCallE16() {
8282 for (int i = 0; i < 8; i++) {

Callers 1

testGrp50x2ffFunction · 0.85

Calls 6

newInstructionWithRMFunction · 0.85
runTestCPUFunction · 0.85
assertTrueFunction · 0.85
pushCode32Function · 0.85
writedMethod · 0.45
readdMethod · 0.45

Tested by

no test coverage detected