[PATCH] D128998: [libunwind] Handle G in personality string
Youngsuk Kim via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 8 08:39:21 PST 2023
JOE1994 added inline comments.
================
Comment at: libunwind/src/DwarfInstructions.hpp:225
+ __asm__ __volatile__(".arch_extension memtag\n"
+ "stg %[Ptr], [%[Ptr]]\n"
+ :
----------------
This added inline assembly (`stg` instruction).
According to [the ARM instruction reference guide](https://developer.arm.com/documentation/100076/0100/fou1538563923467), `stg` instruction is only supported in `ARMv8.5` and later.
Since this change (D128998), I can no longer build `libunwind` on my `ARMv8.1` machine.
The assembler gives the following error:
```
/tmp/ccim5Evd.s: Assembler messages:
/tmp/ccim5Evd.s:9031: Error: unknown architectural extension `memtag'
/tmp/ccim5Evd.s:9031: Error: unknown mnemonic `stg' -- `stg x2,[x2]'
/tmp/ccim5Evd.s:9040: Error: unknown architectural extension `memtag'
/tmp/ccim5Evd.s:9040: Error: unknown mnemonic `stg' -- `stg x2,[x2]'
```
Is there a way to add a guard to only insert the `stg` instruction in supported ISAs?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D128998/new/
https://reviews.llvm.org/D128998
More information about the llvm-commits
mailing list