, On Wed, 25 Mar 2020 at 13:32, Mark Rutland <mark.rutland@xxxxxxx> wrote: > > On Wed, Mar 25, 2020 at 11:41:07AM +0000, Mark Brown wrote: > > Since inserting BTI landing pads into assembler functions will require > > us to change the default architecture we need a way to enable > > extensions without hard coding the architecture. > > Assuming we'll poke the toolchain folk, let's consider alternative ways > around this in the mean time. > > Is there anything akin to push/pop versions of .arch directitves that we > can use around the BTI instructions specifically? > > ... or could we encode the BTI instructions with a .inst, and wrap those > in macros so that GAS won't complain (like we do for mrs_s and friends)? > > ... does asking GCC to use BTI for C code make the default arch v8.5 for > inline asm, or does it do something special to allow BTI instructions in > specific locations? > I think using macros wrapping .inst directives is the most hassle free way to achieve this, assuming there is no need to encode registers or immediates (which makes it slightly messy - refer to arch/arm64/crypto/sm3-ce-core.S for an example)