14#if defined(_M_IX86) || defined(_M_AMD64)
15#define _UNALIGNED_ACCESS_ALLOWED 1
17#define _UNALIGNED_ACCESS_ALLOWED 0
20#if _UNALIGNED_ACCESS_ALLOWED
70 unsigned char* p1 = (
unsigned char*)
p;
71 return (
unsigned short)(p1[0] | (p1[1] << 8));
78 unsigned char* p1 = (
unsigned char*)
p;
79 return (((
unsigned long)p1[0] << 0) |
80 ((
unsigned long)p1[1] << 8) |
81 ((
unsigned long)p1[2] << 16) |
82 ((
unsigned long)p1[3] << 24));
89 unsigned char* p1 = (
unsigned char*)
p;
90 return (((
unsigned long long)p1[0] << 0) |
91 ((
unsigned long long)p1[1] << 8) |
92 ((
unsigned long long)p1[2] << 16) |
93 ((
unsigned long long)p1[3] << 24) |
94 ((
unsigned long long)p1[4] << 32) |
95 ((
unsigned long long)p1[5] << 40) |
96 ((
unsigned long long)p1[6] << 48) |
97 ((
unsigned long long)p1[7] << 56));
104 unsigned char* p1 = (
unsigned char*)
p;
105 p1[0] = (
unsigned char)(
val >> 0);
106 p1[1] = (
unsigned char)(
val >> 8);
113 unsigned char* p1 = (
unsigned char*)
p;
114 p1[0] = (
unsigned char)(
val >> 0);
115 p1[1] = (
unsigned char)(
val >> 8);
116 p1[2] = (
unsigned char)(
val >> 16);
117 p1[3] = (
unsigned char)(
val >> 24);
124 unsigned char* p1 = (
unsigned char*)
p;
125 p1[0] = (
unsigned char)(
val >> 0);
126 p1[1] = (
unsigned char)(
val >> 8);
127 p1[2] = (
unsigned char)(
val >> 16);
128 p1[3] = (
unsigned char)(
val >> 24);
129 p1[4] = (
unsigned char)(
val >> 32);
130 p1[5] = (
unsigned char)(
val >> 40);
131 p1[6] = (
unsigned char)(
val >> 48);
132 p1[7] = (
unsigned char)(
val >> 56);
138#define ReadUnalignedUlongPtr ReadUnalignedU64
139#define WriteUnalignedUlongPtr WriteUnalignedU64
141#define ReadUnalignedUlongPtr ReadUnalignedU32
142#define WriteUnalignedUlongPtr WriteUnalignedU32
__forceinline unsigned short ReadUnalignedU16(const unsigned short *p)
__forceinline void WriteUnalignedU64(unsigned long long *p, unsigned long long val)
__forceinline void WriteUnalignedU16(unsigned short *p, unsigned short val)
__forceinline unsigned long ReadUnalignedU32(const unsigned long *p)
__forceinline unsigned long long ReadUnalignedU64(const unsigned long long *p)
__forceinline void WriteUnalignedU32(unsigned long *p, unsigned long val)