ARMv8.5 Branch Target Identification Support Lands In GCC 9 Compiler
A late addition to the GCC 9 code compiler are new additions around ARMv8.5 as the latest revision to the AArch64 specification.
Back in November saw initial ARMv8.5 commits for GCC9 while merging yesterday were more of the ARMv8.5 changes for squaring away this minor 64-bit ARM revision. The main addition yesterday was introducing Branch Target Identification (BTI). ARMv8.5's BTI has already been supported in LLVM/Clang and is part of ARM's Spectre Variant Two mitigations. Branch Target Identification when enabled marks valid targets of indirect branches and the CPU will trap an instruction in a protected page that is trying to perform an indirect branch to an instruction other than a marked BTI.
Over the course of a few patches on Wednesday, that code is now in place for ARMv8 BTI with GCC 9.
There is also a patch enabling the new switches around Speculation Barrier Instruction (SB), Memory Tagging Extension (MEMTAG), and Random Number Generation (RNG).
Back in November saw initial ARMv8.5 commits for GCC9 while merging yesterday were more of the ARMv8.5 changes for squaring away this minor 64-bit ARM revision. The main addition yesterday was introducing Branch Target Identification (BTI). ARMv8.5's BTI has already been supported in LLVM/Clang and is part of ARM's Spectre Variant Two mitigations. Branch Target Identification when enabled marks valid targets of indirect branches and the CPU will trap an instruction in a protected page that is trying to perform an indirect branch to an instruction other than a marked BTI.
Over the course of a few patches on Wednesday, that code is now in place for ARMv8 BTI with GCC 9.
There is also a patch enabling the new switches around Speculation Barrier Instruction (SB), Memory Tagging Extension (MEMTAG), and Random Number Generation (RNG).
Add A Comment