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