mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 10:55:21 +07:00
0197f21ca5
Prefetch early exception data. There is unused space in our exception handler cache line anyway, so this is almost free. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
39 lines
580 B
ArmAsm
39 lines
580 B
ArmAsm
! entry.S macro define
|
|
|
|
.macro cli
|
|
stc sr, r0
|
|
or #0xf0, r0
|
|
ldc r0, sr
|
|
.endm
|
|
|
|
.macro sti
|
|
mov #0xf0, r11
|
|
extu.b r11, r11
|
|
not r11, r11
|
|
stc sr, r10
|
|
and r11, r10
|
|
#ifdef CONFIG_CPU_HAS_SR_RB
|
|
stc k_g_imask, r11
|
|
or r11, r10
|
|
#endif
|
|
ldc r10, sr
|
|
.endm
|
|
|
|
.macro get_current_thread_info, ti, tmp
|
|
#ifdef CONFIG_CPU_HAS_SR_RB
|
|
stc r7_bank, \ti
|
|
#else
|
|
mov #((THREAD_SIZE - 1) >> 10) ^ 0xff, \tmp
|
|
shll8 \tmp
|
|
shll2 \tmp
|
|
mov r15, \ti
|
|
and \tmp, \ti
|
|
#endif
|
|
.endm
|
|
|
|
#if defined(CONFIG_CPU_SH2A) || defined(CONFIG_CPU_SH4)
|
|
# define PREF(x) pref @x
|
|
#else
|
|
# define PREF(x) nop
|
|
#endif
|