Jay*_*rod 6 architecture arm llvm
我研究用C语言编写的软件,该软件运行在具有不同体系结构的各种ARM处理器上(主要是ARMv5,ARMv6).我们目前使用几个不同版本的RVDS编译我们的代码,但我们正在考虑使用LLVM编译一些代码以添加一些自定义检测.
我知道LLVM有ARM和Thumb目标,但它支持哪些架构?LLVM生成的代码是否可以在ARMv5上运行?我应该注意哪些限制?
他们的源代码列出了以下archs:
// ARM architectures.
def ArchV4T : SubtargetFeature<"v4t", "ARMArchVersion", "V4T", "ARM v4T">;
def ArchV5T : SubtargetFeature<"v5t", "ARMArchVersion", "V5T", "ARM v5T">;
def ArchV5TE : SubtargetFeature<"v5te", "ARMArchVersion", "V5TE", "ARM v5TE, v5TEj, v5TExp">;
def ArchV6 : SubtargetFeature<"v6", "ARMArchVersion", "V6", "ARM v6">;
def ArchV6M : SubtargetFeature<"v6m", "ARMArchVersion", "V6M", "ARM v6m", [FeatureNoARM, FeatureDB]>;
def ArchV6T2 : SubtargetFeature<"v6t2", "ARMArchVersion", "V6T2", "ARM v6t2", [FeatureThumb2]>;
def ArchV7A : SubtargetFeature<"v7a", "ARMArchVersion", "V7A", "ARM v7A", [FeatureThumb2, FeatureNEON, FeatureDB]>;
def ArchV7M : SubtargetFeature<"v7m", "ARMArchVersion", "V7M", "ARM v7M", [FeatureThumb2, FeatureNoARM, FeatureDB, FeatureHWDiv]>;
Run Code Online (Sandbox Code Playgroud)