Fix remove_userlocal_code() for n32.

n32 kernels use a 64-bit store to the TLS register rather than a 32-bit
store.

Sponsored by:	DARPA / AFRL
This commit is contained in:
John Baldwin 2016-12-13 19:27:31 +00:00
parent a9546a6b17
commit 6c941e4724
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=310029

View File

@ -78,9 +78,6 @@ struct mips_cpuinfo cpuinfo;
# define _ADDU_V0_T0_T1 \
_ENCODE_INSN(0, T0, T1, V0, OP_DADDU)
# define _MTC0_V0_USERLOCAL \
_ENCODE_INSN(OP_COP0, OP_DMT, V0, 4, 2)
#else /* mips 32 */
# define _LOAD_T0_MDTLS_A1 \
@ -93,10 +90,19 @@ struct mips_cpuinfo cpuinfo;
# define _ADDU_V0_T0_T1 \
_ENCODE_INSN(0, T0, T1, V0, OP_ADDU)
#endif /* ! __mips_n64 */
#if defined(__mips_n64) || defined(__mips_n32)
# define _MTC0_V0_USERLOCAL \
_ENCODE_INSN(OP_COP0, OP_DMT, V0, 4, 2)
#else /* mips o32 */
# define _MTC0_V0_USERLOCAL \
_ENCODE_INSN(OP_COP0, OP_MT, V0, 4, 2)
#endif /* ! __mips_n64 */
#endif /* ! (__mips_n64 || __mipsn32) */
#define _JR_RA _ENCODE_INSN(OP_SPECIAL, RA, 0, 0, OP_JR)
#define _NOP 0