misc.c 971 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /*
  2. * rarely used EEPROM code
  3. * (C) notaz, 2006-2008
  4. *
  5. * This work is licensed under the terms of MAME license.
  6. * See COPYING file in the top-level directory.
  7. */
  8. #include "pico_int.h"
  9. #ifndef _ASM_MISC_C
  10. PICO_INTERNAL_ASM void memcpy16bswap(unsigned short *dest, void *src, int count)
  11. {
  12. unsigned char *src_ = src;
  13. for (; count; count--, src_ += 2)
  14. *dest++ = (src_[0] << 8) | src_[1];
  15. }
  16. #ifndef _ASM_MISC_C_AMIPS
  17. PICO_INTERNAL_ASM void memset32(void *dest_in, int c, int count)
  18. {
  19. int *dest = dest_in;
  20. for (; count >= 8; count -= 8, dest += 8)
  21. dest[0] = dest[1] = dest[2] = dest[3] =
  22. dest[4] = dest[5] = dest[6] = dest[7] = c;
  23. switch (count) {
  24. case 7: *dest++ = c;
  25. case 6: *dest++ = c;
  26. case 5: *dest++ = c;
  27. case 4: *dest++ = c;
  28. case 3: *dest++ = c;
  29. case 2: *dest++ = c;
  30. case 1: *dest++ = c;
  31. }
  32. }
  33. void memset32_uncached(int *dest, int c, int count) { memset32(dest, c, count); }
  34. #endif
  35. #endif