1 /* 2 * Based on arch/arm/include/asm/compiler.h 3 * 4 * Copyright (C) 2012 ARM Ltd. 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License version 2 as 8 * published by the Free Software Foundation. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. 17 */ 18 #ifndef __ASM_COMPILER_H 19 #define __ASM_COMPILER_H 20 21 /* 22 * This is used to ensure the compiler did actually allocate the register we 23 * asked it for some inline assembly sequences. Apparently we can't trust the 24 * compiler from one version to another so a bit of paranoia won't hurt. This 25 * string is meant to be concatenated with the inline asm string and will 26 * cause compilation to stop on mismatch. (for details, see gcc PR 15089) 27 */ 28 #define __asmeq(x, y) ".ifnc " x "," y " ; .err ; .endif\n\t" 29 30 #endif /* __ASM_COMPILER_H */ 31