#if !defined(__GNUC__) || defined(mc68020)

#define MOD(x,y) ((x)%(y))
#define MUL(x,y) ((x)*(y))

#else

STATIC inline LONG MOD(LONG x,LONG y)
{
  REGISTER LONG _res REG(d1);
  REGISTER APTR a6 REG(a6) = (APTR)cb->cb_UtilityBase;
  REGISTER LONG d0 REG(d0) = x;
  REGISTER LONG d1 REG(d1) = y;
  __asm __volatile ("jsr a6@(-150)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (d1)
  : "d0", "d1");
  return _res;
}

STATIC inline LONG MUL(LONG x,LONG y)
{
  REGISTER LONG _res REG(d0);
  REGISTER LONG d0 REG(d0) = x;
  REGISTER LONG d1 REG(d1) = y;
  __asm __volatile ("jbsr _mul32"
  : "=r" (_res)
  : "r" (d0), "r" (d1)
  : "d0", "d1", "a1");
  return _res;
}

#endif
