| /*	$OpenBSD: endian.h,v 1.1.1.1 2006/10/06 21:02:55 miod Exp $	*/ | 
 | /*	$NetBSD: endian.h,v 1.4 2000/03/17 00:09:25 mycroft Exp $	*/ | 
 |  | 
 | /* Written by Manuel Bouyer. Public domain */ | 
 |  | 
 | #ifndef _SH_ENDIAN_H_ | 
 | #define	_SH_ENDIAN_H_ | 
 |  | 
 | #ifdef  __GNUC__ | 
 |  | 
 | #define	__swap64md	__swap64gen | 
 |  | 
 | #define __swap16md(x) ({						\ | 
 | 	uint16_t rval;							\ | 
 | 									\ | 
 | 	__asm volatile ("swap.b %1,%0" : "=r"(rval) : "r"(x));		\ | 
 | 									\ | 
 | 	rval;								\ | 
 | }) | 
 |  | 
 | #define __swap32md(x) ({						\ | 
 | 	uint32_t rval;							\ | 
 | 									\ | 
 | 	__asm volatile ("swap.b %1,%0; swap.w %0,%0; swap.b %0,%0"	\ | 
 | 			  : "=r"(rval) : "r"(x));			\ | 
 | 									\ | 
 | 	rval;								\ | 
 | }) | 
 |  | 
 | #define MD_SWAP | 
 |  | 
 | #endif /* __GNUC_ */ | 
 |  | 
 | #define	_BYTE_ORDER _LITTLE_ENDIAN | 
 | #include <sys/endian.h> | 
 |  | 
 | #define	__STRICT_ALIGNMENT | 
 |  | 
 | #endif /* !_SH_ENDIAN_H_ */ |