Previous 199869 Revisions Next

r22945 Sunday 19th May, 2013 at 18:48:10 UTC by Oliver Stöneberg
unrolled modulo in {div|divu}_64x32_rem() and {mod|modu}_64x32() since it is apparently faster - this also gets rid of a duplicated div operation in {div|divu}_64x32_rem() / div*_64x32_rem() now call div*_64x32() (nw)
[src/emu]eminline.h

trunk/src/emu/eminline.h
r22944r22945
155155#ifndef div_64x32_rem
156156INLINE INT32 div_64x32_rem(INT64 a, INT32 b, INT32 *remainder)
157157{
158   *remainder = a % (INT64)b;
159   return a / (INT64)b;
158   INT32 res = div_64x32(a, b);
159   *remainder = a - ((INT64)b * res);
160   return res;
160161}
161162#endif
162163
r22944r22945
170171#ifndef divu_64x32_rem
171172INLINE UINT32 divu_64x32_rem(UINT64 a, UINT32 b, UINT32 *remainder)
172173{
173   *remainder = a % (UINT64)b;
174   return a / (UINT64)b;
174   UINT32 res = divu_64x32(a, b);
175   *remainder = a - ((UINT64)b * res);
176   return res;
175177}
176178#endif
177179
r22944r22945
212214#ifndef mod_64x32
213215INLINE INT32 mod_64x32(INT64 a, INT32 b)
214216{
215   return a % (INT64)b;
217   return a - (b * div_64x32(a, b));
216218}
217219#endif
218220
r22944r22945
225227#ifndef modu_64x32
226228INLINE UINT32 modu_64x32(UINT64 a, UINT32 b)
227229{
228   return a % (UINT64)b;
230   return a - (b * divu_64x32(a, b));
229231}
230232#endif
231233

Previous 199869 Revisions Next


© 1997-2024 The MAME Team