В arm64, компиляция встроенной сборки ниже вызывает предупреждение ниже:
размер значения не соответствует размеру регистра, заданному ограничителем и модификатором [-Wasm-operand-widths].
Это потому, что регистр arm64 является 64-битным.
int a = 1;
int b = 2;
asm volatile(
"add %[a], %[a], %[b] \n"
:
[a] "+r"(a)
:
[b] "r"(b)
:
);
И clang дает совет по исправлению, используйте модификатор ограничения "w".