aarch64: swap 64-bit and 32-bit personalities

Let native 64-bit personality be personality 0, and 32-bit personality
be personality 1, to follow the traditional layout used for other
architectures.

* defs.h [AARCH64]: Swap PERSONALITY0_WORDSIZE and
PERSONALITY1_WORDSIZE, remove DEFAULT_PERSONALITY.
[AARCH64 && HAVE_M32_MPERS]: Rename PERSONALITY1_* to PERSONALITY0_*.
* file.c [AARCH64 || defined X86_64 || defined X32]: Define
STAT32_PERSONALITY for AARCH64 as well.
* syscall.c (update_personality) [AARCH64]: Adjust PERSONALITY_NAMES.
* linux/aarch64/errnoent1.h: Adjust comment.
* linux/aarch64/get_error.c (get_error): Adjust tcp->currpers check.
* linux/aarch64/get_syscall_args.c (get_syscall_args): Likewise.
* linux/arm/arch_sigreturn.c (arch_sigreturn) [AARCH64]: Likewise.
* linux/aarch64/get_scno.c (arch_get_scno): Adjust update_personality
invocations.
* linux/aarch64/ioctls_arch0.h: Swap with ...
* linux/aarch64/ioctls_arch1.h: ... this file.
* linux/aarch64/ioctls_inc0.h: Swap with ...
* linux/aarch64/ioctls_inc1.h: ... this file.
* linux/aarch64/syscallent.h: Swap with ...
* linux/aarch64/syscallent1.h: ... this file.
diff --git a/defs.h b/defs.h
index d0bef94..0538bcf 100644
--- a/defs.h
+++ b/defs.h
@@ -237,13 +237,12 @@
 #ifdef AARCH64
 /* The existing ARM personality, then AArch64 */
 # define SUPPORTED_PERSONALITIES 2
-# define PERSONALITY0_WORDSIZE 4
-# define PERSONALITY1_WORDSIZE 8
-# define DEFAULT_PERSONALITY 1
+# define PERSONALITY0_WORDSIZE 8
+# define PERSONALITY1_WORDSIZE 4
 # ifdef HAVE_M32_MPERS
-#  define PERSONALITY0_INCLUDE_FUNCS "m32_funcs.h"
-#  define PERSONALITY0_INCLUDE_PRINTERS_DECLS "m32_printer_decls.h"
-#  define PERSONALITY0_INCLUDE_PRINTERS_DEFS "m32_printer_defs.h"
+#  define PERSONALITY1_INCLUDE_FUNCS "m32_funcs.h"
+#  define PERSONALITY1_INCLUDE_PRINTERS_DECLS "m32_printer_decls.h"
+#  define PERSONALITY1_INCLUDE_PRINTERS_DEFS "m32_printer_defs.h"
 # endif
 #endif
 
diff --git a/file.c b/file.c
index 7f0b1b4..3ea0b5d 100644
--- a/file.c
+++ b/file.c
@@ -118,11 +118,7 @@
 	unsigned int	__unused4;
 	unsigned int	__unused5;
 };
-#  ifdef AARCH64
-#   define STAT32_PERSONALITY 0
-#  else
-#   define STAT32_PERSONALITY 1
-#  endif
+#  define STAT32_PERSONALITY 1
 # elif defined POWERPC64
 struct stat32 {
 	unsigned int	st_dev;
diff --git a/linux/aarch64/errnoent1.h b/linux/aarch64/errnoent1.h
index babc7f2..a0394d4 100644
--- a/linux/aarch64/errnoent1.h
+++ b/linux/aarch64/errnoent1.h
@@ -1,2 +1,2 @@
-/* Native AArch64 */
+/* ARM personality */
 #include "errnoent.h"
diff --git a/linux/aarch64/get_error.c b/linux/aarch64/get_error.c
index c5c0f69..a3aa127 100644
--- a/linux/aarch64/get_error.c
+++ b/linux/aarch64/get_error.c
@@ -5,7 +5,7 @@
 static void
 get_error(struct tcb *tcp, const bool check_errno)
 {
-	if (tcp->currpers == 0) {
+	if (tcp->currpers == 1) {
 		arm_get_error(tcp, check_errno);
 		return;
 	}
diff --git a/linux/aarch64/get_scno.c b/linux/aarch64/get_scno.c
index a712a94..c0fd482 100644
--- a/linux/aarch64/get_scno.c
+++ b/linux/aarch64/get_scno.c
@@ -8,14 +8,14 @@
 		case sizeof(aarch64_regs):
 			/* We are in 64-bit mode */
 			scno = aarch64_regs.regs[8];
-			update_personality(tcp, 1);
+			update_personality(tcp, 0);
 			break;
 		case sizeof(arm_regs):
 			/* We are in 32-bit mode */
 			/* Note: we don't support OABI, unlike 32-bit ARM build */
 			scno = arm_regs.ARM_r7;
 			scno = shuffle_scno(scno);
-			update_personality(tcp, 0);
+			update_personality(tcp, 1);
 			break;
 	}
 
diff --git a/linux/aarch64/get_syscall_args.c b/linux/aarch64/get_syscall_args.c
index b921301..ea6e497 100644
--- a/linux/aarch64/get_syscall_args.c
+++ b/linux/aarch64/get_syscall_args.c
@@ -6,7 +6,7 @@
 static int
 get_syscall_args(struct tcb *tcp)
 {
-	if (tcp->currpers == 0)
+	if (tcp->currpers == 1)
 		return arm_get_syscall_args(tcp);
 	tcp->u_arg[0] = aarch64_regs.regs[0];
 	tcp->u_arg[1] = aarch64_regs.regs[1];
diff --git a/linux/aarch64/ioctls_arch0.h b/linux/aarch64/ioctls_arch0.h
index b722d22..6a674cc 100644
--- a/linux/aarch64/ioctls_arch0.h
+++ b/linux/aarch64/ioctls_arch0.h
@@ -1 +1 @@
-#include "arm/ioctls_arch0.h"
+/* Generated by ioctls_gen.sh from definitions found in $linux/arch/arm64/include/ tree. */
diff --git a/linux/aarch64/ioctls_arch1.h b/linux/aarch64/ioctls_arch1.h
index 6a674cc..b722d22 100644
--- a/linux/aarch64/ioctls_arch1.h
+++ b/linux/aarch64/ioctls_arch1.h
@@ -1 +1 @@
-/* Generated by ioctls_gen.sh from definitions found in $linux/arch/arm64/include/ tree. */
+#include "arm/ioctls_arch0.h"
diff --git a/linux/aarch64/ioctls_inc0.h b/linux/aarch64/ioctls_inc0.h
index 46c11b1..f9939fa 100644
--- a/linux/aarch64/ioctls_inc0.h
+++ b/linux/aarch64/ioctls_inc0.h
@@ -1 +1 @@
-#include "arm/ioctls_inc0.h"
+#include "64/ioctls_inc.h"
diff --git a/linux/aarch64/ioctls_inc1.h b/linux/aarch64/ioctls_inc1.h
index f9939fa..46c11b1 100644
--- a/linux/aarch64/ioctls_inc1.h
+++ b/linux/aarch64/ioctls_inc1.h
@@ -1 +1 @@
-#include "64/ioctls_inc.h"
+#include "arm/ioctls_inc0.h"
diff --git a/linux/aarch64/syscallent.h b/linux/aarch64/syscallent.h
index 1b892be..286e0cb 100644
--- a/linux/aarch64/syscallent.h
+++ b/linux/aarch64/syscallent.h
@@ -1 +1,71 @@
-#include "../arm/syscallent.h"
+#include "64/syscallent.h"
+
+/* Arch-specific block, not used on AArch64 */
+[244 ... 259] = { },
+
+/* Quote from asm-generic/unistd.h:
+ *
+ * All syscalls below here should go away really,
+ * these are provided for both review and as a porting
+ * help for the C library version.
+ *
+ * Last chance: are any of these important enough to
+ * enable by default?
+ */
+
+[1024] = { 3,	TD|TF,		SEN(open),		"open"		},
+[1025] = { 2,	TF,		SEN(link),		"link"		},
+[1026] = { 1,	TF,		SEN(unlink),		"unlink"	},
+[1027] = { 3,	TF,		SEN(mknod),		"mknod"		},
+[1028] = { 2,	TF,		SEN(chmod),		"chmod"		},
+[1029] = { 3,	TF,		SEN(chown),		"chown"		},
+[1030] = { 2,	TF,		SEN(mkdir),		"mkdir"		},
+[1031] = { 1,	TF,		SEN(rmdir),		"rmdir"		},
+[1032] = { 3,	TF,		SEN(chown),		"lchown"	},
+[1033] = { 2,	TF,		SEN(access),		"access"	},
+[1034] = { 2,	TF,		SEN(rename),		"rename"	},
+[1035] = { 3,	TF,		SEN(readlink),		"readlink"	},
+[1036] = { 2,	TF,		SEN(symlink),		"symlink"	},
+[1037] = { 2,	TF,		SEN(utimes),		"utimes"	},
+[1038] = { 2,	TF,		SEN(stat),		"stat"		},
+[1039] = { 2,	TF,		SEN(lstat),		"lstat"		},
+[1040] = { 1,	TD,		SEN(pipe),		"pipe"		},
+[1041] = { 2,	TD,		SEN(dup2),		"dup2"		},
+[1042] = { 1,	TD,		SEN(epoll_create),	"epoll_create"	},
+[1043] = { 0,	TD,		SEN(inotify_init),	"inotify_init"	},
+[1044] = { 1,	TD,		SEN(eventfd),		"eventfd"	},
+[1045] = { 3,	TD|TS,		SEN(signalfd),		"signalfd"	},
+[1046] = { 4,	TD|TN,		SEN(sendfile64),	"sendfile"	},
+[1047] = { 2,	TD,		SEN(ftruncate),		"ftruncate"	},
+[1048] = { 2,	TF,		SEN(truncate),		"truncate"	},
+[1049] = { 2,	TF,		SEN(stat),		"stat"		},
+[1050] = { 2,	TF,		SEN(lstat),		"lstat"		},
+[1051] = { 2,	TD,		SEN(fstat),		"fstat"		},
+[1052] = { 3,	TD,		SEN(fcntl),		"fcntl"		},
+[1053] = { 4,	TD,		SEN(fadvise64),		"fadvise64"	},
+[1054] = { 4,	TD|TF,		SEN(newfstatat),	"newfstatat"	},
+[1055] = { 2,	TD,		SEN(fstatfs),		"fstatfs"	},
+[1056] = { 2,	TF,		SEN(statfs),		"statfs"	},
+[1057] = { 3,	TD,		SEN(lseek),		"lseek"		},
+[1058] = { 6,	TD|TM|SI,	SEN(mmap),		"mmap"		},
+[1059] = { 1,	0,		SEN(alarm),		"alarm"		},
+[1060] = { 0,	0,		SEN(getpgrp),		"getpgrp"	},
+[1061] = { 0,	TS,		SEN(pause),		"pause"		},
+[1062] = { 1,	0,		SEN(time),		"time"		},
+[1063] = { 2,	TF,		SEN(utime),		"utime"		},
+[1064] = { 2,	TD|TF,		SEN(creat),		"creat"		},
+[1065] = { 3,	TD,		SEN(getdents),		"getdents"	},
+[1066] = { 3,	TD|TF,		SEN(futimesat),		"futimesat"	},
+[1067] = { 5,	TD,		SEN(select),		"select"	},
+[1068] = { 3,	TD,		SEN(poll),		"poll"		},
+[1069] = { 4,	TD,		SEN(epoll_wait),	"epoll_wait"	},
+[1070] = { 2,	0,		SEN(ustat),		"ustat"		},
+[1071] = { 0,	TP,		SEN(vfork),		"vfork"		},
+[1072] = { 4,	TP,		SEN(wait4),		"wait4"		},
+[1073] = { 6,	TN,		SEN(recv),		"recv"		},
+[1074] = { 4,	TN,		SEN(send),		"send"		},
+[1075] = { 2,	0,		SEN(bdflush),		"bdflush"	},
+[1076] = { 1,	TF,		SEN(umount),		"umount"	},
+[1077] = { 1,	TF,		SEN(uselib),		"uselib"	},
+[1078] = { 1,	0,		SEN(sysctl),		"sysctl"	},
+[1079] = { 0,	TP,		SEN(fork),		"fork"		},
diff --git a/linux/aarch64/syscallent1.h b/linux/aarch64/syscallent1.h
index 286e0cb..1b892be 100644
--- a/linux/aarch64/syscallent1.h
+++ b/linux/aarch64/syscallent1.h
@@ -1,71 +1 @@
-#include "64/syscallent.h"
-
-/* Arch-specific block, not used on AArch64 */
-[244 ... 259] = { },
-
-/* Quote from asm-generic/unistd.h:
- *
- * All syscalls below here should go away really,
- * these are provided for both review and as a porting
- * help for the C library version.
- *
- * Last chance: are any of these important enough to
- * enable by default?
- */
-
-[1024] = { 3,	TD|TF,		SEN(open),		"open"		},
-[1025] = { 2,	TF,		SEN(link),		"link"		},
-[1026] = { 1,	TF,		SEN(unlink),		"unlink"	},
-[1027] = { 3,	TF,		SEN(mknod),		"mknod"		},
-[1028] = { 2,	TF,		SEN(chmod),		"chmod"		},
-[1029] = { 3,	TF,		SEN(chown),		"chown"		},
-[1030] = { 2,	TF,		SEN(mkdir),		"mkdir"		},
-[1031] = { 1,	TF,		SEN(rmdir),		"rmdir"		},
-[1032] = { 3,	TF,		SEN(chown),		"lchown"	},
-[1033] = { 2,	TF,		SEN(access),		"access"	},
-[1034] = { 2,	TF,		SEN(rename),		"rename"	},
-[1035] = { 3,	TF,		SEN(readlink),		"readlink"	},
-[1036] = { 2,	TF,		SEN(symlink),		"symlink"	},
-[1037] = { 2,	TF,		SEN(utimes),		"utimes"	},
-[1038] = { 2,	TF,		SEN(stat),		"stat"		},
-[1039] = { 2,	TF,		SEN(lstat),		"lstat"		},
-[1040] = { 1,	TD,		SEN(pipe),		"pipe"		},
-[1041] = { 2,	TD,		SEN(dup2),		"dup2"		},
-[1042] = { 1,	TD,		SEN(epoll_create),	"epoll_create"	},
-[1043] = { 0,	TD,		SEN(inotify_init),	"inotify_init"	},
-[1044] = { 1,	TD,		SEN(eventfd),		"eventfd"	},
-[1045] = { 3,	TD|TS,		SEN(signalfd),		"signalfd"	},
-[1046] = { 4,	TD|TN,		SEN(sendfile64),	"sendfile"	},
-[1047] = { 2,	TD,		SEN(ftruncate),		"ftruncate"	},
-[1048] = { 2,	TF,		SEN(truncate),		"truncate"	},
-[1049] = { 2,	TF,		SEN(stat),		"stat"		},
-[1050] = { 2,	TF,		SEN(lstat),		"lstat"		},
-[1051] = { 2,	TD,		SEN(fstat),		"fstat"		},
-[1052] = { 3,	TD,		SEN(fcntl),		"fcntl"		},
-[1053] = { 4,	TD,		SEN(fadvise64),		"fadvise64"	},
-[1054] = { 4,	TD|TF,		SEN(newfstatat),	"newfstatat"	},
-[1055] = { 2,	TD,		SEN(fstatfs),		"fstatfs"	},
-[1056] = { 2,	TF,		SEN(statfs),		"statfs"	},
-[1057] = { 3,	TD,		SEN(lseek),		"lseek"		},
-[1058] = { 6,	TD|TM|SI,	SEN(mmap),		"mmap"		},
-[1059] = { 1,	0,		SEN(alarm),		"alarm"		},
-[1060] = { 0,	0,		SEN(getpgrp),		"getpgrp"	},
-[1061] = { 0,	TS,		SEN(pause),		"pause"		},
-[1062] = { 1,	0,		SEN(time),		"time"		},
-[1063] = { 2,	TF,		SEN(utime),		"utime"		},
-[1064] = { 2,	TD|TF,		SEN(creat),		"creat"		},
-[1065] = { 3,	TD,		SEN(getdents),		"getdents"	},
-[1066] = { 3,	TD|TF,		SEN(futimesat),		"futimesat"	},
-[1067] = { 5,	TD,		SEN(select),		"select"	},
-[1068] = { 3,	TD,		SEN(poll),		"poll"		},
-[1069] = { 4,	TD,		SEN(epoll_wait),	"epoll_wait"	},
-[1070] = { 2,	0,		SEN(ustat),		"ustat"		},
-[1071] = { 0,	TP,		SEN(vfork),		"vfork"		},
-[1072] = { 4,	TP,		SEN(wait4),		"wait4"		},
-[1073] = { 6,	TN,		SEN(recv),		"recv"		},
-[1074] = { 4,	TN,		SEN(send),		"send"		},
-[1075] = { 2,	0,		SEN(bdflush),		"bdflush"	},
-[1076] = { 1,	TF,		SEN(umount),		"umount"	},
-[1077] = { 1,	TF,		SEN(uselib),		"uselib"	},
-[1078] = { 1,	0,		SEN(sysctl),		"sysctl"	},
-[1079] = { 0,	TP,		SEN(fork),		"fork"		},
+#include "../arm/syscallent.h"
diff --git a/linux/arm/arch_sigreturn.c b/linux/arm/arch_sigreturn.c
index 6d32ac5..28726a2 100644
--- a/linux/arm/arch_sigreturn.c
+++ b/linux/arm/arch_sigreturn.c
@@ -7,7 +7,7 @@
 
 	const long addr =
 #ifdef AARCH64
-		current_personality == 1 ?
+		tcp->currpers == 0 ?
 			(*aarch64_sp_ptr + SIZEOF_STRUCT_SIGINFO +
 			 offsetof(struct ucontext, uc_sigmask)) :
 #endif
diff --git a/syscall.c b/syscall.c
index fae5f6b..66154f7 100644
--- a/syscall.c
+++ b/syscall.c
@@ -346,7 +346,7 @@
 # elif defined X32
 #  define PERSONALITY_NAMES {"x32", "32 bit"}
 # elif defined AARCH64
-#  define PERSONALITY_NAMES {"32-bit", "AArch64"}
+#  define PERSONALITY_NAMES {"64 bit", "32 bit"}
 # elif defined TILE
 #  define PERSONALITY_NAMES {"64-bit", "32-bit"}
 # endif