Fix get_saved_sp for 64bit address space. Simplify set_save_sp.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org> Signed-off-by: Thiemo Seufer <ths@networkno.de>
This commit is contained in:
committed by
Ralf Baechle
parent
4552074577
commit
9556ac2fa1
@@ -90,24 +90,28 @@
|
|||||||
#ifdef CONFIG_32BIT
|
#ifdef CONFIG_32BIT
|
||||||
mfc0 \temp, CP0_CONTEXT
|
mfc0 \temp, CP0_CONTEXT
|
||||||
srl \temp, 23
|
srl \temp, 23
|
||||||
LONG_S \stackp, kernelsp(\temp)
|
|
||||||
#endif
|
#endif
|
||||||
#if defined(CONFIG_64BIT) && !defined(CONFIG_BUILD_ELF64)
|
#if defined(CONFIG_64BIT) && !defined(CONFIG_BUILD_ELF64)
|
||||||
lw \temp, TI_CPU(gp)
|
lw \temp, TI_CPU(gp)
|
||||||
dsll \temp, 3
|
dsll \temp, 3
|
||||||
lui \temp2, %hi(kernelsp)
|
|
||||||
daddu \temp, \temp2
|
|
||||||
LONG_S \stackp, %lo(kernelsp)(\temp)
|
|
||||||
#endif
|
#endif
|
||||||
#if defined(CONFIG_64BIT) && defined(CONFIG_BUILD_ELF64)
|
#if defined(CONFIG_64BIT) && defined(CONFIG_BUILD_ELF64)
|
||||||
MFC0 \temp, CP0_CONTEXT
|
MFC0 \temp, CP0_CONTEXT
|
||||||
dsrl \temp, 23
|
dsrl \temp, 23
|
||||||
LONG_S \stackp, kernelsp(\temp)
|
|
||||||
#endif
|
#endif
|
||||||
|
LONG_S \stackp, kernelsp(\temp)
|
||||||
.endm
|
.endm
|
||||||
#else
|
#else
|
||||||
.macro get_saved_sp /* Uniprocessor variation */
|
.macro get_saved_sp /* Uniprocessor variation */
|
||||||
|
#if defined(CONFIG_64BIT) && defined(CONFIG_BUILD_ELF64)
|
||||||
|
lui k1, %highest(kernelsp)
|
||||||
|
daddiu k1, %higher(kernelsp)
|
||||||
|
dsll k1, k1, 16
|
||||||
|
daddiu k1, %hi(kernelsp)
|
||||||
|
dsll k1, k1, 16
|
||||||
|
#else
|
||||||
lui k1, %hi(kernelsp)
|
lui k1, %hi(kernelsp)
|
||||||
|
#endif
|
||||||
LONG_L k1, %lo(kernelsp)(k1)
|
LONG_L k1, %lo(kernelsp)(k1)
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user