Separate ILP32 and normal-aarch64 code paths

Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
diff --git a/library/constant_time.c b/library/constant_time.c
index b24ebb4..89d7b4f 100644
--- a/library/constant_time.c
+++ b/library/constant_time.c
@@ -79,7 +79,12 @@
 #if defined(__arm__) || defined(__thumb__) || defined(__thumb2__)
     asm volatile ("ldr %0, [%1]" : "=r" (r) : "r" (p) :);
 #elif defined(__aarch64__)
+#if (SIZE_MAX == 0xffffffff)
+    /* ILP32: Specify the pointer operand slightly differently, as per #7787. */
     asm volatile ("ldr %w0, [%1]" : "=r" (r) : "p" (p) :);
+#else
+    asm volatile ("ldr %w0, [%1]" : "=r" (r) : "r" (p) :);
+#endif
 #endif
     return r;
 }