/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ /* * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * * vineetg: May 2011 * -Support single cycle endian-swap insn in ARC700 4.10 * * vineetg: June 2009 * -Better htonl implementation (5 instead of 9 ALU instructions) * -Hardware assisted single cycle bswap (Use Case of ARC custom instrn) */ #ifndef __ASM_ARC_SWAB_H #define __ASM_ARC_SWAB_H #include #define __arch_swab32(x) \ ({ \ unsigned int tmp = x; \ __asm__( \ " swape %0, %1 \n" \ : "=r" (tmp) \ : "r" (tmp)); \ tmp; \ }) #if !defined(__STRICT_ANSI__) || defined(__KERNEL__) #define __SWAB_64_THRU_32__ #endif #endif