diff --git a/arch/windows-arm64-msvc.h b/arch/windows-arm64-msvc.h
new file mode 100644
index 0000000..38cb805
--- /dev/null
+++ b/arch/windows-arm64-msvc.h
@@ -0,0 +1,63 @@
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
+   All Rights Reserved.
+
+   This software is provided AS-IS with no warranty, either express or
+   implied.
+
+   This software is distributed under license and may not be copied,
+   modified or distributed except as expressly authorized under the terms
+   of the license contained in the file LICENSE in this distribution.
+
+   Refer to licensing information at http://www.artifex.com or contact
+   Artifex Software, Inc.,  1305 Grant Avenue - Suite 200, Novato,
+   CA 94945, U.S.A., +1(415)492-9861, for further information.
+*/
+/* Parameters derived from machine and compiler architecture. */
+/* This file was generated mechanically by genarch.c, for a ARM 64bit */
+/* Microsoft Windows machine, compiling with MSVC. */
+
+	 /* ---------------- Scalar alignments ---------------- */
+
+#define ARCH_ALIGN_SHORT_MOD 2
+#define ARCH_ALIGN_INT_MOD 4
+#define ARCH_ALIGN_LONG_MOD 4
+#define ARCH_ALIGN_SIZE_T_MOD 8
+#define ARCH_ALIGN_PTR_MOD 8
+#define ARCH_ALIGN_FLOAT_MOD 4
+#define ARCH_ALIGN_DOUBLE_MOD 8
+#define ARCH_ALIGN_UINT64_T_MOD 8
+
+	 /* ---------------- Scalar sizes ---------------- */
+
+#define ARCH_LOG2_SIZEOF_CHAR 0
+#define ARCH_LOG2_SIZEOF_SHORT 1
+#define ARCH_LOG2_SIZEOF_INT 2
+#define ARCH_LOG2_SIZEOF_LONG 2
+#define ARCH_LOG2_SIZEOF_SIZE_T 3
+#define ARCH_SIZEOF_SIZE_T 8
+
+#ifndef ARCH_SIZEOF_GX_COLOR_INDEX
+#define ARCH_SIZEOF_GX_COLOR_INDEX 8
+#endif
+
+#define ARCH_SIZEOF_PTR 8
+#define ARCH_SIZEOF_FLOAT 4
+#define ARCH_SIZEOF_DOUBLE 8
+#define ARCH_FLOAT_MANTISSA_BITS 24
+#define ARCH_DOUBLE_MANTISSA_BITS 53
+
+	 /* ---------------- Unsigned max values ---------------- */
+
+#define ARCH_MAX_UCHAR ((unsigned char)0xff + (unsigned char)0)
+#define ARCH_MAX_USHORT ((unsigned short)0xffff + (unsigned short)0)
+#define ARCH_MAX_UINT ((unsigned int)~0 + (unsigned int)0)
+#define ARCH_MAX_ULONG ((unsigned long)~0L + (unsigned long)0)
+#define ARCH_MAX_SIZE_T ((size_t)~0L + (size_t)0)
+
+	 /* ---------------- Miscellaneous ---------------- */
+
+#define ARCH_IS_BIG_ENDIAN 0
+#define ARCH_PTRS_ARE_SIGNED 0
+#define ARCH_FLOATS_ARE_IEEE 1
+#define ARCH_ARITH_RSHIFT 2
+#define ARCH_DIV_NEG_POS_TRUNCATES 1
diff --git a/configure.ac b/configure.ac
index d58019f..a8b4c67 100644
--- a/configure.ac
+++ b/configure.ac
@@ -409,6 +409,12 @@ if test x"$with_arch_h" = x""; then
           x86_64*-mingw*|x86_64*-msys*)
             ARCH_CONF_HEADER="\$(GLSRCDIR)/../arch/windows-x64-msvc.h"
           ;;
+          armv7*-mingw*|armv7*-msys*)
+            ARCH_CONF_HEADER="\$(GLSRCDIR)/../arch/windows-arm-msvc.h"
+          ;;
+          aarch64*-mingw*|aarch64*-msys*)
+            ARCH_CONF_HEADER="\$(GLSRCDIR)/../arch/windows-arm64-msvc.h"
+          ;;
           *-mingw*|*-msys*)
             ARCH_CONF_HEADER="\$(GLSRCDIR)/../arch/windows-x86-msvc.h"
           ;;
