aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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/*