Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
mips
include
asm
asmmacro.h
Go to the documentation of this file.
1
/*
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
10
11
#include <
asm/hazards.h
>
12
13
#ifdef CONFIG_32BIT
14
#include <
asm/asmmacro-32.h
>
15
#endif
16
#ifdef CONFIG_64BIT
17
#include <
asm/asmmacro-64.h
>
18
#endif
19
#ifdef CONFIG_MIPS_MT_SMTC
20
#include <
asm/mipsmtregs.h
>
21
#endif
22
23
#ifdef CONFIG_MIPS_MT_SMTC
24
.macro
local_irq_enable
reg
=
t0
25
mfc0 \reg
, CP0_TCSTATUS
26
ori \reg
,
\reg
,
TCSTATUS_IXMT
27
xori \reg
,
\reg
,
TCSTATUS_IXMT
28
mtc0 \reg
, CP0_TCSTATUS
29
_ehb
30
.endm
31
32
.macro
local_irq_disable
reg
=
t0
33
mfc0 \reg
, CP0_TCSTATUS
34
ori \reg
,
\reg
,
TCSTATUS_IXMT
35
mtc0 \reg
, CP0_TCSTATUS
36
_ehb
37
.endm
38
#elif defined(CONFIG_CPU_MIPSR2)
39
.macro
local_irq_enable
reg
=
t0
40
ei
41
irq_enable_hazard
42
.endm
43
44
.macro
local_irq_disable
reg
=
t0
45
di
46
irq_disable_hazard
47
.endm
48
#else
49
.macro
local_irq_enable
reg
=
t0
50
mfc0 \reg
,
CP0_STATUS
51
ori \reg
,
\reg
, 1
52
mtc0 \reg
,
CP0_STATUS
53
irq_enable_hazard
54
.endm
55
56
.macro
local_irq_disable
reg
=
t0
57
mfc0 \reg
,
CP0_STATUS
58
ori \reg
,
\reg
, 1
59
xori \reg
,
\reg
, 1
60
mtc0 \reg
,
CP0_STATUS
61
irq_disable_hazard
62
.endm
63
#endif
/* CONFIG_MIPS_MT_SMTC */
64
65
/*
66
* Temporary until all gas have MT ASE support
67
*/
68
.macro DMT
reg
=0
69
.word 0x41600bc1 | (
\reg
<< 16)
70
.endm
71
72
.macro EMT
reg
=0
73
.
word
0x41600be1 | (\
reg
<< 16)
74
.endm
75
76
.macro DVPE
reg
=0
77
.word 0x41600001 | (
\reg
<< 16)
78
.endm
79
80
.macro EVPE reg=0
81
.
word
0x41600021 | (\reg << 16)
82
.endm
83
84
.macro MFTR rt=0,
rd
=0,
u
=0,
sel
=0
85
.word 0x41000000 | (\rt << 16) | (\
rd
<< 11) | (\u << 5) | (\
sel
)
86
.endm
87
88
.macro MTTR rt=0,
rd
=0,
u
=0,
sel
=0
89
.word 0x41800000 | (\rt << 16) | (\
rd
<< 11) | (\u << 5) | (\
sel
)
90
.endm
91
92
#endif
/* _ASM_ASMMACRO_H */
Generated on Thu Jan 10 2013 13:06:08 for Linux Kernel by
1.8.2