32 #include "mem_primitives_lib.h" 64 value32 = value | (value << 8) | (value << 16) | (value << 24);
69 for (; count && ( (uintptr_t)dp & (
sizeof(uint32_t)-1) ); count--) {
87 *lp++ = value32; *lp++ = value32; *lp++ = value32; *lp++ = value32;
88 *lp++ = value32; *lp++ = value32; *lp++ = value32; *lp++ = value32;
89 *lp++ = value32; *lp++ = value32; *lp++ = value32; *lp++ = value32;
90 *lp++ = value32; *lp++ = value32; *lp++ = value32; *lp++ = value32;
94 case 15: *lp++ = value32;
95 case 14: *lp++ = value32;
96 case 13: *lp++ = value32;
97 case 12: *lp++ = value32;
98 case 11: *lp++ = value32;
99 case 10: *lp++ = value32;
100 case 9: *lp++ = value32;
101 case 8: *lp++ = value32;
103 case 7: *lp++ = value32;
104 case 6: *lp++ = value32;
105 case 5: *lp++ = value32;
106 case 4: *lp++ = value32;
107 case 3: *lp++ = value32;
108 case 2: *lp++ = value32;
109 case 1: *lp++ = value32;
121 count &= (
sizeof(uint32_t)-1);
126 for (; count; dp++, count--) {
157 *dp++ = value; *dp++ = value; *dp++ = value; *dp++ = value;
158 *dp++ = value; *dp++ = value; *dp++ = value; *dp++ = value;
159 *dp++ = value; *dp++ = value; *dp++ = value; *dp++ = value;
160 *dp++ = value; *dp++ = value; *dp++ = value; *dp++ = value;
164 case 15: *dp++ = value;
165 case 14: *dp++ = value;
166 case 13: *dp++ = value;
167 case 12: *dp++ = value;
168 case 11: *dp++ = value;
169 case 10: *dp++ = value;
170 case 9: *dp++ = value;
171 case 8: *dp++ = value;
173 case 7: *dp++ = value;
174 case 6: *dp++ = value;
175 case 5: *dp++ = value;
176 case 4: *dp++ = value;
177 case 3: *dp++ = value;
178 case 2: *dp++ = value;
179 case 1: *dp++ = value;
212 *dp++ = value; *dp++ = value; *dp++ = value; *dp++ = value;
213 *dp++ = value; *dp++ = value; *dp++ = value; *dp++ = value;
214 *dp++ = value; *dp++ = value; *dp++ = value; *dp++ = value;
215 *dp++ = value; *dp++ = value; *dp++ = value; *dp++ = value;
219 case 15: *dp++ = value;
220 case 14: *dp++ = value;
221 case 13: *dp++ = value;
222 case 12: *dp++ = value;
223 case 11: *dp++ = value;
224 case 10: *dp++ = value;
225 case 9: *dp++ = value;
226 case 8: *dp++ = value;
228 case 7: *dp++ = value;
229 case 6: *dp++ = value;
230 case 5: *dp++ = value;
231 case 4: *dp++ = value;
232 case 3: *dp++ = value;
233 case 2: *dp++ = value;
234 case 1: *dp++ = value;
258 #define wsize sizeof(uint32_t) 259 #define wmask (wsize - 1) 261 uint8_t *dp = (uint8_t*) dest;
262 const uint8_t *sp = (uint8_t*) src;
269 if ((uintptr_t)dp < (uintptr_t)sp) {
283 if ((tsp | (uintptr_t)dp) &
wmask) {
287 if ((tsp ^ (uintptr_t)dp) & wmask || len <
wsize) {
312 *(uint32_t *)dp = *(uint32_t *)sp;
351 if ((tsp | (uintptr_t)dp) &
wmask) {
353 if ((tsp ^ (uintptr_t)dp) & wmask || len <=
wsize) {
379 *(uint32_t *)dp = *(uint32_t *)sp;
414 const uint8_t *sp = src;
431 *dp++ = *sp++; *dp++ = *sp++; *dp++ = *sp++; *dp++ = *sp++;
432 *dp++ = *sp++; *dp++ = *sp++; *dp++ = *sp++; *dp++ = *sp++;
433 *dp++ = *sp++; *dp++ = *sp++; *dp++ = *sp++; *dp++ = *sp++;
434 *dp++ = *sp++; *dp++ = *sp++; *dp++ = *sp++; *dp++ = *sp++;
438 case 15: *dp++ = *sp++;
439 case 14: *dp++ = *sp++;
440 case 13: *dp++ = *sp++;
441 case 12: *dp++ = *sp++;
442 case 11: *dp++ = *sp++;
443 case 10: *dp++ = *sp++;
444 case 9: *dp++ = *sp++;
445 case 8: *dp++ = *sp++;
447 case 7: *dp++ = *sp++;
448 case 6: *dp++ = *sp++;
449 case 5: *dp++ = *sp++;
450 case 4: *dp++ = *sp++;
451 case 3: *dp++ = *sp++;
452 case 2: *dp++ = *sp++;
453 case 1: *dp++ = *sp++;
481 *--dp = *--sp; *--dp = *--sp; *--dp = *--sp; *--dp = *--sp;
482 *--dp = *--sp; *--dp = *--sp; *--dp = *--sp; *--dp = *--sp;
483 *--dp = *--sp; *--dp = *--sp; *--dp = *--sp; *--dp = *--sp;
484 *--dp = *--sp; *--dp = *--sp; *--dp = *--sp; *--dp = *--sp;
488 case 15: *--dp = *--sp;
489 case 14: *--dp = *--sp;
490 case 13: *--dp = *--sp;
491 case 12: *--dp = *--sp;
492 case 11: *--dp = *--sp;
493 case 10: *--dp = *--sp;
494 case 9: *--dp = *--sp;
495 case 8: *--dp = *--sp;
497 case 7: *--dp = *--sp;
498 case 6: *--dp = *--sp;
499 case 5: *--dp = *--sp;
500 case 4: *--dp = *--sp;
501 case 3: *--dp = *--sp;
502 case 2: *--dp = *--sp;
503 case 1: *--dp = *--sp;
528 const uint16_t *sp = src;
545 *dp++ = *sp++; *dp++ = *sp++; *dp++ = *sp++; *dp++ = *sp++;
546 *dp++ = *sp++; *dp++ = *sp++; *dp++ = *sp++; *dp++ = *sp++;
547 *dp++ = *sp++; *dp++ = *sp++; *dp++ = *sp++; *dp++ = *sp++;
548 *dp++ = *sp++; *dp++ = *sp++; *dp++ = *sp++; *dp++ = *sp++;
552 case 15: *dp++ = *sp++;
553 case 14: *dp++ = *sp++;
554 case 13: *dp++ = *sp++;
555 case 12: *dp++ = *sp++;
556 case 11: *dp++ = *sp++;
557 case 10: *dp++ = *sp++;
558 case 9: *dp++ = *sp++;
559 case 8: *dp++ = *sp++;
561 case 7: *dp++ = *sp++;
562 case 6: *dp++ = *sp++;
563 case 5: *dp++ = *sp++;
564 case 4: *dp++ = *sp++;
565 case 3: *dp++ = *sp++;
566 case 2: *dp++ = *sp++;
567 case 1: *dp++ = *sp++;
594 *--dp = *--sp; *--dp = *--sp; *--dp = *--sp; *--dp = *--sp;
595 *--dp = *--sp; *--dp = *--sp; *--dp = *--sp; *--dp = *--sp;
596 *--dp = *--sp; *--dp = *--sp; *--dp = *--sp; *--dp = *--sp;
597 *--dp = *--sp; *--dp = *--sp; *--dp = *--sp; *--dp = *--sp;
601 case 15: *--dp = *--sp;
602 case 14: *--dp = *--sp;
603 case 13: *--dp = *--sp;
604 case 12: *--dp = *--sp;
605 case 11: *--dp = *--sp;
606 case 10: *--dp = *--sp;
607 case 9: *--dp = *--sp;
608 case 8: *--dp = *--sp;
610 case 7: *--dp = *--sp;
611 case 6: *--dp = *--sp;
612 case 5: *--dp = *--sp;
613 case 4: *--dp = *--sp;
614 case 3: *--dp = *--sp;
615 case 2: *--dp = *--sp;
616 case 1: *--dp = *--sp;
641 const uint32_t *sp = src;
658 *dp++ = *sp++; *dp++ = *sp++; *dp++ = *sp++; *dp++ = *sp++;
659 *dp++ = *sp++; *dp++ = *sp++; *dp++ = *sp++; *dp++ = *sp++;
660 *dp++ = *sp++; *dp++ = *sp++; *dp++ = *sp++; *dp++ = *sp++;
661 *dp++ = *sp++; *dp++ = *sp++; *dp++ = *sp++; *dp++ = *sp++;
665 case 15: *dp++ = *sp++;
666 case 14: *dp++ = *sp++;
667 case 13: *dp++ = *sp++;
668 case 12: *dp++ = *sp++;
669 case 11: *dp++ = *sp++;
670 case 10: *dp++ = *sp++;
671 case 9: *dp++ = *sp++;
672 case 8: *dp++ = *sp++;
674 case 7: *dp++ = *sp++;
675 case 6: *dp++ = *sp++;
676 case 5: *dp++ = *sp++;
677 case 4: *dp++ = *sp++;
678 case 3: *dp++ = *sp++;
679 case 2: *dp++ = *sp++;
680 case 1: *dp++ = *sp++;
706 *--dp = *--sp; *--dp = *--sp; *--dp = *--sp; *--dp = *--sp;
707 *--dp = *--sp; *--dp = *--sp; *--dp = *--sp; *--dp = *--sp;
708 *--dp = *--sp; *--dp = *--sp; *--dp = *--sp; *--dp = *--sp;
709 *--dp = *--sp; *--dp = *--sp; *--dp = *--sp; *--dp = *--sp;
713 case 15: *--dp = *--sp;
714 case 14: *--dp = *--sp;
715 case 13: *--dp = *--sp;
716 case 12: *--dp = *--sp;
717 case 11: *--dp = *--sp;
718 case 10: *--dp = *--sp;
719 case 9: *--dp = *--sp;
720 case 8: *--dp = *--sp;
722 case 7: *--dp = *--sp;
723 case 6: *--dp = *--sp;
724 case 5: *--dp = *--sp;
725 case 4: *--dp = *--sp;
726 case 3: *--dp = *--sp;
727 case 2: *--dp = *--sp;
728 case 1: *--dp = *--sp;
void mem_prim_set32(uint32_t *dest, uint32_t len, uint32_t value)
Sets len uint32_t's starting at dest to the specified value.
void mem_prim_move8(uint8_t *dest, const uint8_t *src, uint32_t len)
Moves at most len of uint8_t's from src to dest.
void mem_prim_move32(uint32_t *dest, const uint32_t *src, uint32_t len)
Moves at most len of uint32_t's from src to dest.
void mem_prim_set(void *dest, uint32_t len, uint8_t value)
Sets len bytes starting at dest to the specified value.
void mem_prim_set16(uint16_t *dest, uint32_t len, uint16_t value)
Sets len uint16_t's starting at dest to the specified value.
void mem_prim_move(void *dest, const void *src, uint32_t len)
Moves at most len of bytes from src to dest.
void mem_prim_move16(uint16_t *dest, const uint16_t *src, uint32_t len)
Moves at most len uint16_t's from src to dest.