37 lines
911 B
C
37 lines
911 B
C
/* 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 <linux/types.h>
|
|
|
|
#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
|