The modifier exists to omit the '$' when printing constants (generally
needed for insn immediates in AT&T syntax, but unwanted on e.g. data
emission directives). It's pretty odd to use it just to then stick a '$'
onto the result.
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Strictly speaking at least the [stack_mask] constraint also should be "e",
not "i".
--- a/xen/arch/x86/include/asm/current.h
+++ b/xen/arch/x86/include/asm/current.h
@@ -157,10 +157,10 @@ unsigned long get_stack_dump_bottom (uns
"rdsspd %[ssp];" \
"cmp $1, %[ssp];" \
"je .L_shstk_done.%=;" /* CET not active? Skip. */ \
- ALTERNATIVE("mov $%c[shstk_base], %[val];", \
- "mov $%c[shstk_base] + 8, %[val];", \
+ ALTERNATIVE("mov %[shstk_base], %[val];", \
+ "mov %[shstk_base] + 8, %[val];", \
X86_FEATURE_XEN_FRED) \
- "and $%c[stack_mask], %[ssp];" \
+ "and %[stack_mask], %[ssp];" \
"sub %[ssp], %[val];" \
"shr $3, %[val];" \
"cmp $255, %[val];" /* More than 255 entries? Crash. */ \