add arm64 support
- add arm64 dependent codes with GICv3 and SVE support - fix bugs based on architecture separation requests
This commit is contained in:
32
arch/arm64/kernel/include/compiler.h
Normal file
32
arch/arm64/kernel/include/compiler.h
Normal file
@@ -0,0 +1,32 @@
|
||||
/* compiler.h COPYRIGHT FUJITSU LIMITED 2015-2016 */
|
||||
#ifndef __ASM_COMPILER_H
|
||||
#define __ASM_COMPILER_H
|
||||
|
||||
/* @ref.impl arch/arm64/include/asm/compiler.h::__asmeq(x,y) */
|
||||
/*
|
||||
* This is used to ensure the compiler did actually allocate the register we
|
||||
* asked it for some inline assembly sequences. Apparently we can't trust the
|
||||
* compiler from one version to another so a bit of paranoia won't hurt. This
|
||||
* string is meant to be concatenated with the inline asm string and will
|
||||
* cause compilation to stop on mismatch. (for details, see gcc PR 15089)
|
||||
*/
|
||||
#define __asmeq(x, y) ".ifnc " x "," y " ; .err ; .endif\n\t"
|
||||
|
||||
/* @ref.impl include/linux/compiler.h::__section(S) */
|
||||
/* Simple shorthand for a section definition */
|
||||
# define __section(S) __attribute__ ((__section__(#S)))
|
||||
|
||||
/* @ref.impl include/linux/compiler.h::__aligned(x) */
|
||||
/*
|
||||
* From the GCC manual:
|
||||
*
|
||||
* Many functions have no effects except the return value and their
|
||||
* return value depends only on the parameters and/or global
|
||||
* variables. Such a function can be subject to common subexpression
|
||||
* elimination and loop optimization just as an arithmetic operator
|
||||
* would be.
|
||||
* [...]
|
||||
*/
|
||||
#define __aligned(x) __attribute__((aligned(x)))
|
||||
|
||||
#endif /* __ASM_COMPILER_H */
|
||||
Reference in New Issue
Block a user