Clang complains when passing asm operands that are smaller than the
registers they are mapped to:
arch/arm64/include/asm/irqflags.h:50:10: warning: value size does not
match register size specified by the constraint and modifier
[-Wasm-operand-widths]
: "r" (GIC_PRIO_IRQON)
Fix it by casting the affected input operands to a type of the correct
size.
Reported-by: Nathan Chancellor <natechancellor@gmail.com>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
Signed-off-by: Julien Thierry <julien.thierry@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
"dsb sy",
ARM64_HAS_IRQ_PRIO_MASKING)
:
- : "r" (GIC_PRIO_IRQON)
+ : "r" ((unsigned long) GIC_PRIO_IRQON)
: "memory");
}
"msr_s " __stringify(SYS_ICC_PMR_EL1) ", %0",
ARM64_HAS_IRQ_PRIO_MASKING)
:
- : "r" (GIC_PRIO_IRQOFF)
+ : "r" ((unsigned long) GIC_PRIO_IRQOFF)
: "memory");
}
"csel %0, %0, %2, eq",
ARM64_HAS_IRQ_PRIO_MASKING)
: "=&r" (flags), "+r" (daif_bits)
- : "r" (GIC_PRIO_IRQOFF)
+ : "r" ((unsigned long) GIC_PRIO_IRQOFF)
: "memory");
return flags;