Lines Matching +full:gcc +full:- +full:48

28  * For 8-bit values; needed to fetch a one-byte value.  Byte order
35 * Inline functions or macros to extract possibly-unaligned big-endian
40 #include "diag-control.h"
43 * If we have versions of GCC or Clang that support an __attribute__
46 * label these functions with that attribute - we *know* it's undefined
50 * For GCC 4.9.0 and later, we use __attribute__((no_sanitize_undefined));
51 * pre-5.0 GCC doesn't have __has_attribute, and I'm not sure whether
52 * GCC or Clang first had __attribute__((no_sanitize(XXX)).
80 * XXX - are those all the x86 tests we need?
81 * XXX - are those the only 68k tests we need not to generated
83 * XXX - are there any tests we don't need, because some definitions are for
84 * compilers that also predefine the GCC symbols?
85 * XXX - do we need to test for both 32-bit and 64-bit versions of those
143 * loads, and this is GCC 2.0 or later or a compiler that claims to
144 * be GCC 2.0 or later, which we assume that mean we have
150 * the GCC manual doesn't appear to explicitly say that
151 * __attribute__((packed)) causes the compiler to generate unaligned-safe
158 * case on a little-endian platform, such as DEC's MIPS machines and
163 * at least some versions of GCC, when compiling for 64-bit SPARC,
166 * XXX - add other architectures and compilers as possible and
177 * to define unaligned_uint16_t as a 16-bit unaligned data type.
180 * useful only if that compiler could generate better code for PA-RISC
181 * or Itanium than would be generated by a bunch of shifts-and-ORs.
188 * XXX - what if the native C compiler doesn't support
211 return ((uint16_t)ntohs(((const unaligned_uint16_t *)(p))->val)); in EXTRACT_BE_U_2()
217 return ((int16_t)ntohs(((const unaligned_int16_t *)(p))->val)); in EXTRACT_BE_S_2()
223 return ((uint32_t)ntohl(((const unaligned_uint32_t *)(p))->val)); in EXTRACT_BE_U_4()
229 return ((int32_t)ntohl(((const unaligned_int32_t *)(p))->val)); in EXTRACT_BE_S_4()
235 return ((uint64_t)(((uint64_t)ntohl(((const unaligned_uint32_t *)(p) + 0)->val)) << 32 | in EXTRACT_BE_U_8()
236 ((uint64_t)ntohl(((const unaligned_uint32_t *)(p) + 1)->val)) << 0)); in EXTRACT_BE_U_8()
242 return ((int64_t)(((uint64_t)ntohl(((const unaligned_uint32_t *)(p) + 0)->val)) << 32 | in EXTRACT_BE_S_8()
243 ((uint64_t)ntohl(((const unaligned_uint32_t *)(p) + 1)->val)) << 0)); in EXTRACT_BE_S_8()
253 return ((uint32_t)ntohl(((const unaligned_uint32_t *)(p))->val)); in EXTRACT_IPV4_TO_HOST_ORDER()
258 * this isn't a GCC-compatible compiler, we don't have __attribute__,
260 * set to do unaligned loads, so do unaligned loads of big-endian
261 * quantities the hard way - fetch the bytes one at a time and
264 * XXX - ARM is a special case. ARMv1 through ARMv5 didn't suppory
292 ((uint64_t)(*((const uint8_t *)(p) + 1)) << 48) | \
301 ((uint64_t)(*((const uint8_t *)(p) + 1)) << 48) | \
327 * the magic number in pcap files and byte-order magic in pcapng
331 * XXX - on platforms that can do unaligned accesses, just cast and
372 * is not necessarily aligned on a 4-byte boundary, and provide the
387 * Non-power-of-2 sizes.
450 ((uint64_t)(((uint64_t)(*((const uint8_t *)(p) + 0)) << 48) | \
460 ((int64_t)(((uint64_t)(*((const uint8_t *)(p) + 0)) << 48) | \
468 ((uint64_t)(*((const uint8_t *)(p) + 0)) << 48) | \
477 * Macros to extract possibly-unaligned little-endian integral values.
478 * XXX - do loads on little-endian machines that support unaligned loads?
498 ((uint64_t)(*((const uint8_t *)(p) + 6)) << 48) | \
507 ((uint64_t)(*((const uint8_t *)(p) + 6)) << 48) | \
516 * Non-power-of-2 sizes.
541 ((uint64_t)(((uint64_t)(*((const uint8_t *)(p) + 6)) << 48) | \