Allow a couple more swab implementation details through.

We hadn't spotted these before because no-one's using them, but C23 makes
the use of undeclared identifiers (in the also-unused caller) an error.

Change-Id: Iad5f364424e5621280d679aa2530e0e872abbb85
diff --git a/libc/kernel/uapi/asm-arm/asm/swab.h b/libc/kernel/uapi/asm-arm/asm/swab.h
index 7684c22..3fff953 100644
--- a/libc/kernel/uapi/asm-arm/asm/swab.h
+++ b/libc/kernel/uapi/asm-arm/asm/swab.h
@@ -11,7 +11,18 @@
 #ifndef __STRICT_ANSI__
 #define __SWAB_64_THRU_32__
 #endif
+static inline __attribute__((__const__)) __u32 __arch_swab32(__u32 x) {
+  __u32 t;
 #ifndef __thumb__
+  if(! __builtin_constant_p(x)) {
+    asm("eor\t%0, %1, %1, ror #16" : "=r" (t) : "r" (x));
+  } else
 #endif
+  t = x ^ ((x << 16) | (x >> 16));
+  x = (x << 24) | (x >> 8);
+  t &= ~0x00FF0000;
+  x ^= (t >> 8);
+  return x;
+}
 #define __arch_swab32 __arch_swab32
 #endif