Fix TLS in benchmarks
[riscv-tests.git] / benchmarks / common / crt.S
index e35608e0d56c50fa435e7b1ebf0c504985f7582e..24e35804867a16a75b7b106feac44e734e88e04a 100644 (file)
@@ -114,8 +114,11 @@ _start:
   sll sp, sp, STKSHIFT
   add sp, sp, tp
 
+  # offset thread pointer by thread pointer bias
   lui t0, %tprel_hi(tls_start)
+  add t0, t0, tp, %tprel_add(tls_start)
   add t0, t0, %tprel_lo(tls_start)
+  sub t0, t0, tp
   sub tp, tp, t0
 
   la t0, _init