diff --git a/file.c b/file.c
index 8d21da3..5999a56 100644
--- a/file.c
+++ b/file.c
@@ -356,6 +356,30 @@
 	do_printstat(tcp, &statbuf);
 }
 
+int
+sys_stat(struct tcb *tcp)
+{
+	if (entering(tcp)) {
+		printpath(tcp, tcp->u_arg[0]);
+		tprints(", ");
+	} else {
+		printstat(tcp, tcp->u_arg[1]);
+	}
+	return 0;
+}
+
+int
+sys_fstat(struct tcb *tcp)
+{
+	if (entering(tcp)) {
+		printfd(tcp, tcp->u_arg[0]);
+		tprints(", ");
+	} else {
+		printstat(tcp, tcp->u_arg[1]);
+	}
+	return 0;
+}
+
 #if !defined HAVE_STAT64 && (defined AARCH64 || defined X86_64 || defined X32)
 /*
  * Linux x86_64 and x32 have unified `struct stat' but their i386 personality
@@ -460,18 +484,6 @@
 #endif /* HAVE_STAT64 */
 
 int
-sys_stat(struct tcb *tcp)
-{
-	if (entering(tcp)) {
-		printpath(tcp, tcp->u_arg[0]);
-		tprints(", ");
-	} else {
-		printstat(tcp, tcp->u_arg[1]);
-	}
-	return 0;
-}
-
-int
 sys_stat64(struct tcb *tcp)
 {
 #ifdef HAVE_STAT64
@@ -488,6 +500,22 @@
 }
 
 int
+sys_fstat64(struct tcb *tcp)
+{
+#ifdef HAVE_STAT64
+	if (entering(tcp)) {
+		printfd(tcp, tcp->u_arg[0]);
+		tprints(", ");
+	} else {
+		printstat64(tcp, tcp->u_arg[1]);
+	}
+	return 0;
+#else
+	return printargs(tcp);
+#endif
+}
+
+int
 sys_newfstatat(struct tcb *tcp)
 {
 	if (entering(tcp)) {
@@ -511,34 +539,6 @@
 	return 0;
 }
 
-int
-sys_fstat(struct tcb *tcp)
-{
-	if (entering(tcp)) {
-		printfd(tcp, tcp->u_arg[0]);
-		tprints(", ");
-	} else {
-		printstat(tcp, tcp->u_arg[1]);
-	}
-	return 0;
-}
-
-int
-sys_fstat64(struct tcb *tcp)
-{
-#ifdef HAVE_STAT64
-	if (entering(tcp)) {
-		printfd(tcp, tcp->u_arg[0]);
-		tprints(", ");
-	} else {
-		printstat64(tcp, tcp->u_arg[1]);
-	}
-	return 0;
-#else
-	return printargs(tcp);
-#endif
-}
-
 #if defined(HAVE_STRUCT___OLD_KERNEL_STAT)
 
 static void
