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

Function gen0f7

source/emulation/cpu/srcgen.cpp:6153–6272  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6151void OPCALL idiv16_mem16(struct CPU* cpu, struct Op* op);
6152void OPCALL idiv16_mem32(struct CPU* cpu, struct Op* op);
6153void gen0f7(struct GenData* data, struct Op* op) {
6154 char d[16];
6155
6156 itoa(op->data1, d, 16);
6157
6158 if (op->func == test16_reg) {
6159 if (inlineTestJump(data, op, sFLAGS_TEST16, "1"))
6160 return;
6161 out(data, "cpu->dst.u16 = ");
6162 out(data, r16(op->r1));
6163 out(data, "; cpu->src.u16 = 0x");
6164 out(data, d);
6165 out(data, "; cpu->result.u16 = cpu->dst.u16 & cpu->src.u16; cpu->lazyFlags = FLAGS_TEST16; CYCLES(1);");
6166 data->lazyFlags = sFLAGS_TEST16;
6167 } else if (op->func == test16_mem16) {
6168 if (inlineTestJump(data, op, sFLAGS_TEST16, "2"))
6169 return;
6170 out(data, "cpu->dst.u16 = readw(cpu->thread, ");
6171 out(data, getEaa16(op));
6172 out(data, "); cpu->src.u16 = 0x");
6173 out(data, d);
6174 out(data, "; cpu->result.u16 = cpu->dst.u16 & cpu->src.u16; cpu->lazyFlags = FLAGS_TEST16; CYCLES(2);");
6175 data->lazyFlags = sFLAGS_TEST16;
6176 } else if (op->func == test16_mem32) {
6177 if (inlineTestJump(data, op, sFLAGS_TEST16, "2"))
6178 return;
6179 out(data, "cpu->dst.u16 = readw(cpu->thread, ");
6180 out(data, getEaa32(op));
6181 out(data, "); cpu->src.u16 = 0x");
6182 out(data, d);
6183 out(data, "; cpu->result.u16 = cpu->dst.u16 & cpu->src.u16; cpu->lazyFlags = FLAGS_TEST16; CYCLES(2);");
6184 data->lazyFlags = sFLAGS_TEST16;
6185 } else if (op->func == not16_reg) {
6186 out(data, r16(op->r1));
6187 out(data, " = ~ ");
6188 out(data, r16(op->r1));
6189 out(data, "; CYCLES(1);");
6190 } else if (op->func == not16_mem16) {
6191 out(data, "eaa = ");
6192 out(data, getEaa16(op));
6193 out(data, "; writew(cpu->thread, eaa, ~readw(cpu->thread, eaa)); CYCLES(3);");
6194 } else if (op->func == not16_mem32) {
6195 out(data, "eaa = ");
6196 out(data, getEaa32(op));
6197 out(data, "; writew(cpu->thread, eaa, ~readw(cpu->thread, eaa)); CYCLES(3);");
6198 } else if (op->func == neg16_reg) {
6199 out(data, "cpu->dst.u16 = ");
6200 out(data, r16(op->r1));
6201 out(data, "; cpu->result.u16 = 0-cpu->dst.u16; ");
6202 out(data, r16(op->r1));
6203 out(data, " = cpu->result.u16; cpu->lazyFlags = FLAGS_NEG16; CYCLES(1);");
6204 data->lazyFlags = sFLAGS_NEG16;
6205 } else if (op->func == neg16_mem16) {
6206 out(data, "eaa = ");
6207 out(data, getEaa16(op));
6208 out(data, "; cpu->dst.u16 = readw(cpu->thread, eaa); cpu->result.u16 = 0-cpu->dst.u16; writew(cpu->thread, eaa, cpu->result.u16); cpu->lazyFlags = FLAGS_NEG16; CYCLES(3);");
6209 data->lazyFlags = sFLAGS_NEG16;
6210 } else if (op->func == neg16_mem32) {

Callers

nothing calls this directly

Calls 6

inlineTestJumpFunction · 0.85
r16Function · 0.85
getEaa16Function · 0.85
getEaa32Function · 0.85
kpanicFunction · 0.85
outFunction · 0.70

Tested by

no test coverage detected