Remove asm byteswap implementations
This commit is contained in:
		
							parent
							
								
									e2dffd97fe
								
							
						
					
					
						commit
						35acc782d9
					
				
							
								
								
									
										62
									
								
								c/flisp.c
								
								
								
								
							
							
						
						
									
										62
									
								
								c/flisp.c
								
								
								
								
							|  | @ -974,66 +974,6 @@ no_kw: | ||||||
|     return nargs; |     return nargs; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #if defined(__amd64__) || defined(_M_AMD64) |  | ||||||
| #define ARCH_X86_64 |  | ||||||
| #define __CPU__ 686 |  | ||||||
| #elif defined(_M_IX86)  // msvs, intel, digital mars, watcom
 |  | ||||||
| #if !defined(__386__) |  | ||||||
| #error "unsupported target: 16-bit x86" |  | ||||||
| #endif |  | ||||||
| #define ARCH_X86 |  | ||||||
| #define __CPU__ (_M_IX86 + 86) |  | ||||||
| #elif defined(__i686__)  // gnu c
 |  | ||||||
| #define ARCH_X86 |  | ||||||
| #define __CPU__ 686 |  | ||||||
| #elif defined(__i586__)  // gnu c
 |  | ||||||
| #define ARCH_X86 |  | ||||||
| #define __CPU__ 586 |  | ||||||
| #elif defined(__i486__)  // gnu c
 |  | ||||||
| #define ARCH_X86 |  | ||||||
| #define __CPU__ 486 |  | ||||||
| #elif defined(__i386__)  // gnu c
 |  | ||||||
| #define ARCH_X86 |  | ||||||
| #define __CPU__ 386 |  | ||||||
| #else |  | ||||||
| #error "unknown architecture" |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| #ifdef ARCH_X86_64 |  | ||||||
| #define LEGACY_REGS "=Q" |  | ||||||
| #else |  | ||||||
| #define LEGACY_REGS "=q" |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| #if !defined(__INTEL_COMPILER) && (defined(ARCH_X86) || defined(ARCH_X86_64)) |  | ||||||
| static uint16_t ByteSwap16(uint16_t x) |  | ||||||
| { |  | ||||||
|     __asm("xchgb %b0,%h0" : LEGACY_REGS(x) : "0"(x)); |  | ||||||
|     return x; |  | ||||||
| } |  | ||||||
| #define bswap_16(x) ByteSwap16(x) |  | ||||||
| 
 |  | ||||||
| static uint32_t ByteSwap32(uint32_t x) |  | ||||||
| { |  | ||||||
| #if __CPU__ > 386 |  | ||||||
|     __asm("bswap        %0" |  | ||||||
|           : "=r"(x) |  | ||||||
|           : |  | ||||||
| #else |  | ||||||
|     __asm("xchgb        %b0,%h0\n" |  | ||||||
|           "     rorl    $16,%0\n" |  | ||||||
|           "     xchgb   %b0,%h0" |  | ||||||
|           : LEGACY_REGS(x) |  | ||||||
|           : |  | ||||||
| #endif |  | ||||||
|           "0"(x)); |  | ||||||
|     return x; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #define bswap_32(x) ByteSwap32(x) |  | ||||||
| 
 |  | ||||||
| #else |  | ||||||
| 
 |  | ||||||
| #define bswap_16(x) (((x)&0x00ff) << 8 | ((x)&0xff00) >> 8) | #define bswap_16(x) (((x)&0x00ff) << 8 | ((x)&0xff00) >> 8) | ||||||
| 
 | 
 | ||||||
| #ifdef __INTEL_COMPILER | #ifdef __INTEL_COMPILER | ||||||
|  | @ -1044,8 +984,6 @@ static uint32_t ByteSwap32(uint32_t x) | ||||||
|      (((x)&0x0000ff00) << 8) | (((x)&0x000000ff) << 24)) |      (((x)&0x0000ff00) << 8) | (((x)&0x000000ff) << 24)) | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ | #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ | ||||||
| #define GET_INT32(a)                                             \ | #define GET_INT32(a)                                             \ | ||||||
|     ((int32_t)((((int32_t)a[0]) << 0) | (((int32_t)a[1]) << 8) | \ |     ((int32_t)((((int32_t)a[0]) << 0) | (((int32_t)a[1]) << 8) | \ | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue