/* | |
* This file is subject to the terms and conditions of the GNU General Public | |
* License. See the file "COPYING" in the main directory of this archive | |
* for more details. | |
* | |
* Copyright (C) 2003 Ralf Baechle | |
*/ | |
#ifndef _ASM_ASMMACRO_H | |
#define _ASM_ASMMACRO_H | |
#include <linux/config.h> | |
#include <asm/hazards.h> | |
#ifdef CONFIG_32BIT | |
#include <asm/asmmacro-32.h> | |
#endif | |
#ifdef CONFIG_64BIT | |
#include <asm/asmmacro-64.h> | |
#endif | |
.macro local_irq_enable reg=t0 | |
mfc0 \reg, CP0_STATUS | |
ori \reg, \reg, 1 | |
mtc0 \reg, CP0_STATUS | |
irq_enable_hazard | |
.endm | |
.macro local_irq_disable reg=t0 | |
mfc0 \reg, CP0_STATUS | |
ori \reg, \reg, 1 | |
xori \reg, \reg, 1 | |
mtc0 \reg, CP0_STATUS | |
irq_disable_hazard | |
.endm | |
#ifdef CONFIG_CPU_SB1 | |
.macro fpu_enable_hazard | |
.set push | |
.set noreorder | |
.set mips2 | |
SSNOP | |
bnezl $0, .+4 | |
SSNOP | |
.set pop | |
.endm | |
#else | |
.macro fpu_enable_hazard | |
.endm | |
#endif | |
#endif /* _ASM_ASMMACRO_H */ |