For PIC code, the existing assembly constraints do compile on aarch64.
Some kernel modules build ok using the 'p' constraint with the 'a'
operand modifier, but not all.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
Comment Actions
I do not like this at all, but I can't find a way to get this to work with GCC on arm64. I tried various combinations of constraints and modifiers to no avail.
Comment Actions
Some kernel modules build ok using the 'p' constraint with the 'a' operand modifier, but not all.
Hmm, that seems a bit surprising. What goes wrong? I wonder if it works to try declaring a local variable struct sdt_probe *p = &_SDT_PROBE_NAME(...) and passing that as an operand instead.
Comment Actions
I can try to reproduce, but I ended up with :lo12:LADDR0 or the like as the resulting argument to .word in the assembly in the case it breaks.