xref: /netbsd/external/lgpl3/gmp/dist/mpn/powerpc32/aix.m4 (revision f81b1c5b)
14a1767b4Smrgdivert(-1)
24a1767b4Smrgdnl  m4 macros for AIX 32-bit assembly.
34a1767b4Smrg
4*f81b1c5bSmrgdnl  Copyright 2000-2002, 2005, 2006 Free Software Foundation, Inc.
5*f81b1c5bSmrg
64a1767b4Smrgdnl  This file is part of the GNU MP Library.
74a1767b4Smrgdnl
8*f81b1c5bSmrgdnl  The GNU MP Library is free software; you can redistribute it and/or modify
9*f81b1c5bSmrgdnl  it under the terms of either:
104a1767b4Smrgdnl
11*f81b1c5bSmrgdnl    * the GNU Lesser General Public License as published by the Free
12*f81b1c5bSmrgdnl      Software Foundation; either version 3 of the License, or (at your
13*f81b1c5bSmrgdnl      option) any later version.
144a1767b4Smrgdnl
15*f81b1c5bSmrgdnl  or
16*f81b1c5bSmrgdnl
17*f81b1c5bSmrgdnl    * the GNU General Public License as published by the Free Software
18*f81b1c5bSmrgdnl      Foundation; either version 2 of the License, or (at your option) any
19*f81b1c5bSmrgdnl      later version.
20*f81b1c5bSmrgdnl
21*f81b1c5bSmrgdnl  or both in parallel, as here.
22*f81b1c5bSmrgdnl
23*f81b1c5bSmrgdnl  The GNU MP Library is distributed in the hope that it will be useful, but
24*f81b1c5bSmrgdnl  WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
25*f81b1c5bSmrgdnl  or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
26*f81b1c5bSmrgdnl  for more details.
27*f81b1c5bSmrgdnl
28*f81b1c5bSmrgdnl  You should have received copies of the GNU General Public License and the
29*f81b1c5bSmrgdnl  GNU Lesser General Public License along with the GNU MP Library.  If not,
30*f81b1c5bSmrgdnl  see https://www.gnu.org/licenses/.
314a1767b4Smrg
324a1767b4Smrgdefine(`ASM_START',
334a1767b4Smrg`	.toc')
344a1767b4Smrg
354a1767b4Smrgdnl  Called: PROLOGUE_cpu(GSYM_PREFIX`'foo)
364a1767b4Smrgdnl          EPILOGUE_cpu(GSYM_PREFIX`'foo)
374a1767b4Smrgdnl
384a1767b4Smrgdnl  Don't want ELF style .size in the epilogue.
394a1767b4Smrg
404a1767b4Smrgdefine(`PROLOGUE_cpu',
414a1767b4Smrgm4_assert_numargs(1)
424a1767b4Smrg	`
434a1767b4Smrg	.globl	$1
444a1767b4Smrg	.globl	.$1
454a1767b4Smrg	.csect	[DS], 2
464a1767b4Smrg$1:
474a1767b4Smrg	.long	.$1, TOC[tc0], 0
484a1767b4Smrg	.csect	[PR]
494a1767b4Smrg	.align	2
504a1767b4Smrg.$1:')
514a1767b4Smrg
524a1767b4Smrgdefine(`EPILOGUE_cpu',
534a1767b4Smrgm4_assert_numargs(1)
544a1767b4Smrg`')
554a1767b4Smrg
564a1767b4Smrgdefine(`TOC_ENTRY', `')
574a1767b4Smrg
584a1767b4Smrgdefine(`LEA',
594a1767b4Smrgm4_assert_numargs(2)
604a1767b4Smrg`define(`TOC_ENTRY',
614a1767b4Smrg`	.toc
624a1767b4Smrgtc$2:
634a1767b4Smrg	.tc	$2[TC], $2')'
644a1767b4Smrg`	lwz	$1, tc$2(2)')
654a1767b4Smrg
664a1767b4Smrgdefine(`EXTERN',
674a1767b4Smrgm4_assert_numargs(1)
684a1767b4Smrg`	.globl	$1')
694a1767b4Smrg
704a1767b4Smrgdefine(`DEF_OBJECT',
714a1767b4Smrgm4_assert_numargs_range(1,2)
724a1767b4Smrg`	.csect	[RO], 3
734a1767b4Smrg	ALIGN(ifelse($#,1,2,$2))
744a1767b4Smrg$1:
754a1767b4Smrg')
764a1767b4Smrg
774a1767b4Smrgdefine(`END_OBJECT',
784a1767b4Smrgm4_assert_numargs(1))
794a1767b4Smrg
804a1767b4Smrgdefine(`ASM_END', `TOC_ENTRY')
814a1767b4Smrg
824a1767b4Smrgdivert
83