如何使用tpidr1作为线程本地寄存器编译锈

问题描述 投票:0回答:1

在裸机AArch64中,生锈会生成tpidr0作为thread_local计算的默认寄存器。对于内核之类的方案,应使用tpidr1而不是tpidr0。如何使rust编译器生成代码以使用tpidr1而不是默认值?

rust llvm arm64 bare-metal
1个回答
0
投票

LLVM支持custom attribute -mattr=tipdr-el[1|2|3]来覆盖线程本地寄存器。

默认情况下,tipdr0用于此目的。可以通过执行以下操作来覆盖锈迹]

rustc -C target-feature=tpidr-el1 --target=aarch64-unknown-none
© www.soinside.com 2019 - 2024. All rights reserved.