Initial aarch64 assembler structure

Simple AssemblerBase class that contains architecture-independent structures, make aarch32 derive from it, we can eventually use CRTP to move even more member functions there (like emit32). Some structures might be moved into AssemblerBase later on (like Label).

PiperOrigin-RevId: 423088259
diff --git a/BUILD.bazel b/BUILD.bazel
index 1347c6f..8b690e5 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -9157,10 +9157,14 @@
     name = "jit",
     srcs = [
         "src/jit/aarch32-assembler.cc",
+        "src/jit/aarch64-assembler.cc",
+        "src/jit/assembler.cc",
         "src/jit/memory.c",
     ],
     hdrs = INTERNAL_HDRS + [
+        "src/xnnpack/assembler.h",
         "src/xnnpack/aarch32-assembler.h",
+        "src/xnnpack/aarch64-assembler.h",
     ],
     aarch32_srcs = JIT_AARCH32_SRCS,
     msvc_copts = xnnpack_msvc_std_copts(),
@@ -9173,10 +9177,14 @@
     name = "jit_test_mode",
     srcs = [
         "src/jit/aarch32-assembler.cc",
+        "src/jit/aarch64-assembler.cc",
+        "src/jit/assembler.cc",
         "src/jit/memory.c",
     ],
     hdrs = INTERNAL_HDRS + [
         "src/xnnpack/aarch32-assembler.h",
+        "src/xnnpack/aarch64-assembler.h",
+        "src/xnnpack/assembler.h",
     ],
     aarch32_srcs = JIT_AARCH32_SRCS,
     copts = [
@@ -12643,6 +12651,17 @@
     ],
 )
 
+xnnpack_unit_test(
+    name = "aarch64_assembler_test",
+    srcs = [
+        "test/aarch64-assembler.cc",
+    ],
+    deps = [
+        ":XNNPACK",
+        ":jit_test_mode",
+    ],
+)
+
 ############################# Build configurations #############################
 
 # Enables usage of assembly kernels.