blob: 30b18ea6cb1116fd12e86094788c5917fe9f7e99 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*
2 * This file is subject to the terms and conditions of the GNU General Public
3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details.
5 *
6 * Copyright (C) 2003 Ralf Baechle
7 */
8#ifndef _ASM_ASMMACRO_H
9#define _ASM_ASMMACRO_H
Ralf Baechle42a3b4f2005-09-03 15:56:17 -070010
Linus Torvalds1da177e2005-04-16 15:20:36 -070011#include <linux/config.h>
12#include <asm/hazards.h>
Ralf Baechle42a3b4f2005-09-03 15:56:17 -070013
Ralf Baechle875d43e2005-09-03 15:56:16 -070014#ifdef CONFIG_32BIT
Linus Torvalds1da177e2005-04-16 15:20:36 -070015#include <asm/asmmacro-32.h>
16#endif
Ralf Baechle875d43e2005-09-03 15:56:16 -070017#ifdef CONFIG_64BIT
Linus Torvalds1da177e2005-04-16 15:20:36 -070018#include <asm/asmmacro-64.h>
19#endif
20
21 .macro local_irq_enable reg=t0
22 mfc0 \reg, CP0_STATUS
23 ori \reg, \reg, 1
24 mtc0 \reg, CP0_STATUS
25 irq_enable_hazard
26 .endm
27
28 .macro local_irq_disable reg=t0
29 mfc0 \reg, CP0_STATUS
30 ori \reg, \reg, 1
31 xori \reg, \reg, 1
32 mtc0 \reg, CP0_STATUS
33 irq_disable_hazard
34 .endm
35
36#ifdef CONFIG_CPU_SB1
37 .macro fpu_enable_hazard
38 .set push
39 .set noreorder
40 .set mips2
41 SSNOP
42 bnezl $0, .+4
43 SSNOP
44 .set pop
45 .endm
46#else
47 .macro fpu_enable_hazard
48 .endm
49#endif
50
51#endif /* _ASM_ASMMACRO_H */