=================================================================== RCS file: /home/cvs/OpenXM_contrib/gmp/mpn/alpha/Attic/unicos.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/unicos.m4 2000/09/09 14:12:22 1.1.1.1 +++ OpenXM_contrib/gmp/mpn/alpha/Attic/unicos.m4 2003/08/25 16:06:18 1.1.1.2 @@ -1,8 +1,10 @@ divert(-1) +dnl m4 macros for alpha assembler on 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,43 +23,86 @@ dnl not, write to the Free Software Foundation, Inc., dnl Suite 330, Boston, MA 02111-1307, USA. +dnl Note that none of the standard GMP_ASM_ autoconf tests are done for +dnl unicos, so none of the config.m4 results can be used here. + +dnl No underscores on unicos +define(`GSYM_PREFIX') + define(`ASM_START', - `.ident dummy') +m4_assert_numargs(0) +` .ident dummy') -define(`X',`^X$1') +define(`X', +m4_assert_numargs(1) +`^X$1') + define(`FLOAT64', - `dnl - .psect $1@crud,data +m4_assert_numargs(2) +` .psect $1@crud,data $1: .t_floating $2 .endp') -define(`PROLOGUE', - `dnl +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 .stack 192 ; What does this mean? Only Cray knows. .psect $1@code,code,cache $1::') -define(`PROLOGUE_GP', `PROLOGUE($1)') -define(`EPILOGUE', - `dnl - .endp') +define(`EPILOGUE_cpu', +m4_assert_numargs(1) +` .endp') +dnl Usage: EXTERN(variable_name) +define(`EXTERN', +m4_assert_numargs(1) +` .extern $1') + define(`DATASTART', - `dnl - .psect $1@crud,data +m4_assert_numargs(1) +` .psect $1@crud,data $1:') + define(`DATAEND', - `dnl - .endp') +m4_assert_numargs(0) +` .endp') define(`ASM_END', - `dnl - .end') +m4_assert_numargs(0) +` .end') -define(`unop',`bis r31,r31,r31') ; Unicos assembler lacks unop -define(`cvttqc',`cvttq/c') +dnl Unicos assembler lacks unop +define(`unop', +m4_assert_numargs(-1) +`bis r31,r31,r31') -define(`ALIGN',`') ; Unicos assembler seems to align using garbage +define(`cvttqc', +m4_assert_numargs(-1) +`cvttq/c') -divert +dnl Load a symbolic address into a register +define(`LEA', +m4_assert_numargs(2) + `laum $1, $2(r31) + sll $1, 32, $1 + lalm $1, $2($1) + lal $1, $2($1)') +dnl Need some stuff for extwl just for bigend systems, like Unicos. +define(`bigend', +m4_assert_numargs(1) +`$1') + +dnl Unicos assembler seems to align using garbage, so disable aligning +define(`ALIGN', +m4_assert_numargs(1) +) + +divert