summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTorbjorn Granlund <tege@gmplib.org>2011-11-28 23:06:51 +0100
committerTorbjorn Granlund <tege@gmplib.org>2011-11-28 23:06:51 +0100
commit3ef9c90709d4a4e1a6a5052cea8e17c9feb76728 (patch)
tree0773d6e849f088506d0af8047a75f4ffb9bbc7a9
parent5db131d3587a358bb093d29a90ff922828a4e1bd (diff)
downloadgmp-3ef9c90709d4a4e1a6a5052cea8e17c9feb76728.tar.gz
New file.
-rw-r--r--mpn/x86_64/dos64.m439
1 files changed, 39 insertions, 0 deletions
diff --git a/mpn/x86_64/dos64.m4 b/mpn/x86_64/dos64.m4
new file mode 100644
index 000000000..ef60834ec
--- /dev/null
+++ b/mpn/x86_64/dos64.m4
@@ -0,0 +1,39 @@
+divert(-1)
+dnl Copyright 2011 Free Software Foundation, Inc.
+dnl
+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
+dnl modify it under the terms of the GNU Lesser General Public License as
+dnl published by the Free Software Foundation; either version 3 of the
+dnl License, or (at your option) any later version.
+dnl
+dnl The GNU MP Library is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+dnl Lesser General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU Lesser General Public License
+dnl along with the GNU MP Library. If not, see http://www.gnu.org/licenses/.
+
+define(`HOST_DOS64')
+
+define(`JUMPTABSECT', `.section .rdata,"dr"')
+
+define(`DOS64_ENTRY',
+ `push %rdi
+ push %rsi
+ mov %rcx, %rdi
+ifelse(eval($1>=2),1,`dnl
+ mov %rdx, %rsi
+ifelse(eval($1>=3),1,`dnl
+ mov %r8, %rdx
+ifelse(eval($1>=4),1,`dnl
+ mov %r9, %rcx
+')')')')
+
+define(`DOS64_EXIT',
+ `pop %rsi
+ pop %rdi')
+
+divert`'dnl