mirror of
https://github.com/freebsd/freebsd-src
synced 2024-07-22 02:37:15 +00:00
ck/aarch64: Specify output operands for ck_pr_md_store_*
This is a backport of upstream commit d1e9f03b89: ck_pr/aarch64: Specify output operands for ck_pr_md_store_* As in commit 2f9acab, we want to specify output operand widths so that MSAN compiler instrumentation correctly updates the shadow map. In particular, LLVM's implementation depends on having type information for output operands, even when that's not otherwise necessary. Without it, KMSAN in FreeBSD generates false positives on aarch64. Reviewed by: cognet MFC after: 2 weeks Sponsored by: Klara, Inc. Sponsored by: Juniper Networks, Inc.
This commit is contained in:
parent
92eb673b2b
commit
b5ed3ef802
|
@ -137,8 +137,8 @@ CK_PR_LOAD_S_64(double, double, "ldr")
|
|||
CK_CC_INLINE static void \
|
||||
ck_pr_md_store_##S(M *target, T v) \
|
||||
{ \
|
||||
__asm__ __volatile__(I " %w1, [%0]" \
|
||||
: \
|
||||
__asm__ __volatile__(I " %w2, [%1]" \
|
||||
: "=m" (*(T *)target) \
|
||||
: "r" (target), \
|
||||
"r" (v) \
|
||||
: "memory"); \
|
||||
|
@ -148,8 +148,8 @@ CK_PR_LOAD_S_64(double, double, "ldr")
|
|||
CK_CC_INLINE static void \
|
||||
ck_pr_md_store_##S(M *target, T v) \
|
||||
{ \
|
||||
__asm__ __volatile__(I " %1, [%0]" \
|
||||
: \
|
||||
__asm__ __volatile__(I " %2, [%1]" \
|
||||
: "=m" (*(T *)target) \
|
||||
: "r" (target), \
|
||||
"r" (v) \
|
||||
: "memory"); \
|
||||
|
|
Loading…
Reference in a new issue