Overview
Comment: | Add OF_BSWAP{16,32,64}_CONST[_IF_{BE,LE}]. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
68fb0166a70499b7ae6840fa7ae12a82 |
User & Date: | js on 2009-11-29 01:59:30 |
Other Links: | manifest | tags |
Context
2009-11-29
| ||
02:33 | Add ARMv6 inline assembly. Tested on iPhone. check-in: e5d734d1a7 user: js tags: trunk | |
01:59 | Add OF_BSWAP{16,32,64}_CONST[_IF_{BE,LE}]. check-in: 68fb0166a7 user: js tags: trunk | |
2009-11-28
| ||
20:48 | Add -[removeObject:] and -[removeObjectIdenticalTo:] to OFMutableArray. check-in: bd9f5d90ae user: js tags: trunk | |
Changes
Modified src/OFMacros.h from [bbd07aebab] to [f063d53bfe].
︙ | ︙ | |||
43 44 45 46 47 48 49 50 51 52 53 54 55 56 | #elif defined(__i386__) #define OF_X86_ASM #elif defined(__ppc__) || defined(__PPC__) #define OF_PPC_ASM #endif #endif static OF_INLINE uint16_t OF_BSWAP16(uint16_t i) { #if defined(OF_X86_ASM) || defined(OF_AMD64_ASM) asm("xchgb %h0, %b0" : "=Q"(i) : "Q"(i)); #elif defined(OF_PPC_ASM) asm("lhbrx %0, 0, %1" : "=r"(i) : "r"(&i), "m"(i)); | > > > > > > > > > > > > > > > > > > | 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | #elif defined(__i386__) #define OF_X86_ASM #elif defined(__ppc__) || defined(__PPC__) #define OF_PPC_ASM #endif #endif #define OF_BSWAP16_CONST(i) \ (((uint16_t)i & UINT16_C(0xFF00)) >> 8 | \ ((uint16_t)i & UINT16_C(0x00FF)) << 8) #define OF_BSWAP32_CONST(i) \ (((uint32_t)i & UINT32_C(0xFF000000)) >> 24 | \ ((uint32_t)i & UINT32_C(0x00FF0000)) >> 8 | \ ((uint32_t)i & UINT32_C(0x0000FF00)) << 8 | \ ((uint32_t)i & UINT32_C(0x000000FF)) << 24) #define OF_BSWAP64_CONST(i) \ (((uint64_t)i & UINT64_C(0xFF00000000000000)) >> 56 | \ ((uint64_t)i & UINT64_C(0x00FF000000000000)) >> 40 | \ ((uint64_t)i & UINT64_C(0x0000FF0000000000)) >> 24 | \ ((uint64_t)i & UINT64_C(0x000000FF00000000)) >> 8 | \ ((uint64_t)i & UINT64_C(0x00000000FF000000)) << 8 | \ ((uint64_t)i & UINT64_C(0x0000000000FF0000)) << 24 | \ ((uint64_t)i & UINT64_C(0x000000000000FF00)) << 40 | \ ((uint64_t)i & UINT64_C(0x00000000000000FF)) << 56) static OF_INLINE uint16_t OF_BSWAP16(uint16_t i) { #if defined(OF_X86_ASM) || defined(OF_AMD64_ASM) asm("xchgb %h0, %b0" : "=Q"(i) : "Q"(i)); #elif defined(OF_PPC_ASM) asm("lhbrx %0, 0, %1" : "=r"(i) : "r"(&i), "m"(i)); |
︙ | ︙ | |||
98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 | while (len--) { *buf = OF_BSWAP32(*buf); buf++; } } #ifdef OF_BIG_ENDIAN #define OF_BSWAP16_IF_BE(i) OF_BSWAP16(i) #define OF_BSWAP32_IF_BE(i) OF_BSWAP32(i) #define OF_BSWAP64_IF_BE(i) OF_BSWAP64(i) #define OF_BSWAP16_IF_LE(i) i #define OF_BSWAP32_IF_LE(i) i #define OF_BSWAP64_IF_LE(i) i #define OF_BSWAP32_V_IF_BE(buf, len) OF_BSWAP32_V(buf, len) #else #define OF_BSWAP16_IF_BE(i) i #define OF_BSWAP32_IF_BE(i) i #define OF_BSWAP64_IF_BE(i) i #define OF_BSWAP16_IF_LE(i) OF_BSWAP16(i) #define OF_BSWAP32_IF_LE(i) OF_BSWAP32(i) #define OF_BSWAP64_IF_LE(i) OF_BSWAP64(i) #define OF_BSWAP32_V_IF_BE(buf, len) | > > > > > > > > > > > > | 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 | while (len--) { *buf = OF_BSWAP32(*buf); buf++; } } #ifdef OF_BIG_ENDIAN #define OF_BSWAP16_CONST_IF_BE(i) OF_BSWAP16_CONST(i) #define OF_BSWAP32_CONST_IF_BE(i) OF_BSWAP32_CONST(i) #define OF_BSWAP64_CONST_IF_BE(i) OF_BSWAP64_CONST(i) #define OF_BSWAP16_CONST_IF_LE(i) i #define OF_BSWAP32_CONST_IF_LE(i) i #define OF_BSWAP64_CONST_IF_LE(i) i #define OF_BSWAP16_IF_BE(i) OF_BSWAP16(i) #define OF_BSWAP32_IF_BE(i) OF_BSWAP32(i) #define OF_BSWAP64_IF_BE(i) OF_BSWAP64(i) #define OF_BSWAP16_IF_LE(i) i #define OF_BSWAP32_IF_LE(i) i #define OF_BSWAP64_IF_LE(i) i #define OF_BSWAP32_V_IF_BE(buf, len) OF_BSWAP32_V(buf, len) #else #define OF_BSWAP16_CONST_IF_BE(i) i #define OF_BSWAP32_CONST_IF_BE(i) i #define OF_BSWAP64_CONST_IF_BE(i) i #define OF_BSWAP16_CONST_IF_LE(i) OF_BSWAP16_CONST(i) #define OF_BSWAP32_CONST_IF_LE(i) OF_BSWAP32_CONST(i) #define OF_BSWAP64_CONST_IF_LE(i) OF_BSWAP64_CONST(i) #define OF_BSWAP16_IF_BE(i) i #define OF_BSWAP32_IF_BE(i) i #define OF_BSWAP64_IF_BE(i) i #define OF_BSWAP16_IF_LE(i) OF_BSWAP16(i) #define OF_BSWAP32_IF_LE(i) OF_BSWAP32(i) #define OF_BSWAP64_IF_LE(i) OF_BSWAP64(i) #define OF_BSWAP32_V_IF_BE(buf, len) |
︙ | ︙ |