summaryrefslogtreecommitdiff
path: root/gmp/mpn/x86/darwin.m4
diff options
context:
space:
mode:
Diffstat (limited to 'gmp/mpn/x86/darwin.m4')
-rw-r--r--gmp/mpn/x86/darwin.m482
1 files changed, 20 insertions, 62 deletions
diff --git a/gmp/mpn/x86/darwin.m4 b/gmp/mpn/x86/darwin.m4
index f8363db3f7..7ef8dfc105 100644
--- a/gmp/mpn/x86/darwin.m4
+++ b/gmp/mpn/x86/darwin.m4
@@ -1,82 +1,40 @@
divert(-1)
-dnl Copyright 2007, 2011, 2012 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 Copyright 2007 Free Software Foundation, Inc.
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 This file is part of the GNU MP Library.
dnl
-dnl or both in parallel, as here.
+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, 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 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 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 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(`DARWIN')
-
dnl Usage LEA(symbol,reg)
dnl
-dnl We maintain lists of stuff to append in load_eip and darwin_bd. The
-dnl `index' stuff is needed to suppress repeated definitions. To avoid
-dnl getting fooled by "var" and "var1", we add 'bol ' (the end of
-dnl 'indirect_symbol') at the beginning and and a newline at the end. This
-dnl might be a bit fragile.
+dnl FIXME: Only handles one symbol per assembly file because of the
+dnl way EPILOGUE_cpu is handled.
-define(`LEA',
-m4_assert_numargs(2)
-`ifdef(`PIC',`
-ifelse(index(defn(`load_eip'), `$2'),-1,
-`m4append(`load_eip',
-`L(movl_eip_`'substr($2,1)):
+define(`LEA',`
+define(`EPILOGUE_cpu',
+` L(movl_eip_`'substr($2,1)):
movl (%esp), $2
ret_internal
-')')
-ifelse(index(defn(`darwin_bd'), `bol $1
-'),-1,
-`m4append(`darwin_bd',
-` .section __IMPORT,__pointers,non_lazy_symbol_pointers
+ .section __IMPORT,__pointers,non_lazy_symbol_pointers
L($1`'$non_lazy_ptr):
.indirect_symbol $1
.long 0
-')')
+')
call L(movl_eip_`'substr($2,1))
movl L($1`'$non_lazy_ptr)-.($2), $2
-',`
- movl `$'$1, $2
-')')
-
-
-dnl EPILOGUE_cpu
-
-define(`EPILOGUE_cpu',`load_eip`'darwin_bd')
-
-define(`load_eip', `') dnl updated in LEA
-define(`darwin_bd', `') dnl updated in LEA
-
-
-dnl Usage: CALL(funcname)
-dnl
-
-define(`CALL',
-m4_assert_numargs(1)
-`call GSYM_PREFIX`'$1')
-
-undefine(`PIC_WITH_EBX')
+')
divert`'dnl