23 #ifndef __CLRX_MEMACCESS_H__ 24 #define __CLRX_MEMACCESS_H__ 34 inline uint8_t
BEV(uint8_t t);
36 inline int8_t
BEV(int8_t t);
39 inline uint16_t
BEV(uint16_t t);
41 inline int16_t
BEV(int16_t t);
44 inline uint32_t
BEV(uint32_t t);
46 inline int32_t
BEV(int32_t t);
49 inline uint64_t
BEV(uint64_t t);
51 inline int64_t
BEV(int64_t t);
54 inline uint8_t
UBEV(
const uint8_t& t);
56 inline int8_t
UBEV(
const int8_t& t);
59 inline uint16_t
UBEV(
const uint16_t& t);
61 inline int16_t
UBEV(
const int16_t& t);
64 inline uint32_t
UBEV(
const uint32_t& t);
66 inline int32_t
UBEV(
const int32_t& t);
69 inline uint64_t
UBEV(
const uint64_t& t);
71 inline int64_t
UBEV(
const int64_t& t);
74 inline uint8_t
LEV(uint8_t t);
76 inline int8_t
LEV(int8_t t);
79 inline uint16_t
LEV(uint16_t t);
81 inline int16_t
LEV(int16_t t);
84 inline uint32_t
LEV(uint32_t t);
86 inline int32_t
LEV(int32_t t);
89 inline uint64_t
LEV(uint64_t t);
91 inline int64_t
LEV(int64_t t);
94 inline uint8_t
ULEV(
const uint8_t& t);
96 inline int8_t
ULEV(
const int8_t& t);
98 inline uint16_t
ULEV(
const uint16_t& t);
100 inline int16_t
ULEV(
const int16_t& t);
102 inline uint32_t
ULEV(
const uint32_t& t);
104 inline int32_t
ULEV(
const int32_t& t);
106 inline uint64_t
ULEV(
const uint64_t& t);
108 inline int64_t
ULEV(
const int64_t& t);
111 inline void SBEV(uint8_t& r, uint8_t v);
113 inline void SBEV(int8_t& r, int8_t v);
116 inline void SBEV(uint16_t& r, uint16_t v);
118 inline void SBEV(int16_t& r, int16_t v);
121 inline void SBEV(uint32_t& r, uint32_t v);
123 inline void SBEV(int32_t& r, int32_t v);
126 inline void SBEV(uint64_t& r, uint64_t v);
128 inline void SBEV(int64_t& r, int64_t v);
131 inline void SUBEV(uint16_t& r, uint16_t v);
133 inline void SUBEV(int16_t& r, int16_t v);
136 inline void SUBEV(uint32_t& r, uint32_t v);
138 inline void SUBEV(int32_t& r, int32_t v);
141 inline void SUBEV(uint64_t& r, uint64_t v);
143 inline void SUBEV(int64_t& r, int64_t v);
146 inline void SLEV(uint8_t& r, uint8_t v);
148 inline void SLEV(int8_t& r, int8_t v);
151 inline void SLEV(uint16_t& r, uint16_t v);
153 inline void SLEV(int16_t& r, int16_t v);
156 inline void SLEV(uint32_t& r, uint32_t v);
158 inline void SLEV(int32_t& r, int32_t v);
161 inline void SLEV(uint64_t& r, uint64_t v);
163 inline void SLEV(int64_t& r, int64_t v);
166 inline void SULEV(uint8_t& r, uint8_t v);
168 inline void SULEV(int8_t& r, int8_t v);
171 inline void SULEV(uint16_t& r, uint16_t v);
173 inline void SULEV(int16_t& r, int16_t v);
176 inline void SULEV(uint32_t& r, uint32_t v);
178 inline void SULEV(int32_t& r, int32_t v);
181 inline void SULEV(uint64_t& r, uint64_t v);
183 inline void SULEV(int64_t& r, int64_t v);
187 inline uint16_t
BSWAP16(uint16_t v)
189 {
return __builtin_bswap16(v); }
191 inline uint32_t
BSWAP32(uint32_t v)
192 {
return __builtin_bswap32(v); }
194 inline uint64_t
BSWAP64(uint64_t v)
195 {
return __builtin_bswap64(v); }
197 inline uint16_t
BSWAP16(uint16_t v)
199 {
return (v>>8)|(v<<8); }
202 {
return (v>>24)|((v&0xff0000)>>8)|((v&0xff00)<<8)|(v<<24); }
205 {
return (v>>56)|((v&0xff000000000000ULL)>>40)|((v&0xff0000000000ULL)>>24)|
206 ((v&0xff00000000ULL)>>8)|((v&0xff000000ULL)<<8)|((v&0xff0000ULL)<<24)|
207 ((v&0xff00ULL)<<40)|(v<<56); }
211 inline uint8_t
BEV(uint8_t t)
214 inline int8_t
BEV(int8_t t)
218 inline uint8_t
LEV(uint8_t t)
221 inline int8_t
LEV(int8_t t)
239 inline void SBEV(uint8_t& r, uint8_t v)
242 inline void SBEV(int8_t& r, int8_t v)
246 inline void SLEV(uint8_t& r, uint8_t v)
249 inline void SLEV(int8_t& r, int8_t v)
253 inline void SUBEV(uint8_t& r, uint8_t v)
256 inline void SUBEV(int8_t& r, int8_t v)
260 inline void SULEV(uint8_t& r, uint8_t v)
263 inline void SULEV(int8_t& r, int8_t v)
266 #ifdef HAVE_LITTLE_ENDIAN 269 inline uint16_t
BEV(uint16_t t)
272 inline int16_t
BEV(int16_t t)
276 inline uint32_t
BEV(uint32_t t)
279 inline int32_t
BEV(int32_t t)
283 inline uint64_t
BEV(uint64_t t)
286 inline int64_t
BEV(int64_t t)
289 # if defined(HAVE_ARCH_SPARCH) || defined(HAVE_ARCH_MIPS) || defined(HAVE_ARCH_IA64) 292 inline uint16_t
UBEV(
const uint16_t& t)
294 const uint8_t* tp = (
const uint8_t*)&t;
295 return tp[1] | (uint16_t(tp[0])<<8);
298 inline int16_t
UBEV(
const int16_t& t)
300 const uint8_t* tp = (
const uint8_t*)&t;
301 return tp[1] | (uint16_t(tp[0])<<8);
304 inline uint32_t
UBEV(
const uint32_t& t)
306 const uint8_t* tp = (
const uint8_t*)&t;
307 return tp[3] | (uint32_t(tp[2])<<8) | (uint32_t(tp[1])<<16) | (uint32_t(tp[0])<<24);
310 inline int32_t
UBEV(
const int32_t& t)
312 const uint8_t* tp = (
const uint8_t*)&t;
313 return tp[3] | (uint32_t(tp[2])<<8) | (uint32_t(tp[1])<<16) | (uint32_t(tp[0])<<24);
316 inline uint64_t
UBEV(
const uint64_t& t)
318 const uint8_t* tp = (
const uint8_t*)&t;
319 return tp[7] | (uint64_t(tp[6])<<8) | (uint64_t(tp[5])<<16) | (uint64_t(tp[4])<<24) |
320 (uint64_t(tp[3])<<32) | (uint64_t(tp[2])<<40) | (uint64_t(tp[1])<<48) |
321 (uint64_t(tp[0])<<56);
324 inline int64_t
UBEV(
const int64_t& t)
326 const uint8_t* tp = (
const uint8_t*)&t;
327 return tp[7] | (uint64_t(tp[6])<<8) | (uint64_t(tp[5])<<16) | (uint64_t(tp[4])<<24) |
328 (uint64_t(tp[3])<<32) | (uint64_t(tp[2])<<40) | (uint64_t(tp[1])<<48) |
329 (uint64_t(tp[0])<<56);
335 inline uint16_t
UBEV(
const uint16_t& t)
338 inline int16_t
UBEV(
const int16_t& t)
341 # ifdef HAVE_ARCH_ARM32 342 inline uint32_t
UBEV(
const uint32_t& t)
345 const uint16_t* tp = (
const uint16_t*)&t;
349 inline int32_t
UBEV(
const int32_t& t)
351 const uint16_t* tp = (
const uint16_t*)&t;
356 inline uint64_t
UBEV(
const uint64_t& t)
358 const uint16_t* tp = (
const uint16_t*)&t;
364 inline int64_t
UBEV(
const int64_t& t)
366 const uint16_t* tp = (
const uint16_t*)&t;
371 inline uint32_t
UBEV(
const uint32_t& t)
375 inline int32_t
UBEV(
const int32_t& t)
379 inline uint64_t
UBEV(
const uint64_t& t)
382 inline int64_t
UBEV(
const int64_t& t)
386 # endif // IA/SPARC/MIPS 389 inline uint16_t
LEV(uint16_t t)
392 inline int16_t
LEV(int16_t t)
396 inline uint32_t
LEV(uint32_t t)
399 inline int32_t
LEV(int32_t t)
403 inline uint64_t
LEV(uint64_t t)
406 inline int64_t
LEV(int64_t t)
409 # if defined(HAVE_ARCH_SPARCH) || defined(HAVE_ARCH_MIPS) || defined(HAVE_ARCH_IA64) 412 inline uint16_t
ULEV(
const uint16_t& t)
414 const uint8_t* tp = (
const uint8_t*)&t;
415 return tp[0] | (uint16_t(tp[1])<<8);
418 inline int16_t
ULEV(
const int16_t& t)
420 const uint8_t* tp = (
const uint8_t*)&t;
421 return tp[0] | (uint16_t(tp[1])<<8);
424 inline uint32_t
ULEV(
const uint32_t& t)
426 const uint8_t* tp = (
const uint8_t*)&t;
427 return tp[0] | (uint32_t(tp[1])<<8) | (uint32_t(tp[2])<<16) | (uint32_t(tp[3])<<24);
430 inline int32_t
ULEV(
const int32_t& t)
432 const uint8_t* tp = (
const uint8_t*)&t;
433 return tp[0] | (uint32_t(tp[1])<<8) | (uint32_t(tp[2])<<16) | (uint32_t(tp[3])<<24);
436 inline uint64_t
ULEV(
const uint64_t& t)
438 const uint8_t* tp = (
const uint8_t*)&t;
439 return tp[0] | (uint64_t(tp[1])<<8) | (uint64_t(tp[2])<<16) | (uint64_t(tp[3])<<24) |
440 (uint64_t(tp[4])<<32) | (uint64_t(tp[5])<<40) | (uint64_t(tp[6])<<48) |
441 (uint64_t(tp[7])<<56);
444 inline int64_t
ULEV(
const int64_t& t)
446 const uint8_t* tp = (
const uint8_t*)&t;
447 return tp[0] | (uint64_t(tp[1])<<8) | (uint64_t(tp[2])<<16) | (uint64_t(tp[3])<<24) |
448 (uint64_t(tp[4])<<32) | (uint64_t(tp[5])<<40) | (uint64_t(tp[6])<<48) |
449 (uint64_t(tp[7])<<56);
455 inline uint16_t
ULEV(
const uint16_t& t)
458 inline int16_t
ULEV(
const int16_t& t)
461 # ifdef HAVE_ARCH_ARM32 462 inline uint32_t
ULEV(
const uint32_t& t)
465 const uint16_t* tp = (
const uint16_t*)&t;
466 return tp[0] | (uint32_t(tp[1])<<16);
469 inline int32_t
ULEV(
const int32_t& t)
471 const uint16_t* tp = (
const uint16_t*)&t;
472 return tp[0] | (uint32_t(tp[1])<<16);
476 inline uint64_t
ULEV(
const uint64_t& t)
478 const uint16_t* tp = (
const uint16_t*)&t;
479 return tp[0] | (uint64_t(tp[1])<<16) | (uint64_t(tp[2])<<32) |
480 (uint64_t(tp[3])<<48);
484 inline int64_t
ULEV(
const int64_t& t)
486 const uint16_t* tp = (
const uint16_t*)&t;
487 return tp[0] | (uint64_t(tp[1])<<16) | (uint64_t(tp[2])<<32) |
488 (uint64_t(tp[3])<<48);
491 inline uint32_t
ULEV(
const uint32_t& t)
495 inline int32_t
ULEV(
const int32_t& t)
499 inline uint64_t
ULEV(
const uint64_t& t)
502 inline int64_t
ULEV(
const int64_t& t)
506 # endif // IA64/SPARC/MIPS 509 inline void SBEV(uint16_t& r, uint16_t v)
512 inline void SBEV(int16_t& r, int16_t v)
516 inline void SBEV(uint32_t& r, uint32_t v)
519 inline void SBEV(int32_t& r, int32_t v)
523 inline void SBEV(uint64_t& r, uint64_t v)
526 inline void SBEV(int64_t& r, int64_t v)
529 # if defined(HAVE_ARCH_SPARCH) || defined(HAVE_ARCH_MIPS) || defined(HAVE_ARCH_IA64) 532 inline void SUBEV(uint16_t& r, uint16_t v)
534 uint8_t* rp = (uint8_t*)&r;
535 rp[0] = uint8_t(v>>8);
539 inline void SUBEV(int16_t& r, int16_t v)
541 uint8_t* rp = (uint8_t*)&r;
542 rp[0] = uint8_t(v>>8);
546 inline void SUBEV(uint32_t& r, uint32_t v)
548 uint8_t* rp = (uint8_t*)&r;
549 rp[0] = uint8_t(v>>24);
550 rp[1] = uint8_t(v>>16);
551 rp[2] = uint8_t(v>>8);
555 inline void SUBEV(int32_t& r, int32_t v)
557 uint8_t* rp = (uint8_t*)&r;
558 rp[0] = uint8_t(v>>24);
559 rp[1] = uint8_t(v>>16);
560 rp[2] = uint8_t(v>>8);
564 inline void SUBEV(uint64_t& r, uint64_t v)
566 uint8_t* rp = (uint8_t*)&r;
567 rp[0] = uint8_t(v>>56);
568 rp[1] = uint8_t(v>>48);
569 rp[2] = uint8_t(v>>40);
570 rp[3] = uint8_t(v>>32);
571 rp[4] = uint8_t(v>>24);
572 rp[5] = uint8_t(v>>16);
573 rp[6] = uint8_t(v>>8);
577 inline void SUBEV(int64_t& r, int64_t v)
579 uint8_t* rp = (uint8_t*)&r;
580 rp[0] = uint8_t(v>>56);
581 rp[1] = uint8_t(v>>48);
582 rp[2] = uint8_t(v>>40);
583 rp[3] = uint8_t(v>>32);
584 rp[4] = uint8_t(v>>24);
585 rp[5] = uint8_t(v>>16);
586 rp[6] = uint8_t(v>>8);
593 inline void SUBEV(uint16_t& r, uint16_t v)
596 inline void SUBEV(int16_t& r, int16_t v)
599 # ifdef HAVE_ARCH_ARM32 600 inline void SUBEV(uint32_t& r, uint32_t v)
603 uint16_t* rp = (uint16_t*)&r;
604 rp[0] =
BSWAP16(uint16_t(v>>16));
608 inline void SUBEV(int32_t& r, int32_t v)
610 uint16_t* rp = (uint16_t*)&r;
611 rp[0] =
BSWAP16(uint16_t(v>>16));
616 inline void SUBEV(uint64_t& r, uint64_t v)
618 uint16_t* rp = (uint16_t*)&r;
619 rp[0] =
BSWAP16(uint16_t(v>>48));
620 rp[1] =
BSWAP16(uint16_t(v>>32));
621 rp[2] =
BSWAP16(uint16_t(v>>16));
625 inline void SUBEV(int64_t& r, int64_t v)
627 uint16_t* rp = (uint16_t*)&r;
628 rp[0] =
BSWAP16(uint16_t(v>>48));
629 rp[1] =
BSWAP16(uint16_t(v>>32));
630 rp[2] =
BSWAP16(uint16_t(v>>16));
634 inline void SUBEV(uint32_t& r, uint32_t v)
638 inline void SUBEV(int32_t& r, int32_t v)
642 inline void SUBEV(uint64_t& r, uint64_t v)
645 inline void SUBEV(int64_t& r, int64_t v)
649 # endif // IA64/MIPS/SPARC 652 inline void SLEV(uint16_t& r, uint16_t v)
655 inline void SLEV(int16_t& r, int16_t v)
659 inline void SLEV(uint32_t& r, uint32_t v)
662 inline void SLEV(int32_t& r, int32_t v)
666 inline void SLEV(uint64_t& r, uint64_t v)
669 inline void SLEV(int64_t& r, int64_t v)
672 # if defined(HAVE_ARCH_SPARCH) || defined(HAVE_ARCH_MIPS) || defined(HAVE_ARCH_IA64) 675 inline void SULEV(uint16_t& r, uint16_t v)
677 uint8_t* rp = (uint8_t*)&r;
679 rp[1] = uint8_t(v>>8);
682 inline void SULEV(int16_t& r, int16_t v)
684 uint8_t* rp = (uint8_t*)&r;
686 rp[1] = uint8_t(v>>8);
689 inline void SULEV(uint32_t& r, uint32_t v)
691 uint8_t* rp = (uint8_t*)&r;
693 rp[1] = uint8_t(v>>8);
694 rp[2] = uint8_t(v>>16);
695 rp[3] = uint8_t(v>>24);
698 inline void SULEV(int32_t& r, int32_t v)
700 uint8_t* rp = (uint8_t*)&r;
702 rp[1] = uint8_t(v>>8);
703 rp[2] = uint8_t(v>>16);
704 rp[3] = uint8_t(v>>24);
707 inline void SULEV(uint64_t& r, uint64_t v)
709 uint8_t* rp = (uint8_t*)&r;
711 rp[1] = uint8_t(v>>8);
712 rp[2] = uint8_t(v>>16);
713 rp[3] = uint8_t(v>>24);
714 rp[4] = uint8_t(v>>32);
715 rp[5] = uint8_t(v>>40);
716 rp[6] = uint8_t(v>>48);
717 rp[7] = uint8_t(v>>56);
720 inline void SULEV(int64_t& r, int64_t v)
722 uint8_t* rp = (uint8_t*)&r;
724 rp[1] = uint8_t(v>>8);
725 rp[2] = uint8_t(v>>16);
726 rp[3] = uint8_t(v>>24);
727 rp[4] = uint8_t(v>>32);
728 rp[5] = uint8_t(v>>40);
729 rp[6] = uint8_t(v>>48);
730 rp[7] = uint8_t(v>>56);
736 inline void SULEV(uint16_t& r, uint16_t v)
739 inline void SULEV(int16_t& r, int16_t v)
742 # ifdef HAVE_ARCH_ARM32 743 inline void SULEV(uint32_t& r, uint32_t v)
746 uint16_t* rp = (uint16_t*)&r;
748 rp[1] = uint16_t(v>>16);
751 inline void SULEV(int32_t& r, int32_t v)
753 uint16_t* rp = (uint16_t*)&r;
755 rp[1] = uint16_t(v>>16);
759 inline void SULEV(uint64_t& r, uint64_t v)
761 uint16_t* rp = (uint16_t*)&r;
763 rp[1] = uint16_t(v>>16);
764 rp[2] = uint16_t(v>>32);
765 rp[3] = uint16_t(v>>48);
768 inline void SULEV(int64_t& r, int64_t v)
770 uint16_t* rp = (uint16_t*)&r;
772 rp[1] = uint16_t(v>>16);
773 rp[2] = uint16_t(v>>32);
774 rp[3] = uint16_t(v>>48);
777 inline void SULEV(uint32_t& r, uint32_t v)
781 inline void SULEV(int32_t& r, int32_t v)
785 inline void SULEV(uint64_t& r, uint64_t v)
788 inline void SULEV(int64_t& r, int64_t v)
792 # endif // IA64/MIPS/SPARC 797 inline uint16_t
BEV(uint16_t t)
800 inline int16_t
BEV(int16_t t)
804 inline uint32_t
BEV(uint32_t t)
807 inline int32_t
BEV(int32_t t)
811 inline uint64_t
BEV(uint64_t t)
814 inline int64_t
BEV(int64_t t)
817 # if defined(HAVE_ARCH_SPARCH) || defined(HAVE_ARCH_MIPS) || defined(HAVE_ARCH_IA64) 820 inline uint16_t
UBEV(
const uint16_t& t)
822 const uint8_t* tp = (
const uint8_t*)&t;
823 return tp[1] | (uint16_t(tp[0])<<8);
826 inline int16_t
UBEV(
const int16_t& t)
828 const uint8_t* tp = (
const uint8_t*)&t;
829 return tp[1] | (uint16_t(tp[0])<<8);
832 inline uint32_t
UBEV(
const uint32_t& t)
834 const uint8_t* tp = (
const uint8_t*)&t;
835 return tp[3] | (uint32_t(tp[2])<<8) | (uint32_t(tp[1])<<16) | (uint32_t(tp[0])<<24);
838 inline int32_t
UBEV(
const int32_t& t)
840 const uint8_t* tp = (
const uint8_t*)&t;
841 return tp[3] | (uint32_t(tp[2])<<8) | (uint32_t(tp[1])<<16) | (uint32_t(tp[0])<<24);
844 inline uint64_t
UBEV(
const uint64_t& t)
846 const uint8_t* tp = (
const uint8_t*)&t;
847 return tp[7] | (uint64_t(tp[6])<<8) | (uint64_t(tp[5])<<16) | (uint64_t(tp[4])<<24) |
848 (uint64_t(tp[3])<<32) | (uint64_t(tp[2])<<40) | (uint64_t(tp[1])<<48) |
849 (uint64_t(tp[0])<<56);
852 inline int64_t
UBEV(
const int64_t& t)
854 const uint8_t* tp = (
const uint8_t*)&t;
855 return tp[7] | (uint64_t(tp[6])<<8) | (uint64_t(tp[5])<<16) | (uint64_t(tp[4])<<24) |
856 (uint64_t(tp[3])<<32) | (uint64_t(tp[2])<<40) | (uint64_t(tp[1])<<48) |
857 (uint64_t(tp[0])<<56);
863 inline uint16_t
UBEV(
const uint16_t& t)
866 inline int16_t
UBEV(
const int16_t& t)
869 # ifdef HAVE_ARCH_ARM32 870 inline uint32_t
UBEV(
const uint32_t& t)
873 const uint16_t* tp = (
const uint16_t*)&t;
874 return tp[1] | (uint32_t(tp[0])<<16);
877 inline int32_t
UBEV(
const int32_t& t)
879 const uint16_t* tp = (
const uint16_t*)&t;
880 return tp[1] | (uint32_t(tp[0])<<16);
884 inline uint64_t
UBEV(
const uint64_t& t)
886 const uint16_t* tp = (
const uint16_t*)&t;
887 return tp[3] | (uint64_t(tp[2])<<16) | (uint64_t(tp[1])<<32) |
888 (uint64_t(tp[0])<<48);
892 inline int64_t
UBEV(
const int64_t& t)
894 const uint16_t* tp = (
const uint16_t*)&t;
895 return tp[3] | (uint64_t(tp[2])<<16) | (uint64_t(tp[1])<<32) |
896 (uint64_t(tp[0])<<48);
899 inline uint32_t
UBEV(
const uint32_t& t)
903 inline int32_t
UBEV(
const int32_t& t)
907 inline uint64_t
UBEV(
const uint64_t& t)
910 inline int64_t
UBEV(
const int64_t& t)
914 # endif // IA64/MIPS/SPARC 917 inline uint16_t
LEV(uint16_t t)
920 inline int16_t
LEV(int16_t t)
924 inline uint32_t
LEV(uint32_t t)
927 inline int32_t
LEV(int32_t t)
931 inline uint64_t
LEV(uint64_t t)
934 inline int64_t
LEV(int64_t t)
937 # if defined(HAVE_ARCH_SPARCH) || defined(HAVE_ARCH_MIPS) || defined(HAVE_ARCH_IA64) 940 inline uint16_t
ULEV(
const uint16_t& t)
942 const uint8_t* tp = (
const uint8_t*)&t;
943 return tp[0] | (uint16_t(tp[1])<<8);
946 inline int16_t
ULEV(
const int16_t& t)
948 const uint8_t* tp = (
const uint8_t*)&t;
949 return tp[0] | (uint16_t(tp[1])<<8);
951 inline uint32_t
ULEV(
const uint32_t& t)
953 const uint8_t* tp = (
const uint8_t*)&t;
954 return tp[0] | (uint32_t(tp[1])<<8) | (uint32_t(tp[2])<<16) | (uint32_t(tp[3])<<24);
957 inline int32_t
ULEV(
const int32_t& t)
959 const uint8_t* tp = (
const uint8_t*)&t;
960 return tp[0] | (uint32_t(tp[1])<<8) | (uint32_t(tp[2])<<16) | (uint32_t(tp[3])<<24);
963 inline uint64_t
ULEV(
const uint64_t& t)
965 const uint8_t* tp = (
const uint8_t*)&t;
966 return tp[0] | (uint64_t(tp[1])<<8) | (uint64_t(tp[2])<<16) | (uint64_t(tp[3])<<24) |
967 (uint64_t(tp[4])<<32) | (uint64_t(tp[5])<<40) | (uint64_t(tp[6])<<48) |
968 (uint64_t(tp[7])<<56);
971 inline int64_t
ULEV(
const int64_t& t)
973 const uint8_t* tp = (
const uint8_t*)&t;
974 return tp[0] | (uint64_t(tp[1])<<8) | (uint64_t(tp[2])<<16) | (uint64_t(tp[3])<<24) |
975 (uint64_t(tp[4])<<32) | (uint64_t(tp[5])<<40) | (uint64_t(tp[6])<<48) |
976 (uint64_t(tp[7])<<56);
982 inline uint16_t
ULEV(
const uint16_t& t)
985 inline int16_t
ULEV(
const int16_t& t)
988 # ifdef HAVE_ARCH_ARM32 989 inline uint32_t
ULEV(
const uint32_t& t)
992 const uint16_t* tp = (
const uint16_t*)&t;
996 inline int32_t
ULEV(
const int32_t& t)
998 const uint16_t* tp = (
const uint16_t*)&t;
1003 inline uint64_t
ULEV(
const uint64_t& t)
1005 const uint16_t* tp = (
const uint16_t*)&t;
1011 inline int64_t
ULEV(
const int64_t& t)
1013 const uint16_t* tp = (
const uint16_t*)&t;
1018 inline uint32_t
ULEV(
const uint32_t& t)
1022 inline int32_t
ULEV(
const int32_t& t)
1026 inline uint64_t
ULEV(
const uint64_t& t)
1029 inline int64_t
ULEV(
const int64_t& t)
1033 # endif // IA64/MIPS/SPARC 1036 inline void SBEV(uint16_t& r, uint16_t v)
1039 inline void SBEV(int16_t& r, int16_t v)
1043 inline void SBEV(uint32_t& r, uint32_t v)
1046 inline void SBEV(int32_t& r, int32_t v)
1050 inline void SBEV(uint64_t& r, uint64_t v)
1053 inline void SBEV(int64_t& r, int64_t v)
1056 # if defined(HAVE_ARCH_SPARCH) || defined(HAVE_ARCH_MIPS) || defined(HAVE_ARCH_IA64) 1059 inline void SUBEV(uint16_t& r, uint16_t v)
1061 uint8_t* rp = (uint8_t*)&r;
1063 rp[0] = uint8_t(v>>8);
1066 inline void SUBEV(int16_t& r, int16_t v)
1068 uint8_t* rp = (uint8_t*)&r;
1070 rp[0] = uint8_t(v>>8);
1073 inline void SUBEV(uint32_t& r, uint32_t v)
1075 uint8_t* rp = (uint8_t*)&r;
1077 rp[2] = uint8_t(v>>8);
1078 rp[1] = uint8_t(v>>16);
1079 rp[0] = uint8_t(v>>24);
1082 inline void SUBEV(int32_t& r, int32_t v)
1084 uint8_t* rp = (uint8_t*)&r;
1086 rp[2] = uint8_t(v>>8);
1087 rp[1] = uint8_t(v>>16);
1088 rp[0] = uint8_t(v>>24);
1091 inline void SUBEV(uint64_t& r, uint64_t v)
1093 uint8_t* rp = (uint8_t*)&r;
1095 rp[6] = uint8_t(v>>8);
1096 rp[5] = uint8_t(v>>16);
1097 rp[4] = uint8_t(v>>24);
1098 rp[3] = uint8_t(v>>32);
1099 rp[2] = uint8_t(v>>40);
1100 rp[1] = uint8_t(v>>48);
1101 rp[0] = uint8_t(v>>56);
1104 inline void SUBEV(int64_t& r, int64_t v)
1106 uint8_t* rp = (uint8_t*)&r;
1108 rp[6] = uint8_t(v>>8);
1109 rp[5] = uint8_t(v>>16);
1110 rp[4] = uint8_t(v>>24);
1111 rp[3] = uint8_t(v>>32);
1112 rp[2] = uint8_t(v>>40);
1113 rp[1] = uint8_t(v>>48);
1114 rp[0] = uint8_t(v>>56);
1120 inline void SUBEV(uint16_t& r, uint16_t v)
1123 inline void SUBEV(int16_t& r, int16_t v)
1126 # ifdef HAVE_ARCH_ARM32 1127 inline void SUBEV(uint32_t& r, uint32_t v)
1130 uint16_t* rp = (uint16_t*)&r;
1131 rp[1] = uint16_t(v);
1132 rp[0] = uint16_t(v>>16);
1135 inline void SUBEV(int32_t& r, int32_t v)
1137 uint16_t* rp = (uint16_t*)&r;
1138 rp[1] = uint16_t(v);
1139 rp[0] = uint16_t(v>>16);
1143 inline void SUBEV(uint64_t& r, uint64_t v)
1145 uint16_t* rp = (uint16_t*)&r;
1146 rp[3] = uint16_t(v);
1147 rp[2] = uint16_t(v>>16);
1148 rp[1] = uint16_t(v>>32);
1149 rp[0] = uint16_t(v>>48);
1152 inline void SUBEV(int64_t& r, int64_t v)
1154 uint16_t* rp = (uint16_t*)&r;
1155 rp[3] = uint16_t(v);
1156 rp[2] = uint16_t(v>>16);
1157 rp[1] = uint16_t(v>>32);
1158 rp[0] = uint16_t(v>>48);
1161 inline void SUBEV(uint32_t& r, uint32_t v)
1165 inline void SUBEV(int32_t& r, int32_t v)
1169 inline void SUBEV(uint64_t& r, uint64_t v)
1172 inline void SUBEV(int64_t& r, int64_t v)
1176 # endif // IA64/MIPS/SPARC 1179 inline void SLEV(uint16_t& r, uint16_t v)
1182 inline void SLEV(int16_t& r, int16_t v)
1186 inline void SLEV(uint32_t& r, uint32_t v)
1189 inline void SLEV(int32_t& r, int32_t v)
1193 inline void SLEV(uint64_t& r, uint64_t v)
1196 inline void SLEV(int64_t& r, int64_t v)
1199 # if defined(HAVE_ARCH_SPARCH) || defined(HAVE_ARCH_MIPS) || defined(HAVE_ARCH_IA64) 1202 inline void SULEV(uint16_t& r, uint16_t v)
1204 uint8_t* rp = (uint8_t*)&r;
1205 rp[1] = uint8_t(v>>8);
1209 inline void SULEV(int16_t& r, int16_t v)
1211 uint8_t* rp = (uint8_t*)&r;
1212 rp[1] = uint8_t(v>>8);
1216 inline void SULEV(uint32_t& r, uint32_t v)
1218 uint8_t* rp = (uint8_t*)&r;
1219 rp[3] = uint8_t(v>>24);
1220 rp[2] = uint8_t(v>>16);
1221 rp[1] = uint8_t(v>>8);
1225 inline void SULEV(int32_t& r, int32_t v)
1227 uint8_t* rp = (uint8_t*)&r;
1228 rp[3] = uint8_t(v>>24);
1229 rp[2] = uint8_t(v>>16);
1230 rp[1] = uint8_t(v>>8);
1234 inline void SULEV(uint64_t& r, uint64_t v)
1236 uint8_t* rp = (uint8_t*)&r;
1237 rp[7] = uint8_t(v>>56);
1238 rp[6] = uint8_t(v>>48);
1239 rp[5] = uint8_t(v>>40);
1240 rp[4] = uint8_t(v>>32);
1241 rp[3] = uint8_t(v>>24);
1242 rp[2] = uint8_t(v>>16);
1243 rp[1] = uint8_t(v>>8);
1247 inline void SULEV(int64_t& r, int64_t v)
1249 uint8_t* rp = (uint8_t*)&r;
1250 rp[7] = uint8_t(v>>56);
1251 rp[6] = uint8_t(v>>48);
1252 rp[5] = uint8_t(v>>40);
1253 rp[4] = uint8_t(v>>32);
1254 rp[3] = uint8_t(v>>24);
1255 rp[2] = uint8_t(v>>16);
1256 rp[1] = uint8_t(v>>8);
1263 inline void SULEV(uint16_t& r, uint16_t v)
1266 inline void SULEV(int16_t& r, int16_t v)
1269 # ifdef HAVE_ARCH_ARM32 1270 inline void SULEV(uint32_t& r, uint32_t v)
1273 uint16_t* rp = (uint16_t*)&r;
1274 rp[1] =
BSWAP16(uint16_t(v>>16));
1278 inline void SULEV(int32_t& r, int32_t v)
1280 uint16_t* rp = (uint16_t*)&r;
1281 rp[1] =
BSWAP16(uint16_t(v>>16));
1286 inline void SULEV(uint64_t& r, uint64_t v)
1288 uint16_t* rp = (uint16_t*)&r;
1289 rp[3] =
BSWAP16(uint16_t(v>>48));
1290 rp[2] =
BSWAP16(uint16_t(v>>32));
1291 rp[1] =
BSWAP16(uint16_t(v>>16));
1295 inline void SULEV(int64_t& r, int64_t v)
1297 uint16_t* rp = (uint16_t*)&r;
1298 rp[3] =
BSWAP16(uint16_t(v>>48));
1299 rp[2] =
BSWAP16(uint16_t(v>>32));
1300 rp[1] =
BSWAP16(uint16_t(v>>16));
1304 inline void SULEV(uint32_t& r, uint32_t v)
1308 inline void SULEV(int32_t& r, int32_t v)
1312 inline void SULEV(uint64_t& r, uint64_t v)
1315 inline void SULEV(int64_t& r, int64_t v)
1319 # endif // IA64/MIPS/SPARC uint8_t UBEV(const uint8_t &t)
convert from/to big endian value from unaligned memory
uint8_t LEV(uint8_t t)
convert from/to little endian value
Definition: MemAccess.h:218
uint16_t BSWAP16(uint16_t v)
BSWAP 16-bit.
Definition: MemAccess.h:198
uint8_t BEV(uint8_t t)
convert from/to big endian value
Definition: MemAccess.h:211
void SUBEV(uint16_t &r, uint16_t v)
save from/to big endian value to unaligned memory
Definition: MemAccess.h:1059
uint32_t BSWAP32(uint32_t v)
BSWAP 32-bit.
Definition: MemAccess.h:201
main namespace
Definition: AsmDefs.h:38
uint64_t BSWAP64(uint64_t v)
BSWAP 64-bit.
Definition: MemAccess.h:204
void SLEV(uint8_t &r, uint8_t v)
save from/to little endian value
Definition: MemAccess.h:246
void SBEV(uint8_t &r, uint8_t v)
save from/to big endian value
Definition: MemAccess.h:239
void SULEV(uint8_t &r, uint8_t v)
save from/to little endian value to unaligned memory
Definition: MemAccess.h:260
uint8_t ULEV(const uint8_t &t)
convert from/to little endian value from unaligned memory