[PATCH] D112427: [ARM] Implement setjmp BTI placement for PACBTI-M

Momchil Velikov via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Jan 10 09:04:44 PST 2022


chill added inline comments.


================
Comment at: llvm/lib/Target/ARM/ARMInstrThumb2.td:5745
+                 IIC_Br, [(ARMt2CallBTI tglobaladdr:$func)]>,
+                 Requires<[IsThumb2]>, Sched<[WriteBrL]>;
----------------
DavidSpickett wrote:
> Should this require `IsMClass` instead/also? Though I wasn't able to get anything weird to happen when using an A profile triple so maybe I'm missing a check elsewhere that means you'd never get to this point with A profile Arm.
> 
> For example this A profile triple:
> ```
> $ ./bin/clang --target=thumbv8-arm-none-eabi /tmp/test.c -o /tmp/test.o -o - -S -mbranch-protection=bti -mthumb
> ```
> 
> Doesn't put anything after a call to `setjmp`, nop or otherwise, but I can't place where that decision is made.
The decision is made in ARMMachineFunctionInfo

https://github.com/llvm/llvm-project/blob/a02af37560ff5aa22dcef5735ef25eaf58eaaf64/llvm/lib/Target/ARM/ARMMachineFunctionInfo.cpp#L18


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D112427/new/

https://reviews.llvm.org/D112427



More information about the cfe-commits mailing list