aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/include/asm
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@linux-mips.org>2015-04-03 18:23:46 -0400
committerRalf Baechle <ralf@linux-mips.org>2015-04-07 19:08:34 -0400
commitfda51906ea282c554fbe735d2000d9b00a0c6669 (patch)
treed6126b53640e352b71dcd73f1d1a6c4ab74e1b01 /arch/mips/include/asm
parent124f43d30ffe84a9ffd1fe448022467a2bfb70bc (diff)
MIPS: mipsregs.h: Reorder CP1 macro definitions
Originally CP1 macros were placed between CP0 register name macros and CP0 register value macros. As changes were applied to the header the position of CP1 macros gradually has become more and more arbitrary and two separate blocks were created. This may only cause confusion. Move them out of the way then and place together after all the CP0 macros. No semantic change. [ralf@linux-mips.org: Fix conflict.] Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org> Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/9667/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/include/asm')
-rw-r--r--arch/mips/include/asm/mipsregs.h147
1 files changed, 75 insertions, 72 deletions
diff --git a/arch/mips/include/asm/mipsregs.h b/arch/mips/include/asm/mipsregs.h
index c7554f057366..0e8af6309160 100644
--- a/arch/mips/include/asm/mipsregs.h
+++ b/arch/mips/include/asm/mipsregs.h
@@ -111,66 +111,6 @@
111 */ 111 */
112#define CP0_TX39_CACHE $7 112#define CP0_TX39_CACHE $7
113 113
114/*
115 * Coprocessor 1 (FPU) register names
116 */
117#define CP1_REVISION $0
118#define CP1_STATUS $31
119
120/*
121 * FPU Status Register Values
122 */
123#define FPU_CSR_FLUSH 0x01000000 /* flush denormalised results to 0 */
124#define FPU_CSR_COND 0x00800000 /* $fcc0 */
125#define FPU_CSR_COND0 0x00800000 /* $fcc0 */
126#define FPU_CSR_COND1 0x02000000 /* $fcc1 */
127#define FPU_CSR_COND2 0x04000000 /* $fcc2 */
128#define FPU_CSR_COND3 0x08000000 /* $fcc3 */
129#define FPU_CSR_COND4 0x10000000 /* $fcc4 */
130#define FPU_CSR_COND5 0x20000000 /* $fcc5 */
131#define FPU_CSR_COND6 0x40000000 /* $fcc6 */
132#define FPU_CSR_COND7 0x80000000 /* $fcc7 */
133
134/*
135 * Bits 18 - 20 of the FPU Status Register will be read as 0,
136 * and should be written as zero.
137 */
138#define FPU_CSR_RSVD 0x001c0000
139
140/*
141 * X the exception cause indicator
142 * E the exception enable
143 * S the sticky/flag bit
144*/
145#define FPU_CSR_ALL_X 0x0003f000
146#define FPU_CSR_UNI_X 0x00020000
147#define FPU_CSR_INV_X 0x00010000
148#define FPU_CSR_DIV_X 0x00008000
149#define FPU_CSR_OVF_X 0x00004000
150#define FPU_CSR_UDF_X 0x00002000
151#define FPU_CSR_INE_X 0x00001000
152
153#define FPU_CSR_ALL_E 0x00000f80
154#define FPU_CSR_INV_E 0x00000800
155#define FPU_CSR_DIV_E 0x00000400
156#define FPU_CSR_OVF_E 0x00000200
157#define FPU_CSR_UDF_E 0x00000100
158#define FPU_CSR_INE_E 0x00000080
159
160#define FPU_CSR_ALL_S 0x0000007c
161#define FPU_CSR_INV_S 0x00000040
162#define FPU_CSR_DIV_S 0x00000020
163#define FPU_CSR_OVF_S 0x00000010
164#define FPU_CSR_UDF_S 0x00000008
165#define FPU_CSR_INE_S 0x00000004
166
167/* Bits 0 and 1 of FPU Status Register specify the rounding mode */
168#define FPU_CSR_RM 0x00000003
169#define FPU_CSR_RN 0x0 /* nearest */
170#define FPU_CSR_RZ 0x1 /* towards zero */
171#define FPU_CSR_RU 0x2 /* towards +Infinity */
172#define FPU_CSR_RD 0x3 /* towards -Infinity */
173
174 114
175/* 115/*
176 * Values for PageMask register 116 * Values for PageMask register
@@ -687,18 +627,6 @@
687#define MIPS_CMGCRF_BASE (~_ULCAST_((1 << MIPS_CMGCRB_BASE) - 1)) 627#define MIPS_CMGCRF_BASE (~_ULCAST_((1 << MIPS_CMGCRB_BASE) - 1))
688 628
689/* 629/*
690 * Bits in the MIPS32/64 coprocessor 1 (FPU) revision register.
691 */
692#define MIPS_FPIR_S (_ULCAST_(1) << 16)
693#define MIPS_FPIR_D (_ULCAST_(1) << 17)
694#define MIPS_FPIR_PS (_ULCAST_(1) << 18)
695#define MIPS_FPIR_3D (_ULCAST_(1) << 19)
696#define MIPS_FPIR_W (_ULCAST_(1) << 20)
697#define MIPS_FPIR_L (_ULCAST_(1) << 21)
698#define MIPS_FPIR_F64 (_ULCAST_(1) << 22)
699#define MIPS_FPIR_FREP (_ULCAST_(1) << 29)
700
701/*
702 * Bits in the MIPS32 Memory Segmentation registers. 630 * Bits in the MIPS32 Memory Segmentation registers.
703 */ 631 */
704#define MIPS_SEGCFG_PA_SHIFT 9 632#define MIPS_SEGCFG_PA_SHIFT 9
@@ -757,6 +685,81 @@
757#define MIPS_CDMMBASE_ADDR_SHIFT 11 685#define MIPS_CDMMBASE_ADDR_SHIFT 11
758#define MIPS_CDMMBASE_ADDR_START 15 686#define MIPS_CDMMBASE_ADDR_START 15
759 687
688
689/*
690 * Coprocessor 1 (FPU) register names
691 */
692#define CP1_REVISION $0
693#define CP1_STATUS $31
694
695
696/*
697 * Bits in the MIPS32/64 coprocessor 1 (FPU) revision register.
698 */
699#define MIPS_FPIR_S (_ULCAST_(1) << 16)
700#define MIPS_FPIR_D (_ULCAST_(1) << 17)
701#define MIPS_FPIR_PS (_ULCAST_(1) << 18)
702#define MIPS_FPIR_3D (_ULCAST_(1) << 19)
703#define MIPS_FPIR_W (_ULCAST_(1) << 20)
704#define MIPS_FPIR_L (_ULCAST_(1) << 21)
705#define MIPS_FPIR_F64 (_ULCAST_(1) << 22)
706#define MIPS_FPIR_FREP (_ULCAST_(1) << 29)
707
708/*
709 * FPU Status Register Values
710 */
711#define FPU_CSR_FLUSH 0x01000000 /* flush denormalised results to 0 */
712#define FPU_CSR_COND 0x00800000 /* $fcc0 */
713#define FPU_CSR_COND0 0x00800000 /* $fcc0 */
714#define FPU_CSR_COND1 0x02000000 /* $fcc1 */
715#define FPU_CSR_COND2 0x04000000 /* $fcc2 */
716#define FPU_CSR_COND3 0x08000000 /* $fcc3 */
717#define FPU_CSR_COND4 0x10000000 /* $fcc4 */
718#define FPU_CSR_COND5 0x20000000 /* $fcc5 */
719#define FPU_CSR_COND6 0x40000000 /* $fcc6 */
720#define FPU_CSR_COND7 0x80000000 /* $fcc7 */
721
722/*
723 * Bits 18 - 20 of the FPU Status Register will be read as 0,
724 * and should be written as zero.
725 */
726#define FPU_CSR_RSVD 0x001c0000
727
728/*
729 * X the exception cause indicator
730 * E the exception enable
731 * S the sticky/flag bit
732*/
733#define FPU_CSR_ALL_X 0x0003f000
734#define FPU_CSR_UNI_X 0x00020000
735#define FPU_CSR_INV_X 0x00010000
736#define FPU_CSR_DIV_X 0x00008000
737#define FPU_CSR_OVF_X 0x00004000
738#define FPU_CSR_UDF_X 0x00002000
739#define FPU_CSR_INE_X 0x00001000
740
741#define FPU_CSR_ALL_E 0x00000f80
742#define FPU_CSR_INV_E 0x00000800
743#define FPU_CSR_DIV_E 0x00000400
744#define FPU_CSR_OVF_E 0x00000200
745#define FPU_CSR_UDF_E 0x00000100
746#define FPU_CSR_INE_E 0x00000080
747
748#define FPU_CSR_ALL_S 0x0000007c
749#define FPU_CSR_INV_S 0x00000040
750#define FPU_CSR_DIV_S 0x00000020
751#define FPU_CSR_OVF_S 0x00000010
752#define FPU_CSR_UDF_S 0x00000008
753#define FPU_CSR_INE_S 0x00000004
754
755/* Bits 0 and 1 of FPU Status Register specify the rounding mode */
756#define FPU_CSR_RM 0x00000003
757#define FPU_CSR_RN 0x0 /* nearest */
758#define FPU_CSR_RZ 0x1 /* towards zero */
759#define FPU_CSR_RU 0x2 /* towards +Infinity */
760#define FPU_CSR_RD 0x3 /* towards -Infinity */
761
762
760#ifndef __ASSEMBLY__ 763#ifndef __ASSEMBLY__
761 764
762/* 765/*