Displaying 2 results from an estimated 2 matches for "named_label_".
Did you mean:
named_label
2017 Feb 05
2
clang/llvm support for %= in inline assembly
...advice on how to use anonymous asm labels, or %= macros.
Appending %= to the label name only works if you append at least one ':' to the asm statement, otherwise it isn't seen as a so-called "assembler template", apparently:
void foo(void)
{
asm volatile(
"named_label_%=:\n"
"jnz named_label_%=\n"
:
);
}
void bar(void)
{
foo();
}
Resulting in:
$ clang -O -S test.c -o -
.text
.file "test.c"
.globl foo
.p2align 4, 0x90
.type foo, at function
foo...
2017 Feb 05
2
clang/llvm support for %= in inline assembly
from https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html
Under certain circumstances, GCC may duplicate (or remove duplicates of)
> your assembly code when optimizing. This can lead to unexpected duplicate
> symbol errors during compilation if your asm code defines symbols or
> labels. Using ‘%=’ (see AssemblerTemplate) may help resolve this problem.
‘%=’
> Outputs a number that is