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/CMakeLists.txt b/CMakeLists.txt
index 93605b7..6ca7019 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -259,6 +259,8 @@
 
 SET(JIT_SRCS
   src/jit/aarch32-assembler.cc
+  src/jit/aarch64-assembler.cc
+  src/jit/assembler.cc
   src/jit/memory.c)
 
 SET(JIT_AARCH32_SRCS
@@ -8248,6 +8250,14 @@
     CXX_EXTENSIONS YES)
   TARGET_INCLUDE_DIRECTORIES(aarch32-assembler-test PRIVATE include src)
   TARGET_LINK_LIBRARIES(aarch32-assembler-test PRIVATE jit pthreadpool gtest gtest_main)
+
+  ADD_EXECUTABLE(aarch64-assembler-test test/aarch64-assembler.cc)
+  SET_TARGET_PROPERTIES(aarch64-assembler-test PROPERTIES
+    CXX_STANDARD 11
+    CXX_STANDARD_REQUIRED YES
+    CXX_EXTENSIONS YES)
+  TARGET_INCLUDE_DIRECTORIES(aarch64-assembler-test PRIVATE include src)
+  TARGET_LINK_LIBRARIES(aarch64-assembler-test PRIVATE jit pthreadpool gtest gtest_main)
 ENDIF()
 
 # ---[ XNNPACK microbenchmarks