vcpkg/ports/gmp/arm64-coff.patch

74 lines
2.2 KiB
Diff
Raw Normal View History

diff --git a/configure.ac b/configure.ac
index bd92bc4..bd2c0af 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3704,6 +3704,8 @@ if test "$gmp_asm_syntax_testing" != no; then
case $host in
*-*-darwin*)
GMP_INCLUDE_MPN(arm64/darwin.m4) ;;
+ *-pc-mingw32)
+ GMP_INCLUDE_MPN(arm64/coff.m4) ;;
*)
GMP_INCLUDE_MPN(arm64/arm64-defs.m4) ;;
esac
diff --git a/mpn/arm64/coff.m4 b/mpn/arm64/coff.m4
new file mode 100644
index 0000000..88605b3
--- /dev/null
+++ b/mpn/arm64/coff.m4
@@ -0,0 +1,54 @@
+divert(-1)
+
+dnl m4 macros for ARM64 COFF assembler.
+
+dnl Copyright 2020 Free Software Foundation, Inc.
+
+dnl This file is part of the GNU MP Library.
+dnl
+dnl The GNU MP Library is free software; you can redistribute it and/or modify
+dnl it under the terms of either:
+dnl
+dnl * the GNU Lesser General Public License as published by the Free
+dnl Software Foundation; either version 3 of the License, or (at your
+dnl option) any later version.
+dnl
+dnl or
+dnl
+dnl * the GNU General Public License as published by the Free Software
+dnl Foundation; either version 2 of the License, or (at your option) any
+dnl later version.
+dnl
+dnl or both in parallel, as here.
+dnl
+dnl The GNU MP Library is distributed in the hope that it will be useful, but
+dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+dnl for more details.
+dnl
+dnl You should have received copies of the GNU General Public License and the
+dnl GNU Lesser General Public License along with the GNU MP Library. If not,
+dnl see https://www.gnu.org/licenses/.
+
+
+dnl Standard commenting is with @, the default m4 # is for constants and we
+dnl don't want to disable macro expansions in or after them.
+
+changecom
+
+
+dnl LEA_HI(reg,gmp_symbol), LEA_LO(reg,gmp_symbol)
+dnl
+dnl Load the address of gmp_symbol into a register. We split this into two
+dnl parts to allow separation for manual insn scheduling.
+
+define(`LEA_HI', `ldr $1, =$2')dnl
+define(`LEA_LO')dnl
+
+dnl Usage: ALIGN(bytes)
+dnl
+dnl Emit a ".align" directive.
+
+define(`ALIGN', ` .align 8')dnl
+
+divert`'dnl