0271cc4f2b
[ci skip]
29 lines
1,022 B
Diff
29 lines
1,022 B
Diff
commit ac304227bb3ea1787d581f17d76a5f5f3abff51f
|
|
Author: Rich Felker <dalias@aerifal.cx>
|
|
Date: Wed May 22 18:28:32 2019 -0400
|
|
|
|
make powerpc64 vrregset_t logical layout match expected API
|
|
|
|
between v2 and v3 of the powerpc64 port patch, the change was made
|
|
from a 32x4 array of 32-bit unsigned ints for vrregs[] to a 32-element
|
|
array of __int128. this mismatches the API applications working with
|
|
mcontext_t expect from glibc, and seems to have been motivated by a
|
|
misinterpretation of a comment on how aarch64 did things as a
|
|
suggestion to do the same on powerpc64.
|
|
|
|
diff --git a/arch/powerpc64/bits/signal.h b/arch/powerpc64/bits/signal.h
|
|
index 94c7a327..2cc0604c 100644
|
|
--- arch/powerpc64/bits/signal.h
|
|
+++ arch/powerpc64/bits/signal.h
|
|
@@ -16,7 +16,10 @@ typedef struct {
|
|
} fpregset_t;
|
|
|
|
typedef struct {
|
|
- unsigned __int128 vrregs[32];
|
|
+#ifdef __GNUC__
|
|
+ __attribute__((__aligned__(16)))
|
|
+#endif
|
|
+ unsigned vrregs[32][4];
|
|
struct {
|
|
#if __BIG_ENDIAN__
|
|
unsigned _pad[3], vscr_word;
|