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

Function div32

source/emulation/cpu/normal/instructions.cpp:98–116  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

96}
97
98U32 div32(CPU* cpu, U32 src) {
99 U64 num = ((U64)EDX << 32) | EAX;
100
101 if (src==0) {
102 cpu->prepareException(EXCEPTION_DIVIDE, 0);
103 return 0;
104 }
105
106 U64 quo=num/src;
107 U32 rem=(U32)(num % src);
108 U32 quo32=(U32)quo;
109 if (quo!=(U64)quo32) {
110 cpu->prepareException(EXCEPTION_DIVIDE, 1);
111 return 0;
112 }
113 EDX=rem;
114 EAX=quo32;
115 return 1;
116}
117
118U32 idiv32(CPU* cpu, S32 src) {
119 S64 num = (S64)(((U64)EDX << 32) | EAX);

Callers 6

normal_divR32Function · 0.70
normal_divE32Function · 0.70
dynamic_divR32Method · 0.50
dynamic_divE32Method · 0.50
dynamic_idivR32Method · 0.50
dynamic_idivE32Method · 0.50

Calls 1

prepareExceptionMethod · 0.80

Tested by

no test coverage detected