diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2007-07-10 12:33:02 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2007-07-10 12:33:02 -0400 |
commit | a36920200c5b89d56120a5e839fe4a603d51b16c (patch) | |
tree | aefb1fc4b0792ef788024fa596954a5689f15d0a /arch/mips/kernel/traps.c | |
parent | d223a86154f8c66f5a380b17e1c8091d56f47cf8 (diff) |
[MIPS] Enable support for the userlocal hardware register
Which will cut down the cost of RDHWR $29 which is used to obtain the
TLS pointer and so far being emulated in software down to a single cycle
operation.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/kernel/traps.c')
-rw-r--r-- | arch/mips/kernel/traps.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c index c598e890a880..9b19a84d11ef 100644 --- a/arch/mips/kernel/traps.c +++ b/arch/mips/kernel/traps.c | |||
@@ -1341,7 +1341,14 @@ void __init per_cpu_trap_init(void) | |||
1341 | set_c0_status(ST0_MX); | 1341 | set_c0_status(ST0_MX); |
1342 | 1342 | ||
1343 | #ifdef CONFIG_CPU_MIPSR2 | 1343 | #ifdef CONFIG_CPU_MIPSR2 |
1344 | write_c0_hwrena (0x0000000f); /* Allow rdhwr to all registers */ | 1344 | if (cpu_has_mips_r2) { |
1345 | unsigned int enable = 0x0000000f; | ||
1346 | |||
1347 | if (cpu_has_userlocal) | ||
1348 | enable |= (1 << 29); | ||
1349 | |||
1350 | write_c0_hwrena(enable); | ||
1351 | } | ||
1345 | #endif | 1352 | #endif |
1346 | 1353 | ||
1347 | #ifdef CONFIG_MIPS_MT_SMTC | 1354 | #ifdef CONFIG_MIPS_MT_SMTC |