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

Function div16

source/emulation/cpu/normal/instructions.cpp:60–77  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

58}
59
60U32 div16(CPU* cpu, U16 src) {
61 U32 num = ((U32)DX << 16) | AX;
62
63 if (src==0) {
64 cpu->prepareException(EXCEPTION_DIVIDE, 0);
65 return 0;
66 }
67 U32 quo=num/src;
68 U16 rem=(U16)(num % src);
69 U16 quo16=(U16)quo;
70 if (quo!=(U32)quo16) {
71 cpu->prepareException(EXCEPTION_DIVIDE, 1);
72 return 0;
73 }
74 DX=rem;
75 AX=quo16;
76 return 1;
77}
78
79U32 idiv16(CPU* cpu, S16 src) {
80 S32 num = (S32)(((U32)DX << 16) | AX);

Callers 6

normal_divR16Function · 0.70
normal_divE16Function · 0.70
dynamic_divR16Method · 0.50
dynamic_divE16Method · 0.50
dynamic_idivR16Method · 0.50
dynamic_idivE16Method · 0.50

Calls 1

prepareExceptionMethod · 0.80

Tested by

no test coverage detected