summaryrefslogtreecommitdiff
path: root/arch/aarch64/bits/user.h
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2020-11-02 23:25:12 -0500
committerRich Felker <dalias@aerifal.cx>2020-11-11 10:54:58 -0500
commit4ffa7068993ab4a1e1cedfed8954db979d9b7fbd (patch)
treefccc5a38e870f94cb54f03c8b83fb2d06ad2d8b3 /arch/aarch64/bits/user.h
parentd91a6cf6e369a79587c5665fce9635e5634ca201 (diff)
downloadmusl-4ffa7068993ab4a1e1cedfed8954db979d9b7fbd.tar.gz
fix vector types in aarch64 register file structures
the ABI type for the vector registers in fpregset_t, struct fpsimd_context, and struct user_fpsimd_struct is __uint128_t, which was presumably originally not used because it's a nonstandard type, but its existence is mandated by the aarch64 psABI. use of the wrong type here broke software using these structures, and encouraged incorrect fixes with casts rather than reinterpretation of representation.
Diffstat (limited to 'arch/aarch64/bits/user.h')
-rw-r--r--arch/aarch64/bits/user.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/aarch64/bits/user.h b/arch/aarch64/bits/user.h
index d12cdf7f..8a1002aa 100644
--- a/arch/aarch64/bits/user.h
+++ b/arch/aarch64/bits/user.h
@@ -6,7 +6,7 @@ struct user_regs_struct {
};
struct user_fpsimd_struct {
- long double vregs[32];
+ __uint128_t vregs[32];
unsigned int fpsr;
unsigned int fpcr;
};