=================================================================== RCS file: /home/cvs/OpenXM_contrib/gmp/mpn/alpha/Attic/default.m4,v retrieving revision 1.1.1.1 retrieving revision 1.1.1.2 diff -u -p -r1.1.1.1 -r1.1.1.2 --- OpenXM_contrib/gmp/mpn/alpha/Attic/default.m4 2000/09/09 14:12:22 1.1.1.1 +++ OpenXM_contrib/gmp/mpn/alpha/Attic/default.m4 2003/08/25 16:06:18 1.1.1.2 @@ -1,8 +1,10 @@ divert(-1) +dnl m4 macros for alpha assembler (everywhere except unicos). -dnl Copyright (C) 2000 Free Software Foundation, Inc. -dnl + +dnl Copyright 2000, 2002 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 @@ -21,57 +23,90 @@ dnl not, write to the Free Software Foundation, Inc., dnl Suite 330, Boston, MA 02111-1307, USA. +dnl Usage: ASM_START() define(`ASM_START', - ` - .set noreorder +m4_assert_numargs(0) +` .set noreorder .set noat') -define(`X',`0x$1') +dnl Usage: X(value) +define(`X', +m4_assert_numargs(1) +`0x$1') + +dnl Usage: FLOAT64(label,value) define(`FLOAT64', - ` - .align 3 +m4_assert_numargs(2) +` .align 3 $1: .t_floating $2') -define(`PROLOGUE', - ` + +dnl Called: PROLOGUE_cpu(GSYM_PREFIX`'foo[,gp|noalign]) +dnl EPILOGUE_cpu(GSYM_PREFIX`'foo) + +define(`PROLOGUE_cpu', +m4_assert_numargs_range(1,2) +`ifelse(`$2',gp,, +`ifelse(`$2',noalign,, +`ifelse(`$2',,,`m4_error(`Unrecognised PROLOGUE parameter +')')')')dnl .text - .align 3 +ifelse(`$2',noalign,,` ALIGN(8)') .globl $1 .ent $1 $1: +ifelse(`$2',gp,` ldgp r29,0(r27)') .frame r30,0,r26 - .prologue 0') + .prologue ifelse(`$2',gp,1,0)') -define(`PROLOGUE_GP', - ` - .text - .align 3 - .globl $1 - .ent $1 -$1: - ldgp r29,0(r27) - .frame r30,0,r26 - .prologue 1') +define(`EPILOGUE_cpu', +m4_assert_numargs(1) +` .end $1') -define(`EPILOGUE', - ` - .end $1') -dnl Map register names r0, r1, etc, to `$0', `$1', etc. -dnl This is needed on all systems but Unicos -forloop(i,0,31, -`define(`r'i,``$''i)' +dnl Usage: EXTERN(variable_name) +define(`EXTERN', +m4_assert_numargs(1) ) -forloop(i,0,31, -`define(`f'i,``$f''i)' -) +dnl Usage: r0 ... r31 +dnl f0 ... f31 +dnl +dnl Map register names r0 to $0, and f0 to $f0, etc. +dnl This is needed on all systems but Unicos +dnl +dnl defreg() is used to protect the $ in $0 (otherwise it would represent a +dnl macro argument). Double quoting is used to protect the f0 in $f0 +dnl (otherwise it would be an infinite recursion). + +forloop(i,0,31,`defreg(`r'i,$i)') +forloop(i,0,31,`deflit(`f'i,``$f''i)') + + +dnl Usage: DATASTART(name) +dnl DATAEND() + define(`DATASTART', - `dnl - DATA +m4_assert_numargs(1) +` DATA $1:') -define(`DATAEND',`dnl') +define(`DATAEND', +m4_assert_numargs(0) +) -define(`ASM_END',`dnl') +dnl Load a symbolic address into a register +define(`LEA', +m4_assert_numargs(2) +`lda $1, $2') + +dnl Need some stuff for extwl just for bigend systems. Define to empty. +define(`bigend', +m4_assert_numargs(1) +`') + +dnl Usage: ASM_END() +define(`ASM_END', +m4_assert_numargs(0) +) divert