Skip to content

Commit a640d67

Browse files
FlyGoattsbogend
authored andcommitted
MIPS: mipsregs: Set proper ISA level for virt extensions
c994a3e ("MIPS: set mips32r5 for virt extensions") setted some instructions in virt extensions to ISA level mips32r5. However TLB related vz instructions was leftover, also this shouldn't be done to a R5 or R6 kernel buid. Reorg macros to set ISA level as needed when _ASM_SET_VIRT is called. Signed-off-by: Jiaxun Yang <[email protected]> Signed-off-by: Thomas Bogendoerfer <[email protected]>
1 parent dd6d29a commit a640d67

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

arch/mips/include/asm/mipsregs.h

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2232,7 +2232,14 @@ do { \
22322232
_ASM_INSN_IF_MIPS(0x4200000c) \
22332233
_ASM_INSN32_IF_MM(0x0000517c)
22342234
#else /* !TOOLCHAIN_SUPPORTS_VIRT */
2235-
#define _ASM_SET_VIRT ".set\tvirt\n\t"
2235+
#if MIPS_ISA_REV >= 5
2236+
#define _ASM_SET_VIRT_ISA
2237+
#elif defined(CONFIG_64BIT)
2238+
#define _ASM_SET_VIRT_ISA ".set\tmips64r5\n\t"
2239+
#else
2240+
#define _ASM_SET_VIRT_ISA ".set\tmips32r5\n\t"
2241+
#endif
2242+
#define _ASM_SET_VIRT _ASM_SET_VIRT_ISA ".set\tvirt\n\t"
22362243
#define _ASM_SET_MFGC0 _ASM_SET_VIRT
22372244
#define _ASM_SET_DMFGC0 _ASM_SET_VIRT
22382245
#define _ASM_SET_MTGC0 _ASM_SET_VIRT
@@ -2253,7 +2260,6 @@ do { \
22532260
({ int __res; \
22542261
__asm__ __volatile__( \
22552262
".set\tpush\n\t" \
2256-
".set\tmips32r5\n\t" \
22572263
_ASM_SET_MFGC0 \
22582264
"mfgc0\t%0, " #source ", %1\n\t" \
22592265
_ASM_UNSET_MFGC0 \
@@ -2267,7 +2273,6 @@ do { \
22672273
({ unsigned long long __res; \
22682274
__asm__ __volatile__( \
22692275
".set\tpush\n\t" \
2270-
".set\tmips64r5\n\t" \
22712276
_ASM_SET_DMFGC0 \
22722277
"dmfgc0\t%0, " #source ", %1\n\t" \
22732278
_ASM_UNSET_DMFGC0 \
@@ -2281,7 +2286,6 @@ do { \
22812286
do { \
22822287
__asm__ __volatile__( \
22832288
".set\tpush\n\t" \
2284-
".set\tmips32r5\n\t" \
22852289
_ASM_SET_MTGC0 \
22862290
"mtgc0\t%z0, " #register ", %1\n\t" \
22872291
_ASM_UNSET_MTGC0 \
@@ -2294,7 +2298,6 @@ do { \
22942298
do { \
22952299
__asm__ __volatile__( \
22962300
".set\tpush\n\t" \
2297-
".set\tmips64r5\n\t" \
22982301
_ASM_SET_DMTGC0 \
22992302
"dmtgc0\t%z0, " #register ", %1\n\t" \
23002303
_ASM_UNSET_DMTGC0 \

0 commit comments

Comments
 (0)