mirror of
https://github.com/torvalds/linux.git
synced 2026-05-29 17:43:52 +02:00
Since commit 67a697e7576 ("ARC: retire ARC750 support") all supported
CPUs have the 'swape' instruction.
Always use the implementation of __arch_swabe() which uses 'swape'.
ARCH_USE_BUILTIN_BSWAP can not be used as that results on libcalls on
-mcpu=arc700.
As as side-effect, remove a leak of an internal kconfig symbol through
the UAPI headers.
Suggested-by: Arnd Bergmann <arnd@arndb.de>
Link: https://lore.kernel.org/lkml/0ae2688a-5a22-405b-adaf-9b5ad712b245@app.fastmail.com/
Suggested-by: Vineet Gupta <vgupta@kernel.org>
Link: https://lore.kernel.org/lkml/a033a402-e3c5-4982-9fff-b6a4c55817ae@kernel.org/
Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
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
|