From: Andreas Sandberg Date: Wed, 9 Jan 2019 16:20:20 +0000 (+0000) Subject: arch-arm, sim-se: Add support for TLS in clone X-Git-Tag: v19.0.0.0~1281 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b25900fd3ce31e95187d3a9520939a2faa1bb5c7;p=gem5.git arch-arm, sim-se: Add support for TLS in clone Change-Id: I1f78dce05a48a2e3adfaf027cd38ab55507b9611 Signed-off-by: Andreas Sandberg Cc: Giacomo Travaglini Cc: Javier Setoain Cc: Brandon Potter Reviewed-on: https://gem5-review.googlesource.com/c/15437 Reviewed-by: Jason Lowe-Power Maintainer: Brandon Potter --- diff --git a/src/arch/arm/linux/linux.hh b/src/arch/arm/linux/linux.hh index e1f27a761..cff1e47fd 100644 --- a/src/arch/arm/linux/linux.hh +++ b/src/arch/arm/linux/linux.hh @@ -58,6 +58,12 @@ class ArmLinux : public Linux uint64_t stack, uint64_t tls) { ArmISA::copyRegs(ptc, ctc); + + if (flags & TGT_CLONE_SETTLS) { + /* TPIDR_EL0 is architecturally mapped to TPIDRURW, so + * this works for both aarch32 and aarch64. */ + ctc->setMiscReg(ArmISA::MISCREG_TPIDR_EL0, tls); + } } };