OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /openrisc/tags/gnu-src/newlib-1.18.0/newlib-1.18.0-or32-1.0rc2/newlib/libc/sys/a29khif
    from Rev 207 to Rev 520
    Reverse comparison

Rev 207 → Rev 520

/configure
0,0 → 1,4991
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.63 for newlib 1.18.0.
#
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
# This configure script is free software; the Free Software Foundation
# gives unlimited permission to copy, distribute and modify it.
## --------------------- ##
## M4sh Initialization. ##
## --------------------- ##
 
# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
# is contrary to our usage. Disable this feature.
alias -g '${1+"$@"}'='"$@"'
setopt NO_GLOB_SUBST
else
case `(set -o) 2>/dev/null` in
*posix*) set -o posix ;;
esac
 
fi
 
 
 
 
# PATH needs CR
# Avoid depending upon Character Ranges.
as_cr_letters='abcdefghijklmnopqrstuvwxyz'
as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
as_cr_Letters=$as_cr_letters$as_cr_LETTERS
as_cr_digits='0123456789'
as_cr_alnum=$as_cr_Letters$as_cr_digits
 
as_nl='
'
export as_nl
# Printing a long string crashes Solaris 7 /usr/bin/printf.
as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
as_echo='printf %s\n'
as_echo_n='printf %s'
else
if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
as_echo_n='/usr/ucb/echo -n'
else
as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
as_echo_n_body='eval
arg=$1;
case $arg in
*"$as_nl"*)
expr "X$arg" : "X\\(.*\\)$as_nl";
arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
esac;
expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
'
export as_echo_n_body
as_echo_n='sh -c $as_echo_n_body as_echo'
fi
export as_echo_body
as_echo='sh -c $as_echo_body as_echo'
fi
 
# The user is always right.
if test "${PATH_SEPARATOR+set}" != set; then
PATH_SEPARATOR=:
(PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
(PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
PATH_SEPARATOR=';'
}
fi
 
# Support unset when possible.
if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
as_unset=unset
else
as_unset=false
fi
 
 
# IFS
# We need space, tab and new line, in precisely that order. Quoting is
# there to prevent editors from complaining about space-tab.
# (If _AS_PATH_WALK were called with IFS unset, it would disable word
# splitting by setting IFS to empty value.)
IFS=" "" $as_nl"
 
# Find who we are. Look in the path if we contain no directory separator.
case $0 in
*[\\/]* ) as_myself=$0 ;;
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
done
IFS=$as_save_IFS
 
;;
esac
# We did not find ourselves, most probably we were run as `sh COMMAND'
# in which case we are not to be found in the path.
if test "x$as_myself" = x; then
as_myself=$0
fi
if test ! -f "$as_myself"; then
$as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
{ (exit 1); exit 1; }
fi
 
# Work around bugs in pre-3.0 UWIN ksh.
for as_var in ENV MAIL MAILPATH
do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
done
PS1='$ '
PS2='> '
PS4='+ '
 
# NLS nuisances.
LC_ALL=C
export LC_ALL
LANGUAGE=C
export LANGUAGE
 
# Required to use basename.
if expr a : '\(a\)' >/dev/null 2>&1 &&
test "X`expr 00001 : '.*\(...\)'`" = X001; then
as_expr=expr
else
as_expr=false
fi
 
if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
as_basename=basename
else
as_basename=false
fi
 
 
# Name of the executable.
as_me=`$as_basename -- "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
X"$0" : 'X\(//\)$' \| \
X"$0" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X/"$0" |
sed '/^.*\/\([^/][^/]*\)\/*$/{
s//\1/
q
}
/^X\/\(\/\/\)$/{
s//\1/
q
}
/^X\/\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
 
# CDPATH.
$as_unset CDPATH
 
 
if test "x$CONFIG_SHELL" = x; then
if (eval ":") 2>/dev/null; then
as_have_required=yes
else
as_have_required=no
fi
 
if test $as_have_required = yes && (eval ":
(as_func_return () {
(exit \$1)
}
as_func_success () {
as_func_return 0
}
as_func_failure () {
as_func_return 1
}
as_func_ret_success () {
return 0
}
as_func_ret_failure () {
return 1
}
 
exitcode=0
if as_func_success; then
:
else
exitcode=1
echo as_func_success failed.
fi
 
if as_func_failure; then
exitcode=1
echo as_func_failure succeeded.
fi
 
if as_func_ret_success; then
:
else
exitcode=1
echo as_func_ret_success failed.
fi
 
if as_func_ret_failure; then
exitcode=1
echo as_func_ret_failure succeeded.
fi
 
if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
:
else
exitcode=1
echo positional parameters were not saved.
fi
 
test \$exitcode = 0) || { (exit 1); exit 1; }
 
(
as_lineno_1=\$LINENO
as_lineno_2=\$LINENO
test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" &&
test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; }
") 2> /dev/null; then
:
else
as_candidate_shells=
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
case $as_dir in
/*)
for as_base in sh bash ksh sh5; do
as_candidate_shells="$as_candidate_shells $as_dir/$as_base"
done;;
esac
done
IFS=$as_save_IFS
 
 
for as_shell in $as_candidate_shells $SHELL; do
# Try only shells that exist, to save several forks.
if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
{ ("$as_shell") 2> /dev/null <<\_ASEOF
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
# is contrary to our usage. Disable this feature.
alias -g '${1+"$@"}'='"$@"'
setopt NO_GLOB_SUBST
else
case `(set -o) 2>/dev/null` in
*posix*) set -o posix ;;
esac
 
fi
 
 
:
_ASEOF
}; then
CONFIG_SHELL=$as_shell
as_have_required=yes
if { "$as_shell" 2> /dev/null <<\_ASEOF
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
# is contrary to our usage. Disable this feature.
alias -g '${1+"$@"}'='"$@"'
setopt NO_GLOB_SUBST
else
case `(set -o) 2>/dev/null` in
*posix*) set -o posix ;;
esac
 
fi
 
 
:
(as_func_return () {
(exit $1)
}
as_func_success () {
as_func_return 0
}
as_func_failure () {
as_func_return 1
}
as_func_ret_success () {
return 0
}
as_func_ret_failure () {
return 1
}
 
exitcode=0
if as_func_success; then
:
else
exitcode=1
echo as_func_success failed.
fi
 
if as_func_failure; then
exitcode=1
echo as_func_failure succeeded.
fi
 
if as_func_ret_success; then
:
else
exitcode=1
echo as_func_ret_success failed.
fi
 
if as_func_ret_failure; then
exitcode=1
echo as_func_ret_failure succeeded.
fi
 
if ( set x; as_func_ret_success y && test x = "$1" ); then
:
else
exitcode=1
echo positional parameters were not saved.
fi
 
test $exitcode = 0) || { (exit 1); exit 1; }
 
(
as_lineno_1=$LINENO
as_lineno_2=$LINENO
test "x$as_lineno_1" != "x$as_lineno_2" &&
test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; }
 
_ASEOF
}; then
break
fi
 
fi
 
done
 
if test "x$CONFIG_SHELL" != x; then
for as_var in BASH_ENV ENV
do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
done
export CONFIG_SHELL
exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
fi
 
 
if test $as_have_required = no; then
echo This script requires a shell more modern than all the
echo shells that I found on your system. Please install a
echo modern shell, or manually run the script under such a
echo shell if you do have one.
{ (exit 1); exit 1; }
fi
 
 
fi
 
fi
 
 
 
(eval "as_func_return () {
(exit \$1)
}
as_func_success () {
as_func_return 0
}
as_func_failure () {
as_func_return 1
}
as_func_ret_success () {
return 0
}
as_func_ret_failure () {
return 1
}
 
exitcode=0
if as_func_success; then
:
else
exitcode=1
echo as_func_success failed.
fi
 
if as_func_failure; then
exitcode=1
echo as_func_failure succeeded.
fi
 
if as_func_ret_success; then
:
else
exitcode=1
echo as_func_ret_success failed.
fi
 
if as_func_ret_failure; then
exitcode=1
echo as_func_ret_failure succeeded.
fi
 
if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
:
else
exitcode=1
echo positional parameters were not saved.
fi
 
test \$exitcode = 0") || {
echo No shell found that supports shell functions.
echo Please tell bug-autoconf@gnu.org about your system,
echo including any error possibly output before this message.
echo This can help us improve future autoconf versions.
echo Configuration will now proceed without shell functions.
}
 
 
 
as_lineno_1=$LINENO
as_lineno_2=$LINENO
test "x$as_lineno_1" != "x$as_lineno_2" &&
test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
 
# Create $as_me.lineno as a copy of $as_myself, but with $LINENO
# uniformly replaced by the line number. The first 'sed' inserts a
# line-number line after each line using $LINENO; the second 'sed'
# does the real work. The second script uses 'N' to pair each
# line-number line with the line containing $LINENO, and appends
# trailing '-' during substitution so that $LINENO is not a special
# case at line end.
# (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
# scripts with optimization help from Paolo Bonzini. Blame Lee
# E. McMahon (1931-1989) for sed's syntax. :-)
sed -n '
p
/[$]LINENO/=
' <$as_myself |
sed '
s/[$]LINENO.*/&-/
t lineno
b
:lineno
N
:loop
s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
t loop
s/-\n.*//
' >$as_me.lineno &&
chmod +x "$as_me.lineno" ||
{ $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
{ (exit 1); exit 1; }; }
 
# Don't try to exec as it changes $[0], causing all sort of problems
# (the dirname of $[0] is not the place where we might find the
# original and so on. Autoconf is especially sensitive to this).
. "./$as_me.lineno"
# Exit status is that of the last command.
exit
}
 
 
if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
as_dirname=dirname
else
as_dirname=false
fi
 
ECHO_C= ECHO_N= ECHO_T=
case `echo -n x` in
-n*)
case `echo 'x\c'` in
*c*) ECHO_T=' ';; # ECHO_T is single tab character.
*) ECHO_C='\c';;
esac;;
*)
ECHO_N='-n';;
esac
if expr a : '\(a\)' >/dev/null 2>&1 &&
test "X`expr 00001 : '.*\(...\)'`" = X001; then
as_expr=expr
else
as_expr=false
fi
 
rm -f conf$$ conf$$.exe conf$$.file
if test -d conf$$.dir; then
rm -f conf$$.dir/conf$$.file
else
rm -f conf$$.dir
mkdir conf$$.dir 2>/dev/null
fi
if (echo >conf$$.file) 2>/dev/null; then
if ln -s conf$$.file conf$$ 2>/dev/null; then
as_ln_s='ln -s'
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
# In both cases, we have to default to `cp -p'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
as_ln_s='cp -p'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
as_ln_s='cp -p'
fi
else
as_ln_s='cp -p'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
 
if mkdir -p . 2>/dev/null; then
as_mkdir_p=:
else
test -d ./-p && rmdir ./-p
as_mkdir_p=false
fi
 
if test -x / >/dev/null 2>&1; then
as_test_x='test -x'
else
if ls -dL / >/dev/null 2>&1; then
as_ls_L_option=L
else
as_ls_L_option=
fi
as_test_x='
eval sh -c '\''
if test -d "$1"; then
test -d "$1/.";
else
case $1 in
-*)set "./$1";;
esac;
case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
???[sx]*):;;*)false;;esac;fi
'\'' sh
'
fi
as_executable_p=$as_test_x
 
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
 
# Sed expression to map a string onto a valid variable name.
as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
 
 
 
exec 7<&0 </dev/null 6>&1
 
# Name of the host.
# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
# so uname gets run too.
ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
 
#
# Initializations.
#
ac_default_prefix=/usr/local
ac_clean_files=
ac_config_libobj_dir=.
LIBOBJS=
cross_compiling=no
subdirs=
MFLAGS=
MAKEFLAGS=
SHELL=${CONFIG_SHELL-/bin/sh}
 
# Identity of this package.
PACKAGE_NAME='newlib'
PACKAGE_TARNAME='newlib'
PACKAGE_VERSION='1.18.0'
PACKAGE_STRING='newlib 1.18.0'
PACKAGE_BUGREPORT=''
 
ac_unique_file="_alloc.s"
ac_subst_vars='LTLIBOBJS
LIBOBJS
sys_dir
machine_dir
libm_machine_dir
lpfx
aext
oext
OBJEXT
USE_LIBTOOL_FALSE
USE_LIBTOOL_TRUE
ELIX_LEVEL_4_FALSE
ELIX_LEVEL_4_TRUE
ELIX_LEVEL_3_FALSE
ELIX_LEVEL_3_TRUE
ELIX_LEVEL_2_FALSE
ELIX_LEVEL_2_TRUE
ELIX_LEVEL_1_FALSE
ELIX_LEVEL_1_TRUE
ELIX_LEVEL_0_FALSE
ELIX_LEVEL_0_TRUE
LDFLAGS
NEWLIB_CFLAGS
CCASFLAGS
CCAS
MAINT
MAINTAINER_MODE_FALSE
MAINTAINER_MODE_TRUE
READELF
RANLIB
AR
AS
am__fastdepCC_FALSE
am__fastdepCC_TRUE
CCDEPMODE
AMDEPBACKSLASH
AMDEP_FALSE
AMDEP_TRUE
am__quote
am__include
DEPDIR
CC
am__untar
am__tar
AMTAR
am__leading_dot
SET_MAKE
AWK
mkdir_p
MKDIR_P
INSTALL_STRIP_PROGRAM
STRIP
install_sh
MAKEINFO
AUTOHEADER
AUTOMAKE
AUTOCONF
ACLOCAL
VERSION
PACKAGE
CYGPATH_W
am__isrc
INSTALL_DATA
INSTALL_SCRIPT
INSTALL_PROGRAM
host_os
host_vendor
host_cpu
host
build_os
build_vendor
build_cpu
build
newlib_basedir
MAY_SUPPLY_SYSCALLS_FALSE
MAY_SUPPLY_SYSCALLS_TRUE
target_alias
host_alias
build_alias
LIBS
ECHO_T
ECHO_N
ECHO_C
DEFS
mandir
localedir
libdir
psdir
pdfdir
dvidir
htmldir
infodir
docdir
oldincludedir
includedir
localstatedir
sharedstatedir
sysconfdir
datadir
datarootdir
libexecdir
sbindir
bindir
program_transform_name
prefix
exec_prefix
PACKAGE_BUGREPORT
PACKAGE_STRING
PACKAGE_VERSION
PACKAGE_TARNAME
PACKAGE_NAME
PATH_SEPARATOR
SHELL'
ac_subst_files=''
ac_user_opts='
enable_option_checking
enable_multilib
enable_target_optspace
enable_malloc_debugging
enable_newlib_multithread
enable_newlib_iconv
enable_newlib_elix_level
enable_newlib_io_float
enable_newlib_supplied_syscalls
enable_dependency_tracking
enable_maintainer_mode
'
ac_precious_vars='build_alias
host_alias
target_alias
CCAS
CCASFLAGS'
 
 
# Initialize some variables set by options.
ac_init_help=
ac_init_version=false
ac_unrecognized_opts=
ac_unrecognized_sep=
# The variables have the same names as the options, with
# dashes changed to underlines.
cache_file=/dev/null
exec_prefix=NONE
no_create=
no_recursion=
prefix=NONE
program_prefix=NONE
program_suffix=NONE
program_transform_name=s,x,x,
silent=
site=
srcdir=
verbose=
x_includes=NONE
x_libraries=NONE
 
# Installation directory options.
# These are left unexpanded so users can "make install exec_prefix=/foo"
# and all the variables that are supposed to be based on exec_prefix
# by default will actually change.
# Use braces instead of parens because sh, perl, etc. also accept them.
# (The list follows the same order as the GNU Coding Standards.)
bindir='${exec_prefix}/bin'
sbindir='${exec_prefix}/sbin'
libexecdir='${exec_prefix}/libexec'
datarootdir='${prefix}/share'
datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
infodir='${datarootdir}/info'
htmldir='${docdir}'
dvidir='${docdir}'
pdfdir='${docdir}'
psdir='${docdir}'
libdir='${exec_prefix}/lib'
localedir='${datarootdir}/locale'
mandir='${datarootdir}/man'
 
ac_prev=
ac_dashdash=
for ac_option
do
# If the previous option needs an argument, assign it.
if test -n "$ac_prev"; then
eval $ac_prev=\$ac_option
ac_prev=
continue
fi
 
case $ac_option in
*=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
*) ac_optarg=yes ;;
esac
 
# Accept the important Cygnus configure options, so we can diagnose typos.
 
case $ac_dashdash$ac_option in
--)
ac_dashdash=yes ;;
 
-bindir | --bindir | --bindi | --bind | --bin | --bi)
ac_prev=bindir ;;
-bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
bindir=$ac_optarg ;;
 
-build | --build | --buil | --bui | --bu)
ac_prev=build_alias ;;
-build=* | --build=* | --buil=* | --bui=* | --bu=*)
build_alias=$ac_optarg ;;
 
-cache-file | --cache-file | --cache-fil | --cache-fi \
| --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
ac_prev=cache_file ;;
-cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
| --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
cache_file=$ac_optarg ;;
 
--config-cache | -C)
cache_file=config.cache ;;
 
-datadir | --datadir | --datadi | --datad)
ac_prev=datadir ;;
-datadir=* | --datadir=* | --datadi=* | --datad=*)
datadir=$ac_optarg ;;
 
-datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
| --dataroo | --dataro | --datar)
ac_prev=datarootdir ;;
-datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
| --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
datarootdir=$ac_optarg ;;
 
-disable-* | --disable-*)
ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
{ $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
{ (exit 1); exit 1; }; }
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"enable_$ac_useropt"
"*) ;;
*) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
ac_unrecognized_sep=', ';;
esac
eval enable_$ac_useropt=no ;;
 
-docdir | --docdir | --docdi | --doc | --do)
ac_prev=docdir ;;
-docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
docdir=$ac_optarg ;;
 
-dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
ac_prev=dvidir ;;
-dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
dvidir=$ac_optarg ;;
 
-enable-* | --enable-*)
ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
{ $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
{ (exit 1); exit 1; }; }
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"enable_$ac_useropt"
"*) ;;
*) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
ac_unrecognized_sep=', ';;
esac
eval enable_$ac_useropt=\$ac_optarg ;;
 
-exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
| --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
| --exec | --exe | --ex)
ac_prev=exec_prefix ;;
-exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
| --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
| --exec=* | --exe=* | --ex=*)
exec_prefix=$ac_optarg ;;
 
-gas | --gas | --ga | --g)
# Obsolete; use --with-gas.
with_gas=yes ;;
 
-help | --help | --hel | --he | -h)
ac_init_help=long ;;
-help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
ac_init_help=recursive ;;
-help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
ac_init_help=short ;;
 
-host | --host | --hos | --ho)
ac_prev=host_alias ;;
-host=* | --host=* | --hos=* | --ho=*)
host_alias=$ac_optarg ;;
 
-htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
ac_prev=htmldir ;;
-htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
| --ht=*)
htmldir=$ac_optarg ;;
 
-includedir | --includedir | --includedi | --included | --include \
| --includ | --inclu | --incl | --inc)
ac_prev=includedir ;;
-includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
| --includ=* | --inclu=* | --incl=* | --inc=*)
includedir=$ac_optarg ;;
 
-infodir | --infodir | --infodi | --infod | --info | --inf)
ac_prev=infodir ;;
-infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
infodir=$ac_optarg ;;
 
-libdir | --libdir | --libdi | --libd)
ac_prev=libdir ;;
-libdir=* | --libdir=* | --libdi=* | --libd=*)
libdir=$ac_optarg ;;
 
-libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
| --libexe | --libex | --libe)
ac_prev=libexecdir ;;
-libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
| --libexe=* | --libex=* | --libe=*)
libexecdir=$ac_optarg ;;
 
-localedir | --localedir | --localedi | --localed | --locale)
ac_prev=localedir ;;
-localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
localedir=$ac_optarg ;;
 
-localstatedir | --localstatedir | --localstatedi | --localstated \
| --localstate | --localstat | --localsta | --localst | --locals)
ac_prev=localstatedir ;;
-localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
| --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
localstatedir=$ac_optarg ;;
 
-mandir | --mandir | --mandi | --mand | --man | --ma | --m)
ac_prev=mandir ;;
-mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
mandir=$ac_optarg ;;
 
-nfp | --nfp | --nf)
# Obsolete; use --without-fp.
with_fp=no ;;
 
-no-create | --no-create | --no-creat | --no-crea | --no-cre \
| --no-cr | --no-c | -n)
no_create=yes ;;
 
-no-recursion | --no-recursion | --no-recursio | --no-recursi \
| --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
no_recursion=yes ;;
 
-oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
| --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
| --oldin | --oldi | --old | --ol | --o)
ac_prev=oldincludedir ;;
-oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
| --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
| --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
oldincludedir=$ac_optarg ;;
 
-prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
ac_prev=prefix ;;
-prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
prefix=$ac_optarg ;;
 
-program-prefix | --program-prefix | --program-prefi | --program-pref \
| --program-pre | --program-pr | --program-p)
ac_prev=program_prefix ;;
-program-prefix=* | --program-prefix=* | --program-prefi=* \
| --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
program_prefix=$ac_optarg ;;
 
-program-suffix | --program-suffix | --program-suffi | --program-suff \
| --program-suf | --program-su | --program-s)
ac_prev=program_suffix ;;
-program-suffix=* | --program-suffix=* | --program-suffi=* \
| --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
program_suffix=$ac_optarg ;;
 
-program-transform-name | --program-transform-name \
| --program-transform-nam | --program-transform-na \
| --program-transform-n | --program-transform- \
| --program-transform | --program-transfor \
| --program-transfo | --program-transf \
| --program-trans | --program-tran \
| --progr-tra | --program-tr | --program-t)
ac_prev=program_transform_name ;;
-program-transform-name=* | --program-transform-name=* \
| --program-transform-nam=* | --program-transform-na=* \
| --program-transform-n=* | --program-transform-=* \
| --program-transform=* | --program-transfor=* \
| --program-transfo=* | --program-transf=* \
| --program-trans=* | --program-tran=* \
| --progr-tra=* | --program-tr=* | --program-t=*)
program_transform_name=$ac_optarg ;;
 
-pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
ac_prev=pdfdir ;;
-pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
pdfdir=$ac_optarg ;;
 
-psdir | --psdir | --psdi | --psd | --ps)
ac_prev=psdir ;;
-psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
psdir=$ac_optarg ;;
 
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
 
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
| --sbi=* | --sb=*)
sbindir=$ac_optarg ;;
 
-sharedstatedir | --sharedstatedir | --sharedstatedi \
| --sharedstated | --sharedstate | --sharedstat | --sharedsta \
| --sharedst | --shareds | --shared | --share | --shar \
| --sha | --sh)
ac_prev=sharedstatedir ;;
-sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
| --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
| --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
| --sha=* | --sh=*)
sharedstatedir=$ac_optarg ;;
 
-site | --site | --sit)
ac_prev=site ;;
-site=* | --site=* | --sit=*)
site=$ac_optarg ;;
 
-srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
ac_prev=srcdir ;;
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
srcdir=$ac_optarg ;;
 
-sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
| --syscon | --sysco | --sysc | --sys | --sy)
ac_prev=sysconfdir ;;
-sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
| --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
sysconfdir=$ac_optarg ;;
 
-target | --target | --targe | --targ | --tar | --ta | --t)
ac_prev=target_alias ;;
-target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
target_alias=$ac_optarg ;;
 
-v | -verbose | --verbose | --verbos | --verbo | --verb)
verbose=yes ;;
 
-version | --version | --versio | --versi | --vers | -V)
ac_init_version=: ;;
 
-with-* | --with-*)
ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
{ $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2
{ (exit 1); exit 1; }; }
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"with_$ac_useropt"
"*) ;;
*) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
ac_unrecognized_sep=', ';;
esac
eval with_$ac_useropt=\$ac_optarg ;;
 
-without-* | --without-*)
ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
{ $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2
{ (exit 1); exit 1; }; }
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"with_$ac_useropt"
"*) ;;
*) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
ac_unrecognized_sep=', ';;
esac
eval with_$ac_useropt=no ;;
 
--x)
# Obsolete; use --with-x.
with_x=yes ;;
 
-x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
| --x-incl | --x-inc | --x-in | --x-i)
ac_prev=x_includes ;;
-x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
| --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
x_includes=$ac_optarg ;;
 
-x-libraries | --x-libraries | --x-librarie | --x-librari \
| --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
ac_prev=x_libraries ;;
-x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
| --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
x_libraries=$ac_optarg ;;
 
-*) { $as_echo "$as_me: error: unrecognized option: $ac_option
Try \`$0 --help' for more information." >&2
{ (exit 1); exit 1; }; }
;;
 
*=*)
ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
# Reject names that are not valid shell variable names.
expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
{ $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2
{ (exit 1); exit 1; }; }
eval $ac_envvar=\$ac_optarg
export $ac_envvar ;;
 
*)
# FIXME: should be removed in autoconf 3.0.
$as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
$as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
: ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
;;
 
esac
done
 
if test -n "$ac_prev"; then
ac_option=--`echo $ac_prev | sed 's/_/-/g'`
{ $as_echo "$as_me: error: missing argument to $ac_option" >&2
{ (exit 1); exit 1; }; }
fi
 
if test -n "$ac_unrecognized_opts"; then
case $enable_option_checking in
no) ;;
fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2
{ (exit 1); exit 1; }; } ;;
*) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
esac
fi
 
# Check all directory arguments for consistency.
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
libdir localedir mandir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
case $ac_val in
*/ )
ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
eval $ac_var=\$ac_val;;
esac
# Be sure to have absolute directory names.
case $ac_val in
[\\/$]* | ?:[\\/]* ) continue;;
NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
esac
{ $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
{ (exit 1); exit 1; }; }
done
 
# There might be people who depend on the old broken behavior: `$host'
# used to hold the argument of --host etc.
# FIXME: To remove some day.
build=$build_alias
host=$host_alias
target=$target_alias
 
# FIXME: To remove some day.
if test "x$host_alias" != x; then
if test "x$build_alias" = x; then
cross_compiling=maybe
$as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
If a cross compiler is detected then cross compile mode will be used." >&2
elif test "x$build_alias" != "x$host_alias"; then
cross_compiling=yes
fi
fi
 
ac_tool_prefix=
test -n "$host_alias" && ac_tool_prefix=$host_alias-
 
test "$silent" = yes && exec 6>/dev/null
 
 
ac_pwd=`pwd` && test -n "$ac_pwd" &&
ac_ls_di=`ls -di .` &&
ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
{ $as_echo "$as_me: error: working directory cannot be determined" >&2
{ (exit 1); exit 1; }; }
test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
{ $as_echo "$as_me: error: pwd does not report name of working directory" >&2
{ (exit 1); exit 1; }; }
 
 
# Find the source files, if location was not specified.
if test -z "$srcdir"; then
ac_srcdir_defaulted=yes
# Try the directory containing this script, then the parent directory.
ac_confdir=`$as_dirname -- "$as_myself" ||
$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$as_myself" : 'X\(//\)[^/]' \| \
X"$as_myself" : 'X\(//\)$' \| \
X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X"$as_myself" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
srcdir=$ac_confdir
if test ! -r "$srcdir/$ac_unique_file"; then
srcdir=..
fi
else
ac_srcdir_defaulted=no
fi
if test ! -r "$srcdir/$ac_unique_file"; then
test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
{ $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
{ (exit 1); exit 1; }; }
fi
ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
ac_abs_confdir=`(
cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2
{ (exit 1); exit 1; }; }
pwd)`
# When building in place, set srcdir=.
if test "$ac_abs_confdir" = "$ac_pwd"; then
srcdir=.
fi
# Remove unnecessary trailing slashes from srcdir.
# Double slashes in file names in object file debugging info
# mess up M-x gdb in Emacs.
case $srcdir in
*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
esac
for ac_var in $ac_precious_vars; do
eval ac_env_${ac_var}_set=\${${ac_var}+set}
eval ac_env_${ac_var}_value=\$${ac_var}
eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
eval ac_cv_env_${ac_var}_value=\$${ac_var}
done
 
#
# Report the --help message.
#
if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures newlib 1.18.0 to adapt to many kinds of systems.
 
Usage: $0 [OPTION]... [VAR=VALUE]...
 
To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE. See below for descriptions of some of the useful variables.
 
Defaults for the options are specified in brackets.
 
Configuration:
-h, --help display this help and exit
--help=short display options specific to this package
--help=recursive display the short help of all the included packages
-V, --version display version information and exit
-q, --quiet, --silent do not print \`checking...' messages
--cache-file=FILE cache test results in FILE [disabled]
-C, --config-cache alias for \`--cache-file=config.cache'
-n, --no-create do not create output files
--srcdir=DIR find the sources in DIR [configure dir or \`..']
 
Installation directories:
--prefix=PREFIX install architecture-independent files in PREFIX
[$ac_default_prefix]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[PREFIX]
 
By default, \`make install' will install all the files in
\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
an installation prefix other than \`$ac_default_prefix' using \`--prefix',
for instance \`--prefix=\$HOME'.
 
For better control, use the options below.
 
Fine tuning of the installation directories:
--bindir=DIR user executables [EPREFIX/bin]
--sbindir=DIR system admin executables [EPREFIX/sbin]
--libexecdir=DIR program executables [EPREFIX/libexec]
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
--datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
--datadir=DIR read-only architecture-independent data [DATAROOTDIR]
--infodir=DIR info documentation [DATAROOTDIR/info]
--localedir=DIR locale-dependent data [DATAROOTDIR/locale]
--mandir=DIR man documentation [DATAROOTDIR/man]
--docdir=DIR documentation root [DATAROOTDIR/doc/newlib]
--htmldir=DIR html documentation [DOCDIR]
--dvidir=DIR dvi documentation [DOCDIR]
--pdfdir=DIR pdf documentation [DOCDIR]
--psdir=DIR ps documentation [DOCDIR]
_ACEOF
 
cat <<\_ACEOF
 
Program names:
--program-prefix=PREFIX prepend PREFIX to installed program names
--program-suffix=SUFFIX append SUFFIX to installed program names
--program-transform-name=PROGRAM run sed PROGRAM on installed program names
 
System types:
--build=BUILD configure for building on BUILD [guessed]
--host=HOST cross-compile to build programs to run on HOST [BUILD]
_ACEOF
fi
 
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of newlib 1.18.0:";;
esac
cat <<\_ACEOF
 
Optional Features:
--disable-option-checking ignore unrecognized --enable/--with options
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--enable-multilib build many library versions (default)
--enable-target-optspace optimize for space
--enable-malloc-debugging indicate malloc debugging requested
--enable-newlib-multithread enable support for multiple threads
--enable-newlib-iconv enable iconv library support
--enable-newlib-elix-level supply desired elix library level (1-4)
--disable-newlib-io-float disable printf/scanf family float support
--disable-newlib-supplied-syscalls disable newlib from supplying syscalls
--disable-dependency-tracking speeds up one-time build
--enable-dependency-tracking do not reject slow dependency extractors
--enable-maintainer-mode enable make rules and dependencies not useful
(and sometimes confusing) to the casual installer
 
Some influential environment variables:
CCAS assembler compiler command (defaults to CC)
CCASFLAGS assembler compiler flags (defaults to CFLAGS)
 
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
 
_ACEOF
ac_status=$?
fi
 
if test "$ac_init_help" = "recursive"; then
# If there are subdirs, report their specific --help.
for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
test -d "$ac_dir" ||
{ cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
continue
ac_builddir=.
 
case "$ac_dir" in
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
*)
ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
# A ".." for each directory in $ac_dir_suffix.
ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
case $ac_top_builddir_sub in
"") ac_top_builddir_sub=. ac_top_build_prefix= ;;
*) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
esac ;;
esac
ac_abs_top_builddir=$ac_pwd
ac_abs_builddir=$ac_pwd$ac_dir_suffix
# for backward compatibility:
ac_top_builddir=$ac_top_build_prefix
 
case $srcdir in
.) # We are building in place.
ac_srcdir=.
ac_top_srcdir=$ac_top_builddir_sub
ac_abs_top_srcdir=$ac_pwd ;;
[\\/]* | ?:[\\/]* ) # Absolute name.
ac_srcdir=$srcdir$ac_dir_suffix;
ac_top_srcdir=$srcdir
ac_abs_top_srcdir=$srcdir ;;
*) # Relative name.
ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
ac_top_srcdir=$ac_top_build_prefix$srcdir
ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
esac
ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
 
cd "$ac_dir" || { ac_status=$?; continue; }
# Check for guested configure.
if test -f "$ac_srcdir/configure.gnu"; then
echo &&
$SHELL "$ac_srcdir/configure.gnu" --help=recursive
elif test -f "$ac_srcdir/configure"; then
echo &&
$SHELL "$ac_srcdir/configure" --help=recursive
else
$as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
fi || ac_status=$?
cd "$ac_pwd" || { ac_status=$?; break; }
done
fi
 
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
newlib configure 1.18.0
generated by GNU Autoconf 2.63
 
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
exit
fi
cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
 
It was created by newlib $as_me 1.18.0, which was
generated by GNU Autoconf 2.63. Invocation command line was
 
$ $0 $@
 
_ACEOF
exec 5>>config.log
{
cat <<_ASUNAME
## --------- ##
## Platform. ##
## --------- ##
 
hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
uname -m = `(uname -m) 2>/dev/null || echo unknown`
uname -r = `(uname -r) 2>/dev/null || echo unknown`
uname -s = `(uname -s) 2>/dev/null || echo unknown`
uname -v = `(uname -v) 2>/dev/null || echo unknown`
 
/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
 
/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
 
_ASUNAME
 
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
$as_echo "PATH: $as_dir"
done
IFS=$as_save_IFS
 
} >&5
 
cat >&5 <<_ACEOF
 
 
## ----------- ##
## Core tests. ##
## ----------- ##
 
_ACEOF
 
 
# Keep a trace of the command line.
# Strip out --no-create and --no-recursion so they do not pile up.
# Strip out --silent because we don't want to record it for future runs.
# Also quote any args containing shell meta-characters.
# Make two passes to allow for proper duplicate-argument suppression.
ac_configure_args=
ac_configure_args0=
ac_configure_args1=
ac_must_keep_next=false
for ac_pass in 1 2
do
for ac_arg
do
case $ac_arg in
-no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
| -silent | --silent | --silen | --sile | --sil)
continue ;;
*\'*)
ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
esac
case $ac_pass in
1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
2)
ac_configure_args1="$ac_configure_args1 '$ac_arg'"
if test $ac_must_keep_next = true; then
ac_must_keep_next=false # Got value, back to normal.
else
case $ac_arg in
*=* | --config-cache | -C | -disable-* | --disable-* \
| -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
| -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
| -with-* | --with-* | -without-* | --without-* | --x)
case "$ac_configure_args0 " in
"$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
esac
;;
-* ) ac_must_keep_next=true ;;
esac
fi
ac_configure_args="$ac_configure_args '$ac_arg'"
;;
esac
done
done
$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
 
# When interrupted or exit'd, cleanup temporary files, and complete
# config.log. We remove comments because anyway the quotes in there
# would cause problems or look ugly.
# WARNING: Use '\'' to represent an apostrophe within the trap.
# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
trap 'exit_status=$?
# Save into config.log some information that might help in debugging.
{
echo
 
cat <<\_ASBOX
## ---------------- ##
## Cache variables. ##
## ---------------- ##
_ASBOX
echo
# The following way of writing the cache mishandles newlines in values,
(
for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
eval ac_val=\$$ac_var
case $ac_val in #(
*${as_nl}*)
case $ac_var in #(
*_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5
$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
esac
case $ac_var in #(
_ | IFS | as_nl) ;; #(
BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
*) $as_unset $ac_var ;;
esac ;;
esac
done
(set) 2>&1 |
case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
*${as_nl}ac_space=\ *)
sed -n \
"s/'\''/'\''\\\\'\'''\''/g;
s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
;; #(
*)
sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
;;
esac |
sort
)
echo
 
cat <<\_ASBOX
## ----------------- ##
## Output variables. ##
## ----------------- ##
_ASBOX
echo
for ac_var in $ac_subst_vars
do
eval ac_val=\$$ac_var
case $ac_val in
*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
esac
$as_echo "$ac_var='\''$ac_val'\''"
done | sort
echo
 
if test -n "$ac_subst_files"; then
cat <<\_ASBOX
## ------------------- ##
## File substitutions. ##
## ------------------- ##
_ASBOX
echo
for ac_var in $ac_subst_files
do
eval ac_val=\$$ac_var
case $ac_val in
*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
esac
$as_echo "$ac_var='\''$ac_val'\''"
done | sort
echo
fi
 
if test -s confdefs.h; then
cat <<\_ASBOX
## ----------- ##
## confdefs.h. ##
## ----------- ##
_ASBOX
echo
cat confdefs.h
echo
fi
test "$ac_signal" != 0 &&
$as_echo "$as_me: caught signal $ac_signal"
$as_echo "$as_me: exit $exit_status"
} >&5
rm -f core *.core core.conftest.* &&
rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
exit $exit_status
' 0
for ac_signal in 1 2 13 15; do
trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
done
ac_signal=0
 
# confdefs.h avoids OS command line length limits that DEFS can exceed.
rm -f -r conftest* confdefs.h
 
# Predefined preprocessor variables.
 
cat >>confdefs.h <<_ACEOF
#define PACKAGE_NAME "$PACKAGE_NAME"
_ACEOF
 
 
cat >>confdefs.h <<_ACEOF
#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
_ACEOF
 
 
cat >>confdefs.h <<_ACEOF
#define PACKAGE_VERSION "$PACKAGE_VERSION"
_ACEOF
 
 
cat >>confdefs.h <<_ACEOF
#define PACKAGE_STRING "$PACKAGE_STRING"
_ACEOF
 
 
cat >>confdefs.h <<_ACEOF
#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
_ACEOF
 
 
# Let the site file select an alternate cache file if it wants to.
# Prefer an explicitly selected file to automatically selected ones.
ac_site_file1=NONE
ac_site_file2=NONE
if test -n "$CONFIG_SITE"; then
ac_site_file1=$CONFIG_SITE
elif test "x$prefix" != xNONE; then
ac_site_file1=$prefix/share/config.site
ac_site_file2=$prefix/etc/config.site
else
ac_site_file1=$ac_default_prefix/share/config.site
ac_site_file2=$ac_default_prefix/etc/config.site
fi
for ac_site_file in "$ac_site_file1" "$ac_site_file2"
do
test "x$ac_site_file" = xNONE && continue
if test -r "$ac_site_file"; then
{ $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
$as_echo "$as_me: loading site script $ac_site_file" >&6;}
sed 's/^/| /' "$ac_site_file" >&5
. "$ac_site_file"
fi
done
 
if test -r "$cache_file"; then
# Some versions of bash will fail to source /dev/null (special
# files actually), so we avoid doing that.
if test -f "$cache_file"; then
{ $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5
$as_echo "$as_me: loading cache $cache_file" >&6;}
case $cache_file in
[\\/]* | ?:[\\/]* ) . "$cache_file";;
*) . "./$cache_file";;
esac
fi
else
{ $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5
$as_echo "$as_me: creating cache $cache_file" >&6;}
>$cache_file
fi
 
# Check that the precious variables saved in the cache have kept the same
# value.
ac_cache_corrupted=false
for ac_var in $ac_precious_vars; do
eval ac_old_set=\$ac_cv_env_${ac_var}_set
eval ac_new_set=\$ac_env_${ac_var}_set
eval ac_old_val=\$ac_cv_env_${ac_var}_value
eval ac_new_val=\$ac_env_${ac_var}_value
case $ac_old_set,$ac_new_set in
set,)
{ $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
ac_cache_corrupted=: ;;
,set)
{ $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
ac_cache_corrupted=: ;;
,);;
*)
if test "x$ac_old_val" != "x$ac_new_val"; then
# differences in whitespace do not lead to failure.
ac_old_val_w=`echo x $ac_old_val`
ac_new_val_w=`echo x $ac_new_val`
if test "$ac_old_val_w" != "$ac_new_val_w"; then
{ $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
ac_cache_corrupted=:
else
{ $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
eval $ac_var=\$ac_old_val
fi
{ $as_echo "$as_me:$LINENO: former value: \`$ac_old_val'" >&5
$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
{ $as_echo "$as_me:$LINENO: current value: \`$ac_new_val'" >&5
$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
fi;;
esac
# Pass precious variables to config.status.
if test "$ac_new_set" = set; then
case $ac_new_val in
*\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
*) ac_arg=$ac_var=$ac_new_val ;;
esac
case " $ac_configure_args " in
*" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
*) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
esac
fi
done
if $ac_cache_corrupted; then
{ $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
{ $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
{ { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
$as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
{ (exit 1); exit 1; }; }
fi
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 
 
ac_aux_dir=
for ac_dir in ../../../.. "$srcdir"/../../../..; do
if test -f "$ac_dir/install-sh"; then
ac_aux_dir=$ac_dir
ac_install_sh="$ac_aux_dir/install-sh -c"
break
elif test -f "$ac_dir/install.sh"; then
ac_aux_dir=$ac_dir
ac_install_sh="$ac_aux_dir/install.sh -c"
break
elif test -f "$ac_dir/shtool"; then
ac_aux_dir=$ac_dir
ac_install_sh="$ac_aux_dir/shtool install -c"
break
fi
done
if test -z "$ac_aux_dir"; then
{ { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in ../../../.. \"$srcdir\"/../../../.." >&5
$as_echo "$as_me: error: cannot find install-sh or install.sh in ../../../.. \"$srcdir\"/../../../.." >&2;}
{ (exit 1); exit 1; }; }
fi
 
# These three variables are undocumented and unsupported,
# and are intended to be withdrawn in a future Autoconf release.
# They can cause serious problems if a builder's source tree is in a directory
# whose full name contains unusual characters.
ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
 
 
 
 
# Make sure we can run config.sub.
$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
{ { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
$as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}
{ (exit 1); exit 1; }; }
 
{ $as_echo "$as_me:$LINENO: checking build system type" >&5
$as_echo_n "checking build system type... " >&6; }
if test "${ac_cv_build+set}" = set; then
$as_echo_n "(cached) " >&6
else
ac_build_alias=$build_alias
test "x$ac_build_alias" = x &&
ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
test "x$ac_build_alias" = x &&
{ { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
$as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
{ (exit 1); exit 1; }; }
ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
{ { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5
$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}
{ (exit 1); exit 1; }; }
 
fi
{ $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5
$as_echo "$ac_cv_build" >&6; }
case $ac_cv_build in
*-*-*) ;;
*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5
$as_echo "$as_me: error: invalid value of canonical build" >&2;}
{ (exit 1); exit 1; }; };;
esac
build=$ac_cv_build
ac_save_IFS=$IFS; IFS='-'
set x $ac_cv_build
shift
build_cpu=$1
build_vendor=$2
shift; shift
# Remember, the first character of IFS is used to create $*,
# except with old shells:
build_os=$*
IFS=$ac_save_IFS
case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
 
 
am__api_version='1.11'
 
# Find a good install program. We prefer a C program (faster),
# so one script is as good as another. But avoid the broken or
# incompatible versions:
# SysV /etc/install, /usr/sbin/install
# SunOS /usr/etc/install
# IRIX /sbin/install
# AIX /bin/install
# AmigaOS /C/install, which installs bootblocks on floppy discs
# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
# AFS /usr/afsws/bin/install, which mishandles nonexistent args
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# OS/2's system install, which has a completely different semantic
# ./install, which can be erroneously created by make from ./install.sh.
# Reject install programs that cannot install multiple files.
{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
$as_echo_n "checking for a BSD-compatible install... " >&6; }
if test -z "$INSTALL"; then
if test "${ac_cv_path_install+set}" = set; then
$as_echo_n "(cached) " >&6
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
# Account for people who put trailing slashes in PATH elements.
case $as_dir/ in
./ | .// | /cC/* | \
/etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
/usr/ucb/* ) ;;
*)
# OSF1 and SCO ODT 3.0 have their own names for install.
# Don't use installbsd from OSF since it installs stuff as root
# by default.
for ac_prog in ginstall scoinst install; do
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
if test $ac_prog = install &&
grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
# AIX install. It has an incompatible calling convention.
:
elif test $ac_prog = install &&
grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
# program-specific install script used by HP pwplus--don't use.
:
else
rm -rf conftest.one conftest.two conftest.dir
echo one > conftest.one
echo two > conftest.two
mkdir conftest.dir
if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
test -s conftest.one && test -s conftest.two &&
test -s conftest.dir/conftest.one &&
test -s conftest.dir/conftest.two
then
ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
break 3
fi
fi
fi
done
done
;;
esac
 
done
IFS=$as_save_IFS
 
rm -rf conftest.one conftest.two conftest.dir
 
fi
if test "${ac_cv_path_install+set}" = set; then
INSTALL=$ac_cv_path_install
else
# As a last resort, use the slow shell script. Don't cache a
# value for INSTALL within a source directory, because that will
# break other packages using the cache if that directory is
# removed, or if the value is a relative name.
INSTALL=$ac_install_sh
fi
fi
{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5
$as_echo "$INSTALL" >&6; }
 
# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
# It thinks the first close brace ends the variable substitution.
test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
 
test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
 
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
{ $as_echo "$as_me:$LINENO: checking whether build environment is sane" >&5
$as_echo_n "checking whether build environment is sane... " >&6; }
# Just in case
sleep 1
echo timestamp > conftest.file
# Reject unsafe characters in $srcdir or the absolute working directory
# name. Accept space and tab only in the latter.
am_lf='
'
case `pwd` in
*[\\\"\#\$\&\'\`$am_lf]*)
{ { $as_echo "$as_me:$LINENO: error: unsafe absolute working directory name" >&5
$as_echo "$as_me: error: unsafe absolute working directory name" >&2;}
{ (exit 1); exit 1; }; };;
esac
case $srcdir in
*[\\\"\#\$\&\'\`$am_lf\ \ ]*)
{ { $as_echo "$as_me:$LINENO: error: unsafe srcdir value: \`$srcdir'" >&5
$as_echo "$as_me: error: unsafe srcdir value: \`$srcdir'" >&2;}
{ (exit 1); exit 1; }; };;
esac
 
# Do `set' in a subshell so we don't clobber the current shell's
# arguments. Must try -L first in case configure is actually a
# symlink; some systems play weird games with the mod time of symlinks
# (eg FreeBSD returns the mod time of the symlink's containing
# directory).
if (
set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
if test "$*" = "X"; then
# -L didn't work.
set X `ls -t "$srcdir/configure" conftest.file`
fi
rm -f conftest.file
if test "$*" != "X $srcdir/configure conftest.file" \
&& test "$*" != "X conftest.file $srcdir/configure"; then
 
# If neither matched, then we have a broken ls. This can happen
# if, for instance, CONFIG_SHELL is bash and it inherits a
# broken ls alias from the environment. This has actually
# happened. Such a system could not be considered "sane".
{ { $as_echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken
alias in your environment" >&5
$as_echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken
alias in your environment" >&2;}
{ (exit 1); exit 1; }; }
fi
 
test "$2" = conftest.file
)
then
# Ok.
:
else
{ { $as_echo "$as_me:$LINENO: error: newly created file is older than distributed files!
Check your system clock" >&5
$as_echo "$as_me: error: newly created file is older than distributed files!
Check your system clock" >&2;}
{ (exit 1); exit 1; }; }
fi
{ $as_echo "$as_me:$LINENO: result: yes" >&5
$as_echo "yes" >&6; }
test "$program_prefix" != NONE &&
program_transform_name="s&^&$program_prefix&;$program_transform_name"
# Use a double $ so make ignores it.
test "$program_suffix" != NONE &&
program_transform_name="s&\$&$program_suffix&;$program_transform_name"
# Double any \ or $.
# By default was `s,x,x', remove it if useless.
ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
 
# expand $ac_aux_dir to an absolute path
am_aux_dir=`cd $ac_aux_dir && pwd`
 
if test x"${MISSING+set}" != xset; then
case $am_aux_dir in
*\ * | *\ *)
MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
*)
MISSING="\${SHELL} $am_aux_dir/missing" ;;
esac
fi
# Use eval to expand $SHELL
if eval "$MISSING --run true"; then
am_missing_run="$MISSING --run "
else
am_missing_run=
{ $as_echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5
$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
fi
 
if test x"${install_sh}" != xset; then
case $am_aux_dir in
*\ * | *\ *)
install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
*)
install_sh="\${SHELL} $am_aux_dir/install-sh"
esac
fi
 
# Installed binaries are usually stripped using `strip' when the user
# run `make install-strip'. However `strip' might not be the right
# tool to use in cross-compilation environments, therefore Automake
# will honor the `STRIP' environment variable to overrule this program.
if test "$cross_compiling" != no; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
set dummy ${ac_tool_prefix}strip; ac_word=$2
{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_STRIP+set}" = set; then
$as_echo_n "(cached) " >&6
else
if test -n "$STRIP"; then
ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_STRIP="${ac_tool_prefix}strip"
$as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
 
fi
fi
STRIP=$ac_cv_prog_STRIP
if test -n "$STRIP"; then
{ $as_echo "$as_me:$LINENO: result: $STRIP" >&5
$as_echo "$STRIP" >&6; }
else
{ $as_echo "$as_me:$LINENO: result: no" >&5
$as_echo "no" >&6; }
fi
 
 
fi
if test -z "$ac_cv_prog_STRIP"; then
ac_ct_STRIP=$STRIP
# Extract the first word of "strip", so it can be a program name with args.
set dummy strip; ac_word=$2
{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_STRIP"; then
ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_STRIP="strip"
$as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
 
fi
fi
ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
if test -n "$ac_ct_STRIP"; then
{ $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
$as_echo "$ac_ct_STRIP" >&6; }
else
{ $as_echo "$as_me:$LINENO: result: no" >&5
$as_echo "no" >&6; }
fi
 
if test "x$ac_ct_STRIP" = x; then
STRIP=":"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
STRIP=$ac_ct_STRIP
fi
else
STRIP="$ac_cv_prog_STRIP"
fi
 
fi
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 
{ $as_echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5
$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
if test -z "$MKDIR_P"; then
if test "${ac_cv_path_mkdir+set}" = set; then
$as_echo_n "(cached) " >&6
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_prog in mkdir gmkdir; do
for ac_exec_ext in '' $ac_executable_extensions; do
{ test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
'mkdir (GNU coreutils) '* | \
'mkdir (coreutils) '* | \
'mkdir (fileutils) '4.1*)
ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
break 3;;
esac
done
done
done
IFS=$as_save_IFS
 
fi
 
if test "${ac_cv_path_mkdir+set}" = set; then
MKDIR_P="$ac_cv_path_mkdir -p"
else
# As a last resort, use the slow shell script. Don't cache a
# value for MKDIR_P within a source directory, because that will
# break other packages using the cache if that directory is
# removed, or if the value is a relative name.
test -d ./--version && rmdir ./--version
MKDIR_P="$ac_install_sh -d"
fi
fi
{ $as_echo "$as_me:$LINENO: result: $MKDIR_P" >&5
$as_echo "$MKDIR_P" >&6; }
 
mkdir_p="$MKDIR_P"
case $mkdir_p in
[\\/$]* | ?:[\\/]*) ;;
*/*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
esac
 
for ac_prog in gawk mawk nawk awk
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_AWK+set}" = set; then
$as_echo_n "(cached) " >&6
else
if test -n "$AWK"; then
ac_cv_prog_AWK="$AWK" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_AWK="$ac_prog"
$as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
 
fi
fi
AWK=$ac_cv_prog_AWK
if test -n "$AWK"; then
{ $as_echo "$as_me:$LINENO: result: $AWK" >&5
$as_echo "$AWK" >&6; }
else
{ $as_echo "$as_me:$LINENO: result: no" >&5
$as_echo "no" >&6; }
fi
 
 
test -n "$AWK" && break
done
 
{ $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
set x ${MAKE-make}
ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then
$as_echo_n "(cached) " >&6
else
cat >conftest.make <<\_ACEOF
SHELL = /bin/sh
all:
@echo '@@@%%%=$(MAKE)=@@@%%%'
_ACEOF
# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
case `${MAKE-make} -f conftest.make 2>/dev/null` in
*@@@%%%=?*=@@@%%%*)
eval ac_cv_prog_make_${ac_make}_set=yes;;
*)
eval ac_cv_prog_make_${ac_make}_set=no;;
esac
rm -f conftest.make
fi
if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
{ $as_echo "$as_me:$LINENO: result: yes" >&5
$as_echo "yes" >&6; }
SET_MAKE=
else
{ $as_echo "$as_me:$LINENO: result: no" >&5
$as_echo "no" >&6; }
SET_MAKE="MAKE=${MAKE-make}"
fi
 
rm -rf .tst 2>/dev/null
mkdir .tst 2>/dev/null
if test -d .tst; then
am__leading_dot=.
else
am__leading_dot=_
fi
rmdir .tst 2>/dev/null
 
DEPDIR="${am__leading_dot}deps"
 
ac_config_commands="$ac_config_commands depfiles"
 
 
am_make=${MAKE-make}
cat > confinc << 'END'
am__doit:
@echo this is the am__doit target
.PHONY: am__doit
END
# If we don't find an include directive, just comment out the code.
{ $as_echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
$as_echo_n "checking for style of include used by $am_make... " >&6; }
am__include="#"
am__quote=
_am_result=none
# First try GNU make style include.
echo "include confinc" > confmf
# Ignore all kinds of additional output from `make'.
case `$am_make -s -f confmf 2> /dev/null` in #(
*the\ am__doit\ target*)
am__include=include
am__quote=
_am_result=GNU
;;
esac
# Now try BSD make style include.
if test "$am__include" = "#"; then
echo '.include "confinc"' > confmf
case `$am_make -s -f confmf 2> /dev/null` in #(
*the\ am__doit\ target*)
am__include=.include
am__quote="\""
_am_result=BSD
;;
esac
fi
 
 
{ $as_echo "$as_me:$LINENO: result: $_am_result" >&5
$as_echo "$_am_result" >&6; }
rm -f confinc confmf
 
# Check whether --enable-dependency-tracking was given.
if test "${enable_dependency_tracking+set}" = set; then
enableval=$enable_dependency_tracking;
fi
 
if test "x$enable_dependency_tracking" != xno; then
am_depcomp="$ac_aux_dir/depcomp"
AMDEPBACKSLASH='\'
fi
if test "x$enable_dependency_tracking" != xno; then
AMDEP_TRUE=
AMDEP_FALSE='#'
else
AMDEP_TRUE='#'
AMDEP_FALSE=
fi
 
 
 
# Check whether --enable-multilib was given.
if test "${enable_multilib+set}" = set; then
enableval=$enable_multilib; case "${enableval}" in
yes) multilib=yes ;;
no) multilib=no ;;
*) { { $as_echo "$as_me:$LINENO: error: bad value ${enableval} for multilib option" >&5
$as_echo "$as_me: error: bad value ${enableval} for multilib option" >&2;}
{ (exit 1); exit 1; }; } ;;
esac
else
multilib=yes
fi
 
# Check whether --enable-target-optspace was given.
if test "${enable_target_optspace+set}" = set; then
enableval=$enable_target_optspace; case "${enableval}" in
yes) target_optspace=yes ;;
no) target_optspace=no ;;
*) { { $as_echo "$as_me:$LINENO: error: bad value ${enableval} for target-optspace option" >&5
$as_echo "$as_me: error: bad value ${enableval} for target-optspace option" >&2;}
{ (exit 1); exit 1; }; } ;;
esac
else
target_optspace=
fi
 
# Check whether --enable-malloc-debugging was given.
if test "${enable_malloc_debugging+set}" = set; then
enableval=$enable_malloc_debugging; case "${enableval}" in
yes) malloc_debugging=yes ;;
no) malloc_debugging=no ;;
*) { { $as_echo "$as_me:$LINENO: error: bad value ${enableval} for malloc-debugging option" >&5
$as_echo "$as_me: error: bad value ${enableval} for malloc-debugging option" >&2;}
{ (exit 1); exit 1; }; } ;;
esac
else
malloc_debugging=
fi
 
# Check whether --enable-newlib-multithread was given.
if test "${enable_newlib_multithread+set}" = set; then
enableval=$enable_newlib_multithread; case "${enableval}" in
yes) newlib_multithread=yes ;;
no) newlib_multithread=no ;;
*) { { $as_echo "$as_me:$LINENO: error: bad value ${enableval} for newlib-multithread option" >&5
$as_echo "$as_me: error: bad value ${enableval} for newlib-multithread option" >&2;}
{ (exit 1); exit 1; }; } ;;
esac
else
newlib_multithread=yes
fi
 
# Check whether --enable-newlib-iconv was given.
if test "${enable_newlib_iconv+set}" = set; then
enableval=$enable_newlib_iconv; if test "${newlib_iconv+set}" != set; then
case "${enableval}" in
yes) newlib_iconv=yes ;;
no) newlib_iconv=no ;;
*) { { $as_echo "$as_me:$LINENO: error: bad value ${enableval} for newlib-iconv option" >&5
$as_echo "$as_me: error: bad value ${enableval} for newlib-iconv option" >&2;}
{ (exit 1); exit 1; }; } ;;
esac
fi
else
newlib_iconv=${newlib_iconv}
fi
 
# Check whether --enable-newlib-elix-level was given.
if test "${enable_newlib_elix_level+set}" = set; then
enableval=$enable_newlib_elix_level; case "${enableval}" in
0) newlib_elix_level=0 ;;
1) newlib_elix_level=1 ;;
2) newlib_elix_level=2 ;;
3) newlib_elix_level=3 ;;
4) newlib_elix_level=4 ;;
*) { { $as_echo "$as_me:$LINENO: error: bad value ${enableval} for newlib-elix-level option" >&5
$as_echo "$as_me: error: bad value ${enableval} for newlib-elix-level option" >&2;}
{ (exit 1); exit 1; }; } ;;
esac
else
newlib_elix_level=0
fi
 
# Check whether --enable-newlib-io-float was given.
if test "${enable_newlib_io_float+set}" = set; then
enableval=$enable_newlib_io_float; case "${enableval}" in
yes) newlib_io_float=yes ;;
no) newlib_io_float=no ;;
*) { { $as_echo "$as_me:$LINENO: error: bad value ${enableval} for newlib-io-float option" >&5
$as_echo "$as_me: error: bad value ${enableval} for newlib-io-float option" >&2;}
{ (exit 1); exit 1; }; } ;;
esac
else
newlib_io_float=yes
fi
 
# Check whether --enable-newlib-supplied-syscalls was given.
if test "${enable_newlib_supplied_syscalls+set}" = set; then
enableval=$enable_newlib_supplied_syscalls; case "${enableval}" in
yes) newlib_may_supply_syscalls=yes ;;
no) newlib_may_supply_syscalls=no ;;
*) { { $as_echo "$as_me:$LINENO: error: bad value ${enableval} for newlib-supplied-syscalls option" >&5
$as_echo "$as_me: error: bad value ${enableval} for newlib-supplied-syscalls option" >&2;}
{ (exit 1); exit 1; }; } ;;
esac
else
newlib_may_supply_syscalls=yes
fi
 
if test x${newlib_may_supply_syscalls} = xyes; then
MAY_SUPPLY_SYSCALLS_TRUE=
MAY_SUPPLY_SYSCALLS_FALSE='#'
else
MAY_SUPPLY_SYSCALLS_TRUE='#'
MAY_SUPPLY_SYSCALLS_FALSE=
fi
 
 
 
test -z "${with_target_subdir}" && with_target_subdir=.
 
if test "${srcdir}" = "."; then
if test "${with_target_subdir}" != "."; then
newlib_basedir="${srcdir}/${with_multisrctop}../../../.."
else
newlib_basedir="${srcdir}/${with_multisrctop}../../.."
fi
else
newlib_basedir="${srcdir}/../../.."
fi
 
 
{ $as_echo "$as_me:$LINENO: checking host system type" >&5
$as_echo_n "checking host system type... " >&6; }
if test "${ac_cv_host+set}" = set; then
$as_echo_n "(cached) " >&6
else
if test "x$host_alias" = x; then
ac_cv_host=$ac_cv_build
else
ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
{ { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5
$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}
{ (exit 1); exit 1; }; }
fi
 
fi
{ $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5
$as_echo "$ac_cv_host" >&6; }
case $ac_cv_host in
*-*-*) ;;
*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5
$as_echo "$as_me: error: invalid value of canonical host" >&2;}
{ (exit 1); exit 1; }; };;
esac
host=$ac_cv_host
ac_save_IFS=$IFS; IFS='-'
set x $ac_cv_host
shift
host_cpu=$1
host_vendor=$2
shift; shift
# Remember, the first character of IFS is used to create $*,
# except with old shells:
host_os=$*
IFS=$ac_save_IFS
case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
 
 
 
if test "`cd $srcdir && pwd`" != "`pwd`"; then
# Use -I$(srcdir) only when $(srcdir) != ., so that make's output
# is not polluted with repeated "-I."
am__isrc=' -I$(srcdir)'
# test to see if srcdir already configured
if test -f $srcdir/config.status; then
{ { $as_echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
$as_echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
{ (exit 1); exit 1; }; }
fi
fi
 
# test whether we have cygpath
if test -z "$CYGPATH_W"; then
if (cygpath --version) >/dev/null 2>/dev/null; then
CYGPATH_W='cygpath -w'
else
CYGPATH_W=echo
fi
fi
 
 
# Define the identity of the package.
PACKAGE='newlib'
VERSION='1.18.0'
 
 
# Some tools Automake needs.
 
ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
 
 
AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
 
 
AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
 
 
AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
 
 
MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
 
# We need awk for the "check" target. The system "awk" is bad on
# some platforms.
# Always define AMTAR for backward compatibility.
 
AMTAR=${AMTAR-"${am_missing_run}tar"}
 
am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
 
 
 
 
 
 
# FIXME: We temporarily define our own version of AC_PROG_CC. This is
# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We
# are probably using a cross compiler, which will not be able to fully
# link an executable. This should really be fixed in autoconf
# itself.
 
 
 
 
 
 
 
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_CC+set}" = set; then
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_CC="gcc"
$as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
 
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
{ $as_echo "$as_me:$LINENO: result: $CC" >&5
$as_echo "$CC" >&6; }
else
{ $as_echo "$as_me:$LINENO: result: no" >&5
$as_echo "no" >&6; }
fi
 
 
 
depcc="$CC" am_compiler_list=
 
{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
$as_echo_n "checking dependency style of $depcc... " >&6; }
if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
$as_echo_n "(cached) " >&6
else
if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
# We make a subdir and do the tests there. Otherwise we can end up
# making bogus files that we don't know about and never remove. For
# instance it was reported that on HP-UX the gcc test will end up
# making a dummy file named `D' -- because `-MD' means `put the output
# in D'.
mkdir conftest.dir
# Copy depcomp to subdir because otherwise we won't find it if we're
# using a relative directory.
cp "$am_depcomp" conftest.dir
cd conftest.dir
# We will build objects and dependencies in a subdirectory because
# it helps to detect inapplicable dependency modes. For instance
# both Tru64's cc and ICC support -MD to output dependencies as a
# side effect of compilation, but ICC will put the dependencies in
# the current directory while Tru64 will put them in the object
# directory.
mkdir sub
 
am_cv_CC_dependencies_compiler_type=none
if test "$am_compiler_list" = ""; then
am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
fi
am__universal=false
case " $depcc " in #(
*\ -arch\ *\ -arch\ *) am__universal=true ;;
esac
 
for depmode in $am_compiler_list; do
# Setup a source with many dependencies, because some compilers
# like to wrap large dependency lists on column 80 (with \), and
# we should not choose a depcomp mode which is confused by this.
#
# We need to recreate these files for each test, as the compiler may
# overwrite some of them when testing with obscure command lines.
# This happens at least with the AIX C compiler.
: > sub/conftest.c
for i in 1 2 3 4 5 6; do
echo '#include "conftst'$i'.h"' >> sub/conftest.c
# Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
# Solaris 8's {/usr,}/bin/sh.
touch sub/conftst$i.h
done
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
 
# We check with `-c' and `-o' for the sake of the "dashmstdout"
# mode. It turns out that the SunPro C++ compiler does not properly
# handle `-M -o', and we need to detect this. Also, some Intel
# versions had trouble with output in subdirs
am__obj=sub/conftest.${OBJEXT-o}
am__minus_obj="-o $am__obj"
case $depmode in
gcc)
# This depmode causes a compiler race in universal mode.
test "$am__universal" = false || continue
;;
nosideeffect)
# after this tag, mechanisms are not by side-effect, so they'll
# only be used when explicitly requested
if test "x$enable_dependency_tracking" = xyes; then
continue
else
break
fi
;;
msvisualcpp | msvcmsys)
# This compiler won't grok `-c -o', but also, the minuso test has
# not run yet. These depmodes are late enough in the game, and
# so weak that their functioning should not be impacted.
am__obj=conftest.${OBJEXT-o}
am__minus_obj=
;;
none) break ;;
esac
if depmode=$depmode \
source=sub/conftest.c object=$am__obj \
depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
$SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
>/dev/null 2>conftest.err &&
grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
# icc doesn't choke on unknown options, it will just issue warnings
# or remarks (even with -Werror). So we grep stderr for any message
# that says an option was ignored or not supported.
# When given -MP, icc 7.0 and 7.1 complain thusly:
# icc: Command line warning: ignoring option '-M'; no argument required
# The diagnosis changed in icc 8.0:
# icc: Command line remark: option '-MP' not supported
if (grep 'ignoring option' conftest.err ||
grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
am_cv_CC_dependencies_compiler_type=$depmode
break
fi
fi
done
 
cd ..
rm -rf conftest.dir
else
am_cv_CC_dependencies_compiler_type=none
fi
 
fi
{ $as_echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
 
if
test "x$enable_dependency_tracking" != xno \
&& test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
am__fastdepCC_TRUE=
am__fastdepCC_FALSE='#'
else
am__fastdepCC_TRUE='#'
am__fastdepCC_FALSE=
fi
 
 
if test -z "$CC"; then
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_CC+set}" = set; then
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
ac_prog_rejected=no
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
ac_prog_rejected=yes
continue
fi
ac_cv_prog_CC="cc"
$as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
 
if test $ac_prog_rejected = yes; then
# We found a bogon in the path, so make sure we never use it.
set dummy $ac_cv_prog_CC
shift
if test $# != 0; then
# We chose a different compiler from the bogus one.
# However, it has the same basename, so the bogon will be chosen
# first if we set CC to just the basename; use the full file name.
shift
ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
fi
fi
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
{ $as_echo "$as_me:$LINENO: result: $CC" >&5
$as_echo "$CC" >&6; }
else
{ $as_echo "$as_me:$LINENO: result: no" >&5
$as_echo "no" >&6; }
fi
 
 
test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: no acceptable cc found in \$PATH" >&5
$as_echo "$as_me: error: no acceptable cc found in \$PATH" >&2;}
{ (exit 1); exit 1; }; }
fi
 
{ $as_echo "$as_me:$LINENO: checking whether we are using GNU C" >&5
$as_echo_n "checking whether we are using GNU C... " >&6; }
if test "${ac_cv_c_compiler_gnu+set}" = set; then
$as_echo_n "(cached) " >&6
else
cat > conftest.c <<EOF
#ifdef __GNUC__
yes;
#endif
EOF
if { ac_try='${CC-cc} -E conftest.c'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; } | egrep yes >/dev/null 2>&1; then
ac_cv_c_compiler_gnu=yes
else
ac_cv_c_compiler_gnu=no
fi
fi
{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
$as_echo "$ac_cv_c_compiler_gnu" >&6; }
 
if test $ac_cv_c_compiler_gnu = yes; then
GCC=yes
ac_test_CFLAGS="${CFLAGS+set}"
ac_save_CFLAGS="$CFLAGS"
ac_test_CFLAGS=${CFLAGS+set}
ac_save_CFLAGS=$CFLAGS
{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
$as_echo_n "checking whether $CC accepts -g... " >&6; }
if test "${ac_cv_prog_cc_g+set}" = set; then
$as_echo_n "(cached) " >&6
else
ac_save_c_werror_flag=$ac_c_werror_flag
ac_c_werror_flag=yes
ac_cv_prog_cc_g=no
CFLAGS="-g"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
 
int
main ()
{
 
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext
if { (ac_try="$ac_compile"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
$as_echo "$ac_try_echo") >&5
(eval "$ac_compile") 2>conftest.er1
ac_status=$?
grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest.$ac_objext; then
ac_cv_prog_cc_g=yes
else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
 
CFLAGS=""
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
 
int
main ()
{
 
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext
if { (ac_try="$ac_compile"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
$as_echo "$ac_try_echo") >&5
(eval "$ac_compile") 2>conftest.er1
ac_status=$?
grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest.$ac_objext; then
:
else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
 
ac_c_werror_flag=$ac_save_c_werror_flag
CFLAGS="-g"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
 
int
main ()
{
 
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext
if { (ac_try="$ac_compile"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
$as_echo "$ac_try_echo") >&5
(eval "$ac_compile") 2>conftest.er1
ac_status=$?
grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest.$ac_objext; then
ac_cv_prog_cc_g=yes
else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
 
 
fi
 
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
 
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
 
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
ac_c_werror_flag=$ac_save_c_werror_flag
fi
{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
$as_echo "$ac_cv_prog_cc_g" >&6; }
if test "$ac_test_CFLAGS" = set; then
CFLAGS=$ac_save_CFLAGS
elif test $ac_cv_prog_cc_g = yes; then
if test "$GCC" = yes; then
CFLAGS="-g -O2"
else
CFLAGS="-g"
fi
else
if test "$GCC" = yes; then
CFLAGS="-O2"
else
CFLAGS=
fi
fi
if test "$ac_test_CFLAGS" = set; then
CFLAGS="$ac_save_CFLAGS"
elif test $ac_cv_prog_cc_g = yes; then
CFLAGS="-g -O2"
else
CFLAGS="-O2"
fi
else
GCC=
test "${CFLAGS+set}" = set || CFLAGS="-g"
fi
 
 
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
set dummy ${ac_tool_prefix}as; ac_word=$2
{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_AS+set}" = set; then
$as_echo_n "(cached) " >&6
else
if test -n "$AS"; then
ac_cv_prog_AS="$AS" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_AS="${ac_tool_prefix}as"
$as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
 
fi
fi
AS=$ac_cv_prog_AS
if test -n "$AS"; then
{ $as_echo "$as_me:$LINENO: result: $AS" >&5
$as_echo "$AS" >&6; }
else
{ $as_echo "$as_me:$LINENO: result: no" >&5
$as_echo "no" >&6; }
fi
 
 
fi
if test -z "$ac_cv_prog_AS"; then
ac_ct_AS=$AS
# Extract the first word of "as", so it can be a program name with args.
set dummy as; ac_word=$2
{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_ac_ct_AS+set}" = set; then
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_AS"; then
ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_AS="as"
$as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
 
fi
fi
ac_ct_AS=$ac_cv_prog_ac_ct_AS
if test -n "$ac_ct_AS"; then
{ $as_echo "$as_me:$LINENO: result: $ac_ct_AS" >&5
$as_echo "$ac_ct_AS" >&6; }
else
{ $as_echo "$as_me:$LINENO: result: no" >&5
$as_echo "no" >&6; }
fi
 
if test "x$ac_ct_AS" = x; then
AS=""
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
AS=$ac_ct_AS
fi
else
AS="$ac_cv_prog_AS"
fi
 
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
set dummy ${ac_tool_prefix}ar; ac_word=$2
{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_AR+set}" = set; then
$as_echo_n "(cached) " >&6
else
if test -n "$AR"; then
ac_cv_prog_AR="$AR" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_AR="${ac_tool_prefix}ar"
$as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
 
fi
fi
AR=$ac_cv_prog_AR
if test -n "$AR"; then
{ $as_echo "$as_me:$LINENO: result: $AR" >&5
$as_echo "$AR" >&6; }
else
{ $as_echo "$as_me:$LINENO: result: no" >&5
$as_echo "no" >&6; }
fi
 
 
fi
if test -z "$ac_cv_prog_AR"; then
ac_ct_AR=$AR
# Extract the first word of "ar", so it can be a program name with args.
set dummy ar; ac_word=$2
{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_AR"; then
ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_AR="ar"
$as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
 
fi
fi
ac_ct_AR=$ac_cv_prog_ac_ct_AR
if test -n "$ac_ct_AR"; then
{ $as_echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
$as_echo "$ac_ct_AR" >&6; }
else
{ $as_echo "$as_me:$LINENO: result: no" >&5
$as_echo "no" >&6; }
fi
 
if test "x$ac_ct_AR" = x; then
AR=""
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
AR=$ac_ct_AR
fi
else
AR="$ac_cv_prog_AR"
fi
 
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
set dummy ${ac_tool_prefix}ranlib; ac_word=$2
{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_RANLIB+set}" = set; then
$as_echo_n "(cached) " >&6
else
if test -n "$RANLIB"; then
ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
$as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
 
fi
fi
RANLIB=$ac_cv_prog_RANLIB
if test -n "$RANLIB"; then
{ $as_echo "$as_me:$LINENO: result: $RANLIB" >&5
$as_echo "$RANLIB" >&6; }
else
{ $as_echo "$as_me:$LINENO: result: no" >&5
$as_echo "no" >&6; }
fi
 
 
fi
if test -z "$ac_cv_prog_RANLIB"; then
ac_ct_RANLIB=$RANLIB
# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_RANLIB"; then
ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_RANLIB="ranlib"
$as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
 
fi
fi
ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
if test -n "$ac_ct_RANLIB"; then
{ $as_echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
$as_echo "$ac_ct_RANLIB" >&6; }
else
{ $as_echo "$as_me:$LINENO: result: no" >&5
$as_echo "no" >&6; }
fi
 
if test "x$ac_ct_RANLIB" = x; then
RANLIB=":"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
RANLIB=$ac_ct_RANLIB
fi
else
RANLIB="$ac_cv_prog_RANLIB"
fi
 
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}readelf", so it can be a program name with args.
set dummy ${ac_tool_prefix}readelf; ac_word=$2
{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_READELF+set}" = set; then
$as_echo_n "(cached) " >&6
else
if test -n "$READELF"; then
ac_cv_prog_READELF="$READELF" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_READELF="${ac_tool_prefix}readelf"
$as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
 
fi
fi
READELF=$ac_cv_prog_READELF
if test -n "$READELF"; then
{ $as_echo "$as_me:$LINENO: result: $READELF" >&5
$as_echo "$READELF" >&6; }
else
{ $as_echo "$as_me:$LINENO: result: no" >&5
$as_echo "no" >&6; }
fi
 
 
fi
if test -z "$ac_cv_prog_READELF"; then
ac_ct_READELF=$READELF
# Extract the first word of "readelf", so it can be a program name with args.
set dummy readelf; ac_word=$2
{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_ac_ct_READELF+set}" = set; then
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_READELF"; then
ac_cv_prog_ac_ct_READELF="$ac_ct_READELF" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_READELF="readelf"
$as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
 
fi
fi
ac_ct_READELF=$ac_cv_prog_ac_ct_READELF
if test -n "$ac_ct_READELF"; then
{ $as_echo "$as_me:$LINENO: result: $ac_ct_READELF" >&5
$as_echo "$ac_ct_READELF" >&6; }
else
{ $as_echo "$as_me:$LINENO: result: no" >&5
$as_echo "no" >&6; }
fi
 
if test "x$ac_ct_READELF" = x; then
READELF=":"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
READELF=$ac_ct_READELF
fi
else
READELF="$ac_cv_prog_READELF"
fi
 
 
# Find a good install program. We prefer a C program (faster),
# so one script is as good as another. But avoid the broken or
# incompatible versions:
# SysV /etc/install, /usr/sbin/install
# SunOS /usr/etc/install
# IRIX /sbin/install
# AIX /bin/install
# AmigaOS /C/install, which installs bootblocks on floppy discs
# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
# AFS /usr/afsws/bin/install, which mishandles nonexistent args
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# OS/2's system install, which has a completely different semantic
# ./install, which can be erroneously created by make from ./install.sh.
# Reject install programs that cannot install multiple files.
{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
$as_echo_n "checking for a BSD-compatible install... " >&6; }
if test -z "$INSTALL"; then
if test "${ac_cv_path_install+set}" = set; then
$as_echo_n "(cached) " >&6
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
# Account for people who put trailing slashes in PATH elements.
case $as_dir/ in
./ | .// | /cC/* | \
/etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
/usr/ucb/* ) ;;
*)
# OSF1 and SCO ODT 3.0 have their own names for install.
# Don't use installbsd from OSF since it installs stuff as root
# by default.
for ac_prog in ginstall scoinst install; do
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
if test $ac_prog = install &&
grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
# AIX install. It has an incompatible calling convention.
:
elif test $ac_prog = install &&
grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
# program-specific install script used by HP pwplus--don't use.
:
else
rm -rf conftest.one conftest.two conftest.dir
echo one > conftest.one
echo two > conftest.two
mkdir conftest.dir
if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
test -s conftest.one && test -s conftest.two &&
test -s conftest.dir/conftest.one &&
test -s conftest.dir/conftest.two
then
ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
break 3
fi
fi
fi
done
done
;;
esac
 
done
IFS=$as_save_IFS
 
rm -rf conftest.one conftest.two conftest.dir
 
fi
if test "${ac_cv_path_install+set}" = set; then
INSTALL=$ac_cv_path_install
else
# As a last resort, use the slow shell script. Don't cache a
# value for INSTALL within a source directory, because that will
# break other packages using the cache if that directory is
# removed, or if the value is a relative name.
INSTALL=$ac_install_sh
fi
fi
{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5
$as_echo "$INSTALL" >&6; }
 
# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
# It thinks the first close brace ends the variable substitution.
test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
 
test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
 
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
 
# Hack to ensure that INSTALL won't be set to "../" with autoconf 2.13. */
ac_given_INSTALL=$INSTALL
 
 
{ $as_echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
# Check whether --enable-maintainer-mode was given.
if test "${enable_maintainer_mode+set}" = set; then
enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
else
USE_MAINTAINER_MODE=no
fi
 
{ $as_echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
$as_echo "$USE_MAINTAINER_MODE" >&6; }
if test $USE_MAINTAINER_MODE = yes; then
MAINTAINER_MODE_TRUE=
MAINTAINER_MODE_FALSE='#'
else
MAINTAINER_MODE_TRUE='#'
MAINTAINER_MODE_FALSE=
fi
 
MAINT=$MAINTAINER_MODE_TRUE
 
 
# By default we simply use the C compiler to build assembly code.
 
test "${CCAS+set}" = set || CCAS=$CC
test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS
 
 
 
 
# We need AC_EXEEXT to keep automake happy in cygnus mode. However,
# at least currently, we never actually build a program, so we never
# need to use $(EXEEXT). Moreover, the test for EXEEXT normally
# fails, because we are probably configuring with a cross compiler
# which can't create executables. So we include AC_EXEEXT to keep
# automake happy, but we don't execute it, since we don't care about
# the result.
if false; then
 
dummy_var=1
fi
 
. ${newlib_basedir}/configure.host
 
newlib_cflags="${newlib_cflags} -fno-builtin"
 
NEWLIB_CFLAGS=${newlib_cflags}
 
 
LDFLAGS=${ldflags}
 
 
if test x${newlib_elix_level} = x0; then
ELIX_LEVEL_0_TRUE=
ELIX_LEVEL_0_FALSE='#'
else
ELIX_LEVEL_0_TRUE='#'
ELIX_LEVEL_0_FALSE=
fi
 
if test x${newlib_elix_level} = x1; then
ELIX_LEVEL_1_TRUE=
ELIX_LEVEL_1_FALSE='#'
else
ELIX_LEVEL_1_TRUE='#'
ELIX_LEVEL_1_FALSE=
fi
 
if test x${newlib_elix_level} = x2; then
ELIX_LEVEL_2_TRUE=
ELIX_LEVEL_2_FALSE='#'
else
ELIX_LEVEL_2_TRUE='#'
ELIX_LEVEL_2_FALSE=
fi
 
if test x${newlib_elix_level} = x3; then
ELIX_LEVEL_3_TRUE=
ELIX_LEVEL_3_FALSE='#'
else
ELIX_LEVEL_3_TRUE='#'
ELIX_LEVEL_3_FALSE=
fi
 
if test x${newlib_elix_level} = x4; then
ELIX_LEVEL_4_TRUE=
ELIX_LEVEL_4_FALSE='#'
else
ELIX_LEVEL_4_TRUE='#'
ELIX_LEVEL_4_FALSE=
fi
 
 
if test x${use_libtool} = xyes; then
USE_LIBTOOL_TRUE=
USE_LIBTOOL_FALSE='#'
else
USE_LIBTOOL_TRUE='#'
USE_LIBTOOL_FALSE=
fi
 
 
# Hard-code OBJEXT. Normally it is set by AC_OBJEXT, but we
# use oext, which is set in configure.host based on the target platform.
OBJEXT=${oext}
 
 
 
 
 
 
 
 
 
 
 
ac_config_files="$ac_config_files Makefile"
 
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
# tests run on this system so they can be shared between configure
# scripts and configure runs, see configure's option --config-cache.
# It is not useful on other systems. If it contains results you don't
# want to keep, you may remove or edit it.
#
# config.status only pays attention to the cache file if you give it
# the --recheck option to rerun configure.
#
# `ac_cv_env_foo' variables (set or unset) will be overridden when
# loading this file, other *unset* `ac_cv_foo' will be assigned the
# following values.
 
_ACEOF
 
# The following way of writing the cache mishandles newlines in values,
# but we know of no workaround that is simple, portable, and efficient.
# So, we kill variables containing newlines.
# Ultrix sh set writes to stderr and can't be redirected directly,
# and sets the high bit in the cache file unless we assign to the vars.
(
for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
eval ac_val=\$$ac_var
case $ac_val in #(
*${as_nl}*)
case $ac_var in #(
*_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5
$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
esac
case $ac_var in #(
_ | IFS | as_nl) ;; #(
BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
*) $as_unset $ac_var ;;
esac ;;
esac
done
 
(set) 2>&1 |
case $as_nl`(ac_space=' '; set) 2>&1` in #(
*${as_nl}ac_space=\ *)
# `set' does not quote correctly, so add quotes (double-quote
# substitution turns \\\\ into \\, and sed turns \\ into \).
sed -n \
"s/'/'\\\\''/g;
s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
;; #(
*)
# `set' quotes correctly as required by POSIX, so do not add quotes.
sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
;;
esac |
sort
) |
sed '
/^ac_cv_env_/b end
t clear
:clear
s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
t end
s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
:end' >>confcache
if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
if test -w "$cache_file"; then
test "x$cache_file" != "x/dev/null" &&
{ $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5
$as_echo "$as_me: updating cache $cache_file" >&6;}
cat confcache >$cache_file
else
{ $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
fi
fi
rm -f confcache
 
test "x$prefix" = xNONE && prefix=$ac_default_prefix
# Let make expand exec_prefix.
test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
 
# Transform confdefs.h into DEFS.
# Protect against shell expansion while executing Makefile rules.
# Protect against Makefile macro expansion.
#
# If the first sed substitution is executed (which looks for macros that
# take arguments), then branch to the quote section. Otherwise,
# look for a macro that doesn't take arguments.
ac_script='
:mline
/\\$/{
N
s,\\\n,,
b mline
}
t clear
:clear
s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g
t quote
s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g
t quote
b any
:quote
s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g
s/\[/\\&/g
s/\]/\\&/g
s/\$/$$/g
H
:any
${
g
s/^\n//
s/\n/ /g
p
}
'
DEFS=`sed -n "$ac_script" confdefs.h`
 
 
ac_libobjs=
ac_ltlibobjs=
for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
# 1. Remove the extension, and $U if already installed.
ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
# 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
# will be set to the directory where LIBOBJS objects are built.
ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"
ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo'
done
LIBOBJS=$ac_libobjs
 
LTLIBOBJS=$ac_ltlibobjs
 
 
if test -z "${MAY_SUPPLY_SYSCALLS_TRUE}" && test -z "${MAY_SUPPLY_SYSCALLS_FALSE}"; then
{ { $as_echo "$as_me:$LINENO: error: conditional \"MAY_SUPPLY_SYSCALLS\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
$as_echo "$as_me: error: conditional \"MAY_SUPPLY_SYSCALLS\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
 
if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
{ { $as_echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
$as_echo "$as_me: error: conditional \"AMDEP\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
{ { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
$as_echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
{ { $as_echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
$as_echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
if test -z "${ELIX_LEVEL_0_TRUE}" && test -z "${ELIX_LEVEL_0_FALSE}"; then
{ { $as_echo "$as_me:$LINENO: error: conditional \"ELIX_LEVEL_0\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
$as_echo "$as_me: error: conditional \"ELIX_LEVEL_0\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
if test -z "${ELIX_LEVEL_1_TRUE}" && test -z "${ELIX_LEVEL_1_FALSE}"; then
{ { $as_echo "$as_me:$LINENO: error: conditional \"ELIX_LEVEL_1\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
$as_echo "$as_me: error: conditional \"ELIX_LEVEL_1\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
if test -z "${ELIX_LEVEL_2_TRUE}" && test -z "${ELIX_LEVEL_2_FALSE}"; then
{ { $as_echo "$as_me:$LINENO: error: conditional \"ELIX_LEVEL_2\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
$as_echo "$as_me: error: conditional \"ELIX_LEVEL_2\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
if test -z "${ELIX_LEVEL_3_TRUE}" && test -z "${ELIX_LEVEL_3_FALSE}"; then
{ { $as_echo "$as_me:$LINENO: error: conditional \"ELIX_LEVEL_3\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
$as_echo "$as_me: error: conditional \"ELIX_LEVEL_3\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
if test -z "${ELIX_LEVEL_4_TRUE}" && test -z "${ELIX_LEVEL_4_FALSE}"; then
{ { $as_echo "$as_me:$LINENO: error: conditional \"ELIX_LEVEL_4\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
$as_echo "$as_me: error: conditional \"ELIX_LEVEL_4\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
if test -z "${USE_LIBTOOL_TRUE}" && test -z "${USE_LIBTOOL_FALSE}"; then
{ { $as_echo "$as_me:$LINENO: error: conditional \"USE_LIBTOOL\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
$as_echo "$as_me: error: conditional \"USE_LIBTOOL\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
 
: ${CONFIG_STATUS=./config.status}
ac_write_fail=0
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files $CONFIG_STATUS"
{ $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
#! $SHELL
# Generated by $as_me.
# Run this file to recreate the current configuration.
# Compiler output produced by configure, useful for debugging
# configure, is in config.log if it exists.
 
debug=false
ac_cs_recheck=false
ac_cs_silent=false
SHELL=\${CONFIG_SHELL-$SHELL}
_ACEOF
 
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
## --------------------- ##
## M4sh Initialization. ##
## --------------------- ##
 
# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
# is contrary to our usage. Disable this feature.
alias -g '${1+"$@"}'='"$@"'
setopt NO_GLOB_SUBST
else
case `(set -o) 2>/dev/null` in
*posix*) set -o posix ;;
esac
 
fi
 
 
 
 
# PATH needs CR
# Avoid depending upon Character Ranges.
as_cr_letters='abcdefghijklmnopqrstuvwxyz'
as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
as_cr_Letters=$as_cr_letters$as_cr_LETTERS
as_cr_digits='0123456789'
as_cr_alnum=$as_cr_Letters$as_cr_digits
 
as_nl='
'
export as_nl
# Printing a long string crashes Solaris 7 /usr/bin/printf.
as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
as_echo='printf %s\n'
as_echo_n='printf %s'
else
if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
as_echo_n='/usr/ucb/echo -n'
else
as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
as_echo_n_body='eval
arg=$1;
case $arg in
*"$as_nl"*)
expr "X$arg" : "X\\(.*\\)$as_nl";
arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
esac;
expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
'
export as_echo_n_body
as_echo_n='sh -c $as_echo_n_body as_echo'
fi
export as_echo_body
as_echo='sh -c $as_echo_body as_echo'
fi
 
# The user is always right.
if test "${PATH_SEPARATOR+set}" != set; then
PATH_SEPARATOR=:
(PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
(PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
PATH_SEPARATOR=';'
}
fi
 
# Support unset when possible.
if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
as_unset=unset
else
as_unset=false
fi
 
 
# IFS
# We need space, tab and new line, in precisely that order. Quoting is
# there to prevent editors from complaining about space-tab.
# (If _AS_PATH_WALK were called with IFS unset, it would disable word
# splitting by setting IFS to empty value.)
IFS=" "" $as_nl"
 
# Find who we are. Look in the path if we contain no directory separator.
case $0 in
*[\\/]* ) as_myself=$0 ;;
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
done
IFS=$as_save_IFS
 
;;
esac
# We did not find ourselves, most probably we were run as `sh COMMAND'
# in which case we are not to be found in the path.
if test "x$as_myself" = x; then
as_myself=$0
fi
if test ! -f "$as_myself"; then
$as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
{ (exit 1); exit 1; }
fi
 
# Work around bugs in pre-3.0 UWIN ksh.
for as_var in ENV MAIL MAILPATH
do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
done
PS1='$ '
PS2='> '
PS4='+ '
 
# NLS nuisances.
LC_ALL=C
export LC_ALL
LANGUAGE=C
export LANGUAGE
 
# Required to use basename.
if expr a : '\(a\)' >/dev/null 2>&1 &&
test "X`expr 00001 : '.*\(...\)'`" = X001; then
as_expr=expr
else
as_expr=false
fi
 
if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
as_basename=basename
else
as_basename=false
fi
 
 
# Name of the executable.
as_me=`$as_basename -- "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
X"$0" : 'X\(//\)$' \| \
X"$0" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X/"$0" |
sed '/^.*\/\([^/][^/]*\)\/*$/{
s//\1/
q
}
/^X\/\(\/\/\)$/{
s//\1/
q
}
/^X\/\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
 
# CDPATH.
$as_unset CDPATH
 
 
 
as_lineno_1=$LINENO
as_lineno_2=$LINENO
test "x$as_lineno_1" != "x$as_lineno_2" &&
test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
 
# Create $as_me.lineno as a copy of $as_myself, but with $LINENO
# uniformly replaced by the line number. The first 'sed' inserts a
# line-number line after each line using $LINENO; the second 'sed'
# does the real work. The second script uses 'N' to pair each
# line-number line with the line containing $LINENO, and appends
# trailing '-' during substitution so that $LINENO is not a special
# case at line end.
# (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
# scripts with optimization help from Paolo Bonzini. Blame Lee
# E. McMahon (1931-1989) for sed's syntax. :-)
sed -n '
p
/[$]LINENO/=
' <$as_myself |
sed '
s/[$]LINENO.*/&-/
t lineno
b
:lineno
N
:loop
s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
t loop
s/-\n.*//
' >$as_me.lineno &&
chmod +x "$as_me.lineno" ||
{ $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
{ (exit 1); exit 1; }; }
 
# Don't try to exec as it changes $[0], causing all sort of problems
# (the dirname of $[0] is not the place where we might find the
# original and so on. Autoconf is especially sensitive to this).
. "./$as_me.lineno"
# Exit status is that of the last command.
exit
}
 
 
if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
as_dirname=dirname
else
as_dirname=false
fi
 
ECHO_C= ECHO_N= ECHO_T=
case `echo -n x` in
-n*)
case `echo 'x\c'` in
*c*) ECHO_T=' ';; # ECHO_T is single tab character.
*) ECHO_C='\c';;
esac;;
*)
ECHO_N='-n';;
esac
if expr a : '\(a\)' >/dev/null 2>&1 &&
test "X`expr 00001 : '.*\(...\)'`" = X001; then
as_expr=expr
else
as_expr=false
fi
 
rm -f conf$$ conf$$.exe conf$$.file
if test -d conf$$.dir; then
rm -f conf$$.dir/conf$$.file
else
rm -f conf$$.dir
mkdir conf$$.dir 2>/dev/null
fi
if (echo >conf$$.file) 2>/dev/null; then
if ln -s conf$$.file conf$$ 2>/dev/null; then
as_ln_s='ln -s'
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
# In both cases, we have to default to `cp -p'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
as_ln_s='cp -p'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
as_ln_s='cp -p'
fi
else
as_ln_s='cp -p'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
 
if mkdir -p . 2>/dev/null; then
as_mkdir_p=:
else
test -d ./-p && rmdir ./-p
as_mkdir_p=false
fi
 
if test -x / >/dev/null 2>&1; then
as_test_x='test -x'
else
if ls -dL / >/dev/null 2>&1; then
as_ls_L_option=L
else
as_ls_L_option=
fi
as_test_x='
eval sh -c '\''
if test -d "$1"; then
test -d "$1/.";
else
case $1 in
-*)set "./$1";;
esac;
case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
???[sx]*):;;*)false;;esac;fi
'\'' sh
'
fi
as_executable_p=$as_test_x
 
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
 
# Sed expression to map a string onto a valid variable name.
as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
 
 
exec 6>&1
 
# Save the log message, to keep $[0] and so on meaningful, and to
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by newlib $as_me 1.18.0, which was
generated by GNU Autoconf 2.63. Invocation command line was
 
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
CONFIG_LINKS = $CONFIG_LINKS
CONFIG_COMMANDS = $CONFIG_COMMANDS
$ $0 $@
 
on `(hostname || uname -n) 2>/dev/null | sed 1q`
"
 
_ACEOF
 
case $ac_config_files in *"
"*) set x $ac_config_files; shift; ac_config_files=$*;;
esac
 
 
 
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
# Files that config.status was made for.
config_files="$ac_config_files"
config_commands="$ac_config_commands"
 
_ACEOF
 
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
ac_cs_usage="\
\`$as_me' instantiates files from templates according to the
current configuration.
 
Usage: $0 [OPTION]... [FILE]...
 
-h, --help print this help, then exit
-V, --version print version number and configuration settings, then exit
-q, --quiet, --silent
do not print progress messages
-d, --debug don't remove temporary files
--recheck update $as_me by reconfiguring in the same conditions
--file=FILE[:TEMPLATE]
instantiate the configuration file FILE
 
Configuration files:
$config_files
 
Configuration commands:
$config_commands
 
Report bugs to <bug-autoconf@gnu.org>."
 
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_version="\\
newlib config.status 1.18.0
configured by $0, generated by GNU Autoconf 2.63,
with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
Copyright (C) 2008 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."
 
ac_pwd='$ac_pwd'
srcdir='$srcdir'
INSTALL='$INSTALL'
MKDIR_P='$MKDIR_P'
AWK='$AWK'
test -n "\$AWK" || AWK=awk
_ACEOF
 
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# The default lists apply if the user does not specify any file.
ac_need_defaults=:
while test $# != 0
do
case $1 in
--*=*)
ac_option=`expr "X$1" : 'X\([^=]*\)='`
ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
ac_shift=:
;;
*)
ac_option=$1
ac_optarg=$2
ac_shift=shift
;;
esac
 
case $ac_option in
# Handling of the options.
-recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
ac_cs_recheck=: ;;
--version | --versio | --versi | --vers | --ver | --ve | --v | -V )
$as_echo "$ac_cs_version"; exit ;;
--debug | --debu | --deb | --de | --d | -d )
debug=: ;;
--file | --fil | --fi | --f )
$ac_shift
case $ac_optarg in
*\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
esac
CONFIG_FILES="$CONFIG_FILES '$ac_optarg'"
ac_need_defaults=false;;
--he | --h | --help | --hel | -h )
$as_echo "$ac_cs_usage"; exit ;;
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
| -silent | --silent | --silen | --sile | --sil | --si | --s)
ac_cs_silent=: ;;
 
# This is an error.
-*) { $as_echo "$as_me: error: unrecognized option: $1
Try \`$0 --help' for more information." >&2
{ (exit 1); exit 1; }; } ;;
 
*) ac_config_targets="$ac_config_targets $1"
ac_need_defaults=false ;;
 
esac
shift
done
 
ac_configure_extra_args=
 
if $ac_cs_silent; then
exec 6>/dev/null
ac_configure_extra_args="$ac_configure_extra_args --silent"
fi
 
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
if \$ac_cs_recheck; then
set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
shift
\$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
CONFIG_SHELL='$SHELL'
export CONFIG_SHELL
exec "\$@"
fi
 
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
exec 5>>config.log
{
echo
sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
## Running $as_me. ##
_ASBOX
$as_echo "$ac_log"
} >&5
 
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
#
# INIT-COMMANDS
#
AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
 
_ACEOF
 
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 
# Handling of arguments.
for ac_config_target in $ac_config_targets
do
case $ac_config_target in
"depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
 
*) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
$as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
{ (exit 1); exit 1; }; };;
esac
done
 
 
# If the user did not use the arguments to specify the items to instantiate,
# then the envvar interface is used. Set only those that are not.
# We use the long form for the default assignment because of an extremely
# bizarre bug on SunOS 4.1.3.
if $ac_need_defaults; then
test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
fi
 
# Have a temporary directory for convenience. Make it in the build tree
# simply because there is no reason against having it here, and in addition,
# creating and moving files from /tmp can sometimes cause problems.
# Hook for its removal unless debugging.
# Note that there is a small window in which the directory will not be cleaned:
# after its creation but before its name has been assigned to `$tmp'.
$debug ||
{
tmp=
trap 'exit_status=$?
{ test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
' 0
trap '{ (exit 1); exit 1; }' 1 2 13 15
}
# Create a (secure) tmp directory for tmp files.
 
{
tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
test -n "$tmp" && test -d "$tmp"
} ||
{
tmp=./conf$$-$RANDOM
(umask 077 && mkdir "$tmp")
} ||
{
$as_echo "$as_me: cannot create a temporary directory in ." >&2
{ (exit 1); exit 1; }
}
 
# Set up the scripts for CONFIG_FILES section.
# No need to generate them if there are no CONFIG_FILES.
# This happens for instance with `./config.status config.h'.
if test -n "$CONFIG_FILES"; then
 
 
+' +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$tmp/subs1.awk" && +_ACEOF + + +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } +ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\).*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\).*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' >$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ + || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5 +$as_echo "$as_me: error: could not setup config files machinery" >&2;} + { (exit 1); exit 1; }; } +_ACEOF + +# VPATH may cause trouble with some makes, so we remove $(srcdir), +# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=/{ +s/:*\$(srcdir):*/:/ +s/:*\${srcdir}:*/:/ +s/:*@srcdir@:*/:/ +s/^\([^=]*=[ ]*\):*/\1/ +s/:*$// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" + + +eval set X " :F $CONFIG_FILES :C $CONFIG_COMMANDS" +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5 +$as_echo "$as_me: error: invalid tag $ac_tag" >&2;} + { (exit 1); exit 1; }; };; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 +$as_echo "$as_me: error: cannot find input file: $ac_f" >&2;} + { (exit 1); exit 1; }; };; + esac + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + ac_file_inputs="$ac_file_inputs '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { $as_echo "$as_me:$LINENO: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$tmp/stdin" \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + { as_dir="$ac_dir" + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 +$as_echo "$as_me: error: cannot create directory $as_dir" >&2;} + { (exit 1); exit 1; }; }; } + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= + +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p +' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined." >&5 +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined." >&2;} + + rm -f "$tmp/stdin" + case $ac_file in + -) cat "$tmp/out" && rm -f "$tmp/out";; + *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; + esac \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } + ;; + + + :C) { $as_echo "$as_me:$LINENO: executing $ac_file commands" >&5 +$as_echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || { + # Autoconf 2.62 quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`$as_dirname -- "$mf" || +$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$mf" : 'X\(//\)[^/]' \| \ + X"$mf" : 'X\(//\)$' \| \ + X"$mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`$as_dirname -- "$file" || +$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$file" : 'X\(//\)[^/]' \| \ + X"$file" : 'X\(//\)$' \| \ + X"$file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + { as_dir=$dirpart/$fdir + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 +$as_echo "$as_me: error: cannot create directory $as_dir" >&2;} + { (exit 1); exit 1; }; }; } + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} + ;; + + esac +done # for ac_tag + + +{ (exit 0); exit 0; } +_ACEOF +chmod +x $CONFIG_STATUS +ac_clean_files=$ac_clean_files_save + +test $ac_write_fail = 0 || + { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || { (exit 1); exit 1; } +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi +
configure Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: _settrap.S =================================================================== --- _settrap.S (nonexistent) +++ _settrap.S (revision 520) @@ -0,0 +1,39 @@ +; @(#)_settrap.s 2.2 90/10/14 21:57:34, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; _settrap.s +; void *prevaddr = _settrap( int trapno, void *trapaddr ); +; + .file "_settrap.s" + .include "sys/sysmac.h" + .text + .word 0x00040000 ; Debugger tag word + .global __settrap + +__settrap: + const tav,HIF_settrap @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + + .end
_settrap.S Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: Makefile.in =================================================================== --- Makefile.in (nonexistent) +++ Makefile.in (revision 520) @@ -0,0 +1,668 @@ +# Makefile.in generated by automake 1.11 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = . +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/configure $(am__configure_deps) \ + $(srcdir)/../../../../mkinstalldirs +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/../../../acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +LIBRARIES = $(noinst_LIBRARIES) +ARFLAGS = cru +lib_a_AR = $(AR) $(ARFLAGS) +lib_a_LIBADD = +am_lib_a_OBJECTS = lib_a-_alloc.$(OBJEXT) lib_a-_close.$(OBJEXT) \ + lib_a-_cycles.$(OBJEXT) lib_a-_exit.$(OBJEXT) \ + lib_a-_getpsiz.$(OBJEXT) lib_a-_gettz.$(OBJEXT) \ + lib_a-_ioctl.$(OBJEXT) lib_a-_iostat.$(OBJEXT) \ + lib_a-_iowait.$(OBJEXT) lib_a-_lseek.$(OBJEXT) \ + lib_a-_open.$(OBJEXT) lib_a-_query.$(OBJEXT) \ + lib_a-_read.$(OBJEXT) lib_a-_setim.$(OBJEXT) \ + lib_a-_settrap.$(OBJEXT) lib_a-_setvec.$(OBJEXT) \ + lib_a-_tmpnam.$(OBJEXT) lib_a-_write.$(OBJEXT) \ + lib_a-alloc.$(OBJEXT) lib_a-clock.$(OBJEXT) \ + lib_a-getargs.$(OBJEXT) lib_a-getenv.$(OBJEXT) \ + lib_a-read.$(OBJEXT) lib_a-remove.$(OBJEXT) \ + lib_a-rename.$(OBJEXT) lib_a-signal.$(OBJEXT) \ + lib_a-_sbrk.$(OBJEXT) lib_a-_fstat.$(OBJEXT) \ + lib_a-_isatty.$(OBJEXT) lib_a-systime.$(OBJEXT) \ + lib_a-vec.$(OBJEXT) lib_a-kill.$(OBJEXT) \ + lib_a-getpid.$(OBJEXT) lib_a-stubs.$(OBJEXT) +lib_a_OBJECTS = $(am_lib_a_OBJECTS) +DEFAULT_INCLUDES = -I.@am__isrc@ +depcomp = +am__depfiles_maybe = +CPPASCOMPILE = $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +SOURCES = $(lib_a_SOURCES) +ETAGS = etags +CTAGS = ctags +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCAS = @CCAS@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +READELF = @READELF@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +aext = @aext@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +libm_machine_dir = @libm_machine_dir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lpfx = @lpfx@ +machine_dir = @machine_dir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +newlib_basedir = @newlib_basedir@ +oext = @oext@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sys_dir = @sys_dir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +AUTOMAKE_OPTIONS = cygnus +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) +AM_CCASFLAGS = $(INCLUDES) +noinst_LIBRARIES = lib.a +lib_a_SOURCES = \ + _alloc.S \ + _close.S \ + _cycles.S \ + _exit.S \ + _getpsiz.S \ + _gettz.S \ + _ioctl.S \ + _iostat.S \ + _iowait.S \ + _lseek.S \ + _open.S \ + _query.S \ + _read.S \ + _setim.S \ + _settrap.S \ + _setvec.S \ + _tmpnam.S \ + _write.S \ + alloc.S \ + clock.S \ + getargs.S \ + getenv.S \ + read.S \ + remove.S \ + rename.S \ + signal.S \ + _sbrk.S \ + _fstat.S \ + _isatty.S \ + systime.S \ + vec.S \ + kill.c \ + getpid.c \ + stubs.S + +lib_a_CCASFLAGS = $(AM_CCASFLAGS) +lib_a_CFLAGS = $(AM_CFLAGS) +ACLOCAL_AMFLAGS = -I ../../.. -I ../../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +all: all-am + +.SUFFIXES: +.SUFFIXES: .S .c .o .obj +am--refresh: + @: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --cygnus'; \ + $(am__cd) $(srcdir) && $(AUTOMAKE) --cygnus \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --cygnus Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + $(am__cd) $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) +$(am__aclocal_m4_deps): + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(lib_a_AR) lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +.S.o: + $(CPPASCOMPILE) -c -o $@ $< + +.S.obj: + $(CPPASCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +lib_a-_alloc.o: _alloc.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_alloc.o `test -f '_alloc.S' || echo '$(srcdir)/'`_alloc.S + +lib_a-_alloc.obj: _alloc.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_alloc.obj `if test -f '_alloc.S'; then $(CYGPATH_W) '_alloc.S'; else $(CYGPATH_W) '$(srcdir)/_alloc.S'; fi` + +lib_a-_close.o: _close.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_close.o `test -f '_close.S' || echo '$(srcdir)/'`_close.S + +lib_a-_close.obj: _close.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_close.obj `if test -f '_close.S'; then $(CYGPATH_W) '_close.S'; else $(CYGPATH_W) '$(srcdir)/_close.S'; fi` + +lib_a-_cycles.o: _cycles.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_cycles.o `test -f '_cycles.S' || echo '$(srcdir)/'`_cycles.S + +lib_a-_cycles.obj: _cycles.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_cycles.obj `if test -f '_cycles.S'; then $(CYGPATH_W) '_cycles.S'; else $(CYGPATH_W) '$(srcdir)/_cycles.S'; fi` + +lib_a-_exit.o: _exit.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_exit.o `test -f '_exit.S' || echo '$(srcdir)/'`_exit.S + +lib_a-_exit.obj: _exit.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_exit.obj `if test -f '_exit.S'; then $(CYGPATH_W) '_exit.S'; else $(CYGPATH_W) '$(srcdir)/_exit.S'; fi` + +lib_a-_getpsiz.o: _getpsiz.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_getpsiz.o `test -f '_getpsiz.S' || echo '$(srcdir)/'`_getpsiz.S + +lib_a-_getpsiz.obj: _getpsiz.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_getpsiz.obj `if test -f '_getpsiz.S'; then $(CYGPATH_W) '_getpsiz.S'; else $(CYGPATH_W) '$(srcdir)/_getpsiz.S'; fi` + +lib_a-_gettz.o: _gettz.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_gettz.o `test -f '_gettz.S' || echo '$(srcdir)/'`_gettz.S + +lib_a-_gettz.obj: _gettz.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_gettz.obj `if test -f '_gettz.S'; then $(CYGPATH_W) '_gettz.S'; else $(CYGPATH_W) '$(srcdir)/_gettz.S'; fi` + +lib_a-_ioctl.o: _ioctl.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_ioctl.o `test -f '_ioctl.S' || echo '$(srcdir)/'`_ioctl.S + +lib_a-_ioctl.obj: _ioctl.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_ioctl.obj `if test -f '_ioctl.S'; then $(CYGPATH_W) '_ioctl.S'; else $(CYGPATH_W) '$(srcdir)/_ioctl.S'; fi` + +lib_a-_iostat.o: _iostat.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_iostat.o `test -f '_iostat.S' || echo '$(srcdir)/'`_iostat.S + +lib_a-_iostat.obj: _iostat.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_iostat.obj `if test -f '_iostat.S'; then $(CYGPATH_W) '_iostat.S'; else $(CYGPATH_W) '$(srcdir)/_iostat.S'; fi` + +lib_a-_iowait.o: _iowait.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_iowait.o `test -f '_iowait.S' || echo '$(srcdir)/'`_iowait.S + +lib_a-_iowait.obj: _iowait.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_iowait.obj `if test -f '_iowait.S'; then $(CYGPATH_W) '_iowait.S'; else $(CYGPATH_W) '$(srcdir)/_iowait.S'; fi` + +lib_a-_lseek.o: _lseek.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_lseek.o `test -f '_lseek.S' || echo '$(srcdir)/'`_lseek.S + +lib_a-_lseek.obj: _lseek.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_lseek.obj `if test -f '_lseek.S'; then $(CYGPATH_W) '_lseek.S'; else $(CYGPATH_W) '$(srcdir)/_lseek.S'; fi` + +lib_a-_open.o: _open.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_open.o `test -f '_open.S' || echo '$(srcdir)/'`_open.S + +lib_a-_open.obj: _open.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_open.obj `if test -f '_open.S'; then $(CYGPATH_W) '_open.S'; else $(CYGPATH_W) '$(srcdir)/_open.S'; fi` + +lib_a-_query.o: _query.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_query.o `test -f '_query.S' || echo '$(srcdir)/'`_query.S + +lib_a-_query.obj: _query.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_query.obj `if test -f '_query.S'; then $(CYGPATH_W) '_query.S'; else $(CYGPATH_W) '$(srcdir)/_query.S'; fi` + +lib_a-_read.o: _read.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_read.o `test -f '_read.S' || echo '$(srcdir)/'`_read.S + +lib_a-_read.obj: _read.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_read.obj `if test -f '_read.S'; then $(CYGPATH_W) '_read.S'; else $(CYGPATH_W) '$(srcdir)/_read.S'; fi` + +lib_a-_setim.o: _setim.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_setim.o `test -f '_setim.S' || echo '$(srcdir)/'`_setim.S + +lib_a-_setim.obj: _setim.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_setim.obj `if test -f '_setim.S'; then $(CYGPATH_W) '_setim.S'; else $(CYGPATH_W) '$(srcdir)/_setim.S'; fi` + +lib_a-_settrap.o: _settrap.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_settrap.o `test -f '_settrap.S' || echo '$(srcdir)/'`_settrap.S + +lib_a-_settrap.obj: _settrap.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_settrap.obj `if test -f '_settrap.S'; then $(CYGPATH_W) '_settrap.S'; else $(CYGPATH_W) '$(srcdir)/_settrap.S'; fi` + +lib_a-_setvec.o: _setvec.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_setvec.o `test -f '_setvec.S' || echo '$(srcdir)/'`_setvec.S + +lib_a-_setvec.obj: _setvec.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_setvec.obj `if test -f '_setvec.S'; then $(CYGPATH_W) '_setvec.S'; else $(CYGPATH_W) '$(srcdir)/_setvec.S'; fi` + +lib_a-_tmpnam.o: _tmpnam.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_tmpnam.o `test -f '_tmpnam.S' || echo '$(srcdir)/'`_tmpnam.S + +lib_a-_tmpnam.obj: _tmpnam.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_tmpnam.obj `if test -f '_tmpnam.S'; then $(CYGPATH_W) '_tmpnam.S'; else $(CYGPATH_W) '$(srcdir)/_tmpnam.S'; fi` + +lib_a-_write.o: _write.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_write.o `test -f '_write.S' || echo '$(srcdir)/'`_write.S + +lib_a-_write.obj: _write.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_write.obj `if test -f '_write.S'; then $(CYGPATH_W) '_write.S'; else $(CYGPATH_W) '$(srcdir)/_write.S'; fi` + +lib_a-alloc.o: alloc.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-alloc.o `test -f 'alloc.S' || echo '$(srcdir)/'`alloc.S + +lib_a-alloc.obj: alloc.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-alloc.obj `if test -f 'alloc.S'; then $(CYGPATH_W) 'alloc.S'; else $(CYGPATH_W) '$(srcdir)/alloc.S'; fi` + +lib_a-clock.o: clock.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-clock.o `test -f 'clock.S' || echo '$(srcdir)/'`clock.S + +lib_a-clock.obj: clock.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-clock.obj `if test -f 'clock.S'; then $(CYGPATH_W) 'clock.S'; else $(CYGPATH_W) '$(srcdir)/clock.S'; fi` + +lib_a-getargs.o: getargs.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-getargs.o `test -f 'getargs.S' || echo '$(srcdir)/'`getargs.S + +lib_a-getargs.obj: getargs.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-getargs.obj `if test -f 'getargs.S'; then $(CYGPATH_W) 'getargs.S'; else $(CYGPATH_W) '$(srcdir)/getargs.S'; fi` + +lib_a-getenv.o: getenv.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-getenv.o `test -f 'getenv.S' || echo '$(srcdir)/'`getenv.S + +lib_a-getenv.obj: getenv.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-getenv.obj `if test -f 'getenv.S'; then $(CYGPATH_W) 'getenv.S'; else $(CYGPATH_W) '$(srcdir)/getenv.S'; fi` + +lib_a-read.o: read.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-read.o `test -f 'read.S' || echo '$(srcdir)/'`read.S + +lib_a-read.obj: read.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-read.obj `if test -f 'read.S'; then $(CYGPATH_W) 'read.S'; else $(CYGPATH_W) '$(srcdir)/read.S'; fi` + +lib_a-remove.o: remove.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-remove.o `test -f 'remove.S' || echo '$(srcdir)/'`remove.S + +lib_a-remove.obj: remove.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-remove.obj `if test -f 'remove.S'; then $(CYGPATH_W) 'remove.S'; else $(CYGPATH_W) '$(srcdir)/remove.S'; fi` + +lib_a-rename.o: rename.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-rename.o `test -f 'rename.S' || echo '$(srcdir)/'`rename.S + +lib_a-rename.obj: rename.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-rename.obj `if test -f 'rename.S'; then $(CYGPATH_W) 'rename.S'; else $(CYGPATH_W) '$(srcdir)/rename.S'; fi` + +lib_a-signal.o: signal.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-signal.o `test -f 'signal.S' || echo '$(srcdir)/'`signal.S + +lib_a-signal.obj: signal.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-signal.obj `if test -f 'signal.S'; then $(CYGPATH_W) 'signal.S'; else $(CYGPATH_W) '$(srcdir)/signal.S'; fi` + +lib_a-_sbrk.o: _sbrk.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_sbrk.o `test -f '_sbrk.S' || echo '$(srcdir)/'`_sbrk.S + +lib_a-_sbrk.obj: _sbrk.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_sbrk.obj `if test -f '_sbrk.S'; then $(CYGPATH_W) '_sbrk.S'; else $(CYGPATH_W) '$(srcdir)/_sbrk.S'; fi` + +lib_a-_fstat.o: _fstat.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_fstat.o `test -f '_fstat.S' || echo '$(srcdir)/'`_fstat.S + +lib_a-_fstat.obj: _fstat.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_fstat.obj `if test -f '_fstat.S'; then $(CYGPATH_W) '_fstat.S'; else $(CYGPATH_W) '$(srcdir)/_fstat.S'; fi` + +lib_a-_isatty.o: _isatty.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_isatty.o `test -f '_isatty.S' || echo '$(srcdir)/'`_isatty.S + +lib_a-_isatty.obj: _isatty.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-_isatty.obj `if test -f '_isatty.S'; then $(CYGPATH_W) '_isatty.S'; else $(CYGPATH_W) '$(srcdir)/_isatty.S'; fi` + +lib_a-systime.o: systime.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-systime.o `test -f 'systime.S' || echo '$(srcdir)/'`systime.S + +lib_a-systime.obj: systime.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-systime.obj `if test -f 'systime.S'; then $(CYGPATH_W) 'systime.S'; else $(CYGPATH_W) '$(srcdir)/systime.S'; fi` + +lib_a-vec.o: vec.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-vec.o `test -f 'vec.S' || echo '$(srcdir)/'`vec.S + +lib_a-vec.obj: vec.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-vec.obj `if test -f 'vec.S'; then $(CYGPATH_W) 'vec.S'; else $(CYGPATH_W) '$(srcdir)/vec.S'; fi` + +lib_a-stubs.o: stubs.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-stubs.o `test -f 'stubs.S' || echo '$(srcdir)/'`stubs.S + +lib_a-stubs.obj: stubs.S + $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-stubs.obj `if test -f 'stubs.S'; then $(CYGPATH_W) 'stubs.S'; else $(CYGPATH_W) '$(srcdir)/stubs.S'; fi` + +.c.o: + $(COMPILE) -c $< + +.c.obj: + $(COMPILE) -c `$(CYGPATH_W) '$<'` + +lib_a-kill.o: kill.c + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-kill.o `test -f 'kill.c' || echo '$(srcdir)/'`kill.c + +lib_a-kill.obj: kill.c + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-kill.obj `if test -f 'kill.c'; then $(CYGPATH_W) 'kill.c'; else $(CYGPATH_W) '$(srcdir)/kill.c'; fi` + +lib_a-getpid.o: getpid.c + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-getpid.o `test -f 'getpid.c' || echo '$(srcdir)/'`getpid.c + +lib_a-getpid.obj: getpid.c + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-getpid.obj `if test -f 'getpid.c'; then $(CYGPATH_W) 'getpid.c'; else $(CYGPATH_W) '$(srcdir)/getpid.c'; fi` + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags +check-am: +check: check-am +all-am: Makefile $(LIBRARIES) all-local +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am + +distclean: distclean-am + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am all-local am--refresh check check-am \ + clean clean-generic clean-noinstLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-tags dvi dvi-am \ + html html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ + uninstall-am + + +all-local: crt0.o + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: Index: _cycles.S =================================================================== --- _cycles.S (nonexistent) +++ _cycles.S (revision 520) @@ -0,0 +1,39 @@ +; @(#)_cycles.s 1.2 90/10/14 21:57:21, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; _cycles.s +; struct { unsigned long low_ticks, long hi_ticks } = _cycles( ); +; + .file "_cycles.s" + .include "sys/sysmac.h" + .text + .word 0x00020000 ; Debugger tag word + .global __cycles + +__cycles: + const tav,HIF_cycles @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + + .end
_cycles.S Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: _getpsiz.S =================================================================== --- _getpsiz.S (nonexistent) +++ _getpsiz.S (revision 520) @@ -0,0 +1,38 @@ +; @(#)_getpsiz.s 1.2 90/10/14 21:57:23, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; _getpsiz.s +; int size = _getpsiz( ); +; + .file "_getpsiz.s" + .include "sys/sysmac.h" + .text + .word 0x00020000 ; Debugger tag word + .global __getpsiz + +__getpsiz: + const tav,HIF_getpagesize @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + .end
_getpsiz.S Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: _tmpnam.S =================================================================== --- _tmpnam.S (nonexistent) +++ _tmpnam.S (revision 520) @@ -0,0 +1,41 @@ +; @(#)_tmpnam.s 1.2 90/10/14 21:57:36, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; _tmpnam.s +; char *cp = _khif_tmpnam( char *bufr ); +; /* same as ANSI tmpnam(), but NULL arg is not allowed */ +; NOTE - Will not work on BSD (no tmpnam sys call) +; + .file "_tmpnam.s" + .include "sys/sysmac.h" + .text + .word 0x00030000 ; Debugger tag word + .global __khif_tmpnam + +__khif_tmpnam: + const tav,HIF_tmpnam @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + + .end
_tmpnam.S Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: _iowait.S =================================================================== --- _iowait.S (nonexistent) +++ _iowait.S (revision 520) @@ -0,0 +1,39 @@ +; @(#)_iowait.s 1.3 90/10/14 21:57:27, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; _iowait.s +; _iowait( int fd ); +; + .file "_iowait.s" + .include "sys/sysmac.h" + .text + .word 0x00030000 ; Debugger tag word + .global __iowait + +__iowait: + const tav,HIF_iowait @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + + .end
_iowait.S Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: getpid.c =================================================================== --- getpid.c (nonexistent) +++ getpid.c (revision 520) @@ -0,0 +1,12 @@ +/* Stub for getpid. */ + +#include <_ansi.h> + +/* This should really return pid_t, but that doesn't seem to be in + . */ + +int +_DEFUN_VOID (_getpid) +{ + return 1; +}
getpid.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: getargs.S =================================================================== --- getargs.S (nonexistent) +++ getargs.S (revision 520) @@ -0,0 +1,38 @@ +; @(#)getargs.s 1.2 90/10/14 21:57:44, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; _getargs.s +; void _getargs( void ); +; + .file "_getargs.s" + .include "sys/sysmac.h" + .text + .word 0x00020000 ; Debugger tag word + .global __getargs + +__getargs: + const tav,HIF_getargs @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + .end
getargs.S Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: _gettz.S =================================================================== --- _gettz.S (nonexistent) +++ _gettz.S (revision 520) @@ -0,0 +1,39 @@ +; @(#)_gettz.s 2.2 90/10/14 21:57:24, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; _gettz.s +; _gettz( void ); +; + .file "_gettz.s" + .include "sys/sysmac.h" + .text + .word 0x00020000 ; Debugger tag word + .global __gettz + +__gettz: + const tav,HIF_gettz @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + + .end
_gettz.S Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: systime.S =================================================================== --- systime.S (nonexistent) +++ systime.S (revision 520) @@ -0,0 +1,44 @@ +; @(#)systime.s 1.2 90/10/14 21:57:59, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; _time.s +; time_t secs = time( time_t *secs ); +; +; NOTE - Will not work on BSD (no time sys call) +; + .file "systime.s" + .include "sys/sysmac.h" + .text + .word 0x00030000 ; Debugger tag word + .global _time +_time: + const tav,HIF_time @ asneq V_SYSCALL,gr1,gr1 + cpeq gr97, lr2, 0 + jmpti gr97, lr0 + nop + jmpi lr0 + store 0, 0, gr96, lr2 + .end
systime.S Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: _open.S =================================================================== --- _open.S (nonexistent) +++ _open.S (revision 520) @@ -0,0 +1,39 @@ +; @(#)_open.s 1.4 90/10/14 21:57:30, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; _open.s +; int fd = _open( char *path, int oflag [, int mode ] ); +; + .file "_open.s" + .include "sys/sysmac.h" + .text + .word 0x00050000 ; Debugger tag word + .global __open + +__open: + const tav,HIF_open @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + + .end
_open.S Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: _iostat.S =================================================================== --- _iostat.S (nonexistent) +++ _iostat.S (revision 520) @@ -0,0 +1,43 @@ +;---------------------------------------------------------------------------- +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; _iostat.s +; _iostat( int fd ); +; + .file "_iostat.s" + .include "sys/sysmac.h" + .text + .word 0x00030000 ; Debugger tag word + .global __iostat + .global _iostat + +__iostat: +_iostat: + const tav,HIF_iostat @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + + .end +
_iostat.S Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: _lseek.S =================================================================== --- _lseek.S (nonexistent) +++ _lseek.S (revision 520) @@ -0,0 +1,42 @@ +; @(#)_lseek.s 1.4 90/10/14 21:57:28, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; _lseek.s +; int cc = _lseek( int fd, long offset, int whence ); +; + .file "_lseek.s" + .include "sys/sysmac.h" + .text + .word 0x00050000 ; Debugger tag word + .global __lseek +;; syscalls used now -- .global _lseek + + +__lseek: +;; syscalls used now -- _lseek: + const tav,HIF_lseek @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + + .end
_lseek.S Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: _query.S =================================================================== --- _query.S (nonexistent) +++ _query.S (revision 520) @@ -0,0 +1,39 @@ +; @(#)_query.s 2.2 90/10/14 21:57:31, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; _query.s +; _query( query_code ); +; + .file "_query.s" + .include "sys/sysmac.h" + .text + .word 0x00030000 ; Debugger tag word + .global __query + +__query: + const tav,HIF_query @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + + .end
_query.S Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: rename.S =================================================================== --- rename.S (nonexistent) +++ rename.S (revision 520) @@ -0,0 +1,41 @@ +; @(#)rename.s 1.3 90/10/14 21:57:54, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; rename.s +; int cc = rename( char *from, char *to ); +; + .file "rename.s" + .include "sys/sysmac.h" + .text + .word 0x00040000 ; Debugger tag word + .global _rename + .global __rename + +_rename: +__rename: + const tav,HIF_rename @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + + .end
rename.S Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: _exit.S =================================================================== --- _exit.S (nonexistent) +++ _exit.S (revision 520) @@ -0,0 +1,39 @@ +; @(#)_exit.s 1.2 90/10/14 21:57:22, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; _exit.s +; _exit( int rc ); +; + .file "_exit.s" + .include "sys/sysmac.h" + .text + .word 0x00030000 ; Debugger tag word + .global __exit + +__exit: + const tav,HIF_exit @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + + .end
_exit.S Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: crt0.S =================================================================== --- crt0.S (nonexistent) +++ crt0.S (revision 520) @@ -0,0 +1,226 @@ +; @(#)crt0.s 2.7 90/10/15 13:17:57, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1988, 1989, 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + .file "crt0.s" +; crt0.s version 2.1-7 +; +; This module gets control from the OS. +; It saves away the Am29027 Mode register settings and +; then sets up the pointers to the resident spill and fill +; trap handlers. It then establishes argv and argc for passing +; to main. It then calls _main. If main returns, it calls _exit. +; +; void = start( ); +; NOTE - not C callable (no lead underscore) +; + .include "sys/sysmac.h" +; +; + .extern V_SPILL, V_FILL + .comm __29027Mode, 8 ; A shadow of the mode register + .comm __LibInit, 4 + .comm __environ, 4 ; Environment variables, currently none. + .text + .extern _main, _exit + .extern _memset + + .word 0 ; Terminating tag word + .global start +start: + sub gr1, gr1, 6 * 4 + asgeu V_SPILL, gr1, rab ; better not ever happen + add lr1, gr1, 6 * 4 +; +; Initialize the .bss section to zero by using the memset library function. +; The .bss initialization section below has been commented out as it breaks +; XRAY29K that has been released. The operators sizeof and startof create +; new sections that are not recognized by XRAY29k, but will be implemented +; in the next release (2.0). +; +; const lr4, $sizeof(.bss) ; get size of .bss section to zero out +; consth lr4, $sizeof(.bss) +; const lr2, $startof(.bss) ; Get start address of .bss section +; consth lr2, $startof(.bss) +; const lr0, _memset ; address of memset function +; consth lr0, _memset +; calli lr0, lr0 ; call memset function +; const lr3, 0 + +; Save the initial value of the Am29027's Mode register +; If your const tav,HIF_does @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 not enter crt0 with value for Am29027's Mode register +; in gr96 and gr97, and also if the coprocessor is active uncomment the +; next 4 lines. +; const gr96, 0xfc00820 +; consth gr96, 0xfc00820 +; const gr97, 0x1375 +; store 1, 3, gr96, gr97 +; + const gr98, __29027Mode + consth gr98, __29027Mode + store 0, 0, gr96, gr98 + add gr98, gr98, 4 + store 0, 0, gr97, gr98 +; +; Now call the const tav,HIF_to @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 setup the spill and fill trap handlers +; + const lr3, spill + consth lr3, spill + const lr2, V_SPILL + const tav,HIF_setvec @ asneq V_SYSCALL,gr1,gr1 + const lr3, fill + consth lr3, fill + const lr2, V_FILL + const tav,HIF_setvec @ asneq V_SYSCALL,gr1,gr1 +; +; Set up dividu handler, since native one don't work?! +; Set it up by hand (FIXME) since HIF_settrap doesn't work either! +; +; const lr3,Edividu +; consth lr3,Edividu +; +; const lr2,35 +; const tav,HIF_settrap @ asneq V_SYSCALL,gr1,gr1 +; asge 0x50,gr121,0 ; check whether it failed +; const lr2,0x8000008c ; abs addr of dividu trap handler on EB +; consth lr2,0x8000008c +; store 0,0,lr3,lr2 ; Clobber vector FIXME + +; +; Get the argv base address and calculate argc. +; + const tav,HIF_getargs @ asneq V_SYSCALL,gr1,gr1 + add lr3, v0, 0 ; argv + add lr4, v0, 0 + constn lr2, -1 +argcloop: ; scan for NULL terminator + load 0, 0, gr97, lr4 + add lr4, lr4, 4 + cpeq gr97, gr97, 0 + jmpf gr97, argcloop + add lr2, lr2, 1 +; +; Now call LibInit, if there is one. To aid runtime libraries +; that need to do some startup initialization, we have created +; a bss variable called LibInit. If the library doesn't need +; any run-time initialization, the variable is still 0. If the +; library does need run-time initialization, the library will +; contain a definition like +; void (*_LibInit)(void) = LibInitFunction; +; The linker will match up our bss LibInit with this data LibInit +; and the variable will not be 0. +; + const lr0, __LibInit + consth lr0, __LibInit + load 0, 0, lr0, lr0 + cpeq gr96, lr0, 0 + jmpt gr96, NoLibInit + nop + calli lr0, lr0 + nop +NoLibInit: +; +; call main, passing it 2 arguments. main( argc, argv ) +; + const lr0, _main + consth lr0, _main + calli lr0, lr0 + nop +; +; call exit +; + const lr0, _exit + consth lr0, _exit + calli lr0, lr0 + add lr2, gr96, 0 +; +; Should never get here, but just in case +; +loop: + const tav,HIF_exit @ asneq V_SYSCALL,gr1,gr1 + jmp loop + nop + .sbttl "Spill and Fill trap handlers" + .eject +; +; SPILL, FILL trap handlers +; +; Note that these Spill and Fill trap handlers allow the OS to +; assume that the only registers of use are between gr1 and rfb. +; Therefore, if the OS desires to, it may simply preserve from +; lr0 for (rfb-gr1)/4 registers when doing a context save. +; +; +; Here is the spill handler +; +; spill registers from [*gr1..*rab) +; and move rab downto where gr1 points +; +; rab must change before rfb for signals to work +; +; On entry: rfb - rab = windowsize, gr1 < rab +; Near the end: rfb - rab > windowsize, gr1 == rab +; On exit: rfb - rab = windowsize, gr1 == rab +; + .global spill +spill: + sub tav, rab, gr1 ; tav = number of bytes to spill + srl tav, tav, 2 ; change byte count to word count + sub tav, tav, 1 ; make count zero based + mtsr cr, tav ; set Count Remaining register + sub tav, rab, gr1 + sub tav, rfb, tav ; pull down free bound and save it in rab + add rab, gr1, 0 ; first pull down allocate bound + storem 0, 0, lr0, tav ; store lr0..lr(tav) into rfb + jmpi tpc ; return... + add rfb, tav, 0 +; +; Here is the fill handler +; +; fill registers from [*rfb..*lr1) +; and move rfb upto where lr1 points. +; +; rab must change before rfb for signals to work +; +; On entry: rfb - rab = windowsize, lr1 > rfb +; Near the end: rfb - rab < windowsize, lr1 == rab + windowsize +; On exit: rfb - rab = windowsize, lr1 == rfb +; + .global fill +fill: + const tav, 0x80 << 2 + or tav, tav, rfb ; tav = ((rfb>>2) | 0x80)<<2 == [rfb]<<2 + mtsr ipa, tav ; ipa = [rfb]<<2 == 1st reg to fill + ; gr0 is now the first reg to spill + sub tav, lr1, rfb ; tav = number of bytes to spill + add rab, rab, tav ; push up allocate bound + srl tav, tav, 2 ; change byte count to word count + sub tav, tav, 1 ; make count zero based + mtsr cr, tav ; set Count Remaining register + loadm 0, 0, gr0, rfb ; load registers + jmpi tpc ; return... + add rfb, lr1, 0 ; ... first pushing up free bound + + .end
crt0.S Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: _read.S =================================================================== --- _read.S (nonexistent) +++ _read.S (revision 520) @@ -0,0 +1,38 @@ +; @(#)_read.s 1.4 90/10/14 21:57:32, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; _read.s +; int nread = _read( int fd, char *buf, int count ); +; + .file "_read.s" + .include "sys/sysmac.h" + .text + .word 0x00050000 ; Debugger tag word + .global __read + +__read: + const tav,HIF_read @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + .end
_read.S Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: kill.c =================================================================== --- kill.c (nonexistent) +++ kill.c (revision 520) @@ -0,0 +1,21 @@ +/* Stub for kill. */ + +#include <_ansi.h> +#include + +/* The pid argument should be of type pid_t. */ + +int +_DEFUN (_kill, (pid, sig), + int pid _AND + int sig) +{ + if (pid == 1 || pid < 0) + { + if (sig == 0) + return 0; + return raise (sig); + } + errno = EINVAL; + return -1; +}
kill.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: vec.S =================================================================== --- vec.S (nonexistent) +++ vec.S (revision 520) @@ -0,0 +1,35 @@ +; @(#)vec.s 1.2 90/10/14 21:58:01, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + .global V_SPILL, V_FILL + .global V_EPI_OS, V_BSD_OS + + .equ V_SPILL, 64 + .equ V_FILL, 65 + + .equ V_BSD_OS, 66 + .equ V_EPI_OS, 69 + .end
vec.S Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: signal.S =================================================================== --- signal.S (nonexistent) +++ signal.S (revision 520) @@ -0,0 +1,452 @@ +;@(#)signal.s 2.15 90/10/14 21:57:55, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + .file "signal.s" + +; SigEntry is the address of an array of C-level user code signal handlers. +; They must return to the top-level before doing a sigret() return function. +; Nested signals are supported. + + .extern V_SPILL, V_FILL + .extern fill ; In crt0.s + + .align 4 + .comm WindowSize, 4 + .data +SigEntry: + .word 0 ; reserved + .word 0 ; adds. of #2 SIGINT handler + .word 0 ; reserved + .word 0 ; reserved + .word 0 ; reserved + .word 0 ; reserved + .word 0 ; reserved + .word 0 ; adds. of #8 SIGFPE handler + + .text + + .reg v0, gr96 + .reg v1, gr97 + .reg v2, gr98 + .reg v3, gr99 + + .reg tav, gr121 + .reg tpc, gr122 + .reg lrp, gr123 + .reg slp, gr124 + .reg msp, gr125 + .reg rab, gr126 + .reg rfb, gr127 + +;=================================================================== setjmp() +; int +; setjmp(label_t jmpbuf) +; { +; *jmpbuf = {gr1, msp, lr0, lr1}; +; return 0; +; } +; + .global _setjmp +_setjmp: + store 0, 0, gr1, lr2 + add lr2, lr2, 4 + store 0, 0, msp, lr2 + add lr2, lr2, 4 + store 0, 0, lr0, lr2 + add lr2, lr2, 4 + store 0, 0, lr1, lr2 + jmpi lr0 + const v0, 0 +; +;==================================================================== longjmp() +; int +; longjmp(label_t jmpbuf, int value) +; { +; /* BUG: check for this +; if (msp > jmpbuf->msp || gr1 > jmpbuf->gr1) +; longjmperror(); +; */ +; +; gr1 = jmpbuf->gr1; +; lr2addr = jmpbuf->gr1 + 8; +; msp = jmpbuf->msp; +; +; /* saved lr1 is invalid if saved lr2addr > rfb */ +; if (lr2addr > rfb) { +; /* +; * None of the registers are useful. +; * Set rfb to lr2addr - 512 & rab to rfb - 512. +; * the FILL assert will take care of filling +; */ +; lr1 = jmpbuf->lr1; +; rab = lr2addr - windowsize; +; rfb = lr2addr; +; } +; +; lr0 = jmpbuf->lr0; +; if (rfb < lr1) +; raise V_FILL; +; return value; +; } +; + .global _longjmp +_longjmp: + load 0, 0, tav, lr2 ; copy in gr1 + add v1, lr2, 4 ; v1 points to msp + ; make sure we return a non-zero value + cpeq v0, lr3, 0 + srl v0, v0, 31 + or v0, lr3, v0 + + add gr1, tav, 0 ; now update gr1 + add tav, tav, 8 ; calculate lr2addr + load 0, 0, msp, v1 ; update msp from jmpbuf + cpleu v3, tav, rfb ; if (lr2addr > rfb) + jmpt v3, $1 ; { + add v1, v1, 4 ; v1 points to lr0 + add v2, v1, 4 ; v2 points to lr1 + load 0, 0, lr1, v2 ; lr1 = value from jmpbuf + sub v3, rfb, rab ; + sub rab, tav, v3 ; rab = lr2addr - windowsize + add rfb, tav, 0 ; rfb = lr2addr +$1: ; } + load 0, 0, lr0, v1 + jmpi lr0 + asgeu V_FILL, rfb, lr1 ; may fill from rfb to lr1 +; +;================================================================== sigcode +; About to deliver a signal to a user mode signal handler. +; msp+(15*4) = signal_number +; msp+(14*4) = gr1 +; msp+(13*4) = rab +; msp+(12*4) = PC0 +; msp+(11*4) = PC1 +; msp+(10*4) = PC2 +; msp+( 9*4) = CHA +; msp+( 8*4) = CHD +; msp+( 7*4) = CHC +; msp+( 6*4) = ALU +; msp+( 5*4) = OPS +; msp+( 4*4) = gr121 +; msp+( 3*4) = gr99 +; msp+( 2*4) = gr98 +; msp+( 1*4) = gr97 +; msp = gr96 +; The state of all the registers (except for msp, chc and rab) +; is the same as when the process was interrupted. +; +; We must make the stack and window consistent before calling the handler +; The orignal rab value is on the stack. The interrupt handler placed +; rfb-Windowsize in rab. This is required to support nested interrupts. +; +; Note that the window becomes incosistent only during certain +; critical sections in spill, fill, longjmp and sigcode. +; rfb - rab > windowsize => we are in spill +; rfb - rab < windowsize => we are in fill +; gr1 + 8 > rfb => we are in long-longjmp case +; In case of spill, fill and lonjmp; rab is modified first, +; so if we are in one of these critical sections, +; we set rab to rfb - WINDOWSIZE. +; + .equ SIGCTX_SIZE, (16)*4 + .equ SIGCTX_SIGNUMB, (15)*4 + .equ SIGCTX_GR1_OFFSET, (14)*4 + .equ SIGCTX_RAB_OFFSET, (13)*4 + .equ SIGCTX_PC0_OFFSET, (12)*4 + .equ SIGCTX_PC1_OFFSET, (11)*4 + .equ SIGCTX_PC2_OFFSET, (10)*4 + .equ SIGCTX_CHC_OFFSET, (7)*4 + .equ SIGCTX_OPS_OFFSET, (5)*4 + .equ SIGCTX_TAV_OFFSET, (4)*4 + .global sigcode +sigcode: +; -------------------------------------------------------- R-Stack fixup + const v0, WindowSize ; get register cache size + consth v0, WindowSize + load 0, 0, v0, v0 + add v2, msp, SIGCTX_RAB_OFFSET + load 0, 0, v2, v2 ; get interrupted rab value + sub v1, rfb, v2 ; determine if rfb-rab <= WINDOW_SIZE + cpgeu v1, v1, v0 ; + jmpt v1, nfill ; jmp if spill or 'normal' interrupt + add v1, gr1, 8 + cpgt v1, v1, rfb ; interrupted longjmp can look like fill + jmpf v1, nfill ; test for long-longjmp interruption + nop ; jmp if gr1+8 <= rfb +; Fixup signal stack to re-start interrupted fill +; backup pc1 -- this is needed for the partial fill case. +; Clear chc so an interrupted load/store does not restart. +; Reset rab to a window distance below rfb, rab shall be +; decremented again on re-starting the interrupted fill. +; The interrupt handler set rab=rfb-WindowSize. +; + add v0, msp, SIGCTX_RAB_OFFSET + store 0, 0, rab, v0 ; re-store (rfb-WindowSize) for rab + const v2, fill + consth v2, fill + add v0, msp, SIGCTX_PC1_OFFSET + store 0, 0, v2, v0 + sub v2, v2, 4 ; determine pc0 + add v0, msp, SIGCTX_PC0_OFFSET + store 0, 0, v2, v0 + const v2, 0 ; clear chc + add v0, msp, SIGCTX_CHC_OFFSET + store 0, 0, v2, v0 + +nfill: + cpgt v0, gr1, rfb ; if gr1 > rfb then gr1 = rfb + jmpt v0, lower + cplt v0, gr1, rab ; if gr1 < rab then gr1 = rab + jmpt v0, raise + nop +; -------------------------------------------------------- save_regs +sig1: sub msp, msp, (4+2+25)*4 ; reserve space for regs + mfsr gr96, ipc + mfsr gr97, ipa + mfsr gr98, ipb + mfsr gr99, q + mtsrim cr, 4-1 + storem 0, 0, gr96, msp +; "push" registers stack support + add gr96, lr1, 0 + add gr97, rfb, 0 + mtsrim cr, 2-1 + add gr99, msp, 2*4 + storem 0, 0, gr96, gr99 +; "push" remaining global registers + mtsrim cr, 25-1 ; gr100-gr124 + add gr96, msp, (4+2)*4 + storem 0, 0, gr100, gr96 +; +; -------------------------------------------------------- Dummy Call + .equ RALLOC, 4*4 ; make space for function calls + add v0, rfb, 0 ; store original rfb + sub gr1, gr1, RALLOC + asgeu V_SPILL, gr1, rab + add lr1, v0, 0 ; set lr1 = original rfb + add v1, msp, (4+2+25)*4 + SIGCTX_SIGNUMB + load 0, 0, lr2, v1 ; restore signal number + sub v1, lr2, 1 ; get handler index + sll v1, v1, 2 ; point to addresses +; +; -------------------------------------------------------- call C-level +; Handler must not use HIF services other than the _sigret() type. + const v0, SigEntry + consth v0, SigEntry + add v0, v0, v1 + load 0, 0, v0, v0 ; determine if handler registered + cpeq v1, v0, 0 + jmpt v1, NoHandler + nop + calli lr0, v0 ; call C-level signal handler + nop +; +; -------------------------------------------------------- default return +NoHandler: + jmp __sigdfl + nop + +; -------------------------------------------------------- support bits +lower: sll gr1, rfb, 0 + jmp sig1 + nop +raise: sll gr1, rab, 0 + jmp sig1 + nop +/* +; -------------------------------------------------------- repair_regs + mtsrim cr, 4-1 + loadm 0, 0, gr96, msp + mtsr ipc, gr96 + mtsr ipa, gr97 + mtsr ipb, gr98 + mtsr Q, gr99 +; "pop" registers stack support + mtsrim cr, 2-1 + add gr99, msp, 2*4 + loadm 0, 0, gr96, gr99 + add lr1, gr96, 0 + add rfb, gr97, 0 +; "pop" remaining global registers + mtsrim cr, 25-1 ; gr100-gr124 + add gr96, msp, (4+2)*4 + loadm 0, 0, gr100, gr96 + add msp, msp, (4+2+25)*4 ; repair msp to save_regs entry value +; -------------------------------------------------------- end repair +*/ + +; ======================================================== _sigret() + .global __sigret +__sigret: +; repair_regs +; -------------------------------------------------------- repair_regs + mtsrim cr, 4-1 + loadm 0, 0, gr96, msp + mtsr ipc, gr96 + mtsr ipa, gr97 + mtsr ipb, gr98 + mtsr q, gr99 +; "pop" registers stack support + mtsrim cr, 2-1 + add gr99, msp, 2*4 + loadm 0, 0, gr96, gr99 + add lr1, gr96, 0 + add rfb, gr97, 0 +; "pop" remaining global registers + mtsrim cr, 25-1 ; gr100-gr124 + add gr96, msp, (4+2)*4 + loadm 0, 0, gr100, gr96 + add msp, msp, (4+2+25)*4 ; repair msp to save_regs entry value +; -------------------------------------------------------- end repair + const tav, 323 ; HIF _sigret + asneq 69, gr1,gr1 + halt ; commit suicide if returns + +; ======================================================== _sigdfl() + .global __sigdfl +__sigdfl: +; repair_regs +; -------------------------------------------------------- repair_regs + mtsrim cr, 4-1 + loadm 0, 0, gr96, msp + mtsr ipc, gr96 + mtsr ipa, gr97 + mtsr ipb, gr98 + mtsr q, gr99 +; "pop" registers stack support + mtsrim cr, 2-1 + add gr99, msp, 2*4 + loadm 0, 0, gr96, gr99 + add lr1, gr96, 0 + add rfb, gr97, 0 +; "pop" remaining global registers + mtsrim cr, 25-1 ; gr100-gr124 + add gr96, msp, (4+2)*4 + loadm 0, 0, gr100, gr96 + add msp, msp, (4+2+25)*4 ; repair msp to save_regs entry value +; -------------------------------------------------------- end repair + const tav, 322 ; HIF _sigdfl + asneq 69, gr1,gr1 + halt ; commit suicide if returns + +; ======================================================== _sigrep() +__sigrep: + .global __sigrep +; repair_regs +; -------------------------------------------------------- repair_regs + mtsrim cr, 4-1 + loadm 0, 0, gr96, msp + mtsr ipc, gr96 + mtsr ipa, gr97 + mtsr ipb, gr98 + mtsr q, gr99 +; "pop" registers stack support + mtsrim cr, 2-1 + add gr99, msp, 2*4 + loadm 0, 0, gr96, gr99 + add lr1, gr96, 0 + add rfb, gr97, 0 +; "pop" remaining global registers + mtsrim cr, 25-1 ; gr100-gr124 + add gr96, msp, (4+2)*4 + loadm 0, 0, gr100, gr96 + add msp, msp, (4+2+25)*4 ; repair msp to save_regs entry value +; -------------------------------------------------------- end repair + const tav, 324 ; HIF _sigrep + asneq 69, gr1,gr1 + halt ; commit suicide if returns + +; ======================================================== _sigskp() + .global __sigskp +__sigskp: +; repair_regs +; -------------------------------------------------------- repair_regs + mtsrim cr, 4-1 + loadm 0, 0, gr96, msp + mtsr ipc, gr96 + mtsr ipa, gr97 + mtsr ipb, gr98 + mtsr q, gr99 +; "pop" registers stack support + mtsrim cr, 2-1 + add gr99, msp, 2*4 + loadm 0, 0, gr96, gr99 + add lr1, gr96, 0 + add rfb, gr97, 0 +; "pop" remaining global registers + mtsrim cr, 25-1 ; gr100-gr124 + add gr96, msp, (4+2)*4 + loadm 0, 0, gr100, gr96 + add msp, msp, (4+2+25)*4 ; repair msp to save_regs entry value +; -------------------------------------------------------- end repair + const tav, 325 ; HIF _sigskp + asneq 69, gr1,gr1 + halt ; commit suicide if returns + +; ======================================================== _sendsig() +; lr2 = signal number + .global _raise + .global __sendsig +_raise: +__sendsig: + const tav, 326 ; HIF sendsig + asneq 69, gr1,gr1 + jmpi lr0 + nop + +; +; ======================================================== signal() +; lr2 = signal number +; lr3 = handler address + .global _signal +_signal: +; the memory variable WindowSize must be initalised at the +; start when rfb and rab are a window size apart. + const v0, WindowSize ; get register cache size + consth v0, WindowSize + load 0, 0, v1, v0 + cpeq v1, v1, 0 + jmpf v1, WindowSizeOK + sub v1, rfb, rab ; rfb-rab = WINDOW_SIZE + store 0, 0, v1, v0 +WindowSizeOK: + const v1, SigEntry + consth v1, SigEntry + sub v3, lr2, 1 ; get handler index + sll v3, v3, 2 ; pointer to addresses + add v1, v1, v3 + store 0,0, lr3, v1 ; save new handler + + const lr2, sigcode + consth lr2, sigcode + ;Fall through to __signal +; ======================================================== _signal() + .global __signal +__signal: + const tav, 321 ; HIF signal + asneq 69, gr1,gr1 + jmpi lr0 + nop
signal.S Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: _fstat.S =================================================================== --- _fstat.S (nonexistent) +++ _fstat.S (revision 520) @@ -0,0 +1,79 @@ + .file "_fstat.c" + .sect .lit,lit +gcc2_compiled.: + .text + .align 4 + .global __fstat +;; syscalls used now -- .global _fstat + .word 0x40000 +__fstat: +;; syscalls used now -- _fstat: + sub gr1,gr1,32 + asgeu V_SPILL,gr1,gr126 + add lr1,gr1,48 + sll lr5,lr10,0 + const gr116,__iostat + consth gr116,__iostat + calli lr0,gr116 + sll lr2,lr5,0 + sll lr10,gr96,0 + jmpt lr10,L8 + sll gr116,lr10,30 + jmpf gr116,L3 + add gr116,lr11,12 + add gr117,lr11,12 + const gr116,4096 + store 0,0,gr116,gr117 + add gr117,lr11,4 + const gr116,1 + jmp L4 + store 0,0,gr116,gr117 +L3: + const gr117,8192 + store 0,0,gr117,gr116 + add gr116,lr11,4 + store 0,0,gr117,gr116 +L4: + add gr117,lr11,20 + const gr116,0 + store 0,0,gr116,gr117 + store 0,0,gr116,lr11 + const gr116,_time + consth gr116,_time + calli lr0,gr116 + const lr2,0 + add gr116,lr11,16 + store 0,0,gr96,gr116 + sll lr2,lr5,0 + const lr3,0 + const lr7,__lseek + consth lr7,__lseek + calli lr0,lr7 + const lr4,1 + sll lr10,gr96,0 + constn lr6,65535 + cpneq gr116,lr10,lr6 + jmpf gr116,L7 + sll lr2,lr5,0 + const lr3,0 + calli lr0,lr7 + const lr4,2 + add gr116,lr11,8 + store 0,0,gr96,gr116 + cpneq gr96,gr96,lr6 + jmpf gr96,L7 + sll lr2,lr5,0 + sll lr3,lr10,0 + calli lr0,lr7 + const lr4,0 + cpneq gr96,gr96,lr6 + jmpt gr96,L8 + const gr96,0 +L7: + constn gr96,65535 +L8: + add gr1,gr1,32 + nop + jmpi lr0 + asleu V_FILL,lr1,gr127 +
_fstat.S Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: _setim.S =================================================================== --- _setim.S (nonexistent) +++ _setim.S (revision 520) @@ -0,0 +1,39 @@ +; @(#)_setim.s 2.2 90/10/14 21:57:33, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; _setim.s +; _setim( im, di ); +; + .file "_setim.s" + .include "sys/sysmac.h" + .text + .word 0x00040000 ; Debugger tag word + .global __setim + +__setim: + const tav,HIF_setim @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + + .end
_setim.S Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: configure.in =================================================================== --- configure.in (nonexistent) +++ configure.in (revision 520) @@ -0,0 +1,14 @@ +dnl This is the newlib/libc/sys/a29khif configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.59) +AC_INIT([newlib],[NEWLIB_VERSION]) +AC_CONFIG_SRCDIR([_alloc.s]) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_CONFIG_FILES(Makefile) +AC_OUTPUT
configure.in Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: _setvec.S =================================================================== --- _setvec.S (nonexistent) +++ _setvec.S (revision 520) @@ -0,0 +1,38 @@ +; @(#)_setvec.s 1.2 90/10/14 21:57:35, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; _setvec.s +; int success = _setvec( int trap_no, void (*handler)( void ) ); +; + .file "_setvec.s" + .include "sys/sysmac.h" + .text + .word 0x00040000 ; Debugger tag word + .global __setvec + +__setvec: + const tav,HIF_setvec @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + .end
_setvec.S Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: getenv.S =================================================================== --- getenv.S (nonexistent) +++ getenv.S (revision 520) @@ -0,0 +1,48 @@ +; @(#)getenv.s 1.4 90/10/14 21:57:45, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; getenv.s +; char *value = getenv( const char *name ); +; + .file "getenv.s" + + .include "sys/sysmac.h" + + .text + .word 0x00030000 ; Debugger tag word + .global _getenv + .global __getenv +_getenv: +__getenv: + const tav,HIF_getenv @ asneq V_SYSCALL,gr1,gr1 ; HIF service trap + jmpti tav, lr0 ; If tav is true, were finished, return. + const tpc, _errno + consth tpc, _errno ; Otherwise, + store 0, 0, tav, tpc ; store error code in _errno, + jmpi lr0 ; then return + const v0, 0 ; with a value of 0 (NULL pointer). + + .end
getenv.S Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: _alloc.S =================================================================== --- _alloc.S (nonexistent) +++ _alloc.S (revision 520) @@ -0,0 +1,55 @@ +; @(#)_alloc.s 1.4 90/10/14 21:57:19, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1989, 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; 07/06/89 (JS) Replaced call to const tav,HIF_macro @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 to syscall macro, +; and deleted call to reterr macro as a NULL needs to be +; returned on failure. +; _alloc.s +; void *vp = _sysalloc( int size ); +; + .file "_alloc.s" + .include "sys/sysmac.h" + .text + .word 0x00030000 ; Debugger tag word + .global __sysalloc +__sysalloc: + const tav,HIF_alloc @ asneq V_SYSCALL,gr1,gr1 + jmpti tav, lr0 + const tpc, _errno + consth tpc, _errno + store 0, 0, tav, tpc + jmpi lr0 + const v0, 0 ; return NULL on error. + +; +; int errret = _sysfree( void *addr, int size ); +; + .global __sysfree +__sysfree: + const tav,HIF_free @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + + .end
_alloc.S Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: _write.S =================================================================== --- _write.S (nonexistent) +++ _write.S (revision 520) @@ -0,0 +1,40 @@ +; @(#)_write.s 1.4 90/10/14 21:57:37, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; _write.s +; int written = _write( int fd, char *buf, int count ); +; + .file "_write.s" + .include "sys/sysmac.h" + .text + .word 0x00050000 ; Debugger tag word + .global __write +;; syscalls used now -- .global _write + +__write: +;; syscalls used now -- _write: + const tav,HIF_write @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + .end
_write.S Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: alloc.S =================================================================== --- alloc.S (nonexistent) +++ alloc.S (revision 520) @@ -0,0 +1,64 @@ +; +;(#)_alloc.s 1.4 90/10/14 21:57:19, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1989, 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; 07/06/89 (JS) Replaced call to const tav,HIF_macro +; and deleted call to reterr macro as a NULL needs to be +; returned on failure. +; _alloc.s +; void *vp = _sysalloc( int size ); +; + .file "_alloc.s" + .include "sys/sysmac.h" + .text + .word 0x00030000 ; Debugger tag word + .global __sysalloc +__sysalloc: + const tav,HIF_alloc + asneq V_SYSCALL,gr1,gr1 + jmpti tav, lr0 + const tpc, _errno + consth tpc, _errno + store 0, 0, tav, tpc + jmpi lr0 + const v0, 0 ; return NULL on error. + +; +; int errret = _sysfree( void *addr, int size ); +; + .global __sysfree +__sysfree: + const tav,HIF_free + asneq V_SYSCALL,gr1,gr1 + jmpti tav,lr0 + const tpc,_errno + consth tpc,_errno + store 0,0,tav,tpc + jmpi lr0 + constn v0,-1 + + .end
alloc.S Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: clock.S =================================================================== --- clock.S (nonexistent) +++ clock.S (revision 520) @@ -0,0 +1,41 @@ +; @(#)clock.s 1.3 90/10/14 21:57:43, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; clock.s +; long ticks = clock( ); +; + .file "clock.s" + .include "sys/sysmac.h" + .text + .word 0x00020000 ; Debugger tag word + .global _clock + .global __clock + +_clock: +__clock: + const tav,HIF_clock @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + + .end
clock.S Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: remove.S =================================================================== --- remove.S (nonexistent) +++ remove.S (revision 520) @@ -0,0 +1,43 @@ +; @(#)remove.s 1.3 90/10/14 21:57:53, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; remove.s +; int cc = remove( char *path ); +; + .file "remove.s" + .include "sys/sysmac.h" + .text + .word 0x00030000 ; Debugger tag word + .global _remove + .global __remove + .global __unlink + +_remove: +__remove: +__unlink: + const tav,HIF_remove @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + + .end
remove.S Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: _sbrk.S =================================================================== --- _sbrk.S (nonexistent) +++ _sbrk.S (revision 520) @@ -0,0 +1,30 @@ + .file "sbrk.c" + .sect .lit,lit +gcc2_compiled.: + .text + .align 4 + .global __sbrk + .word 0x30000 +__sbrk: + sub gr1,gr1,16 + asgeu V_SPILL,gr1,gr126 + add lr1,gr1,28 + sll lr2,lr6,0 + jmpt lr2,L4 + constn gr96,65535 + const gr116,__sysalloc + consth gr116,__sysalloc + calli lr0,gr116 + nop + sll gr117,gr96,0 + cpneq gr116,gr117,0 + jmpf gr116,L4 + constn gr96,65535 + sll gr96,gr117,0 +L4: + add gr1,gr1,16 + nop + jmpi lr0 + asleu V_FILL,lr1,gr127 + +
_sbrk.S Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: stubs.S =================================================================== --- stubs.S (nonexistent) +++ stubs.S (revision 520) @@ -0,0 +1,135 @@ +; +; +; File of stubs so that unix applications can link into a HIF monitor +; +; sac@cygnus.com + + .text + + .global _sysalloc +_sysalloc: + const gr121,__sysalloc + consth gr121,__sysalloc + jmpi gr121 + + .global _sysfree +_sysfree: + const gr121,__sysfree + consth gr121,__sysfree + jmpi gr121 + + + .global _cycles +_cycles: + const gr121,__cycles + consth gr121,__cycles + jmpi gr121 + +; .global _exit +;_exit: +; const gr121,__exit +; consth gr121,__exit +; jmpi gr121 + + .global _getpsiz +_getpsiz: + const gr121,__getpsiz + consth gr121,__getpsiz + jmpi gr121 + + .global _gettz +_gettz: + const gr121,__gettz + consth gr121,__gettz + jmpi gr121 + + .global _ioctl +_ioctl: + const gr121,__ioctl + consth gr121,__ioctl + jmpi gr121 + + + .global _iowait +_iowait: + const gr121,__iowait + consth gr121,__iowait + jmpi gr121 + + +;; syscalls used now -- .global _open +;; syscalls used now -- _open: +;; syscalls used now -- const gr121,__open +;; syscalls used now -- consth gr121,__open +;; syscalls used now -- jmpi gr121 + + .global _query +_query: + const gr121,__query + consth gr121,__query + jmpi gr121 + + + .global _setim +_setim: + const gr121,__setim + consth gr121,__setim + jmpi gr121 + + .global _settrap +_settrap: + const gr121,__settrap + consth gr121,__settrap + jmpi gr121 + + .global _setvec +_setvec: + const gr121,__setvec + consth gr121,__setvec + jmpi gr121 + + .global _getargs +_getargs: + const gr121,__getargs + consth gr121,__getargs + jmpi gr121 + +;; syscalls used now -- .global _unlink +;; syscalls used now -- _unlink: +;; syscalls used now -- const gr121,__unlink +;; syscalls used now -- consth gr121,__unlink +;; syscalls used now -- jmpi gr121 + + .global _sigret +_sigret: + const gr121,__sigret + consth gr121,__sigret + jmpi gr121 + + .global _sigdfl +_sigdfl: + const gr121,__sigdfl + consth gr121,__sigdfl + jmpi gr121 + + .global _sigrep +_sigrep: + const gr121,__sigrep + consth gr121,__sigrep + jmpi gr121 + + .global _sigskp +_sigskp: + const gr121,__sigskp + consth gr121,__sigskp + jmpi gr121 + + .global _sendsig +_sendsig: + const gr121,__sendsig + consth gr121,__sendsig + jmpi gr121 + + ; fill this jmpi delay slot + ; the others are not done since they do not matter + constn lr0,-1
stubs.S Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: _close.S =================================================================== --- _close.S (nonexistent) +++ _close.S (revision 520) @@ -0,0 +1,40 @@ +; @(#)_close.s 1.4 90/10/14 21:57:20, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc.; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; _close.s +; int cc = _close( int fd ); +; + .file "_close.s" + .include "sys/sysmac.h" + .text + .word 0x00030000 ; Debugger tag word + .global __close +;; syscalls used now -- .global _close + +__close: +;; syscalls used now -- _close: + const tav,HIF_close @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + + .end
_close.S Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: Makefile.am =================================================================== --- Makefile.am (nonexistent) +++ Makefile.am (revision 520) @@ -0,0 +1,53 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +AM_CCASFLAGS = $(INCLUDES) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = \ + _alloc.S \ + _close.S \ + _cycles.S \ + _exit.S \ + _getpsiz.S \ + _gettz.S \ + _ioctl.S \ + _iostat.S \ + _iowait.S \ + _lseek.S \ + _open.S \ + _query.S \ + _read.S \ + _setim.S \ + _settrap.S \ + _setvec.S \ + _tmpnam.S \ + _write.S \ + alloc.S \ + clock.S \ + getargs.S \ + getenv.S \ + read.S \ + remove.S \ + rename.S \ + signal.S \ + _sbrk.S \ + _fstat.S \ + _isatty.S \ + systime.S \ + vec.S \ + kill.c \ + getpid.c \ + stubs.S + +lib_a_CCASFLAGS = $(AM_CCASFLAGS) +lib_a_CFLAGS = $(AM_CFLAGS) + +all-local: crt0.o + +ACLOCAL_AMFLAGS = -I ../../.. -I ../../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
Makefile.am Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: _ioctl.S =================================================================== --- _ioctl.S (nonexistent) +++ _ioctl.S (revision 520) @@ -0,0 +1,39 @@ +; @(#)_ioctl.s 1.2 90/10/14 21:57:25, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; _ioctl.s +; _ioctl( int fd ); +; + .file "_ioctl.s" + .include "sys/sysmac.h" + .text + .word 0x00030000 ; Debugger tag word + .global __ioctl + +__ioctl: + const tav,HIF_ioctl @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + + .end
_ioctl.S Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: read.S =================================================================== --- read.S (nonexistent) +++ read.S (revision 520) @@ -0,0 +1,54 @@ +; @(#)_read.s 1.4 90/10/14 21:57:32, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; _read.s +; int nread = _read( int fd, char *buf, int count ); +; + .file "_read.s" + .include "sys/sysmac.h" + .text + .word 0x00050000 ; Debugger tag word + .global __read +;; syscalls used now -- .global _read + +__read: +;; syscalls used now -- _read: + .ifdef _BSD_OS +; BSD version - uses readv const tav,HIF_call @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + sub msp, msp, 8 + store 0, 0, lr3, msp + add tav, msp, 4 + add lr3, msp, 0 + store 0, 0, lr4, tav + const lr4, 1 + const tav,HIF_readv @ asneq V_SYSCALL,gr1,gr1 + jmpti tav, lr0 + add msp, msp, 8 + const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + .else + const tav,HIF_read @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + .endif + .end
read.S Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: aclocal.m4 =================================================================== --- aclocal.m4 (nonexistent) +++ aclocal.m4 (revision 520) @@ -0,0 +1,992 @@ +# generated automatically by aclocal 1.11 -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.63],, +[m4_warning([this file was generated for autoconf 2.63. +You have another version of autoconf. It may work, but is not guaranteed to. +If you have problems, you may need to regenerate the build system entirely. +To do so, use the procedure documented by the package, typically `autoreconf'.])]) + +# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +# (This private macro should not be called outside this file.) +AC_DEFUN([AM_AUTOMAKE_VERSION], +[am__api_version='1.11' +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to +dnl require some minimum version. Point them to the right macro. +m4_if([$1], [1.11], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) + +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. +# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +[AM_AUTOMAKE_VERSION([1.11])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to +# `$srcdir', `$srcdir/..', or `$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is `.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[dnl Rely on autoconf to set up CDPATH properly. +AC_PREREQ([2.50])dnl +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 9 + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ(2.52)dnl + ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +m4_define([_AM_COND_VALUE_$1], [$2])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 10 + +# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + +# _AM_DEPENDENCIES(NAME) +# ---------------------- +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "GCJ", or "OBJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +ifelse([$1], CC, [depcc="$CC" am_compiler_list=], + [$1], CXX, [depcc="$CXX" am_compiler_list=], + [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], UPC, [depcc="$UPC" am_compiler_list=], + [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + am__universal=false + m4_case([$1], [CC], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac], + [CXX], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac]) + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) + + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) + + +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE(dependency-tracking, +[ --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +#serial 5 + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[{ + # Autoconf 2.62 quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} +])# _AM_OUTPUT_DEPENDENCY_COMMANDS + + +# AM_OUTPUT_DEPENDENCY_COMMANDS +# ----------------------------- +# This macro should only be invoked once -- use via AC_REQUIRE. +# +# This code is only required when automatic dependency tracking +# is enabled. FIXME. This creates each `.P' file that we will +# need in order to bootstrap the dependency handling code. +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], +[AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) +]) + +# Do all the work for Automake. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006, 2008, 2009 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 16 + +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.62])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) + AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) +AM_MISSING_PROG(AUTOCONF, autoconf) +AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) +AM_MISSING_PROG(AUTOHEADER, autoheader) +AM_MISSING_PROG(MAKEINFO, makeinfo) +AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl +AC_REQUIRE([AM_PROG_MKDIR_P])dnl +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES(CC)], + [define([AC_PROG_CC], + defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES(CXX)], + [define([AC_PROG_CXX], + defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES(OBJC)], + [define([AC_PROG_OBJC], + defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl +]) +_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl +dnl The `parallel-tests' driver may need to know about EXEEXT, so add the +dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro +dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. +AC_CONFIG_COMMANDS_PRE(dnl +[m4_provide_if([_AM_COMPILER_EXEEXT], + [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl +]) + +dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not +dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further +dnl mangled by Autoconf and run in a shell conditional statement. +m4_define([_AC_COMPILER_EXEEXT], +m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) + + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. + +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_arg=$1 +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) + +# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi +AC_SUBST(install_sh)]) + +# Copyright (C) 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) + +# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- +# From Jim Meyering + +# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 5 + +# AM_MAINTAINER_MODE([DEFAULT-MODE]) +# ---------------------------------- +# Control maintainer-specific portions of Makefiles. +# Default is to disable them, unless `enable' is passed literally. +# For symmetry, `disable' may be passed as well. Anyway, the user +# can override the default with the --enable/--disable switch. +AC_DEFUN([AM_MAINTAINER_MODE], +[m4_case(m4_default([$1], [disable]), + [enable], [m4_define([am_maintainer_other], [disable])], + [disable], [m4_define([am_maintainer_other], [enable])], + [m4_define([am_maintainer_other], [enable]) + m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) +AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles]) + dnl maintainer-mode's default is 'disable' unless 'enable' is passed + AC_ARG_ENABLE([maintainer-mode], +[ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + [USE_MAINTAINER_MODE=$enableval], + [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) + AC_MSG_RESULT([$USE_MAINTAINER_MODE]) + AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST([MAINT])dnl +] +) + +AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) + +# Check to see how 'make' treats includes. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 4 + +# AM_MAKE_INCLUDE() +# ----------------- +# Check to see how make treats includes. +AC_DEFUN([AM_MAKE_INCLUDE], +[am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +AC_MSG_CHECKING([for style of include used by $am_make]) +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from `make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi +AC_SUBST([am__include]) +AC_SUBST([am__quote]) +AC_MSG_RESULT([$_am_result]) +rm -f confinc confmf +]) + +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- + +# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 6 + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it supports --run. +# If it does, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + AC_MSG_WARN([`missing' script is too old or missing]) +fi +]) + +# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_MKDIR_P +# --------------- +# Check for `mkdir -p'. +AC_DEFUN([AM_PROG_MKDIR_P], +[AC_PREREQ([2.60])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, +dnl while keeping a definition of mkdir_p for backward compatibility. +dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. +dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of +dnl Makefile.ins that do not define MKDIR_P, so we do our own +dnl adjustment using top_builddir (which is defined more often than +dnl MKDIR_P). +AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl +case $mkdir_p in + [[\\/$]]* | ?:[[\\/]]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac +]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 4 + +# _AM_MANGLE_OPTION(NAME) +# ----------------------- +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) + +# _AM_SET_OPTION(NAME) +# ------------------------------ +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) + +# _AM_SET_OPTIONS(OPTIONS) +# ---------------------------------- +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) + +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 5 + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftest.file +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[[\\\"\#\$\&\'\`$am_lf]]*) + AC_MSG_ERROR([unsafe absolute working directory name]);; +esac +case $srcdir in + *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) + AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; +esac + +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + rm -f conftest.file + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT(yes)]) + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor `install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in `make install-strip', and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be `maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +# Copyright (C) 2006, 2008 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# _AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +AC_DEFUN([_AM_SUBST_NOTMAKE]) + +# AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Public sister of _AM_SUBST_NOTMAKE. +AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) + +# Check how to create a tarball. -*- Autoconf -*- + +# Copyright (C) 2004, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of `v7', `ustar', or `pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. +AM_MISSING_PROG([AMTAR], [tar]) +m4_if([$1], [v7], + [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], + [m4_case([$1], [ustar],, [pax],, + [m4_fatal([Unknown tar format])]) +AC_MSG_CHECKING([how to create a $1 tar archive]) +# Loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' +_am_tools=${am_cv_prog_tar_$1-$_am_tools} +# Do not fold the above two line into one, because Tru64 sh and +# Solaris sh will not grok spaces in the rhs of `-'. +for _am_tool in $_am_tools +do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; + do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi +done +rm -rf conftest.dir + +AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) +AC_MSG_RESULT([$am_cv_prog_tar_$1])]) +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + +m4_include([../../../acinclude.m4]) Index: _isatty.S =================================================================== --- _isatty.S (nonexistent) +++ _isatty.S (revision 520) @@ -0,0 +1,20 @@ + .file "isatty.c" + .sect .lit,lit +gcc2_compiled.: + .text + .align 4 + .global __isatty + .word 0x30000 +__isatty: + sub gr1,gr1,16 + asgeu V_SPILL,gr1,gr126 + add lr1,gr1,28 + const gr116,__iostat + consth gr116,__iostat + calli lr0,gr116 + sll lr2,lr6,0 + sll gr96,gr96,30 + add gr1,gr1,16 + srl gr96,gr96,31 + jmpi lr0 + asleu V_FILL,lr1,gr127
_isatty.S Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: sys/fpsymbol.h =================================================================== --- sys/fpsymbol.h (nonexistent) +++ sys/fpsymbol.h (revision 520) @@ -0,0 +1,2970 @@ +; @(#)fpsymbol.h 1.4 90/10/14 20:55:59, Copyright 1989, 1990 AMD +; start of fpsymbol.h file +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1989, 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; ______________________________________________________________________ +;|______________________________________________________________________| +;| | +;| SYMBOLS FOR DEFINING THE INSTRUCTION WORD | +;| | +;|______________________________________________________________________| +;|______________________________________________________________________| +; +; +; Revision Information: +;------------------------------------------------------------------------ +; Date: March 31, 1989 +; Author: Roy Carlson per Bob Perlman and Richard Relph +; +; The symbols section describing transactions was modified to contain +; several new symbol values. The reason for the change was to force the +; CA bit to be set--and remain set--once code accesses the coprocessor. +; +; Future operating systems will use the Coprocessor Active (CA) bit in +; the Old Processor Status Register to determine whether or not to save +; coprocessor state, etc.. This means that the instruction control field +; Set Coprocessor Active (SA) bit should be used as follows: +; +; (1) any coprocessor STORE must have its SA bit set to 1, +; so as to set CA, +; +; and (2) any coprocessor LOAD must have its SA bit set to 0, +; so as to prevent clearing CA. +;------------------------------------------------------------------------ +; Date: 89/01/30 12:32:13; author: jim; lines added/del: 5/4 +; Corrected CP_IEEE_GRADUAL_UFLOW_MODE and CP_RMS_MASK. +; Added CP_EXCPS_POSITION, the ls bit of the CP_XXX_EXCP ensemble. +; fixed a few typos in comments. +;------------------------------------------------------------------------ +; Date: 89/01/23 18:00:26; author: jim; lines added/del: 488/468 +; Richard O. Parker +; January 5, 1989 +; +; 1) The _cp_prec_field in the "cp_build_inst", "cp_build_inst_h" +; and "cp_build_inst_l" macros was not being defined in the case +; of Am29K-supported floating-point instructions (e.g., FADD, FSUB, +; DADD, etc.). +; +; 2) The multiplexor select codes in the opcode table entries +; associated with the "cp_build_inst", "cp_build_inst_h" and +; "cp_build_inst_l" macros, pertaining to the CONVERT_F_TO_D +; and CONVERT_D_TO_F instructions were incorrect. +;------------------------------------------------------------------------ +; Date: 88/12/20 14:28:26; author: jim; lines added/del: 1/1 +; Larry Westerman corrected definition of CP_MOVE_P. +; Version required for Release 1.1 of the Intrinsics shipped 12/12/88. +;------------------------------------------------------------------------ +; Date: 88/11/18 15:44:45; author: law; +; Initial revision +; +; +;======================================================================== +; +; The following mnemonics are used to specify the 14 LSBs of the +; instruction word (fields SIP, SIQ, SIT, SIF, IF, and CO). +; +;======================================================================== +; +; floating point operation codes. +; + .equ CP_PASS_P, 0x00000000 ; pass P + .equ CP_MINUSP, 0x00000040 ; -P + .equ CP_ABSP, 0x00000080 ; |P| + .equ CP_SIGNT_TIMES_ABSP, 0x00000C00 ; SIGN(T) * |P| +; + .equ CP_P_PLUS_T, 0x00000001 ; P + T + .equ CP_P_MINUS_T, 0x00000101 ; P - T + .equ CP_MINUSP_PLUS_T, 0x00001001 ; -P + T + .equ CP_MINUSP_MINUS_T, 0x00001101 ; -P - T + .equ CP_ABS_P_PLUS_T, 0x00000081 ; |P + T| + .equ CP_ABS_P_MINUS_T, 0x00000181 ; |P - T| + .equ CP_ABSP_PLUS_ABST, 0x00002201 ; |P| + |T| + .equ CP_ABSP_MINUS_ABST, 0x00002301 ; |P| - |T| + .equ CP_ABS_ABSP_MINUS_ABST, 0x00002381 ; ||P| - |T|| +; + .equ CP_P_TIMES_Q, 0x00000002 ; P * Q + .equ CP_MINUSP_TIMES_Q, 0x00001002 ; -P * Q + .equ CP_ABS_P_TIMES_Q, 0x00000082 ; |P * Q| +; + .equ CP_COMPARE_P_AND_T, 0x00000103 ; compare P and T +; + .equ CP_MAX_P_AND_T, 0x00000104 ; max P,T + .equ CP_MAX_ABSP_AND_ABST, 0x00002304 ; max |P|, |T| +; + .equ CP_MIN_P_AND_T, 0x00001005 ; min P,T + .equ CP_MIN_ABSP_AND_ABST, 0x00003205 ; min |P|,|T| + .equ CP_LIMIT_P_TO_MAGT, 0x00003A05 ; limit P to magnitude of T +; + .equ CP_CONVERT_T_TO_INT, 0x00000006 ; convert T to integer +; + .equ CP_SCALE_T_TO_INT_BY_Q, 0x00000007 ; scale T to integer by Q +; + .equ CP_PQ_PLUS_T, 0x00000008 ; (P * Q) + T + .equ CP_MINUSPQ_PLUS_T, 0x00001008 ; (-P * Q) + T + .equ CP_PQ_MINUS_T, 0x00000108 ; (P * Q) - T + .equ CP_MINUSPQ_MINUS_T, 0x00001108 ; (-P * Q) - T + .equ CP_ABSPQ_PLUS_ABST, 0x00002A08 ; |(P * Q)| + T + .equ CP_MINUSABSPQ_PLUS_ABST, 0x00003A08 ;-|(P * Q)| + T + .equ CP_ABSPQ_MINUS_ABST, 0x00002B08 ; |(P * Q)| - |T| +; + .equ CP_ROUND_T_TO_INT, 0x00000009 ; round T to integral value +; + .equ CP_RECIPROCAL_OF_P, 0x0000000A ; reciprocal of P +; + .equ CP_CONVERT_T_TO_ALT, 0x0000000B ; convert T to alt. f.p. format + .equ CP_CONVERT_T_FROM_ALT, 0x0000000C ; convert T to alt. f.p. format +; +; +; integer operation codes. +; + .equ CP_I_PASS_P, 0x00000020 ; integer pass P + .equ CP_I_MINUSP, 0x00000060 ; integer -P + .equ CP_I_ABSP, 0x000000A0 ; integer |P| + .equ CP_I_SIGNT_TIMES_ABSP, 0x00000C20 ; integer SIGN(T) * |P| +; + .equ CP_I_P_PLUS_T, 0x00000021 ; integer P + T + .equ CP_I_P_MINUS_T, 0x00000121 ; integer P - T + .equ CP_I_MINUSP_PLUS_T, 0x00001021 ; integer -P + T + .equ CP_I_ABS_P_PLUS_T, 0x000000A1 ; integer |P + T| + .equ CP_I_ABS_P_MINUS_T, 0x000001A1 ; integer |P - T| +; + .equ CP_I_P_TIMES_Q, 0x00000022 ; integer P * Q +; + .equ CP_I_COMPARE_P_AND_T, 0x00000123 ; integer compare P and T +; + .equ CP_I_MAX_P_AND_T, 0x00000124 ; integer max P,T +; + .equ CP_I_MIN_P_AND_T, 0x00001025 ; integer min P,T +; + .equ CP_I_CONVERT_T_TO_FLOAT, 0x00000026 ; integer convert T to f.p. +; + .equ CP_I_SCALE_T_TO_FLOAT_BY_Q, 0x00000027 ; integer scale T to f.p. by Q +; + .equ CP_I_P_OR_T, 0x00000030 ; integer P OR T +; + .equ CP_I_P_AND_T, 0x00000031 ; integer P AND T +; + .equ CP_I_P_XOR_T, 0x00000032 ; integer P XOR T +; + .equ CP_I_NOT_T, 0x00000032 ; integer NOT T +; + .equ CP_I_LSHIFT_P_BY_Q, 0x00000033 ; integer logical shift P by Q +; places +; + .equ CP_I_ASHIFT_P_BY_Q, 0x00000034 ; integer arith. shift P by Q +; places +; + .equ CP_I_FSHIFT_PT_BY_Q, 0x00000035 ; integer funnel shift PT by Q +; places +; +; +; move instruction (f.p. or integer) +; + .equ CP_MOVE_P, 0x00000018 ; move operand P +; +; +;======================================================================== +; +; precision codes for the the operands in registers R and S, and for +; the result (instruction word fields IPR, RPR). +; +;======================================================================== +; +; + .equ CP_D_S, 0x00008000 ;Double result, single input(s) + .equ CP_S_D, 0x00004000 ;Single result, double input(s) + .equ CP_D_D, 0x00000000 ;Double result, double input(s) + .equ CP_S_S, 0x0000C000 ;Single result, single input(s) +; +;======================================================================== +; +; The following mnemonics are used to specify the 16 LSBs of an Am29027 +; instruction word for floating-point instructions supported by the +; Am29000 instruction set. +; +;======================================================================== +; + .equ CP_FADD, 0x0000C001 + .equ CP_DADD, 0x00000001 + .equ CP_FSUB, 0x0000C101 + .equ CP_DSUB, 0x00000101 + .equ CP_FMUL, 0x0000C002 + .equ CP_DMUL, 0x00000002 + .equ CP_FEQ, 0x0000C103 + .equ CP_DEQ, 0x00000103 + .equ CP_FGE, 0x0000C103 + .equ CP_DGE, 0x00000103 + .equ CP_FGT, 0x0000C103 + .equ CP_DGT, 0x00000103 + .equ CP_CONVERT_I_TO_F, 0x0000C026 ; CONVERT (int -> s.p.) + .equ CP_CONVERT_I_TO_D, 0x00008026 ; CONVERT (int -> d.p.) + .equ CP_CONVERT_F_TO_I, 0x0000C006 ; CONVERT (s.p.-> int) + .equ CP_CONVERT_D_TO_I, 0x00004006 ; CONVERT (d.p.-> int) + .equ CP_CONVERT_F_TO_D, 0x00008000 ; CONVERT (s.p.-> d.p.) + .equ CP_CONVERT_D_TO_F, 0x00004000 ; CONVERT (d.p.-> s.p.) +; +; +;======================================================================== +; +; operand select codes (instruction word fields PMS, QMS, TMS). +; +;======================================================================== +; +; + .equ CP_P_EQ_R, 0x00000000 + .equ CP_P_EQ_S, 0x01000000 + .equ CP_P_EQ_0, 0x02000000 + .equ CP_P_EQ_ONE_HALF, 0x03000000 + .equ CP_P_EQ_IMINUS1, 0x03000000 + .equ CP_P_EQ_1, 0x04000000 + .equ CP_P_EQ_2, 0x05000000 + .equ CP_P_EQ_3, 0x06000000 + .equ CP_P_EQ_PI, 0x07000000 + .equ CP_P_EQ_IMINUSMAX, 0x07000000 + .equ CP_P_EQ_RF0, 0x08000000 + .equ CP_P_EQ_RF1, 0x09000000 + .equ CP_P_EQ_RF2, 0x0A000000 + .equ CP_P_EQ_RF3, 0x0B000000 + .equ CP_P_EQ_RF4, 0x0C000000 + .equ CP_P_EQ_RF5, 0x0D000000 + .equ CP_P_EQ_RF6, 0x0E000000 + .equ CP_P_EQ_RF7, 0x0F000000 +; + .equ CP_Q_EQ_R, 0x00000000 + .equ CP_Q_EQ_S, 0x00100000 + .equ CP_Q_EQ_0, 0x00200000 + .equ CP_Q_EQ_ONE_HALF, 0x00300000 + .equ CP_Q_EQ_IMINUS1, 0x00300000 + .equ CP_Q_EQ_1, 0x00400000 + .equ CP_Q_EQ_2, 0x00500000 + .equ CP_Q_EQ_3, 0x00600000 + .equ CP_Q_EQ_PI, 0x00700000 + .equ CP_Q_EQ_IMINUSMAX, 0x00700000 + .equ CP_Q_EQ_RF0, 0x00800000 + .equ CP_Q_EQ_RF1, 0x00900000 + .equ CP_Q_EQ_RF2, 0x00A00000 + .equ CP_Q_EQ_RF3, 0x00B00000 + .equ CP_Q_EQ_RF4, 0x00C00000 + .equ CP_Q_EQ_RF5, 0x00D00000 + .equ CP_Q_EQ_RF6, 0x00E00000 + .equ CP_Q_EQ_RF7, 0x00F00000 +; + .equ CP_T_EQ_R, 0x00000000 + .equ CP_T_EQ_S, 0x00010000 + .equ CP_T_EQ_0, 0x00020000 + .equ CP_T_EQ_ONE_HALF, 0x00030000 + .equ CP_T_EQ_IMINUS1, 0x00030000 + .equ CP_T_EQ_1, 0x00040000 + .equ CP_T_EQ_2, 0x00050000 + .equ CP_T_EQ_3, 0x00060000 + .equ CP_T_EQ_PI, 0x00070000 + .equ CP_T_EQ_IMINUSMAX, 0x00070000 + .equ CP_T_EQ_RF0, 0x00080000 + .equ CP_T_EQ_RF1, 0x00090000 + .equ CP_T_EQ_RF2, 0x000A0000 + .equ CP_T_EQ_RF3, 0x000B0000 + .equ CP_T_EQ_RF4, 0x000C0000 + .equ CP_T_EQ_RF5, 0x000D0000 + .equ CP_T_EQ_RF6, 0x000E0000 + .equ CP_T_EQ_RF7, 0x000F0000 +; +; +;======================================================================== +; +; destination select codes (instruction word fields RF, RFS) +; +;======================================================================== +; +; + .equ CP_DEST_EQ_GP, 0x00000000 + .equ CP_DEST_EQ_RF0, 0x80000000 + .equ CP_DEST_EQ_RF1, 0x90000000 + .equ CP_DEST_EQ_RF2, 0xA0000000 + .equ CP_DEST_EQ_RF3, 0xB0000000 + .equ CP_DEST_EQ_RF4, 0xC0000000 + .equ CP_DEST_EQ_RF5, 0xD0000000 + .equ CP_DEST_EQ_RF6, 0xE0000000 + .equ CP_DEST_EQ_RF7, 0xF0000000 +; +; +; ______________________________________________________________________ +;|______________________________________________________________________| +;| | +;| SYMBOLS FOR DEFINING THE MODE REGISTER DOUBLE WORD | +;| | +;|______________________________________________________________________| +;|______________________________________________________________________| +; +; +; + .equ CP_PFF_MASK, 0x00000003 ; primary f.p. format mask + .equ CP_PFF_EQ_IEEE, 0x00000000 ; primary f.p. format = IEEE + .equ CP_PFF_EQ_DECD, 0x00000001 ; primary f.p. format = DEC D + .equ CP_PFF_EQ_DECG, 0x00000002 ; primary f.p. format = DEC G + .equ CP_PFF_EQ_IBM, 0x00000003 ; primary f.p. format = IBM + .equ CP_PFF_POSITION, 0 +; + .equ CP_AFF_MASK, 0x0000000C ; alternate f.p. format mask + .equ CP_AFF_EQ_IEEE, 0x00000000 ; alternate f.p. format = IEEE + .equ CP_AFF_EQ_DECD, 0x00000004 ; alternate f.p. format = DEC D + .equ CP_AFF_EQ_DECG, 0x00000008 ; alternate f.p. format = DEC G + .equ CP_AFF_EQ_IBM, 0x0000000C ; alternate f.p. format = IBM + .equ CP_AFF_POSITION, 2 +; + .equ CP_SAT_MASK, 0x00000010 ; saturate mode (SAT) mask + .equ CP_SATURATE_MODE, 0x00000010 ; enable saturate mode (SAT=1) + .equ CP_SAT_POSITION, 4 +; + .equ CP_AP_MASK, 0x00000020 ; affine/proj. mode (AP) mask + .equ CP_AFFINE_MODE, 0x00000020 ; enable affine mode (AP=1) + .equ CP_PROJECTIVE_MODE, 0x00000000 ; enable projective mode (AP=0) + .equ CP_AP_POSITION, 5 +; + .equ CP_TRP_MASK, 0x00000040 ; IEEE trap mode (TRP) mask + .equ CP_IEEE_TRAPS_ENABLED, 0x00000040 ; IEEE trap mode enabled (TRP=1) + .equ CP_IEEE_TRAPS_DISABLED, 0x00000000 ; IEEE trap mode disabled (TRP=0) + .equ CP_TRP_POSITION, 6 +; + .equ CP_SU_MASK, 0x00000080 ; IEEE sud. uflow (SU) mask + .equ CP_IEEE_SUDDEN_UFLOW_MODE, 0x00000080 ; IEEE sud. uflow mode (SU=1) + .equ CP_IEEE_GRADUAL_UFLOW_MODE,0x00000000 ; IEEE grad uflow mode (SU=0) + .equ CP_SU_POSITION, 7 +; + .equ CP_BS_MASK, 0x00000100 ; IBM sig. mask (BS) + .equ CP_BS_POSITION, 8 +; + .equ CP_BU_MASK, 0x00000200 ; IBM underflow mask (BU) + .equ CP_BU_POSITION, 9 +; + .equ CP_MS_MASK, 0x00000800 ; signed int. mpy (MS) mask + .equ CP_SIGNED_INT_MPY_MODE, 0x00000800 ; signed int. mpy mode (MS=1) + .equ CP_UNSIGNED_INT_MPY_MODE, 0x00000000 ; unsigned int. mpy mode (MS=0) + .equ CP_MS_POSITION, 11 +; + .equ CP_MF_MASK, 0x00003000 ; int. mult. fmt. mode (MF) mask + .equ CP_MF_EQ_LSBS, 0x00000000 ; int. mult. fmt. = LSBs + .equ CP_MF_EQ_LSBSFA, 0x00001000 ; int. mult. fmt. = LSBs,fmt. adj. + .equ CP_MF_EQ_MSBS, 0x00002000 ; int. mult. fmt. = MSBs + .equ CP_MF_EQ_MSBSFA, 0x00003000 ; int. mult. fmt. = MSBs,fmt. adj. + .equ CP_MF_POSITION, 12 +; + .equ CP_RMS_MASK, 0x0001C000 ; round mode (RMS) mask + .equ CP_RMS_EQ_NEAREST, 0x00000000 ; round mode = to nearest + .equ CP_RMS_EQ_MINUS_INF, 0x00004000 ; round mode = toward -oo + .equ CP_RMS_EQ_PLUS_INF, 0x00008000 ; round mode = toward +oo + .equ CP_RMS_EQ_ZERO, 0x0000C000 ; round mode = toward zero + .equ CP_RMS_POSITION, 14 +; + .equ CP_PL_MASK, 0x00100000 ; pipeline mode (PL) mask + .equ CP_FLOWTHROUGH_MODE, 0x00000000 ; select flow-through mode + .equ CP_PIPELINE_MODE, 0x00100000 ; select pipeline mode + .equ CP_PL_POSITION, 20 +; + .equ CP_INVALID_OP_EXCP_MASK, 0x00400000 ; invalid operation excp. mask(IM) + .equ CP_RESERVED_OP_EXCP_MASK,0x00800000 ; reserved operand excp. mask(RM) + .equ CP_OVERFLOW_EXCP_MASK, 0x01000000 ; overflow exception mask (VM) + .equ CP_UNDERFLOW_EXCP_MASK, 0x02000000 ; underflow exception mask(UM) + .equ CP_INEXACT_EXCP_MASK, 0x04000000 ; inexact result excp. mask(XM) + .equ CP_ZERO_EXCP_MASK, 0x08000000 ; zero result exception mask (ZM) + .equ CP_EXCPS_POSITION, 22 +; + .equ CP_PLTC_MASK, 0x0000000F ; pipeline timer count (PLTC) mask + .equ CP_PLTC_EQ_2, 0x00000002 ; pipeline timer count = 2 + .equ CP_PLTC_EQ_3, 0x00000003 ; pipeline timer count = 3 + .equ CP_PLTC_EQ_4, 0x00000004 ; pipeline timer count = 4 + .equ CP_PLTC_EQ_5, 0x00000005 ; pipeline timer count = 5 + .equ CP_PLTC_EQ_6, 0x00000006 ; pipeline timer count = 6 + .equ CP_PLTC_EQ_7, 0x00000007 ; pipeline timer count = 7 + .equ CP_PLTC_EQ_8, 0x00000008 ; pipeline timer count = 8 + .equ CP_PLTC_EQ_9, 0x00000009 ; pipeline timer count = 9 + .equ CP_PLTC_EQ_10, 0x0000000A ; pipeline timer count = 10 + .equ CP_PLTC_EQ_11, 0x0000000B ; pipeline timer count = 11 + .equ CP_PLTC_EQ_12, 0x0000000C ; pipeline timer count = 12 + .equ CP_PLTC_EQ_13, 0x0000000D ; pipeline timer count = 13 + .equ CP_PLTC_EQ_14, 0x0000000E ; pipeline timer count = 14 + .equ CP_PLTC_EQ_15, 0x0000000F ; pipeline timer count = 15 + .equ CP_PLTC_POSITION, 0 +; + .equ CP_MATC_MASK, 0x000000F0 ; mpy-acc timer count (MATC) mask + .equ CP_MATC_EQ_2, 0x00000020 ; mpy-acc timer count = 2 + .equ CP_MATC_EQ_3, 0x00000030 ; mpy-acc timer count = 3 + .equ CP_MATC_EQ_4, 0x00000040 ; mpy-acc timer count = 4 + .equ CP_MATC_EQ_5, 0x00000050 ; mpy-acc timer count = 5 + .equ CP_MATC_EQ_6, 0x00000060 ; mpy-acc timer count = 6 + .equ CP_MATC_EQ_7, 0x00000070 ; mpy-acc timer count = 7 + .equ CP_MATC_EQ_8, 0x00000080 ; mpy-acc timer count = 8 + .equ CP_MATC_EQ_9, 0x00000090 ; mpy-acc timer count = 9 + .equ CP_MATC_EQ_10, 0x000000A0 ; mpy-acc timer count = 10 + .equ CP_MATC_EQ_11, 0x000000B0 ; mpy-acc timer count = 11 + .equ CP_MATC_EQ_12, 0x000000C0 ; mpy-acc timer count = 12 + .equ CP_MATC_EQ_13, 0x000000D0 ; mpy-acc timer count = 13 + .equ CP_MATC_EQ_14, 0x000000E0 ; mpy-acc timer count = 14 + .equ CP_MATC_EQ_15, 0x000000F0 ; mpy-acc timer count = 15 + .equ CP_MATC_POSITION, 4 +; + .equ CP_MVTC_MASK, 0x00000F00 ; MOVE P timer count (MVTC) mask + .equ CP_MVTC_EQ_2, 0x00000200 ; MOVE P timer count = 2 + .equ CP_MVTC_EQ_3, 0x00000300 ; MOVE P timer count = 3 + .equ CP_MVTC_EQ_4, 0x00000400 ; MOVE P timer count = 4 + .equ CP_MVTC_EQ_5, 0x00000500 ; MOVE P timer count = 5 + .equ CP_MVTC_EQ_6, 0x00000600 ; MOVE P timer count = 6 + .equ CP_MVTC_EQ_7, 0x00000700 ; MOVE P timer count = 7 + .equ CP_MVTC_EQ_8, 0x00000800 ; MOVE P timer count = 8 + .equ CP_MVTC_EQ_9, 0x00000900 ; MOVE P timer count = 9 + .equ CP_MVTC_EQ_10, 0x00000A00 ; MOVE P timer count = 10 + .equ CP_MVTC_EQ_11, 0x00000B00 ; MOVE P timer count = 11 + .equ CP_MVTC_EQ_12, 0x00000C00 ; MOVE P timer count = 12 + .equ CP_MVTC_EQ_13, 0x00000D00 ; MOVE P timer count = 13 + .equ CP_MVTC_EQ_14, 0x00000E00 ; MOVE P timer count = 14 + .equ CP_MVTC_EQ_15, 0x00000F00 ; MOVE P timer count = 15 + .equ CP_MVTC_POSITION, 8 +; + .equ CP_AD_MASK, 0x00001000 ; + .equ CP_ADVANCE_DRDY_MODE, 0x00001000 ; + .equ CP_NORMAL_DRDY_MODE, 0x00000000 ; + .equ CP_AD_POSITION, 12 +; + .equ CP_HE_MASK, 0x00002000 ; Halt-on-error mask (HE) + .equ CP_HALT_ON_ERROR_ENABLED, 0x00002000 ; Halt-on-error enabled (HE=1) + .equ CP_HALT_ON_ERROR_DISABLED,0x00000000 ; Halt-on-error disabled (HE=0) + .equ CP_HE_POSITION, 13 +; + .equ CP_EX_MASK, 0x00004000 ; EXCP enable mask (EX) + .equ CP_EXCP_ENABLED, 0x00004000 ; EXCP enabled (EX=1) + .equ CP_EXCP_DISABLED, 0x00000000 ; EXCP disabled (EX=0) + .equ CP_EX_POSITION, 14 +; +; +; +; ______________________________________________________________________ +;|______________________________________________________________________| +;| | +;| SYMBOLS FOR DEFINING THE STATUS REGISTER WORD | +;| | +;|______________________________________________________________________| +;|______________________________________________________________________| +; +; + .equ CP_INVALID_OP_EXCP, 0x00000001 + .equ CP_INVALID_OP_EXCP_POSITION, 0 +; + .equ CP_RESERVED_OP_EXCP, 0x00000002 + .equ CP_RESERVED_OP_EXCP_POSITION, 1 +; + .equ CP_OVERFLOW_EXCP, 0x00000004 + .equ CP_OVERFLOW_EXCP_POSITION, 2 +; + .equ CP_UNDERFLOW_EXCP, 0x00000008 + .equ CP_UNDERFLOW_EXCP_POSITION, 3 +; + .equ CP_INEXACT_EXCP, 0x00000010 + .equ CP_INEXACT_EXCP_POSITION, 4 +; + .equ CP_ZERO_EXCP, 0x00000020 + .equ CP_ZERO_EXCP_POSITION, 5 +; + .equ CP_EXCP_STATUS_MASK, 0x00000040 + .equ CP_EXCP_STATUS_FLAG_POSITION, 6 +; + .equ CP_R_TEMP_VALID_MASK, 0x00000080 + .equ R_TEMP_VALID_POSITION, 7 +; + .equ CP_S_TEMP_VALID_MASK, 0x00000100 + .equ CP_S_TEMP_VALID_POSITION, 8 +; + .equ CP_I_TEMP_VALID_FLAG, 0x00000200 + .equ CP_I_TEMP_VALID_POSITION, 9 +; + .equ CP_OPERATION_PENDING_MASK, 0x00000400 + .equ CP_OPERATION_PENDING_POSITION,10 +; +; +; ______________________________________________________________________ +;|______________________________________________________________________| +;| | +;| SYMBOLS FOR DEFINING THE FLAG REGISTER WORD | +;| | +;|______________________________________________________________________| +;|______________________________________________________________________| +; +; + .equ CP_INVALID_OP_FLAG, 0x00000001 + .equ CP_INVALID_OP_FLAG_POSITION, 0 +; + .equ CP_CARRY_FLAG, 0x00000001 + .equ CP_CARRY_FLAG_POSITION, 0 +; + .equ CP_RESERVED_OP_FLAG, 0x00000002 + .equ CP_RESERVED_OP_FLAG_POSITION, 1 +; + .equ CP_OVERFLOW_FLAG, 0x00000004 + .equ CP_OVERFLOW_FLAG_POSITION, 2 +; + .equ CP_UNORDERED_FLAG, 0x00000004 + .equ CP_UNORDERED_FLAG_POSITION, 2 +; + .equ CP_UNDERFLOW_FLAG, 0x00000008 + .equ CP_UNDERFLOW_FLAG_POSITION, 3 +; + .equ CP_LESS_THAN_FLAG, 0x00000008 + .equ CP_LESS_THAN_POSITION, 3 +; + .equ CP_WINNER_FLAG, 0x00000008 + .equ CP_WINNER_FLAG_POSITION, 3 +; + .equ CP_INEXACT_FLAG, 0x00000010 + .equ CP_INEXACT_FLAG_POSITION, 4 +; + .equ CP_GREATER_THAN_FLAG, 0x00000010 + .equ CP_GREATER_THAN_FLAG_POSITION,4 +; + .equ CP_ZERO_FLAG, 0x00000020 + .equ CP_ZERO_FLAG_POSITION, 5 +; + .equ CP_EQUAL_FLAG, 0x00000020 + .equ CP_EQUAL_FLAG_POSITION, 5 +; + .equ CP_SIGN_FLAG, 0x00000040 + .equ CP_SIGN_FLAG_POSITION, 6 +; +; +; ______________________________________________________________________ +;|______________________________________________________________________| +;| | +;| SYMBOLS FOR TRANSACTION REQUEST TYPES | +;| | +;|______________________________________________________________________| +;|______________________________________________________________________| +; +; +; write requests +; +; Note: Each WRITE_* transaction request, plus ADV_TEMPS sets the CA +; (Coprocessor Active) bit in the 29000 Current Processor Status Register. +; + .equ CP_WRITE_R, 0x20 ;write sing or doub to R register + .equ CP_WRITE_S, 0x21 ;write sing or doub to S register + .equ CP_WRITE_RS, 0x22 ;write sing operands to R and S + .equ CP_WRITE_MODE, 0x23 ;write mode double word to 29027 + .equ CP_WRITE_STATUS, 0x24 ;write status word to 29027 + .equ CP_WRITE_PREC, 0x25 ;write reg. file precision word + ; to 29027 + .equ CP_WRITE_INST, 0x26 ;write instruction to 29027 + .equ CP_ADV_TEMPS, 0x27 ;move R-Temp, S-Temp into R,S +; +; read requests +; + .equ CP_READ_MSBS, 0x00 ;read sing result or MSB of doub + .equ CP_READ_LSBS, 0x01 ;read LSB of doub result + .equ CP_READ_FLAGS, 0x02 ;read 29027 flag register + .equ CP_READ_STATUS, 0x03 ;read 29027 status register + .equ CP_SAVE_STATE, 0x04 ;read one word of 29027 state +; +; "start operation" symbol; this is "OR"ed with a WRITE_R, WRITE_S, +; WRITE_RS, or WRITE_INST symbol. +; + + .equ CP_START, 0b1000000 ;bit to start 29027 operation +; +; "suppress exceptions reporting" symbol; this is "OR"ed with a ed +; +; + + .equ CP_NO_ERR, 0b1000000 ;suppress exception reporting +; ; during load. +; cp_write_r - transfers 32- or 64-bit operand to Am29027 +; register R +; cp_write_s - transfers 32- or 64-bit operand to Am29027 +; register S +; cp_write_rs - transfers two 32-bit floating-point operands to +; Am29027 registers R and S +; cp_write_prec - transfers a word to the Am29027 precision register +; cp_write_status - transfers a word to the Am29027 status register +; cp_write_inst - transfers an instruction to the Am29027 +; instruction register +; cp_advance_temps - transfers the contents of the Am29027 temporary +; registers to the corresponding working registers +; cp_write_mode - transfers a mode specification the the Am29027 +; mode register +; cp_read_dp - read a double-precision floating-point result +; from the Am29027 +; cp_read_sp - read a single-precision floating-point result +; from the Am29027 +; cp_read_int - read an integer result from the Am29027 +; cp_read_flags - read the contents of the Am29027 flag register +; cp_read_status - read the contents of the Am29027 status register +; cp_read_state_wd - read a single Am29027 state word +; cp_save_state - save Am29027 state +; cp_restore_state - restore Am29027 state +; cp_build_inst - build an Am29027 instruction +; cp_build_inst_h - build 16 MSBs of an Am29027 instruction +; cp_build_inst_l - build 16 LSBs of an Am29027 instruction +; +; +; +;============================================================================ +; MACRO NAME: cp_write_r +; +; WRITTEN BY: Bob Perlman +; +; MOST RECENT UPDATE: April 16, 1988 +; +; FUNCTION: Transfers a 32- or 64-bit operand to Am29027 input register R +; +; PARAMETERS: +; reg - the Am29000 g.p. register containing the 32-bit operand to be +; transferred, or the 32 MSBs of the 64-bit operand to be +; transferred. +; +; LSB_reg - the Am29000 g.p. register containing the 32 LSBs of the +; 64-bit operand to be transferred +; +; INT - indicates that the operand to be transferred is a 32-bit +; integer +; +; START - indicates that a new Am29027 operation is to be started +; once the operand has been transferred +; +; +; USAGE: +; +; cp_write_r reg [,LSB_reg] [,START] for floating-point operands +; or cp_write_r reg, INT [,START] for integer operands +; +; Transferring double-precision floating-point operands - Either of +; two forms is acceptable: +; +; cp_write_r reg +; or cp_write_r reg, LSB_reg +; +; If LSB_reg is omitted, the LSBs are taken from the next g.p. +; register. +; +; Ex: cp_write_r lr2 Transfers the contents of lr2 to +; the most-significant half of Am29027 +; register R, and the contents of lr3 +; to the least-significant half. +; +; cp_write_r lr2,lr5 Transfers the contents of lr2 to +; the most-significant half of Am29027 +; register R, and the contents of lr5 +; to the least-significant half. +; +; +; Transferring single-precision floating-point operands - Use the +; form: +; +; cp_write_r reg +; +; +; Ex: cp_write_r lr2 Transfers the contents of lr2 to +; the most-significant half of Am29027 +; register R, (the contents of lr3 +; will be transferred to the least- +; significant half of register R, but +; these bits are don't cares). +; +; +; Transferring integer operands - Use the form: +; +; cp_write_r reg,INT +; +; +; Ex: cp_write_r lr2,INT Transfers the contents of lr2 to +; the least-significant half of Am29027 +; register R, (the contents of lr2 +; will also be transferred to the most- +; significant half of register R, but +; these bits are don't cares). +; +; +; Starting an Am29027 operation - Any of the forms above may be +; appended with parameter START, e.g.: +; +; cp_write_r lr2,START +; +; cp_write_r lr2,lr5,START +; +; cp_write_r lr2,INT,START +; +; +;============================================================================ +; + .macro cp_write_r,p1,p2,p3 +; + .if $narg==0 + .err + .print "cp_WRITE_R: missing parameter(s)" + .endif +; +; + .if $narg==1 + store 1,CP_WRITE_R,p1,%%((&p1)+1) + .exitm + .endif +; +; + .if $narg==2 +; + .ifeqs "@p2@","INT" + store 1,CP_WRITE_R,p1,p1 + .exitm + .endif +; + .ifeqs "@p2@","START" + store 1,CP_WRITE_R|CP_START,p1,%%((&p1)+1) + .exitm + .endif +; + store 1,CP_WRITE_R,p1,p2 + .exitm +; + .endif +; +; + .if $narg==3 +; + .ifeqs "@p2@","START" + .ifeqs "@p3@","INT" + store 1,CP_WRITE_R|CP_START,p1,p1 + .else + .err + .print "cp_write_r: bad parameter list" + .endif + .exitm + .endif +; + .ifeqs "@p2@","INT" + .ifeqs "@p3@","START" + store 1,CP_WRITE_R|CP_START,p1,p1 + .else + .err + .print "cp_write_r: bad parameter list" + .endif + .exitm + .endif +; + .ifeqs "@p3@","START" + store 1,CP_WRITE_R|CP_START,p1,p2 + .else + .err + .print "cp_write_r: bad parameter list" + .endif + .exitm +; + .endif +; +; + .if $narg>=4 + .err + .print "cp_write_r: too many parameters" + .endif +; + .endm +; +; +; +; +; +;============================================================================ +; MACRO NAME: cp_write_s +; +; WRITTEN BY: Bob Perlman +; +; MOST RECENT UPDATE: April 16, 1988 +; +; FUNCTION: Transfers a 32- or 64-bit operand to Am29027 input register S +; +; PARAMETERS: +; reg - the Am29000 g.p. register containing the 32-bit operand to be +; transferred, or the 32 MSBs of the 64-bit operand to be +; transferred. +; +; LSB_reg - the Am29000 g.p. register containing the 32 LSBs of the +; 64-bit operand to be transferred +; +; INT - indicates that the operand to be transferred is a 32-bit +; integer +; +; START - indicates that a new Am29027 operation is to be started +; once the operand has been transferred +; +; +; USAGE: +; +; cp_write_s reg [,LSB_reg] [,START] for floating-point operands +; or cp_write_s reg, INT [,START] for integer operands +; +; Transferring double-precision floating-point operands - Either of +; two forms is acceptable: +; +; cp_write_s reg +; or cp_write_s reg, LSB_reg +; +; If LSB_reg is omitted, the LSBs are taken from the next g.p. +; register. +; +; Ex: cp_write_s lr2 Transfers the contents of lr2 to +; the most-significant half of Am29027 +; register S, and the contents of lr3 +; to the least-significant half. +; +; cp_write_s lr2,lr5 Transfers the contents of lr2 to +; the most-significant half of Am29027 +; register S, and the contents of lr5 +; to the least-significant half. +; +; +; Transferring single-precision floating-point operands - Use the +; form: +; +; cp_write_s reg +; +; +; Ex: cp_write_s lr2 Transfers the contents of lr2 to +; the most-significant half of Am29027 +; register S, (the contents of lr3 +; will be transferred to the least- +; significant half of register S, but +; these bits are don't cares). +; +; +; Transferring integer operands - Use the form: +; +; cp_write_s reg,INT +; +; +; Ex: cp_write_s lr2,INT Transfers the contents of lr2 to +; the least-significant half of Am29027 +; register S, (the contents of lr2 +; will also be transferred to the most- +; significant half of register S, but +; these bits are don't cares). +; +; +; Starting an Am29027 operation - Any of the forms above may be +; appended with parameter START, e.g.: +; +; cp_write_s lr2,START +; +; cp_write_s lr2,lr5,START +; +; cp_write_s lr2,INT,START +; +; +;============================================================================ +; + .macro cp_write_s,p1,p2,p3 +; + .if $narg==0 + .err + .print "cp_write_s: missing parameter(s)" + .endif +; +; + .if $narg==1 + store 1,CP_WRITE_S,p1,%%((&p1)+1) + .exitm + .endif +; +; + .if $narg==2 +; + .ifeqs "@p2@","INT" + store 1,CP_WRITE_S,p1,p1 + .exitm + .endif +; + .ifeqs "@p2@","START" + store 1,CP_WRITE_S|CP_START,p1,%%((&p1)+1) + .exitm + .endif +; + store 1,CP_WRITE_S,p1,p2 + .exitm +; + .endif +; +; + .if $narg==3 +; + .ifeqs "@p2@","START" + .ifeqs "@p3@","INT" + store 1,CP_WRITE_S|CP_START,p1,p1 + .else + .err + .print "cp_write_s: bad parameter list" + .endif + .exitm + .endif +; + .ifeqs "@p2@","INT" + .ifeqs "@p3@","START" + store 1,CP_WRITE_S|CP_START,p1,p1 + .else + .err + .print "cp_write_s: bad parameter list" + .endif + .exitm + .endif +; + .ifeqs "@p3@","START" + store 1,CP_WRITE_S|CP_START,p1,p2 + .else + .err + .print "cp_write_s: bad parameter list" + .endif + .exitm +; + .endif +; +; + .if $narg>=4 + .err + .print "cp_write_s: too many parameters" + .endif +; + .endm +; +; +; +; +;============================================================================ +; MACRO NAME: cp_write_rs +; +; WRITTEN BY: Bob Perlman +; +; MOST RECENT UPDATE: April 16, 1988 +; +; FUNCTION: Transfers two 32-bit floating-point operands to Am29027 +; input registers R and S +; +; PARAMETERS: +; reg1 - the Am29000 g.p. register containing the 32-bit operand to be +; transferred to register R +; +; reg2 - the Am29000 g.p. register containing the 32-bit operand to be +; transferred to register S +; +; START - indicates that a new Am29027 operation is to be started +; once the operands have been transferred +; +; +; USAGE: +; +; cp_write_rs reg1, reg2 [,START] +; +; Ex: cp_write_rs lr2,lr5 Transfers the contents of lr2 to +; the most-significant half of Am29027 +; register R, and the contents of lr5 +; to the most-significant half of Am29027 +; register S. +; +; cp_write_rs lr2,lr5,START Transfers the contents of lr2 to +; the most-significant half of Am29027 +; register R, and the contents of lr5 +; to the most-significant half of Am29027 +; register S; a new operation is started +; once the transfer is complete. +; +; +; +;============================================================================ +; + .macro cp_write_rs,p1,p2,p3 +; +; + .if $narg<=1 + .err + .print "cp_write_rs: missing parameter(s)" + .exitm + .endif +; +; + .if $narg==2 + .ifeqs "@p2@","START" + .err + .print "cp_write_rs: bad parameter list" + .else + store 1,CP_WRITE_RS,p1,p2 + .endif + .exitm + .endif +; +; + .if $narg==3 + .ifeqs "@p3@","START" + store 1,CP_WRITE_RS|CP_START,p1,p2 + .else + .err + .print "cp_write_rs: bad parameter list" + .endif + .exitm + .endif +; +; + .if $narg>=4 + .err + .print "cp_write_rs: too many parameters" + .exitm + .endif +; + .endm +; +; +; +; +; +; +;============================================================================ +; MACRO NAME: cp_write_prec +; +; WRITTEN BY: Bob Perlman +; +; MOST RECENT UPDATE: April 16, 1988 +; +; FUNCTION: Transfers a word to the Am29027 precision register +; +; PARAMETERS: +; reg - the Am29000 g.p. register containing the word to be +; transferred to the Am29027 precision register +; +; USAGE: +; +; cp_write_prec reg +; +; Ex: cp_write_prec lr2 Transfers the contents of lr2 to +; the Am29027 precision register. +; +; +;============================================================================ +; + .macro cp_write_prec,p1 +; +; + .if $narg!=1 + .err + .print "cp_write_prec: bad parameter list" + .else + store 1,CP_WRITE_PREC,p1,0 + .endif +; + .endm +; +; +; +; +; +; +;============================================================================ +; MACRO NAME: cp_write_status +; +; WRITTEN BY: Bob Perlman +; +; MOST RECENT UPDATE: April 16, 1988 +; +; FUNCTION: Transfers a word to the Am29027 precision register +; +; PARAMETERS: +; reg - the Am29000 g.p. register containing the word to be +; transferred to the Am29027 status register +; +; RESTORE - indicates that this is the last step of a state restoration +; sequence (flow-through mode only) +; +; INVALIDATE - indicates that the current contents of the ALU pipeline +; register are to be invalidated (pipeline mode only) +; +; USAGE: +; +; cp_write_status reg [,RESTORE|INVALIDATE] +; +; Ex: cp_write_status lr2 Transfers the contents of lr2 to +; the Am29027 status register. +; +; +; cp_write_status lr2,RESTORE Transfers the contents of lr2 to +; the Am29027 status register, and +; completes the state restore +; sequence +; +; cp_write_status lr2,INVALIDATE Transfers the contents of lr2 to +; the Am29027 status register, and +; invalidates the contents of the +; ALU pipeline. +; +; +;============================================================================ +; + .macro cp_write_status,p1,p2 +; + .if $narg==0 + .err + .print "cp_write_status: missing parameter(s)" + .endif +; +; + .if $narg==1 + store 1,CP_WRITE_STATUS,p1,0 + .exitm + .endif +; +; + .if $narg==2 +; + .ifeqs "@p2@","RESTORE" + store 1,CP_WRITE_STATUS|CP_START,p1,0 + .exitm + .endif +; + .ifeqs "@p2@","INVALIDATE" + store 1,CP_WRITE_STATUS|CP_START,p1,0 + .exitm + .endif +; + .err + .print "cp_write_status: bad parameter list" + .exitm +; + .endif +; +; + .if $narg >=3 + .err + .print "cp_write_status: too many parameters" + .exitm + .endif +; + .endm +; +; +; +; +; +;============================================================================ +; MACRO NAME: cp_write_inst +; +; WRITTEN BY: Bob Perlman +; +; MOST RECENT UPDATE: April 16, 1988 +; +; FUNCTION: Transfers an instruction word to the Am29027 instruction +; register +; +; PARAMETERS: +; reg - the Am29000 g.p. register containing the word to be +; transferred to the Am29027 instruction register +; +; START - indicates that a new Am29027 operation is to be started +; once the instruction word has been transferred +; +; USAGE: +; +; cp_write_inst reg [,START] +; +; Ex: cp_write_inst lr2 Transfers the contents of lr2 to +; the Am29027 instruction register. +; +; +; cp_write_inst lr2,START Transfers the contents of lr2 to +; the Am29027 status register; a +; new operation is started once the +; transfer is complete. +; +; +;============================================================================ +; + .macro cp_write_inst,p1,p2 +; + .if $narg==0 + .err + .print "cp_write_inst: missing parameter(s)" + .endif +; +; + .if $narg==1 + store 1,CP_WRITE_INST,p1,p1 + .exitm + .endif +; +; + .if $narg==2 +; + .ifeqs "@p2@","START" + store 1,CP_WRITE_INST|CP_START,p1,p1 + .else + .err + .print "cp_write_inst: bad parameter list" + .endif + .exitm +; + .endif +; +; + .if $narg >=3 + .err + .print "cp_write_inst: too many parameters" + .exitm + .endif +; + .endm +; +; +; +; +; +; +;============================================================================ +; MACRO NAME: cp_advance_temps +; +; WRITTEN BY: Bob Perlman +; +; MOST RECENT UPDATE: April 17, 1988 +; +; FUNCTION: Transfers the contents of Am29027 registers R-Temp, S-Temp, +; and I-Temp to register R, register S, and the instruction +; register, respectively. +; +; PARAMETERS: none +; +; USAGE: +; +; cp_advance_temps +; +; +; +;============================================================================ +; + .macro cp_advance_temps +; +; + .if $narg!=0 + .err + .print "cp_advance_temp: takes no parameters" + .else + store 1,CP_ADV_TEMPS,gr1,0 ; use gr1 because it's never protected + .endif +; + .endm +; +; +; +; +;============================================================================ +; MACRO NAME: cp_write_mode +; +; WRITTEN BY: Bob Perlman +; +; MOST RECENT UPDATE: April 17, 1988 +; +; FUNCTION: Transfers a 64-bit mode specification to the Am29027 mode +; register +; +; PARAMETERS: +; reg - the Am29000 g.p. register containing the 32 MSBs of the +; 64-bit mode specification to be transferred. +; +; LSB_reg - the Am29000 g.p. register containing the 32 LSBs of the +; 64-bit mode specification to be transferred. +; +; USAGE: +; +; cp_write_mode reg [,LSB_reg] +; +; Either of two forms is acceptable: +; +; cp_write_mode reg +; or cp_write_mode reg, LSB_reg +; +; If LSB_reg is omitted, the LSBs are taken from the next g.p. +; register. +; +; Ex: cp_write_mode lr2 Transfers the contents of lr2 to +; the most-significant half of the Am29027 +; mode register, and the contents of lr3 +; to the least-significant half. +; +; cp_write_mode lr2,lr5 Transfers the contents of lr2 to +; the most-significant half of the Am29027 +; mode register, and the contents of lr5 +; to the least-significant half. +; +; +; +;============================================================================ +; + .macro cp_write_mode,p1,p2 +; + .if $narg==0 + .err + .print "cp_write_mode: missing parameter(s)" + .endif +; +; + .if $narg==1 + store 1,CP_WRITE_MODE,%%((&p1)+1),p1 + .exitm + .endif +; +; + .if $narg==2 + store 1,CP_WRITE_MODE,p2,p1 + .exitm + .endif +; +; + .if $narg>=3 + .err + .print "cp_write_mode: too many parameters" + .endif +; + .endm +; +; +; +;============================================================================ +; MACRO NAME: cp_read_dp +; +; WRITTEN BY: Bob Perlman +; +; MOST RECENT UPDATE: April 17, 1988 +; +; FUNCTION: Transfers the current Am29027 double-precison floating-point +; result to the Am29000 +; +; PARAMETERS: +; reg - the Am29000 g.p. register into which the 32 MSBs of the +; current Am29027 result are to be written. +; +; LSB_reg - the Am29000 g.p. register into which the 32 LSBs of the +; current Am29027 result are to be written. +; +; NO_ERR - indicates that exception reporting is to be suppressed for this +; transfer. +; +; USAGE: +; +; cp_read_dp reg [,LSB_reg] [,START] +; +; Either of two forms is acceptable: +; +; cp_read_dp reg +; or cp_read_dp reg, LSB_reg +; +; If LSB_reg is omitted, the LSBs are written to the next g.p. register. +; +; Ex: cp_read_dp lr2 Transfers the 32 MSBs of the current +; Am29027 result to lr2, and the 32 LSBs +; to lr3. +; +; cp_read_dp lr2,lr5 Transfers the 32 MSBs of the current +; Am29027 result to lr2, and the 32 LSBs +; to lr5. +; +; Exception reporting can be suppressed by appending NO_ERR to either +; of the above, e.g.: +; +; cp_read_dp lr2,NO_ERR +; cp_read_dp lr2,lr5,NO_ERR +; +; +;============================================================================ +; + .macro cp_read_dp,p1,p2,p3 +; + .if $narg==0 + .err + .print "cp_read_dp: missing parameter(s)" + .endif +; +; + .if $narg==1 + load 1,CP_READ_LSBS,%%((&p1)+1),0 + load 1,CP_READ_MSBS,p1,0 + .exitm + .endif +; +; + .if $narg==2 +; + .ifeqs "@p2@","NO_ERR" + load 1,CP_READ_LSBS|CP_NO_ERR,%%((&p1)+1),0 + load 1,CP_READ_MSBS|CP_NO_ERR,p1,0 + .exitm + .endif +; + load 1,CP_READ_LSBS,p2,0 + load 1,CP_READ_MSBS,p1,0 + .exitm +; + .endif +; +; + .if $narg==3 +; + .ifeqs "@p3@","NO_ERR" + load 1,CP_READ_LSBS|CP_NO_ERR,p2,0 + load 1,CP_READ_MSBS|CP_NO_ERR,p1,0 + .else + .err + .print "cp_read_dp: bad parameter list" + .endif + .exitm +; + .endif +; +; + .if $narg>=4 + .err + .print "cp_read_dp: too many parameters" + .endif +; + .endm +; +; +; +;============================================================================ +; MACRO NAME: cp_read_sp +; +; WRITTEN BY: Bob Perlman +; +; MOST RECENT UPDATE: April 17, 1988 +; +; FUNCTION: Transfers the current Am29027 single-precison floating-point +; result to the Am29000 +; +; PARAMETERS: +; reg - the Am29000 g.p. register into which the current Am29027 +; result is to be written. +; +; NO_ERR - indicates that exception reporting is to be suppressed for this +; transfer. +; +; USAGE: +; +; cp_read_sp reg [,START] +; +; Ex: cp_read_sp lr2 Transfers the current Am29027 result +; to lr2. +; +; cp_read_sp lr2,NO_ERR Transfers the current Am29027 result +; to lr2, and suppresses exception +; reporting for this transfer. +; +; +;============================================================================ +; + .macro cp_read_sp,p1,p2 +; + .if $narg==0 + .err + .print "cp_read_sp: missing parameter(s)" + .endif +; +; + .if $narg==1 + load 1,CP_READ_MSBS,p1,0 + .exitm + .endif +; +; + .if $narg==2 +; + .ifeqs "@p2@","NO_ERR" + load 1,CP_READ_MSBS|CP_NO_ERR,p1,0 + .else + .err + .print "cp_read_sp: bad parameter list" + .endif + .exitm +; + .endif +; +; + .if $narg>=3 + .err + .print "cp_read_sp: too many parameters" + .endif +; + .endm +; +; +; +;============================================================================ +; MACRO NAME: cp_read_int +; +; WRITTEN BY: Bob Perlman +; +; MOST RECENT UPDATE: April 17, 1988 +; +; FUNCTION: Transfers the current Am29027 integer result to the Am29000 +; +; PARAMETERS: +; reg - the Am29000 g.p. register into which the current Am29027 +; result is to be written. +; +; NO_ERR - indicates that exception reporting is to be suppressed for this +; transfer. +; +; USAGE: +; +; cp_read_int reg [,START] +; +; Ex: cp_read_int lr2 Transfers the current Am29027 result +; to lr2. +; +; cp_read_int lr2,NO_ERR Transfers the current Am29027 result +; to lr2, and suppresses exception +; reporting for this transfer. +; +; +;============================================================================ +; + .macro cp_read_int,p1,p2 +; + .if $narg==0 + .err + .print "cp_read_int: missing parameter(s)" + .endif +; +; + .if $narg==1 + load 1,CP_READ_LSBS,p1,0 + nop ; leave a cycle for the MSBs to come out + .exitm + .endif +; +; + .if $narg==2 +; + .ifeqs "@p2@","NO_ERR" + load 1,CP_READ_LSBS|CP_NO_ERR,p1,0 + nop ; leave a cycle for the MSBs to come out + .else + .err + .print "cp_read_int: bad parameter list" + .endif + .exitm +; + .endif +; +; + .if $narg>=3 + .err + .print "cp_read_int: too many parameters" + .endif +; + .endm +; +; +; +;============================================================================ +; MACRO NAME: cp_read_flags +; +; WRITTEN BY: Bob Perlman +; +; MOST RECENT UPDATE: April 17, 1988 +; +; FUNCTION: Transfers the contents of the Am29027 flag register +; to the Am29000 +; +; PARAMETERS: +; reg - the Am29000 g.p. register into which the current Am29027 +; flag register contents are to be written. +; +; NO_ERR - indicates that exception reporting is to be suppressed for this +; transfer. +; +; USAGE: +; +; cp_read_flags reg [,START] +; +; Ex: cp_read_flags lr2 Transfers the Am29027 flag register +; contents to lr2. +; +; cp_read_flags lr2,NO_ERR Transfers the Am29027 flag register +; contents to lr2, and suppresses +; exception reporting for this +; transfer. +; +; +;============================================================================ +; + .macro cp_read_flags,p1,p2 +; + .if $narg==0 + .err + .print "cp_read_flags: missing parameter(s)" + .endif +; +; + .if $narg==1 + load 1,CP_READ_FLAGS,p1,0 + .exitm + .endif +; +; + .if $narg==2 +; + .ifeqs "@p2@","NO_ERR" + load 1,CP_READ_FLAGS|CP_NO_ERR,p1,0 + .else + .err + .print "cp_read_flags: bad parameter list" + .endif + .exitm +; + .endif +; +; + .if $narg>=3 + .err + .print "cp_read_flags: too many parameters" + .endif +; + .endm +; +; +; +;============================================================================ +; MACRO NAME: cp_read_status +; +; WRITTEN BY: Bob Perlman +; +; MOST RECENT UPDATE: April 18, 1988 +; +; FUNCTION: Transfers the contents of the Am29027 status register +; to the Am29000 +; +; PARAMETERS: +; reg - the Am29000 g.p. register into which the current Am29027 +; status register contents are to be written. +; +; NO_ERR - indicates that exception reporting is to be suppressed for this +; transfer. +; +; USAGE: +; +; cp_read_status reg [,START] +; +; Ex: cp_read_status lr2 Transfers the Am29027 status register +; contents to lr2. +; +; cp_read_status lr2,NO_ERR Transfers the Am29027 status register +; contents to lr2, and suppresses +; exception reporting for this +; transfer. +; +; +;============================================================================ +; + .macro cp_read_status,p1,p2 +; + .if $narg==0 + .err + .print "cp_read_status: missing parameter(s)" + .endif +; +; + .if $narg==1 + load 1,CP_READ_STATUS,p1,0 + .exitm + .endif +; +; + .if $narg==2 +; + .ifeqs "@p2@","NO_ERR" + load 1,CP_READ_STATUS|CP_NO_ERR,p1,0 + .else + .err + .print "cp_read_status: bad parameter list" + .endif + .exitm +; + .endif +; +; + .if $narg>=3 + .err + .print "cp_read_status: too many parameters" + .endif +; + .endm +; +; +; +;============================================================================ +; MACRO NAME: cp_read_state_wd +; +; WRITTEN BY: Bob Perlman +; +; MOST RECENT UPDATE: April 18, 1988 +; +; FUNCTION: Transfers the next Am29027 state word to the Am29000 +; +; PARAMETERS: +; reg - the Am29000 g.p. register into which the next Am29027 +; state word contents are to be written. +; +; USAGE: +; +; cp_read_state_wd reg +; +; Ex: cp_read_state_wd lr2 Transfers the next Am29027 state word +; to lr2. +; +;============================================================================ +; + .macro cp_read_state_wd,p1 +; + .if $narg==0 + .err + .print "cp_read_state_wd: missing parameter" + .endif +; +; + .if $narg==1 + load 1,CP_SAVE_STATE,p1,0 + .exitm + .endif +; +; + .if $narg>=2 + .err + .print "cp_read_state_wd: too many parameters" + .endif +; + .endm +; +; +; +;============================================================================ +; MACRO NAME: cp_save_state +; +; WRITTEN BY: Bob Perlman +; +; MOST RECENT UPDATE: April 18, 1988 +; +; FUNCTION: Transfers the current Am29027 state to the Am29000 +; +; PARAMETERS: +; reg - the first of 30 Am29000 g.p. registers in which Am29027 state +; is saved. +; +; USAGE: +; +; cp_save_state reg +; +; This macro transfers the current Am29027 state to a block of 30 Am29000 +; registers. State is stored in the following order: +; +; reg instruction register +; reg+1 I-Temp +; reg+2 R MSBs +; reg+3 R LSBs +; reg+4 S MSBs +; reg+5 S LSBs +; reg+6 R-Temp MSBs +; reg+7 R-Temp LSBs +; reg+8 S-Temp MSBs +; reg+9 S-Temp LSBs +; reg+10 status +; reg+11 precision +; reg+12 RF0 MSBs +; reg+13 RF0 LSBs +; . . +; . . +; . . +; reg+26 RF7 MSBs +; reg+27 RF7 LSBs +; reg+28 mode MSBs +; reg+29 mode LSBs +; +; +; Ex: cp_save_state lr2 Transfers the current Am29027 state to +; the Am29000, starting at lr2. +; +; NOTES: +; 1) This macro stores all 64-bit quantities in "big-endian" order, +; i.e. MSBs first. For example, the 32 MSBs of register R are +; stored in reg+2, and the 32 LSBs are stored in reg+3. The Am29027 +; transfers these quantites in "little-endian" order; the macro +; is responsible for swapping MS and LS words. +; +;============================================================================ +; + .macro cp_save_state,p1 +; + .if $narg==0 + .err + .print "cp_save_state: missing parameter" + .endif +; +; + .if $narg==1 + cp_read_sp p1,NO_ERR + ;guarantee that we're at beginning of + ; save state sequence + cp_read_state_wd %%((&p1)+ 0) ; instruction + cp_read_state_wd %%((&p1)+ 1) ; I-Temp + cp_read_state_wd %%((&p1)+ 3) ; R MSBs + cp_read_state_wd %%((&p1)+ 2) ; R LSBs + cp_read_state_wd %%((&p1)+ 5) ; S MSBs + cp_read_state_wd %%((&p1)+ 4) ; S LSBs + cp_read_state_wd %%((&p1)+ 7) ; R-Temp MSBs + cp_read_state_wd %%((&p1)+ 6) ; R-Temp LSBs + cp_read_state_wd %%((&p1)+ 9) ; S-Temp MSBs + cp_read_state_wd %%((&p1)+ 8) ; S-Temp LSBs + cp_read_state_wd %%((&p1)+10) ; status + cp_read_state_wd %%((&p1)+11) ; precision + cp_read_state_wd %%((&p1)+13) ; RF0 MSBs + cp_read_state_wd %%((&p1)+12) ; RF0 LSBs + cp_read_state_wd %%((&p1)+15) ; RF1 MSBs + cp_read_state_wd %%((&p1)+14) ; RF1 LSBs + cp_read_state_wd %%((&p1)+17) ; RF2 MSBs + cp_read_state_wd %%((&p1)+16) ; RF2 LSBs + cp_read_state_wd %%((&p1)+19) ; RF3 MSBs + cp_read_state_wd %%((&p1)+18) ; RF3 LSBs + cp_read_state_wd %%((&p1)+21) ; RF4 MSBs + cp_read_state_wd %%((&p1)+20) ; RF4 LSBs + cp_read_state_wd %%((&p1)+23) ; RF5 MSBs + cp_read_state_wd %%((&p1)+22) ; RF5 LSBs + cp_read_state_wd %%((&p1)+25) ; RF6 MSBs + cp_read_state_wd %%((&p1)+24) ; RF6 LSBs + cp_read_state_wd %%((&p1)+27) ; RF7 MSBs + cp_read_state_wd %%((&p1)+26) ; RF7 LSBs + cp_read_state_wd %%((&p1)+29) ; mode MSBs + cp_read_state_wd %%((&p1)+28) ; mode LSBs + .exitm + .endif +; +; + .if $narg>=2 + .err + .print "cp_save_state: too many parameters" + .endif +; + .endm +; +; +; +; +; +;============================================================================ +; MACRO NAME: cp_restore_state +; +; WRITTEN BY: Bob Perlman +; +; MOST RECENT UPDATE: April 18, 1988 +; +; FUNCTION: Restores Am29027 state +; +; PARAMETERS: +; reg - the first of 30 Am29000 g.p. registers containing Am29027 +; state. +; +; temp - a scratch register used by cp_restore_state +; +; USAGE: +; +; cp_restore_state reg,temp +; +; This macro restores Am29027 state by transferring 30 words to the +; Am29027; these words are taken from a block of Am29000 g.p. registers +; starting at "reg." The words are assumed to be stored in the following +; order: +; +; reg instruction register +; reg+1 I-Temp +; reg+2 R MSBs +; reg+3 R LSBs +; reg+4 S MSBs +; reg+5 S LSBs +; reg+6 R-Temp MSBs +; reg+7 R-Temp LSBs +; reg+8 S-Temp MSBs +; reg+9 S-Temp LSBs +; reg+10 status +; reg+11 precision +; reg+12 RF0 MSBs +; reg+13 RF0 LSBs +; . . +; . . +; . . +; reg+26 RF7 MSBs +; reg+27 RF7 LSBs +; reg+28 mode MSBs +; reg+29 mode LSBs +; +; +; Ex: cp_restore_state lr2,gr70 Restores Am29027 state by +; transferring a block of 30 words +; that begins at lr2. Register gr70 +; is used as scratch storage by this +; macro. +; +; +;============================================================================ +; + .macro cp_restore_state,p1,p2 +; + .if $narg<=1 + .err + .print "cp_restore_state: missing parameter(s)" + .endif +; +; + .if $narg==2 + + const p2,0 ;clear the status register + cp_write_status p2 +; + cp_write_mode %%((&p1)+28) ;restore the mode register +; + const p2,0x80000018 ; restore RF0 + consth p2,0x80000018 + cp_write_inst p2 + cp_write_r %%((&p1)+12),START +; + consth p2,0x90000018 ; restore RF1 + cp_write_inst p2 + cp_write_r %%((&p1)+14),START +; + consth p2,0xA0000018 ; restore RF2 + cp_write_inst p2 + cp_write_r %%((&p1)+16),START +; + consth p2,0xB0000018 ; restore RF3 + cp_write_inst p2 + cp_write_r %%((&p1)+18),START +; + consth p2,0xC0000018 ; restore RF4 + cp_write_inst p2 + cp_write_r %%((&p1)+20),START +; + consth p2,0xD0000018 ; restore RF5 + cp_write_inst p2 + cp_write_r %%((&p1)+22),START +; + consth p2,0xE0000018 ; restore RF6 + cp_write_inst p2 + cp_write_r %%((&p1)+24),START +; + consth p2,0xF0000018 ; restore RF7 + cp_write_inst p2 + cp_write_r %%((&p1)+26),START +; + cp_read_sp p2 ; do a dummy read, to guarantee that + ; the last operation is complete +; + cp_write_prec %%((&p1)+11) ; restore precision +; + cp_write_r %%((&p1)+2) ; restore R + cp_write_s %%((&p1)+4) ; restore S + cp_write_inst %%((&p1)+0) ; restore instruction + cp_advance_temps ; move R,S, and inst. to working registers +; + cp_write_r %%((&p1)+6) ; restore R-Temp + cp_write_s %%((&p1)+8) ; restore S-Temp + cp_write_inst %%((&p1)+1) ; restore I-Temp +; +; restore the status register, retime last operation +; + cp_write_status %%((&p1)+10),RESTORE +; + .exitm + .endif +; +; + .if $narg>=3 + .err + .print "cp_restore_state: too many parameters" + .endif +; + .endm +; +; +; +;============================================================================ +; MACRO NAME: cp_build_inst +; +; WRITTEN BY: Bob Perlman +; +; MOST RECENT UPDATE: April 24, 1988 +; : January 4, 1989 Rich Parker +; +; FUNCTION: Builds a 32-bit Am29027 instruction in an Am29000 g.p. +; register. +; +; PARAMETERS: +; reg - the Am29000 g.p. register into which the instruction word +; is to be written +; +; op_code - mnemonic specifying the operation to be performed +; (e.g. FADD, P_TIMES_Q) +; +; precision - precision specification for destination, source operands: +; D_S - double-prec. result, single-prec. input(s) +; D_D - double-prec. result, double-prec. input(s) +; S_S - single-prec. result, single-prec. input(s) +; S_D - single-prec. result, double-prec. input(s) +; +; dest - destination for the operation result: +; RF0 - store result in Am29027 register file location RF0 +; RF1 - store result in Am29027 register file location RF1 +; RF2 - store result in Am29027 register file location RF2 +; RF3 - store result in Am29027 register file location RF3 +; RF4 - store result in Am29027 register file location RF4 +; RF5 - store result in Am29027 register file location RF5 +; RF6 - store result in Am29027 register file location RF6 +; RF7 - store result in Am29027 register file location RF7 +; GP - result is to be stored in an Am29000 g.p. register +; with a read_dp, read_sp, or read_int macro. +; +; source1, +; source2, +; source3 - source operand specifications: +; R - take source from Am29027 register R +; S - take source from Am29027 register S +; RF0 - take source from Am29027 register file location RF0 +; RF1 - take source from Am29027 register file location RF1 +; RF2 - take source from Am29027 register file location RF2 +; RF3 - take source from Am29027 register file location RF3 +; RF4 - take source from Am29027 register file location RF4 +; RF5 - take source from Am29027 register file location RF5 +; RF6 - take source from Am29027 register file location RF6 +; RF7 - take source from Am29027 register file location RF7 +; 0 - source is 0 +; ONE_HALF - source is constant .5 (f.p. operations only) +; IMINUS1 - source is constant -1 (integer operations only) +; 1 - source is constant 1 +; 2 - source is constant 2 +; 3 - source is constant 3 +; PI - source is constant pi (f.p. operations only) +; IMINUSMAX - source is -(2**63) (integer operations only) +; +; +; USAGE: +; +; cp_build_inst reg,op_code,[precision,]dest,source1[,source2][,source3] +; +; Op-codes fall into two categories: those that correspond to Am29000 +; floating-point op-codes, and for which the precision is implicit (e.g. +; FADD, DMUL); and those that correspond to Am29027 base operations +; (e.g. P_PLUS_T, P_TIMES_Q), and which require an explicit precision +; specification. +; +; Every operation specified must have a destination; if the operation +; does not write a result to the Am29027 register file, destination GP +; must be specified. The number of source operands specified must agree +; with the number of source operands required by the operation specified. +; +; Ex: +; +; cp_build_inst lr2,FADD,RF7,R,S +; Builds an instruction word to +; perform the operation: +; RF7 <- R + S +; where R, S, and RF7 are single- +; precision f.p. operands. The +; instruction word is placed in lr2. +; +; cp_build_inst gr119,DMUL,GP,R,ONE_HALF +; Builds an instruction word to +; perform the operation: +; R * .5 +; where R, .5, and the result +; are double-precision f.p. operands. +; The result is not written to the +; Am29027 register file. The +; instruction word is written to +; gr119. +; +; +; cp_build_inst lr3,MIN_P_AND_T,S_D,RF7,R,S +; Builds an instruction word to +; perform the operation: +; RF7 <- smaller of(R,S) +; where R and S are double-precision +; f.p. operands, and RF7 is a single- +; precison f.p. operand. The +; instruction word is written to +; lr3. +; +; +; cp_build_inst gr97,I_P_TIMES_Q,S_S,GP,R,2 +; Builds an instruction word to +; perform the operation: +; R * 2 +; where R, .5, and the result +; are single-precision integer operands. +; The result is not written to the +; Am29027 register file. The +; instruction word is written to +; gr97 +; +; +; cp_build_inst lr7,ABS_P,D_D,RF6,S +; Builds an instruction word to +; perform the operation: +; RF6 <- |S| +; where S and RF7 are double-precision +; f.p. operands. The instruction +; word is written to gr7. +; +; +; cp_build_inst gr127,PQ_PLUS_T,D_D,RF6,R,S,RF6 +; Builds an instruction word to +; perform the operation: +; RF6 <- (R * S) + RF6 +; where R, S and the result are +; double-precision f.p. operands. +; The instruction word is written +; to gr127. +; +; +; +;============================================================================ +; + .macro cp_build_inst,p1,p2,p3,p4,p5,p6,p7 +; + .if $narg<=3 + .err + .print "cp_build_inst: missing parameter(s)" + .exitm + .endif +; +; classify operation type +; + .set _cp_op_type,255 + + _cp_set_op_params p2,FADD,1,5,4,0,5 + _cp_set_op_params p2,DADD,1,5,4,0,5 + _cp_set_op_params p2,FSUB,1,5,4,0,5 + _cp_set_op_params p2,DSUB,1,5,4,0,5 + _cp_set_op_params p2,FMUL,1,5,4,5,0 + _cp_set_op_params p2,DMUL,1,5,4,5,0 + _cp_set_op_params p2,FEQ,1,5,4,0,5 + _cp_set_op_params p2,DEQ,1,5,4,0,5 + _cp_set_op_params p2,FGE,1,5,4,0,5 + _cp_set_op_params p2,DGE,1,5,4,0,5 + _cp_set_op_params p2,FGT,1,5,4,0,5 + _cp_set_op_params p2,DGT,1,5,4,0,5 + _cp_set_op_params p2,CONVERT_I_TO_F,1,4,0,0,4 + _cp_set_op_params p2,CONVERT_I_TO_D,1,4,0,0,4 + _cp_set_op_params p2,CONVERT_F_TO_I,1,4,0,0,4 + _cp_set_op_params p2,CONVERT_D_TO_I,1,4,0,0,4 +; +; The next two lines were corrected on 1-4-89, Rich Parker +; + _cp_set_op_params p2,CONVERT_F_TO_D,1,4,4,0,0 + _cp_set_op_params p2,CONVERT_D_TO_F,1,4,4,0,0 +; + _cp_set_op_params p2,PASS_P,0,5,5,0,0 + _cp_set_op_params p2,MINUSP,0,5,5,0,0 + _cp_set_op_params p2,ABSP,0,5,5,0,0 + _cp_set_op_params p2,SIGNT_TIMES_ABSP,0,6,6,0,5 + _cp_set_op_params p2,P_PLUS_T,0,6,5,0,6 + _cp_set_op_params p2,P_MINUS_T,0,6,5,0,6 + _cp_set_op_params p2,MINUSP_PLUS_T,0,6,5,0,6 + _cp_set_op_params p2,MINUSP_MINUS_T,0,6,5,0,6 + _cp_set_op_params p2,ABS_P_PLUS_T,0,6,5,0,6 + _cp_set_op_params p2,ABS_P_MINUS_T,0,6,5,0,6 + _cp_set_op_params p2,ABSP_PLUS_ABST,0,6,5,0,6 + _cp_set_op_params p2,ABSP_MINUS_ABST,0,6,5,0,6 + _cp_set_op_params p2,ABS_ABSP_MINUS_ABST,0,6,5,0,6 + _cp_set_op_params p2,P_TIMES_Q,0,6,5,6,0 + _cp_set_op_params p2,MINUSP_TIMES_Q,0,6,5,6,0 + _cp_set_op_params p2,ABS_P_TIMES_Q,0,6,5,6,0 + _cp_set_op_params p2,COMPARE_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,MAX_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,MAX_ABSP_AND_ABST,0,6,5,0,6 + _cp_set_op_params p2,MIN_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,MIN_ABSP_AND_ABST,0,6,5,0,6 + _cp_set_op_params p2,LIMIT_P_TO_MAGT,0,6,5,0,6 + _cp_set_op_params p2,CONVERT_T_TO_INT,0,5,0,0,5 + _cp_set_op_params p2,SCALE_T_TO_INT_BY_Q,0,6,0,6,5 + _cp_set_op_params p2,PQ_PLUS_T,0,7,5,6,7 + _cp_set_op_params p2,MINUSPQ_PLUS_T,0,7,5,6,7 + _cp_set_op_params p2,PQ_MINUS_T,0,7,5,6,7 + _cp_set_op_params p2,MINUSPQ_MINUS_T,0,7,5,6,7 + _cp_set_op_params p2,ABSPQ_PLUS_ABST,0,7,5,6,7 + _cp_set_op_params p2,MINUSABSPQ_PLUS_ABST,0,7,5,6,7 + _cp_set_op_params p2,ABSPQ_MINUS_ABST,0,7,5,6,7 + _cp_set_op_params p2,ROUND_T_TO_INT,0,5,0,0,5 + _cp_set_op_params p2,RECIPROCAL_OF_P,0,5,5,0,0 + _cp_set_op_params p2,CONVERT_T_TO_ALT,0,5,0,0,5 + _cp_set_op_params p2,CONVERT_T_FROM_ALT,0,5,0,0,5 + _cp_set_op_params p2,I_PASS_P,0,5,5,0,0 + _cp_set_op_params p2,I_MINUSP,0,5,5,0,0 + _cp_set_op_params p2,I_ABSP,0,5,5,0,0 + _cp_set_op_params p2,I_SIGNT_TIMES_ABSP,0,6,6,0,5 + _cp_set_op_params p2,I_P_PLUS_T,0,6,5,0,6 + _cp_set_op_params p2,I_P_MINUS_T,0,6,5,0,6 + _cp_set_op_params p2,I_MINUSP_PLUS_T,0,6,5,0,6 + _cp_set_op_params p2,I_ABS_P_PLUS_T,0,6,5,0,6 + _cp_set_op_params p2,I_ABS_P_MINUS_T,0,6,5,0,6 + _cp_set_op_params p2,I_P_TIMES_Q,0,6,5,6,0 + _cp_set_op_params p2,I_COMPARE_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,I_MAX_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,I_MIN_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,I_CONVERT_T_TO_FLOAT,0,5,0,0,5 + _cp_set_op_params p2,I_SCALE_T_TO_FLOAT_BY_Q,0,6,0,6,5 + _cp_set_op_params p2,I_P_OR_T,0,6,5,0,6 + _cp_set_op_params p2,I_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,I_P_XOR_T,0,6,5,0,6 + _cp_set_op_params p2,I_NOT_T,0,5,0,0,5 + _cp_set_op_params p2,I_LSHIFT_P_BY_Q,0,6,5,6,0 + _cp_set_op_params p2,I_ASHIFT_P_BY_Q,0,6,5,6,0 + _cp_set_op_params p2,I_FSHIFT_PT_BY_Q,0,7,5,7,6 + _cp_set_op_params p2,MOVE_P,0,5,5,0,0 +; +; +; if we couldn't find the op_code, flag an error +; + .if _cp_op_type>=2 + .err + .print "cp_build_inst: invalid Am29027 instruction mnemonic" + .exitm + .endif +; +; if number of parameters is incorrect, flag error +; + .if $narg!=_cp_no_params + .err + .print "cp_build_inst: incorrect number of parameters" + .exitm + .endif +; +; find correct value for precision field, if appropriate +; + .set _cp_prec_field,0 ; ** CORRECTION (1/4/89 ROP) + .if _cp_op_type==0 ; need to look for precision + .set _cp_found_precision,0 + .ifeqs "@p3@","D_D" + .set _cp_prec_field,CP_@p3 + .set _cp_found_precision,1 + .endif + .ifeqs "@p3@","D_S" + .set _cp_prec_field,CP_@p3 + .set _cp_found_precision,1 + .endif + .ifeqs "@p3@","S_D" + .set _cp_prec_field,CP_@p3 + .set _cp_found_precision,1 + .endif + .ifeqs "@p3@","S_S" + .set _cp_prec_field,CP_@p3 + .set _cp_found_precision,1 + .endif + .if _cp_found_precision==0 + .err + .print "cp_build_inst: missing precision field" + .exitm + .endif + .endif +; +; find value for destination field +; + .if _cp_op_type==0 + .set _cp_dest_field_val,CP_DEST_EQ_@p4 + .else + .set _cp_dest_field_val,CP_DEST_EQ_@p3 + .endif +; +; find correct value for p select field +; + .if _cp_p_paramno==0 + .set _cp_p_field_val,0x00000000 + .endif + .if _cp_p_paramno==4 + .set _cp_p_field_val,CP_P_EQ_@p4 + .endif + .if _cp_p_paramno==5 + .set _cp_p_field_val,CP_P_EQ_@p5 + .endif + .if _cp_p_paramno==6 + .set _cp_p_field_val,CP_P_EQ_@p6 + .endif + .if _cp_p_paramno==7 + .set _cp_p_field_val,CP_P_EQ_@p7 + .endif + .ifeqs "@p2@","I_NOT_T" + .set _cp_p_field_val,CP_P_EQ_IMINUS1 + .endif +; +; find correct value for q select field +; + .if _cp_q_paramno==0 + .set _cp_q_field_val,0x00000000 + .endif + .if _cp_q_paramno==4 + .set _cp_q_field_val,CP_Q_EQ_@p4 + .endif + .if _cp_q_paramno==5 + .set _cp_q_field_val,CP_Q_EQ_@p5 + .endif + .if _cp_q_paramno==6 + .set _cp_q_field_val,CP_Q_EQ_@p6 + .endif + .if _cp_q_paramno==7 + .set _cp_q_field_val,CP_Q_EQ_@p7 + .endif +; +; find correct value for t select field +; + .if _cp_t_paramno==0 + .set _cp_t_field_val,0x00000000 + .endif + .if _cp_t_paramno==4 + .set _cp_t_field_val,CP_T_EQ_@p4 + .endif + .if _cp_t_paramno==5 + .set _cp_t_field_val,CP_T_EQ_@p5 + .endif + .if _cp_t_paramno==6 + .set _cp_t_field_val,CP_T_EQ_@p6 + .endif + .if _cp_t_paramno==7 + .set _cp_t_field_val,CP_T_EQ_@p7 + .endif +; +; + .set _cp_inst_word,CP_@p2@|_cp_prec_field|_cp_dest_field_val + .set _cp_inst_word,_cp_inst_word|_cp_p_field_val + .set _cp_inst_word,_cp_inst_word|_cp_q_field_val + .set _cp_inst_word,_cp_inst_word|_cp_t_field_val + + const p1,_cp_inst_word + consth p1,_cp_inst_word +; + .endm +; +; +; + .macro _cp_set_op_params,par1,par2,par3,par4,par5,par6,par7 + .ifeqs "@par1@","@par2@" + .set _cp_op_type,par3 + .set _cp_no_params,par4 + .set _cp_p_paramno,par5 + .set _cp_q_paramno,par6 + .set _cp_t_paramno,par7 + .endif + .endm +; +; +; +;============================================================================ +; MACRO NAME: cp_build_inst_h +; +; WRITTEN BY: Bob Perlman +; +; MOST RECENT UPDATE: April 24, 1988 +; : January 4, 1989 Rich Parker +; +; FUNCTION: Builds a 16 MSBs of a 32-bit Am29027 instruction in an +; Am29000 g.p. register. +; +; PARAMETERS: +; reg - the Am29000 g.p. register into which the instruction word +; is to be written +; +; op_code - mnemonic specifying the operation to be performed +; (e.g. FADD, P_TIMES_Q) +; +; precision - precision specification for destination, source operands: +; D_S - double-prec. result, single-prec. input(s) +; D_D - double-prec. result, double-prec. input(s) +; S_S - single-prec. result, single-prec. input(s) +; S_D - single-prec. result, double-prec. input(s) +; +; dest - destination for the operation result: +; RF0 - store result in Am29027 register file location RF0 +; RF1 - store result in Am29027 register file location RF1 +; RF2 - store result in Am29027 register file location RF2 +; RF3 - store result in Am29027 register file location RF3 +; RF4 - store result in Am29027 register file location RF4 +; RF5 - store result in Am29027 register file location RF5 +; RF6 - store result in Am29027 register file location RF6 +; RF7 - store result in Am29027 register file location RF7 +; GP - result is to be stored in an Am29000 g.p. register +; with a read_dp, read_sp, or read_int macro. +; +; source1, +; source2, +; source3 - source operand specifications: +; R - take source from Am29027 register R +; S - take source from Am29027 register S +; RF0 - take source from Am29027 register file location RF0 +; RF1 - take source from Am29027 register file location RF1 +; RF2 - take source from Am29027 register file location RF2 +; RF3 - take source from Am29027 register file location RF3 +; RF4 - take source from Am29027 register file location RF4 +; RF5 - take source from Am29027 register file location RF5 +; RF6 - take source from Am29027 register file location RF6 +; RF7 - take source from Am29027 register file location RF7 +; 0 - source is 0 +; ONE_HALF - source is constant .5 (f.p. operations only) +; IMINUS1 - source is constant -1 (integer operations only) +; 1 - source is constant 1 +; 2 - source is constant 2 +; 3 - source is constant 3 +; PI - source is constant pi (f.p. operations only) +; IMINUSMAX - source is -(2**63) (integer operations only) +; +; +; USAGE: +; +; cp_build_inst_h reg,op_code,[precision,]dest,source1[,source2][,source3] +; +; This macro is similar to cp_build_inst, but creates only the 16 MSBs +; of the 32-bit Am29027 instruction word. This macro is useful in cases +; where the 16 LSBs of instruction word, which specify the operation +; to be performed, already exist in an Am29000 g.p. register, but where +; the 16 MSBs, which specify operand sources and destination, must be +; changed. In such cases, one Am29000 instruction can be saved by using +; cp_build_inst_h instead of cp_build_inst. +; +; Syntax and usage are identical to that of cp_build_inst. +; +; NOTE: This macro references macro _cp_set_op_params, which appears +; in the assembly listing for macro _cp_build_inst. +; +; +; +; +;============================================================================ +; + .macro cp_build_inst_h,p1,p2,p3,p4,p5,p6,p7 +; + .if $narg<=3 + .err + .print "cp_build_inst_h: missing parameter(s)" + .exitm + .endif +; +; classify operation type +; + .set _cp_op_type,255 + + _cp_set_op_params p2,FADD,1,5,4,0,5 + _cp_set_op_params p2,DADD,1,5,4,0,5 + _cp_set_op_params p2,FSUB,1,5,4,0,5 + _cp_set_op_params p2,DSUB,1,5,4,0,5 + _cp_set_op_params p2,FMUL,1,5,4,5,0 + _cp_set_op_params p2,DMUL,1,5,4,5,0 + _cp_set_op_params p2,FEQ,1,5,4,0,5 + _cp_set_op_params p2,DEQ,1,5,4,0,5 + _cp_set_op_params p2,FGE,1,5,4,0,5 + _cp_set_op_params p2,DGE,1,5,4,0,5 + _cp_set_op_params p2,FGT,1,5,4,0,5 + _cp_set_op_params p2,DGT,1,5,4,0,5 + _cp_set_op_params p2,CONVERT_I_TO_F,1,4,0,0,4 + _cp_set_op_params p2,CONVERT_I_TO_D,1,4,0,0,4 + _cp_set_op_params p2,CONVERT_F_TO_I,1,4,0,0,4 + _cp_set_op_params p2,CONVERT_D_TO_I,1,4,0,0,4 +; +; The next two lines were corrected on 1-4-89, Rich Parker +; + _cp_set_op_params p2,CONVERT_F_TO_D,1,4,4,0,0 + _cp_set_op_params p2,CONVERT_D_TO_F,1,4,4,0,0 +; + _cp_set_op_params p2,PASS_P,0,5,5,0,0 + _cp_set_op_params p2,MINUSP,0,5,5,0,0 + _cp_set_op_params p2,ABSP,0,5,5,0,0 + _cp_set_op_params p2,SIGNT_TIMES_ABSP,0,6,6,0,5 + _cp_set_op_params p2,P_PLUS_T,0,6,5,0,6 + _cp_set_op_params p2,P_MINUS_T,0,6,5,0,6 + _cp_set_op_params p2,MINUSP_PLUS_T,0,6,5,0,6 + _cp_set_op_params p2,MINUSP_MINUS_T,0,6,5,0,6 + _cp_set_op_params p2,ABS_P_PLUS_T,0,6,5,0,6 + _cp_set_op_params p2,ABS_P_MINUS_T,0,6,5,0,6 + _cp_set_op_params p2,ABSP_PLUS_ABST,0,6,5,0,6 + _cp_set_op_params p2,ABSP_MINUS_ABST,0,6,5,0,6 + _cp_set_op_params p2,ABS_ABSP_MINUS_ABST,0,6,5,0,6 + _cp_set_op_params p2,P_TIMES_Q,0,6,5,6,0 + _cp_set_op_params p2,MINUSP_TIMES_Q,0,6,5,6,0 + _cp_set_op_params p2,ABS_P_TIMES_Q,0,6,5,6,0 + _cp_set_op_params p2,COMPARE_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,MAX_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,MAX_ABSP_AND_ABST,0,6,5,0,6 + _cp_set_op_params p2,MIN_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,MIN_ABSP_AND_ABST,0,6,5,0,6 + _cp_set_op_params p2,LIMIT_P_TO_MAGT,0,6,5,0,6 + _cp_set_op_params p2,CONVERT_T_TO_INT,0,5,0,0,5 + _cp_set_op_params p2,SCALE_T_TO_INT_BY_Q,0,6,0,6,5 + _cp_set_op_params p2,PQ_PLUS_T,0,7,5,6,7 + _cp_set_op_params p2,MINUSPQ_PLUS_T,0,7,5,6,7 + _cp_set_op_params p2,PQ_MINUS_T,0,7,5,6,7 + _cp_set_op_params p2,MINUSPQ_MINUS_T,0,7,5,6,7 + _cp_set_op_params p2,ABSPQ_PLUS_ABST,0,7,5,6,7 + _cp_set_op_params p2,MINUSABSPQ_PLUS_ABST,0,7,5,6,7 + _cp_set_op_params p2,ABSPQ_MINUS_ABST,0,7,5,6,7 + _cp_set_op_params p2,ROUND_T_TO_INT,0,5,0,0,5 + _cp_set_op_params p2,RECIPROCAL_OF_P,0,5,5,0,0 + _cp_set_op_params p2,CONVERT_T_TO_ALT,0,5,0,0,5 + _cp_set_op_params p2,CONVERT_T_FROM_ALT,0,5,0,0,5 + _cp_set_op_params p2,I_PASS_P,0,5,5,0,0 + _cp_set_op_params p2,I_MINUSP,0,5,5,0,0 + _cp_set_op_params p2,I_ABSP,0,5,5,0,0 + _cp_set_op_params p2,I_SIGNT_TIMES_ABSP,0,6,6,0,5 + _cp_set_op_params p2,I_P_PLUS_T,0,6,5,0,6 + _cp_set_op_params p2,I_P_MINUS_T,0,6,5,0,6 + _cp_set_op_params p2,I_MINUSP_PLUS_T,0,6,5,0,6 + _cp_set_op_params p2,I_ABS_P_PLUS_T,0,6,5,0,6 + _cp_set_op_params p2,I_ABS_P_MINUS_T,0,6,5,0,6 + _cp_set_op_params p2,I_P_TIMES_Q,0,6,5,6,0 + _cp_set_op_params p2,I_COMPARE_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,I_MAX_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,I_MIN_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,I_CONVERT_T_TO_FLOAT,0,5,0,0,5 + _cp_set_op_params p2,I_SCALE_T_TO_FLOAT_BY_Q,0,6,0,6,5 + _cp_set_op_params p2,I_P_OR_T,0,6,5,0,6 + _cp_set_op_params p2,I_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,I_P_XOR_T,0,6,5,0,6 + _cp_set_op_params p2,I_NOT_T,0,5,0,0,5 + _cp_set_op_params p2,I_LSHIFT_P_BY_Q,0,6,5,6,0 + _cp_set_op_params p2,I_ASHIFT_P_BY_Q,0,6,5,6,0 + _cp_set_op_params p2,I_FSHIFT_PT_BY_Q,0,7,5,7,6 + _cp_set_op_params p2,MOVE_P,0,5,5,0,0 +; +; +; if we couldn't find the op_code, flag an error +; + .if _cp_op_type>=2 + .err + .print "cp_build_inst_h: invalid Am29027 instruction mnemonic" + .exitm + .endif +; +; if number of parameters is incorrect, flag error +; + .if $narg!=_cp_no_params + .err + .print "cp_build_inst_h: incorrect number of parameters" + .exitm + .endif +; +; find correct value for precision field, if appropriate +; + .set _cp_prec_field,0 ; ** CORRECTION (1-4-89 Rich Parker) + .if _cp_op_type==0 ; need to look for precision + .set _cp_found_precision,0 + .ifeqs "@p3@","D_D" + .set _cp_prec_field,CP_@p3 + .set _cp_found_precision,1 + .endif + .ifeqs "@p3@","D_S" + .set _cp_prec_field,CP_@p3 + .set _cp_found_precision,1 + .endif + .ifeqs "@p3@","S_D" + .set _cp_prec_field,CP_@p3 + .set _cp_found_precision,1 + .endif + .ifeqs "@p3@","S_S" + .set _cp_prec_field,CP_@p3 + .set _cp_found_precision,1 + .endif + .if _cp_found_precision==0 + .err + .print "cp_build_inst_h: missing precision field" + .exitm + .endif + .endif +; +; find value for destination field +; + .if _cp_op_type==0 + .set _cp_dest_field_val,CP_DEST_EQ_@p4 + .else + .set _cp_dest_field_val,CP_DEST_EQ_@p3 + .endif +; +; find correct value for p select field +; + .if _cp_p_paramno==0 + .set _cp_p_field_val,0x00000000 + .endif + .if _cp_p_paramno==4 + .set _cp_p_field_val,CP_P_EQ_@p4 + .endif + .if _cp_p_paramno==5 + .set _cp_p_field_val,CP_P_EQ_@p5 + .endif + .if _cp_p_paramno==6 + .set _cp_p_field_val,CP_P_EQ_@p6 + .endif + .if _cp_p_paramno==7 + .set _cp_p_field_val,CP_P_EQ_@p7 + .endif + .ifeqs "@p2@","I_NOT_T" + .set _cp_p_field_val,CP_P_EQ_IMINUS1 + .endif +; +; find correct value for q select field +; + .if _cp_q_paramno==0 + .set _cp_q_field_val,0x00000000 + .endif + .if _cp_q_paramno==4 + .set _cp_q_field_val,CP_Q_EQ_@p4 + .endif + .if _cp_q_paramno==5 + .set _cp_q_field_val,CP_Q_EQ_@p5 + .endif + .if _cp_q_paramno==6 + .set _cp_q_field_val,CP_Q_EQ_@p6 + .endif + .if _cp_q_paramno==7 + .set _cp_q_field_val,CP_Q_EQ_@p7 + .endif +; +; find correct value for t select field +; + .if _cp_t_paramno==0 + .set _cp_t_field_val,0x00000000 + .endif + .if _cp_t_paramno==4 + .set _cp_t_field_val,CP_T_EQ_@p4 + .endif + .if _cp_t_paramno==5 + .set _cp_t_field_val,CP_T_EQ_@p5 + .endif + .if _cp_t_paramno==6 + .set _cp_t_field_val,CP_T_EQ_@p6 + .endif + .if _cp_t_paramno==7 + .set _cp_t_field_val,CP_T_EQ_@p7 + .endif +; +; + .set _cp_inst_word,CP_@p2@|_cp_prec_field|_cp_dest_field_val + .set _cp_inst_word,_cp_inst_word|_cp_p_field_val + .set _cp_inst_word,_cp_inst_word|_cp_q_field_val + .set _cp_inst_word,_cp_inst_word|_cp_t_field_val +; + consth p1,_cp_inst_word +; + .endm +; +; +; +; +;============================================================================ +; MACRO NAME: cp_build_inst_l +; +; WRITTEN BY: Bob Perlman +; +; MOST RECENT UPDATE: April 24, 1988 +; : January 4, 1989 Rich Parker +; +; FUNCTION: Builds a 16 LSBs of a 32-bit Am29027 instruction in an +; Am29000 g.p. register; the 16 MSBs of the register are +; set to 0.. +; +; PARAMETERS: +; reg - the Am29000 g.p. register into which the instruction word +; is to be written +; +; op_code - mnemonic specifying the operation to be performed +; (e.g. FADD, P_TIMES_Q) +; +; precision - precision specification for destination, source operands: +; D_S - double-prec. result, single-prec. input(s) +; D_D - double-prec. result, double-prec. input(s) +; S_S - single-prec. result, single-prec. input(s) +; S_D - single-prec. result, double-prec. input(s) +; +; dest - destination for the operation result: +; RF0 - store result in Am29027 register file location RF0 +; RF1 - store result in Am29027 register file location RF1 +; RF2 - store result in Am29027 register file location RF2 +; RF3 - store result in Am29027 register file location RF3 +; RF4 - store result in Am29027 register file location RF4 +; RF5 - store result in Am29027 register file location RF5 +; RF6 - store result in Am29027 register file location RF6 +; RF7 - store result in Am29027 register file location RF7 +; GP - result is to be stored in an Am29000 g.p. register +; with a read_dp, read_sp, or read_int macro. +; +; source1, +; source2, +; source3 - source operand specifications: +; R - take source from Am29027 register R +; S - take source from Am29027 register S +; RF0 - take source from Am29027 register file location RF0 +; RF1 - take source from Am29027 register file location RF1 +; RF2 - take source from Am29027 register file location RF2 +; RF3 - take source from Am29027 register file location RF3 +; RF4 - take source from Am29027 register file location RF4 +; RF5 - take source from Am29027 register file location RF5 +; RF6 - take source from Am29027 register file location RF6 +; RF7 - take source from Am29027 register file location RF7 +; 0 - source is 0 +; ONE_HALF - source is constant .5 (f.p. operations only) +; IMINUS1 - source is constant -1 (integer operations only) +; 1 - source is constant 1 +; 2 - source is constant 2 +; 3 - source is constant 3 +; PI - source is constant pi (f.p. operations only) +; IMINUSMAX - source is -(2**63) (integer operations only) +; +; +; USAGE: +; +; cp_build_inst_l reg,op_code,[precision,]dest,source1[,source2][,source3] +; +; This macro is similar to cp_build_inst, but creates only the 16 LSBs +; of the 32-bit Am29027 instruction word; the 16 MSBs of the target +; register are set to 0. This macro is useful in cases +; where it is helpful to specify instruction LSBs and MSBs separately, +; to improve instruction scheduling. +; +; Syntax and usage are identical to that of cp_build_inst. +; +; NOTE: This macro references macro _cp_set_op_params, which appears +; in the assembly listing for macro _cp_build_inst. +; +; +;============================================================================ +; + .macro cp_build_inst_l,p1,p2,p3,p4,p5,p6,p7 +; + .if $narg<=3 + .err + .print "cp_build_inst_h: missing parameter(s)" + .exitm + .endif +; +; classify operation type +; + .set _cp_op_type,255 + + _cp_set_op_params p2,FADD,1,5,4,0,5 + _cp_set_op_params p2,DADD,1,5,4,0,5 + _cp_set_op_params p2,FSUB,1,5,4,0,5 + _cp_set_op_params p2,DSUB,1,5,4,0,5 + _cp_set_op_params p2,FMUL,1,5,4,5,0 + _cp_set_op_params p2,DMUL,1,5,4,5,0 + _cp_set_op_params p2,FEQ,1,5,4,0,5 + _cp_set_op_params p2,DEQ,1,5,4,0,5 + _cp_set_op_params p2,FGE,1,5,4,0,5 + _cp_set_op_params p2,DGE,1,5,4,0,5 + _cp_set_op_params p2,FGT,1,5,4,0,5 + _cp_set_op_params p2,DGT,1,5,4,0,5 + _cp_set_op_params p2,CONVERT_I_TO_F,1,4,0,0,4 + _cp_set_op_params p2,CONVERT_I_TO_D,1,4,0,0,4 + _cp_set_op_params p2,CONVERT_F_TO_I,1,4,0,0,4 + _cp_set_op_params p2,CONVERT_D_TO_I,1,4,0,0,4 +; +; The next two lines were corrected on 1-4-89, Rich Parker +; + _cp_set_op_params p2,CONVERT_F_TO_D,1,4,4,0,0 + _cp_set_op_params p2,CONVERT_D_TO_F,1,4,4,0,0 +; + _cp_set_op_params p2,PASS_P,0,5,5,0,0 + _cp_set_op_params p2,MINUSP,0,5,5,0,0 + _cp_set_op_params p2,ABSP,0,5,5,0,0 + _cp_set_op_params p2,SIGNT_TIMES_ABSP,0,6,6,0,5 + _cp_set_op_params p2,P_PLUS_T,0,6,5,0,6 + _cp_set_op_params p2,P_MINUS_T,0,6,5,0,6 + _cp_set_op_params p2,MINUSP_PLUS_T,0,6,5,0,6 + _cp_set_op_params p2,MINUSP_MINUS_T,0,6,5,0,6 + _cp_set_op_params p2,ABS_P_PLUS_T,0,6,5,0,6 + _cp_set_op_params p2,ABS_P_MINUS_T,0,6,5,0,6 + _cp_set_op_params p2,ABSP_PLUS_ABST,0,6,5,0,6 + _cp_set_op_params p2,ABSP_MINUS_ABST,0,6,5,0,6 + _cp_set_op_params p2,ABS_ABSP_MINUS_ABST,0,6,5,0,6 + _cp_set_op_params p2,P_TIMES_Q,0,6,5,6,0 + _cp_set_op_params p2,MINUSP_TIMES_Q,0,6,5,6,0 + _cp_set_op_params p2,ABS_P_TIMES_Q,0,6,5,6,0 + _cp_set_op_params p2,COMPARE_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,MAX_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,MAX_ABSP_AND_ABST,0,6,5,0,6 + _cp_set_op_params p2,MIN_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,MIN_ABSP_AND_ABST,0,6,5,0,6 + _cp_set_op_params p2,LIMIT_P_TO_MAGT,0,6,5,0,6 + _cp_set_op_params p2,CONVERT_T_TO_INT,0,5,0,0,5 + _cp_set_op_params p2,SCALE_T_TO_INT_BY_Q,0,6,0,6,5 + _cp_set_op_params p2,PQ_PLUS_T,0,7,5,6,7 + _cp_set_op_params p2,MINUSPQ_PLUS_T,0,7,5,6,7 + _cp_set_op_params p2,PQ_MINUS_T,0,7,5,6,7 + _cp_set_op_params p2,MINUSPQ_MINUS_T,0,7,5,6,7 + _cp_set_op_params p2,ABSPQ_PLUS_ABST,0,7,5,6,7 + _cp_set_op_params p2,MINUSABSPQ_PLUS_ABST,0,7,5,6,7 + _cp_set_op_params p2,ABSPQ_MINUS_ABST,0,7,5,6,7 + _cp_set_op_params p2,ROUND_T_TO_INT,0,5,0,0,5 + _cp_set_op_params p2,RECIPROCAL_OF_P,0,5,5,0,0 + _cp_set_op_params p2,CONVERT_T_TO_ALT,0,5,0,0,5 + _cp_set_op_params p2,CONVERT_T_FROM_ALT,0,5,0,0,5 + _cp_set_op_params p2,I_PASS_P,0,5,5,0,0 + _cp_set_op_params p2,I_MINUSP,0,5,5,0,0 + _cp_set_op_params p2,I_ABSP,0,5,5,0,0 + _cp_set_op_params p2,I_SIGNT_TIMES_ABSP,0,6,6,0,5 + _cp_set_op_params p2,I_P_PLUS_T,0,6,5,0,6 + _cp_set_op_params p2,I_P_MINUS_T,0,6,5,0,6 + _cp_set_op_params p2,I_MINUSP_PLUS_T,0,6,5,0,6 + _cp_set_op_params p2,I_ABS_P_PLUS_T,0,6,5,0,6 + _cp_set_op_params p2,I_ABS_P_MINUS_T,0,6,5,0,6 + _cp_set_op_params p2,I_P_TIMES_Q,0,6,5,6,0 + _cp_set_op_params p2,I_COMPARE_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,I_MAX_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,I_MIN_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,I_CONVERT_T_TO_FLOAT,0,5,0,0,5 + _cp_set_op_params p2,I_SCALE_T_TO_FLOAT_BY_Q,0,6,0,6,5 + _cp_set_op_params p2,I_P_OR_T,0,6,5,0,6 + _cp_set_op_params p2,I_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,I_P_XOR_T,0,6,5,0,6 + _cp_set_op_params p2,I_NOT_T,0,5,0,0,5 + _cp_set_op_params p2,I_LSHIFT_P_BY_Q,0,6,5,6,0 + _cp_set_op_params p2,I_ASHIFT_P_BY_Q,0,6,5,6,0 + _cp_set_op_params p2,I_FSHIFT_PT_BY_Q,0,7,5,7,6 + _cp_set_op_params p2,MOVE_P,0,5,5,0,0 +; +; +; if we couldn't find the op_code, flag an error +; + .if _cp_op_type>=2 + .err + .print "cp_build_inst_h: invalid Am29027 instruction mnemonic" + .exitm + .endif +; +; if number of parameters is incorrect, flag error +; + .if $narg!=_cp_no_params + .err + .print "cp_build_inst_h: incorrect number of parameters" + .exitm + .endif +; +; find correct value for precision field, if appropriate +; + .set _cp_prec_field,0 ; CORRECTION (1-4-89 Rich Parker) + .if _cp_op_type==0 ; need to look for precision + .set _cp_found_precision,0 + .ifeqs "@p3@","D_D" + .set _cp_prec_field,CP_@p3 + .set _cp_found_precision,1 + .endif + .ifeqs "@p3@","D_S" + .set _cp_prec_field,CP_@p3 + .set _cp_found_precision,1 + .endif + .ifeqs "@p3@","S_D" + .set _cp_prec_field,CP_@p3 + .set _cp_found_precision,1 + .endif + .ifeqs "@p3@","S_S" + .set _cp_prec_field,CP_@p3 + .set _cp_found_precision,1 + .endif + .if _cp_found_precision==0 + .err + .print "cp_build_inst_h: missing precision field" + .exitm + .endif + .endif +; +; find value for destination field +; + .if _cp_op_type==0 + .set _cp_dest_field_val,CP_DEST_EQ_@p4 + .else + .set _cp_dest_field_val,CP_DEST_EQ_@p3 + .endif +; +; find correct value for p select field +; + .if _cp_p_paramno==0 + .set _cp_p_field_val,0x00000000 + .endif + .if _cp_p_paramno==4 + .set _cp_p_field_val,CP_P_EQ_@p4 + .endif + .if _cp_p_paramno==5 + .set _cp_p_field_val,CP_P_EQ_@p5 + .endif + .if _cp_p_paramno==6 + .set _cp_p_field_val,CP_P_EQ_@p6 + .endif + .if _cp_p_paramno==7 + .set _cp_p_field_val,CP_P_EQ_@p7 + .endif + .ifeqs "@p2@","I_NOT_T" + .set _cp_p_field_val,CP_P_EQ_IMINUS1 + .endif +; +; find correct value for q select field +; + .if _cp_q_paramno==0 + .set _cp_q_field_val,0x00000000 + .endif + .if _cp_q_paramno==4 + .set _cp_q_field_val,CP_Q_EQ_@p4 + .endif + .if _cp_q_paramno==5 + .set _cp_q_field_val,CP_Q_EQ_@p5 + .endif + .if _cp_q_paramno==6 + .set _cp_q_field_val,CP_Q_EQ_@p6 + .endif + .if _cp_q_paramno==7 + .set _cp_q_field_val,CP_Q_EQ_@p7 + .endif +; +; find correct value for t select field +; + .if _cp_t_paramno==0 + .set _cp_t_field_val,0x00000000 + .endif + .if _cp_t_paramno==4 + .set _cp_t_field_val,CP_T_EQ_@p4 + .endif + .if _cp_t_paramno==5 + .set _cp_t_field_val,CP_T_EQ_@p5 + .endif + .if _cp_t_paramno==6 + .set _cp_t_field_val,CP_T_EQ_@p6 + .endif + .if _cp_t_paramno==7 + .set _cp_t_field_val,CP_T_EQ_@p7 + .endif +; +; + .set _cp_inst_word,CP_@p2@|_cp_prec_field|_cp_dest_field_val + .set _cp_inst_word,_cp_inst_word|_cp_p_field_val + .set _cp_inst_word,_cp_inst_word|_cp_q_field_val + .set _cp_inst_word,_cp_inst_word|_cp_t_field_val +; + const p1,_cp_inst_word +; + .endm +; +; end of file fpsymbol.h
sys/fpsymbol.h Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: sys/proreg.h =================================================================== --- sys/proreg.h (nonexistent) +++ sys/proreg.h (revision 520) @@ -0,0 +1,60 @@ +; @(#)proreg.h 1.3 90/10/14 20:56:11, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1989, 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; proreg.h +; + ; 16 function value return regs + .reg v0, gr96 + .reg v1, gr97 + .reg v2, gr98 + .reg v3, gr99 + .reg v4, gr100 + .reg v5, gr101 + .reg v6, gr102 + .reg v7, gr103 + .reg v8, gr104 + .reg v9, gr105 + .reg v10, gr106 + .reg v11, gr107 + .reg v12, gr108 + .reg v13, gr109 + .reg v14, gr110 + .reg v15, gr111 +; + .reg rsp, gr1 ; Register Stack Pointer + .reg ret, gr96 ; First word of return value + .reg rp0, gr112 ; Reserved for Programmer, #0 + .reg rp1, gr113 ; Reserved for Programmer, #1 + .reg rp2, gr114 ; Reserved for Programmer, #2 + .reg rp3, gr115 ; Reserved for Programmer, #3 + .reg tav, gr121 ; Temporary, Argument for Trap Handlers + .reg tpc, gr122 ; Temporary, Return PC for Trap Handlers + .reg lrp, gr123 ; Large Return Pointer + .reg slp, gr124 ; Static Link Pointer + .reg msp, gr125 ; Memory Stack Pointer + .reg rab, gr126 ; Register Allocate Bound + .reg rfb, gr127 ; Register Free Bound
sys/proreg.h Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: sys/intrinsi.h =================================================================== --- sys/intrinsi.h (nonexistent) +++ sys/intrinsi.h (revision 520) @@ -0,0 +1,457 @@ +; @(#)intrinsi.h 1.4 90/10/14 20:56:06, Copyright 1988, 1989, 1990 AMD +; start of file intrinsi.h +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; + .title "QTC Intrinsics Header file" +; +; Floating point library package for AMD 29000 family +; +; Copyright 1988 Advanced Micro Devices, Inc. +; +; All rights reserved +; +; Developed for AMD by Quantitative Technology Corporation +; 8700 SW Creekside Place Suite D +; Beaverton OR 97005 +; (503) 626-3081 +; +; Version information : +; +; Revision 1.6 89/06/29 16:08:51 jimh +; Fixed two bugs regarding compatiblility with the fpsymbol file. The +; definitions of ROUND_TO_PLUS/MINUS_INFINITY were reversed. Set_Rounding +; _Mode was fixed to set the local copy (29000 resident) of rounding mode +; in 29027 mode. +; +; +; Revision 1.5 89/04/17 11:20:49 jim +; replaced emfsr and emtsr macro calls with mfsr and mtsr instructions. +; +; Revision 1.4 89/02/24 15:18:04 jimh +; Added the definitions of FP_ENV_MODE_1_DEFAULT, FP_ENV_MODE_2_DEFAULT, +; FP_FLAGS_DEFAULT. +; Added macro clear_Flags. +; Changed the operation of set_Invalid_Op_flag, set_Reserved_Op_flag. +; +; Revision 1.3 89/02/01 18:30:12 jimh +; Changed the way set_Rounding_Mode, extract_Rounding_Mode, set_Invalid_Op_flag +; and set_Reserved_Op_flag are done. Changed save_FP_regs. +; +; Revision 1.2 89/01/31 10:01:54 jimh +; Updated to the new standard. This includes moving in register +; definitions, changing old symbols to reflect those in fpsymbol.h, +; and changing the include file to smartmac.h. +; +; + .include "../traps/fpenv.h" ; RPD 8/21/89 + .include "sys/smartmac.h" + + .equ DOUBLE_EXP_WIDTH, 11 + .equ DOUBLE_EXTENDED_WIDTH, 56 + + .equ SIGNED, 0 + .equ UNSIGNED, 1 + + .equ ROUND_TO_NEAREST, 0 + .equ ROUND_TO_MINUS_INFINITY, 1 + .equ ROUND_TO_PLUS_INFINITY, 2 + .equ ROUND_TO_ZERO, 3 + .equ ROUNDING_MODE_POSITION, 14 + + .equ FORMAT_INTEGER, 0 + .equ FORMAT_SINGLE, 1 + .equ FORMAT_DOUBLE, 2 + + .equ DOUBLE_MSB_MASK,0x00080000 +; +; The following are definitions used in the smart macro package, defining +; the 29000 shadow registers for the floating-point register file, and +; some temporary registers used during the library routines +; + .reg FP0, gr96 + .reg FP1, gr98 + .reg FP2, gr100 + .reg FP3, gr102 + .reg FP4, gr104 + .reg FP5, gr106 + .reg FP6, gr108 + .reg FP7, gr110 +; +; GR60 through GR6F are used to return the value of a function +; + .reg rtn0, gr96 + .reg rtn1, gr97 + .reg rtn2, gr98 + .reg rtn3, gr99 + .reg rtn4, gr100 + .reg rtn5, gr101 + .reg rtn6, gr102 + .reg rtn7, gr103 + .reg rtn8, gr104 + .reg rtn9, gr105 + .reg rtn10, gr106 + .reg rtn11, gr107 + .reg rtn12, gr108 + .reg rtn13, gr109 + .reg rtn14, gr110 + .reg rtn15, gr111 +; +; GR74..GR78 (116-120) - temporaries +; + .reg t0, gr116 + .reg t1, gr117 + .reg t2, gr118 + .reg t3, gr119 + .reg t4, gr120 +; +; FP_ENV_MODE_1 and FP_ENV_MODE_2 are based on 64-bit 29027 Mode register, +; and thus the fpsymbol.h CP_ constants may be used directly. +; +; FP_ENV_MODE_1 (Bits 0-31) +; +; 0-3 - floating-point format select, always 0 +; 4 - Saturate enable +; 5 - IEEE Affine/Projective mode (ignored by traps code) +; 6 - IEEE Trap enable +; 7 - IEEE Sudden underflow / FP Environment Fast Float Select +; 8-10 - ignored +; 11 - Integer multiplication signed/unsigned select +; 12-13 - Integer multiplication format adjust +; 14-16 - Rounding mode select +; 17-19 - ignored +; 20 - Pipeline mode select +; 21 - ignored +; 22 - Invalid operation mask bit +; 23 - Reserved operand mask bit +; 24 - Overflow mask bit +; 25 - Underflow mask bit +; 26 - Inexact result mask bit +; 27 - Zero mask bit +; 28-31 - ignored +; +; FP_ENV_MODE_2 (Bits 32-63) [Hardware configuration register, rarely modified] +; +; 32-35 - Pipeline timer count +; 36-39 - Timer count for multiply-accumulate operation +; 40-43 - Timer count for save state transaction request +; 44-63 - ignored +; +; FP_ENV_MODE_1 definitions +; + .set FP_ENV_MODE_1_DEFAULT, CP_PFF_EQ_IEEE + .set FP_ENV_MODE_1_DEFAULT,FP_ENV_MODE_1_DEFAULT|CP_AFF_EQ_IEEE + .set FP_ENV_MODE_1_DEFAULT,FP_ENV_MODE_1_DEFAULT|CP_AFFINE_MODE + .set FP_ENV_MODE_1_DEFAULT,FP_ENV_MODE_1_DEFAULT|CP_IEEE_TRAPS_DISABLED + .set FP_ENV_MODE_1_DEFAULT,FP_ENV_MODE_1_DEFAULT|CP_IEEE_GRADUAL_UFLOW_MODE + .set FP_ENV_MODE_1_DEFAULT,FP_ENV_MODE_1_DEFAULT|CP_UNSIGNED_INT_MPY_MODE + .set FP_ENV_MODE_1_DEFAULT,FP_ENV_MODE_1_DEFAULT|CP_MF_EQ_LSBS + .set FP_ENV_MODE_1_DEFAULT,FP_ENV_MODE_1_DEFAULT|CP_RMS_EQ_NEAREST + .set FP_ENV_MODE_1_DEFAULT,FP_ENV_MODE_1_DEFAULT|CP_FLOWTHROUGH_MODE + .set FP_ENV_MODE_1_DEFAULT,FP_ENV_MODE_1_DEFAULT|CP_INVALID_OP_EXCP_MASK + .set FP_ENV_MODE_1_DEFAULT,FP_ENV_MODE_1_DEFAULT|CP_RESERVED_OP_EXCP_MASK + .set FP_ENV_MODE_1_DEFAULT,FP_ENV_MODE_1_DEFAULT|CP_OVERFLOW_EXCP_MASK + .set FP_ENV_MODE_1_DEFAULT,FP_ENV_MODE_1_DEFAULT|CP_UNDERFLOW_EXCP_MASK + .set FP_ENV_MODE_1_DEFAULT,FP_ENV_MODE_1_DEFAULT|CP_INEXACT_EXCP_MASK + .set FP_ENV_MODE_1_DEFAULT,FP_ENV_MODE_1_DEFAULT|CP_ZERO_EXCP_MASK +; +; FP_ENV_MODE_2 definitions +; + .set FP_ENV_MODE_2_DEFAULT, CP_PLTC_EQ_6 + .set FP_ENV_MODE_2_DEFAULT,FP_ENV_MODE_2_DEFAULT|CP_MATC_EQ_9 + .set FP_ENV_MODE_2_DEFAULT,FP_ENV_MODE_2_DEFAULT|CP_MVTC_EQ_3 + .set FP_ENV_MODE_2_DEFAULT,FP_ENV_MODE_2_DEFAULT|CP_NORMAL_DRDY_MODE + .set FP_ENV_MODE_2_DEFAULT,FP_ENV_MODE_2_DEFAULT|CP_HALT_ON_ERROR_DISABLED + .set FP_ENV_MODE_2_DEFAULT,FP_ENV_MODE_2_DEFAULT|CP_EXCP_DISABLED +; +; FP_FLAGS_DEFAULT definitions +; + .equ FP_FLAGS_DEFAULT, 0x00000000 ; No flags set +; +; The following macros are used by transcendentals to access the environment. +; +; MACRO NAME: clear_Flags +; +; FUNCTION: to clear the flags on entry to a transcendental routine. +; +; INPUT PARAMETERS: reg - temporary working register +; reg2 - temporary working register +; + .macro clear_Flags,reg,reg2 + .endm +; +; MACRO NAME: set_Invalid_Op_flag +; +; FUNCTION: to set the Invalid operation flag in the floating-point status +; register +; +; INPUT PARAMETERS: reg - temporary working register +; reg2 - 2nd temporary working register +; + .macro set_Invalid_Op_flag,reg,reg2 + .endm + +; +; MACRO NAME: set_Reserved_Op_flag +; +; FUNCTION: to set the Reserved Op flag in the floating-point status register +; +; INPUT PARAMETERS: reg - temporary working register +; reg2 - 2nd temporary working register +; + .macro set_Reserved_Op_flag,reg,reg2 + .endm + +; +; MACRO NAME: extract_Rounding_Mode +; +; FUNCTION: to extract the Rounding Mode portion of the floating-point +; invironment mode register, shift the value to the range of +; 0-7, and leave it in a register +; +; INPUT PARAMETERS: reg - destination for the mode +; + .macro extract_Rounding_Mode,reg + .ifdef _29027_MODE + .extern __29027Mode + const reg,__29027Mode + consth reg,__29027Mode + load 0,0,reg,reg + srl reg,reg,CP_RMS_POSITION + and reg,reg,CP_RMS_MASK >> CP_RMS_POSITION + .else + mfsr reg,FPE + and reg,reg,FPE_FPRND_MASK + srl reg,reg,FPE_FPRND_POSITION + .endif + .endm + +; +; MACRO NAME: set_Rounding_Mode +; +; FUNCTION: to set the 29027 Rounding Mode to a given value +; +; INPUT PARAMETERS: reg - working register +; reg2 - second working register +; rounding_mode - value of the rounding mode +; 0 - round to nearest +; 1 - round to minus infinity +; 2 - round to plus infinity +; 3 - round to zero +; +; NOTES: rounding_mode value is not checked +; 29027 Mode register is NOT written by this macro +; + .macro set_Rounding_Mode,reg,reg2,mode + .ifdef _29027_MODE + .extern __29027Mode + const reg2,__29027Mode + consth reg2,__29027Mode + load 0,0,reg,reg2 + const reg2,CP_RMS_MASK + consth reg2,CP_RMS_MASK + andn reg,reg,reg2 + const reg2,mode + sll reg2,reg2,CP_RMS_POSITION + or reg,reg,reg2 + const reg2,__29027Mode + consth reg2,__29027Mode + store 0,0,reg,reg2 + add reg2,reg2,4 + load 0,0,reg2,reg2 + cp_write_mode reg2,reg + .else + mfsr reg,FPE + andn reg,reg,FPE_FPRND_MASK + const reg2,mode + sll reg2,reg2,FPE_FPRND_POSITION + or reg,reg,reg2 + mtsr FPE,reg + .endif + .endm +; +; +; NOTE: The 29027 is the floating point coprocessor for the 29000. +; It contains 8 floating point registers FP0 to FP7. Three of +; these, FP0, FP1, and FP2, are currently designated as scratch, +; that is, they will not be preserved across calls. The other +; five contain values that must be saved whenever they are used +; in code, and restored before the exit of the routine. The 29027 +; registers are tagged with a single bit indicating the precision +; of the current value. When numbers are read into the 29027, +; they are always stored in double precision, so that single +; precision values are converted on input. Only the MOVE instruction +; fails to do this automatic widening. If the result from calculations +; in the 29027 ALU (determined by the result precision bit in the +; instruction word) is to be single precision and the result saved in +; an FP reg, the result precision bit from the instruction gets copied +; into the precision bit for the register. If a single precision +; SNaN is saved from the 29027, it will be converted to a double +; precision QNaN. Along the way it will cause an unmasked exception +; when read off the chip and cause changes to the status register. +; So the preservation routine will need to modify the mode register to +; mask off the exceptions, save the state of the status register before +; saving the FP regs, and restore the status and mode registers to their +; original settings when the save is complete. +; +; REFERENCE: The instructions to drive the Am29027 are described in the +; Am29027 manual beginning on page 17. Table 4 describes the +; operation codes and table 3 the multiplexer codes. Communication +; with the 29000 is described on pages 11 and 12 of the Am29027 +; manual and chapters 6 and 8 of the Am29000 User's Manual +; +; MACRO NAME: save_FP_regs +; +; FUNCTION: to save the AMD 29027 floating point register values in the +; 29000 general purpose registers +; +; INPUT PARAMETERS: fp_register, one of the 29027 registers FP3 - FP7 +; +; REGISTER USAGE: the following registers are used in save_FP_regs +; +; rtn0 this register is used in setting the mode and status registers +; rtn1 this register is used in setting the mode and status registers +; rtn6 this register is used to store the MSW when FP3 is saved +; rtn7 this register is used to store the LSW when FP3 is saved +; rtn8 this register is used to store the MSW when FP4 is saved +; rtn9 this register is used to store the LSW when FP4 is saved +; + + .macro save_FP_regs,fp_register + .ifdef _29027_MODE + ; + ; For 29027 mode, expand the macro into 29027 code to preserve FP register + ; + .ifeqs "@fp_register@","FP3" + const rtn6,__29027Mode ; Load the address of FP mode + consth rtn6,__29027Mode + load 0,0,rtn0,rtn6 ; Load MSW of FP mode into rtn0 + add rtn6,rtn6,4 ; Increment rtn6 + 4 + load 0,0,rtn1,rtn6 ; Load LSW of FP mode into rtn1 + const rtn6,CP_RESERVED_OP_EXCP_MASK ; Load mask to disable exception + consth rtn6,CP_RESERVED_OP_EXCP_MASK + or rtn0,rtn0,rtn6 ; OR in disable of exception mask + cp_write_mode rtn1, rtn0 ; Reset mode w/exception disabled + cp_read_status rtn0 ; Read status and save in rtn1 + const rtn6,CP_PASS_P | CP_P_EQ_RF3 ; Instruction is PASS_P from RF3 + consth rtn6,CP_PASS_P | CP_P_EQ_RF3 + ; Load & execute the instruction + ; + store 1,CP_WRITE_INST | CP_START,rtn6,rtn6 + load 1,CP_READ_MSBS,rtn6,rtn6 ; Read the MSW to first register + load 1,CP_READ_LSBS,rtn7,rtn7 ; Read the LSW to second register + cp_write_status rtn0 ; Restore the original status + const rtn1,__29027Mode ; Load the address of FP mode + consth rtn1,__29027Mode + load 0,0,rtn0,rtn1 ; Load MSW of FP mode into rtn0 + add rtn1,rtn1,4 ; Increment rtn6 to __29027Mode+4 + load 0,0,rtn1,rtn1 ; Load LSW of FP mode into rtn1 + cp_write_mode rtn1, rtn0 ; Restore the original write mode + .endif + .ifeqs "@fp_register@","FP4" + const rtn8,__29027Mode ; Load the address of FP mode + consth rtn8,__29027Mode + load 0,0,rtn0,rtn8 ; Load MSW of FP mode into rtn0 + add rtn8,rtn8,4 ; Increment rtn6 + 4 + load 0,0,rtn1,rtn8 ; Load LSW of FP mode into rtn1 + const rtn8,CP_RESERVED_OP_EXCP_MASK ; Load mask to disable exception + consth rtn8,CP_RESERVED_OP_EXCP_MASK + or rtn0,rtn0,rtn8 ; OR in disable of exception mask + cp_write_mode rtn1, rtn0 ; Reset mode w/exception disabled + cp_read_status rtn0 ; Read status and save in rtn1 + const rtn8,CP_PASS_P | CP_P_EQ_RF4 ; Instruction is PASS_P from RF4 + consth rtn8,CP_PASS_P | CP_P_EQ_RF4 + ; Load & execute the instruction + ; + store 1,CP_WRITE_INST | CP_START,rtn8,rtn8 + load 1,CP_READ_MSBS,rtn8,rtn8 ; Read the MSW to first register + load 1,CP_READ_LSBS,rtn9,rtn9 ; Read the LSW to second register + cp_write_status rtn0 ; Restore the original status + const rtn1,__29027Mode ; Load the address of FP mode + consth rtn1,__29027Mode + load 0,0,rtn0,rtn1 ; Load MSW of FP mode into rtn0 + add rtn1,rtn1,4 ; Increment rtn6 + 4 + load 0,0,rtn1,rtn1 ; Load LSW of FP mode into rtn1 + cp_write_mode rtn1, rtn0 ; Restore the original write mode + .endif + .else + ; + ; For 29000 mode, do nothing + ; + .endif + .endm +; +; MACRO NAME: restore_FP_regs +; +; FUNCTION: to restore the AMD 29027 floating point register values from the +; 29000 general purpose registers +; +; INPUT PARAMETERS: fp_register, one of the 29027 registers FP3 - FP7 +; +; REGISTER USAGE: the following registers are used in restore_FP_regs +; +; rtn0 this register is used in setting the mode and status registers +; rtn6 the value in this register is stored as the MSW of FP3 +; rtn7 the value in this register is stored as the LSW of FP3 +; rtn8 the value in this register is stored as the MSW of FP4 +; rtn9 the value in this register is stored as the LSW of FP4 +; + .macro restore_FP_regs,fp_register + .ifdef _29027_MODE + ; + ; For 29027 mode, move data from return registers to the correct FP register + ; + .ifeqs "@fp_register@","FP3" + store 1,CP_WRITE_R ,rtn6,rtn7 ; Move the data to the R register + ; Then create the instruction + ; + const rtn0,CP_MOVE_P|CP_D_D|CP_P_EQ_R|CP_DEST_EQ_RF3 + consth rtn0,CP_MOVE_P|CP_D_D|CP_P_EQ_R|CP_DEST_EQ_RF3 + ; + ; Perform the write + ; + store 1,(CP_WRITE_INST | CP_START),rtn0,0 + .endif + .ifeqs "@fp_register@","FP4" + store 1,CP_WRITE_R ,rtn8,rtn9 ; Move the data to the R register + ; Then create the instruction + ; + const rtn0,CP_MOVE_P|CP_D_D|CP_P_EQ_R|CP_DEST_EQ_RF4 + consth rtn0,CP_MOVE_P|CP_D_D|CP_P_EQ_R|CP_DEST_EQ_RF4 + ; + ; Perform the write + ; + store 1,(CP_WRITE_INST | CP_START),rtn0,0 + .endif + .else + ; + ; For 29000 mode, do nothing. + ; + .endif + .endm +; +; end of file intrinsi.h
sys/intrinsi.h Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: sys/sysmac.h =================================================================== --- sys/sysmac.h (nonexistent) +++ sys/sysmac.h (revision 520) @@ -0,0 +1,165 @@ +; @(#)sysmac.h 1.7 90/10/14 20:56:17, Copyright 1988, 1989, 1990 AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1988, 1989, 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; sysmac.h +; + .include "sys/proreg.h" + +; Supported system call function numbers - BSD emulation + + .equ BSD_exit, 1 + .equ BSD_open, 5 + .equ BSD_close, 6 + .equ BSD_remove, 10 + .equ BSD_lseek, 19 + .equ BSD_sbrk, 69 + .equ BSD_readv, 120 + .equ BSD_writev, 121 + .equ BSD_rename, 128 +; Functions above 0x100 are handled by Am29000 code + .equ BSD_alloc, 0x101 + .equ BSD_free, 0x102 + .equ BSD_getpagesize, 0x103 + + .equ BSD_clock, 0x111 + +; Supported system call function numbers - HIF version 2.0 + + .equ HIF_exit, 0x01 + + .equ HIF_open, 0x11 + .equ HIF_close, 0x12 + .equ HIF_read, 0x13 + .equ HIF_write, 0x14 + .equ HIF_lseek, 0x15 + .equ HIF_remove, 0x16 + .equ HIF_rename, 0x17 + .equ HIF_ioctl, 0x18 + .equ HIF_iowait, 0x19 + .equ HIF_iostat, 0x1a + + .equ HIF_tmpnam, 0x21 + + .equ HIF_time, 0x31 + + .equ HIF_getenv, 0x41 + .equ HIF_gettz, 0x43 + + .equ HIF_sysalloc, 0x101 + .equ HIF_alloc, HIF_sysalloc ;Synonym. + .equ HIF_sysfree, 0x102 + .equ HIF_free, HIF_sysfree ;Synonym. + .equ HIF_getpsize, 0x103 + .equ HIF_getpagesize,HIF_getpsize ;Synonym. + .equ HIF_getargs, 0x104 + + .equ HIF_clock, 0x111 + .equ HIF_cycles, 0x112 + + .equ HIF_setvec, 0x121 + .equ HIF_settrap, 0x122 + .equ HIF_setim, 0x123 + + .equ HIF_query, 0x131 + + .equ HIF_signal, 0x141 + .equ HIF_sigdfl, 0x142 + .equ HIF_sigret, 0x143 + .equ HIF_sigrep, 0x144 + .equ HIF_sigskp, 0x145 + .equ HIF_sendsig, 0x146 + +;Maintain compatibility with HIF 1.0 code. + + .equ EPI_exit, HIF_exit + + .equ EPI_open, HIF_open + .equ EPI_close, HIF_close + .equ EPI_read, HIF_read + .equ EPI_write, HIF_write + .equ EPI_lseek, HIF_lseek + .equ EPI_remove, HIF_remove + .equ EPI_rename, HIF_rename + + .equ EPI_tmpnam, HIF_tmpnam + + .equ EPI_time, HIF_time + + .equ EPI_getenv, HIF_getenv + .equ EPI_gettz, HIF_gettz + .equ EPI_alloc, HIF_sysalloc + .equ EPI_free, HIF_sysfree + .equ EPI_getpagesize, HIF_getpsize + .equ EPI_getargs, HIF_getargs + + .equ EPI_clock, HIF_clock + .equ EPI_cycles, HIF_cycles + + .equ EPI_setvec, HIF_setvec + + .equ V_SYSCALL, 69 + +; System call macros +/* Now that source files have been sed'd to avoid these macros, they + are just commented out. -- gnu@cygnus.com Oct 90 + + .ifdef _BSD_OS + .equ V_SYSCALL, 66 + .else + .equ V_SYSCALL, 69 + .endif + + .macro syscall, name + .ifdef _BSD_OS + const tav, SYS_@name + .else + const tav, HIF_@name + .endif + asneq V_SYSCALL, gr1, gr1 + .endm + +; error return +; set errno to the error value in tav. +; return -1 +; + .macro returnerr +;; .extern _errno ; rather have undef'd sym than multiple def's + const tpc, _errno + consth tpc, _errno + store 0, 0, tav, tpc + jmpi lr0 + constn v0, -1 + .endm + +; package the most common case in one macro +; + .macro system, name + syscall name + jmpti tav, lr0 + returnerr + .endm + */
sys/sysmac.h Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: sys/romdcl.h =================================================================== --- sys/romdcl.h (nonexistent) +++ sys/romdcl.h (revision 520) @@ -0,0 +1,392 @@ +; @(#)romdcl.h 1.4 90/10/14 20:56:12, Copyright 1988, 1989, 1990 AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + .sbttl "Register, Constant and Macro Declarations - v1.4" + +; Copyright 1988, Advanced Micro Devices +; Written by Gibbons and Associates, Inc. + +;v1.4 JG correct FUNCTION macro - fault in register padding to even + +;----------------------------------------------------------------------- +;Global registers +;----------------------------------------------------------------------- + .reg rsp, gr1 ;local reg. var. stack pointer + + .equ SYS_TEMP, 64 ;system temp registers + + .reg st0, gr64 + .reg st1, gr65 + .reg st2, gr66 + .reg st3, gr67 + .reg st4, gr68 + .reg st5, gr69 + .reg st6, gr70 + .reg st7, gr71 + .reg st8, gr72 + .reg st9, gr73 + .reg st10, gr74 + .reg st11, gr75 + .reg st12, gr76 + .reg st13, gr77 + .reg st14, gr78 + .reg st15, gr79 + + .equ SYS_STAT, 80 ;system static registers + + .reg ss0, gr80 + .reg ss1, gr81 + .reg ss2, gr82 + .reg ss3, gr83 + .reg ss4, gr84 + .reg ss5, gr85 + .reg ss6, gr86 + .reg ss7, gr87 + .reg ss8, gr88 + .reg ss9, gr89 + .reg ss10, gr90 + .reg ss11, gr91 + .reg ss12, gr92 + .reg ss13, gr93 + .reg ss14, gr94 + .reg ss15, gr95 + + .equ RET_VAL, 96 ;return registers + + .reg v0, gr96 + .reg v1, gr97 + .reg v2, gr98 + .reg v3, gr99 + .reg v4, gr100 + .reg v5, gr101 + .reg v6, gr102 + .reg v7, gr103 + .reg v8, gr104 + .reg v9, gr105 + .reg v10, gr106 + .reg v11, gr107 + .reg v12, gr108 + .reg v13, gr109 + .reg v14, gr110 + .reg v15, gr111 + + .equ TEMP_REG, 96 ;temp registers + + .reg t0, gr96 + .reg t1, gr97 + .reg t2, gr98 + .reg t3, gr99 + .reg t4, gr100 + .reg t5, gr101 + .reg t6, gr102 + .reg t7, gr103 + .reg t8, gr104 + .reg t9, gr105 + .reg t10, gr106 + .reg t11, gr107 + .reg t12, gr108 + .reg t13, gr109 + .reg t14, gr110 + .reg t15, gr111 + + .equ RES_REG, 112 ;reserved (for user) + + .reg r0, gr112 + .reg r1, gr113 + .reg r2, gr114 + .reg r3, gr115 + + .equ TEMP_EXT, 116 ;temp extension (and shared) + + .reg x0, gr116 + .reg x1, gr117 + .reg x2, gr118 + .reg x3, gr119 + .reg x4, gr120 + .reg x5, gr121 + .reg x6, gr122 + .reg x7, gr123 + .reg x8, gr124 + +;----------------------------------------------------------------------- +;Global registers with special calling convention uses +;----------------------------------------------------------------------- + + .reg tav, gr121 ;trap handler argument (also x6) + .reg tpc, gr122 ;trap handler return (also x7) + .reg lsrp, gr123 ;large return pointer (also x8) + .reg slp, gr124 ;static link pointer (also x9) + .reg msp, gr125 ;memory stack pointer + .reg rab, gr126 ;register alloc bound + .reg rfb, gr127 ;register frame bound + +;----------------------------------------------------------------------- +;Local compiler registers - output parameters, etc. +; (only valid if frame has been established) +;----------------------------------------------------------------------- + + .reg p15, lr17 ;parameter registers + .reg p14, lr16 + .reg p13, lr15 + .reg p12, lr14 + .reg p11, lr13 + .reg p10, lr12 + .reg p9, lr11 + .reg p8, lr10 + .reg p7, lr9 + .reg p6, lr8 + .reg p5, lr7 + .reg p4, lr6 + .reg p3, lr5 + .reg p2, lr4 + .reg p1, lr3 + .reg p0, lr2 + + +;----------------------------------------------------------------------- +;TLB register count +;----------------------------------------------------------------------- + + .equ TLB_CNT, 128 + + .eject + +;----------------------------------------------------------------------- +;constants for general use +;----------------------------------------------------------------------- + .equ WRD_SIZ, 4 ;word size + .equ TRUE, 0x80000000 ;logical true -- bit 31 + .equ FALSE, 0x00000000 ;logical false -- 0 + .equ CHKPAT_a5, 0xa5a5a5a5 ;check pattern + +;----------------------------------------------------------------------- +;constants for data access control +;----------------------------------------------------------------------- + .equ CE, 0b1 ;coprocessor enable + .equ CD, 0b0 ;coprocessor disable + + .equ AS, 0b1000000 ;set for I/O + .equ PA, 0b0100000 ;set for physical ad + .equ SB, 0b0010000 ;set for set BP + .equ UA, 0b0001000 ;set for user access + + .equ ROM_OPT, 0b100 ;OPT values for acc + .equ DATA_OPT, 0b000 + .equ INST_OPT, 0b000 + + .equ ROM_CTL, (PA + ROM_OPT) ;control field + .equ DATA_CTL, (PA + DATA_OPT) + .equ INST_CTL, (PA + INST_OPT) + .equ IO_CTL, (AS + PA + DATA_OPT) + + + .eject + +;----------------------------------------------------------------------- +;defined vectors +;----------------------------------------------------------------------- + + .equ V_IllegalOp, 0 + .equ V_Unaligned, 1 + .equ V_OutOfRange, 2 + .equ V_NoCoProc, 3 + .equ V_CoProcExcept, 4 + .equ V_ProtViol, 5 + .equ V_InstAccExcept, 6 + .equ V_DataAccExcept, 7 + .equ V_UserInstTLB, 8 + .equ V_UserDataTLB, 9 + .equ V_SupInstTLB, 10 + .equ V_SupDataTLB, 11 + .equ V_InstTLBProt, 12 + .equ V_DataTLBProt, 13 + .equ V_Timer, 14 + .equ V_Trace, 15 + .equ V_INTR0, 16 + .equ V_INTR1, 17 + .equ V_INTR2, 18 + .equ V_INTR3, 19 + .equ V_TRAP0, 20 + .equ V_TRAP1, 21 + + ; 22 - 31 reserved + + .equ V_MULTIPLY, 32 + .equ V_DIVIDE, 33 + .equ V_MULTIPLU, 34 + .equ V_DIVIDU, 35 + .equ V_CONVERT, 36 + + ; 37 - 41 reserved + + .equ V_FEQ, 42 + .equ V_DEQ, 43 + .equ V_FGT, 44 + .equ V_DGT, 45 + .equ V_FGE, 46 + .equ V_DGE, 47 + .equ V_FADD, 48 + .equ V_DADD, 49 + .equ V_FSUB, 50 + .equ V_DSUB, 51 + .equ V_FMUL, 52 + .equ V_DMUL, 53 + .equ V_FDIV, 54 + .equ V_DDIV, 55 + + ; 56 - 63 reserved + + .equ V_SPILL, 64 + .equ V_FILL, 65 + .equ V_BSDCALL, 66 + .equ V_SYSVCALL, 67 + .equ V_BRKPNT, 68 + .equ V_EPI_OS, 69 + + .eject + + .macro R_LEFT,REGVAR + + ;Rotate left + ; + ; Parameters: REGVAR register to rotate + + add REGVAR, REGVAR, REGVAR ;shift left by 1 bit, C = MSB + addc REGVAR, REGVAR, 0 ;add C to LSB + + .endm +;---------------------------------------------------------------------- + + + .macro FUNCTION,NAME,INCNT,LOCCNT,OUTCNT + + ;Introduces a non-leaf routine. + ; + ;This macro defines the standard tag word before the function, + ;then establishes the statement label with the function's name + ;and finally allocates a register stack frame. It may not be used + ;if a memory stack frame is required. + ; + ;Note also that the size of the register stack frame is limited. + ;Neither this nor the lack of a memory frame is considered to be + ;a severe restriction in an assembly language environment. The + ;assembler will report errors if the requested frame is too large + ;for this macro. + ; + ;It may be good practice to allocate an even number of both output + ;registers and local registers. This will help in maintaining + ;double word alignment within these groups. The macro will assure + ;double word alignment of the stack frame as a whole as required + ;for correct linkage. + ; + ; Paramters: NAME the function name + ; INCNT input parameter count + ; LOCCNT local register count + ; OUTCNT output parameter count + + .set ALLOC_CNT, ((2 + OUTCNT + LOCCNT) << 2) + .set PAD_CNT, (ALLOC_CNT & 4) + .set ALLOC_CNT, (ALLOC_CNT + PAD_CNT) + .set REG_PAD, (PAD_CNT >> 2) + .if (INCNT) + .set IN_PRM, (4 + OUTCNT + REG_PAD + LOCCNT + 0x80) + .endif + .if (LOCCNT) + .set LOC_REG, (2 + OUTCNT + REG_PAD + 0x80) + .endif + .if (OUTCNT) + .set OUT_PRM, (2 + 0x80) + .endif + + .word ((2 + OUTCNT + LOCCNT) << 16) +NAME: + sub rsp, rsp, ALLOC_CNT + asgeu V_SPILL, rsp, rab + add lr1, rsp, ((4 + OUTCNT + LOCCNT + REG_PAD + INCNT) << 2) + + .endm +;---------------------------------------------------------------------- + + + .macro LEAF,NAME,INCNT + + ;Introduces a leaf routine + ; + ;This macro defines the standard tag word before the function, + ;then establishes the statement label with the function's name. + ; + ; Paramters: NAME the function name + ; INCNT input parameter count + + .if (INCNT) + .set IN_PRM, (2 + 0x80) + .endif + .set ALLOC_CNT, 0 + + .word 0 +NAME: + + .endm +;---------------------------------------------------------------------- + + + .macro EPILOGUE + + ;De-allocates register stack frame (only and only if necessary). + + .if (ALLOC_CNT) + + add rsp, rsp, ALLOC_CNT + nop + jmpi lr0 + asleu V_FILL, lr1, rfb + + .else + + jmpi lr0 + nop + + .endif + + .set IN_PRM, (1024) ;illegal, to cause err on ref + .set LOC_REG, (1024) ;illegal, to cause err on ref + .set OUT_PRM, (1024) ;illegal, to cause err on ref + .set ALLOC_CNT, (1024) ;illegal, to cause err on ref + + .endm +;---------------------------------------------------------------------- + + +;Initial values for macro set variables to guard against misuse + + .set IN_PRM, (1024) ;illegal, to cause err on ref + .set LOC_REG, (1024) ;illegal, to cause err on ref + .set OUT_PRM, (1024) ;illegal, to cause err on ref + .set ALLOC_CNT, (1024) ;illegal, to cause err on ref + +;...................................................................... +; end of romdcl.h
sys/romdcl.h Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: sys/macros.h =================================================================== --- sys/macros.h (nonexistent) +++ sys/macros.h (revision 520) @@ -0,0 +1,37 @@ +; @(#)macros.h 1.3 90/10/14 20:56:10, Copyright 1989, 1990 AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1989, 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; macros.h +; Short macros of general utility + + .macro mov, dest,src + add dest, src, 0 + .endm + + .macro not, dest,src + nand dest, src, src + .endm
sys/macros.h Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: sys/cpudef.h =================================================================== --- sys/cpudef.h (nonexistent) +++ sys/cpudef.h (revision 520) @@ -0,0 +1,270 @@ +; @(#)cpudef.h 2.3 90/10/14 20:55:56, Copyright 1989, 1990 AMD +;----------------------------------------------------------------------- +; Useful equates +;----------------------------------------------------------------------- +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1989, 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + ; Processor status registers OPS (sr1) and CPS (sr2) + .equ CA,0x8000 ; Coprocessor active + .equ IP,0x4000 ; Interrupt pending + .equ TE,0x2000 ; Trace enable + .equ TP,0x1000 ; Trace pending + .equ TU,0x0800 ; Trap unaligned access + .equ FZ,0x0400 ; Freeze + .equ LK,0x0200 ; Lock + .equ RE,0x0100 ; ROM enable + .equ WM,0x0080 ; Wait mode + .equ PD,0x0040 ; No translation for Data + .equ PI,0x0020 ; No translation for Instr + .equ SM,0x0010 ; Supervisor mode + .equ IM,0x000C ; Interrupt mask + .equ IM1,0x0100 ; enable INTR0-1 + .equ IM2,0x1000 ; enable INTR0-2 + .equ IM3,0x1100 ; enable INTR0-3 + .equ DI,0x0002 ; Disable ints + .equ DA,0x0001 ; Disable ints and traps + + ; Configuration register CFG (sr3) + .equ PRL,0xFF000000 ; Processor release level + .equ VF,0x10 ; Vector fetch + .equ RV,0x08 ; ROM Vector area + .equ BO,0x04 ; Byte order + .equ CP,0x02 ; Coprocessor present + .equ CD,0x01 ; BTC disable + + ; Channel control register CHC (sr6) + .equ LS,0x8000 ; Load store + .equ ML,0x4000 ; Multiple operation + .equ ST,0x2000 ; Set + .equ LA,0x1000 ; Lock active + .equ TF,0x0400 ; Transaction faulted + .equ TR,0x03FC ; Target register + .equ NN,0x0002 ; Not needed + .equ CV,0x0001 ; Contents valid + + ; Timer reload register TMR (sr9) + .equ IE,0x01000000 ; timer int enable + .equ IN,0x02000000 ; timer int pending + .equ OV,0x04000000 ; timer Overflow + + ; MMU configuration register MMU (sr13) + .equ PS,0x300 ; Page size + .equ PID,0xFF ; Process identifier + + ; ALU status register ALU (sr132) + .equ DF,0x800 ; Divide flag + .equ V,0x400 ; Overflow + .equ N,0x200 ; Negative + .equ Z,0x100 ; Zero + .equ C,0x080 ; Carry + + ; TLB entry + .equ VTAG,0xFFFF8000 ; Virtual tag + .equ VE,0x4000 ; Valid entry + .equ SR,0x2000 ; Supervisor read + .equ SW,0x1000 ; Supervisor write + .equ SE,0x0800 ; Supervisor execute + .equ UR,0x0400 ; User read + .equ UW,0x0200 ; User write + .equ UE,0x0100 ; User execute + .equ TID,0x00FF ; Task identifier + .equ RPN,0xFFFFFC00 ; Real page number + .equ PGM,0x00C0 ; User programmable + .equ U,0x0002 ; Usage + .equ F,0x0001 ; Flag + +;----------------------------------------------------------------------- +;Global registers +;----------------------------------------------------------------------- + + .reg rsp, gr1 ; local register stack pointer + + ; System-wide statics + .reg s0, gr64 + .reg spillreg, s0 ; pointer to user spill handler + .reg s1, gr65 + .reg fillreg, s1 ; pointer to user fill handler + .reg s2, gr66 + .reg heapptr, s2 ; pointer to heap area + .reg s3, gr67 + .reg s4, gr68 + .reg s5, gr69 + .reg s6, gr70 + .reg s7, gr71 + .reg s8, gr72 + .reg s9, gr73 + .reg s10, gr74 + .reg s11, gr75 + .reg s12, gr76 + .reg s13, gr77 + .reg s14, gr78 + .reg s15, gr79 + + ; Interrupt handler temporaries + .reg i0, gr80 + .reg i1, gr81 + .reg i2, gr82 + .reg i3, gr83 + .reg i4, gr84 + .reg i5, gr85 + .reg i6, gr86 + .reg i7, gr87 + .reg i8, gr88 + .reg i9, gr89 + .reg i10, gr90 + .reg i11, gr91 + .reg i12, gr92 + .reg i13, gr93 + .reg i14, gr94 + .reg i15, gr95 + + ; Subroutine/function temporaries + ; also used for function return values + .reg t0, gr96 + .reg rtn, t0 + .reg t1, gr97 + .reg t2, gr98 + .reg t3, gr99 + .reg t4, gr100 + .reg t5, gr101 + .reg t6, gr102 + .reg t7, gr103 + .reg t8, gr104 + .reg t9, gr105 + .reg t10, gr106 + .reg t11, gr107 + .reg t12, gr108 + .reg t13, gr109 + .reg t14, gr110 + .reg t15, gr111 + + ; User process statics + .reg u0, gr112 + .reg u1, gr113 + .reg u2, gr114 + .reg u3, gr115 + + ; More subroutine/function temporaries + .reg t16, gr116 + .reg t17, gr117 + .reg t18, gr118 + .reg t19, gr119 + .reg t20, gr120 + + ; Older names for the same registers + .reg tmp0, gr116 + .reg tmp1, gr117 + .reg tmp2, gr118 + .reg tmp3, gr119 + .reg tmp4, gr120 + + ; Trap handler temporaries + .reg tav, gr121 ; arg/temp + .reg tpc, gr122 ; rtn/temp + + ; Linkage pointers + .reg lrp, gr123 ; large rtn ptr + .reg slp, gr124 ; static link ptr + .reg msp, gr125 ; memory stack ptr + .reg rab, gr126 ; register allocate bound + .reg rfb, gr127 ; register free bound + +;----------------------------------------------------------------------- +;Local compiler registers +; (only valid if frame has been established) +;----------------------------------------------------------------------- + + .reg p15, lr17 ; outgoing arg 16 + .reg p14, lr16 ; outgoing arg 15 + .reg p13, lr15 ; outgoing arg 14 + .reg p12, lr14 ; outgoing arg 13 + .reg p11, lr13 ; outgoing arg 12 + .reg p10, lr12 ; outgoing arg 11 + .reg p9, lr11 ; outgoing arg 10 + .reg p8, lr10 ; outgoing arg 9 + .reg p7, lr9 ; outgoing arg 8 + .reg p6, lr8 ; outgoing arg 7 + .reg p5, lr7 ; outgoing arg 6 + .reg p4, lr6 ; outgoing arg 5 + .reg p3, lr5 ; outgoing arg 4 + .reg p2, lr4 ; outgoing arg 3 + .reg p1, lr3 ; outgoing arg 2 + .reg p0, lr2 ; outgoing arg 1 + .reg fp, lr1 ; frame pointer + .reg raddr, lr0 ; return address + +;----------------------------------------------------------------------- +; Vectors +;----------------------------------------------------------------------- + + .equ V_ILLEG, 0 ; Illegal opcode + .equ V_ALIGN, 1 ; Unaligned access + .equ V_RANGE, 2 ; Out of range + .equ V_COPRE, 3 ; Coprocessor not present + .equ V_COEXC, 4 ; Coprocessor exception + .equ V_PROT, 5 ; Protection violation + .equ V_INSTR, 6 ; Instruction access exception + .equ V_DATA, 7 ; Data access exception + .equ V_UITLB, 8 ; User-mode instruction TLB miss + .equ V_UDTLB, 9 ; User-mode data TLB miss + .equ V_SITLB, 10 ; Supervisor-mode instr TLB miss + .equ V_SDTLB, 11 ; Supervisor-mode data TLB miss + .equ V_ITLB, 12 ; Instruction TLB violation + .equ V_DTLB, 13 ; Data TLB violation + .equ V_TIMER, 14 ; Timer + .equ V_TRACE, 15 ; Trace + .equ V_INTR0, 16 ; Interrupt 0 + .equ V_INTR1, 17 ; Interrupt 1 + .equ V_INTR2, 18 ; Interrupt 2 + .equ V_INTR3, 19 ; Interrupt 3 + .equ V_TRAP0, 20 ; Trap 0 + .equ V_TRAP1, 21 ; Trap 1 + +;----------------------------------------------------------------------- +;constants for LOAD and STORE operations +;----------------------------------------------------------------------- + +; CE operand values + .equ CE, 0b1 ;coprocessor enable + .equ ME, 0b0 ; memory enable + +; CNTL operand values + .equ IO, 0b1000000 ;set for I/O + .equ PA, 0b0100000 ;force physical addr + .equ SB, 0b0010000 ;set for set BP + .equ UA, 0b0001000 ;force user mode access + .equ ROM, 0b0000100 ;ROM access + .equ HWORD, 0b0000010 ;Half word access + .equ BYTE, 0b0000001 ;Byte access + .equ WORD, 0b0000000 ;Word access + +;----------------------------------------------------------------------- +; stack alignment value +;----------------------------------------------------------------------- + .equ STKALIGN, 8 ; double word align +
sys/cpudef.h Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: sys/smartmac.h =================================================================== --- sys/smartmac.h (nonexistent) +++ sys/smartmac.h (revision 520) @@ -0,0 +1,1491 @@ +; @(#)smartmac.h 1.2 90/10/14 20:56:14, AMD +; start of smartmac.h file +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1988, 1989, 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; + .title "AM29000 Smart Macro Package" +; +; Floating point package for AMD 29000 family +; +; Copyright 1988 Advanced Micro Devices, Inc. +; +; All rights reserved +; +; Developed for AMD by Quantitative Technology Corporation +; 8700 SW Creekside Place Suite D +; Beaverton OR 97005 +; (503) 626-3081 +; +; Version information : +; +; Version 1.0 - 1 June 1988 - Larry Westerman (smart_macros.h) +; +; Revision 1.4 89/02/01 18:26:03 jimh +; Changed to relect the new symbols from Bob Perlman, and the new include file.s +; +; Revision 1.3 89/01/31 10:13:34 jimh +; Updated to use symbols from Bob Perlmans fpsymbol.h file. This is +; an extensive change. +; +; Revision 1.2 89/01/26 09:23:50 jimh +; This version checked in previous to substituting Bob Perlman's floating +; point symbols. +; +; Revision 1.1 89/01/24 13:23:29 jim +; Initial revision +; Replaces smart_macros.h ver 1.11. +; +; +; +; +; NOTES: +; +; This package makes the following assumptions about the use of these +; smart macros: +; +; 1. These macros will be after the entry code for a transcendental +; routine. This entry code will move the original function arguments +; (by value, if the target language is FORTRAN) into the global +; registers t0/t1 and t2/t3 (t0 and t2 for single precision +; routines). +; 2. The sources of all operands will be one register from the +; following list: +; t0 or t2 - the source is one of the original input operands +; rtn0 - the source is rtn0, which should be used as the +; source for all constant values to be sent to the +; AM29027 (when used) +; FP0 - FP7 - the source is one of the fp registers +; 3. The destination of all operations will be a register from the +; following list: +; rtn0 - the destination is the function return value +; FP0 - FP7 - the destination is one of the fp registers +; 4. The additional registers available for temporary use are +; t4, lrp, and slp. +; +; These register definitions are all taken from the file "proregs.a" +; which was supplied by AMD. NOTE that the FP0-FP7 registers, for the +; Am29000 version of the file, overlap with the rtn0-rtn15 registers, so +; that FP0 corresponds to rtn0/rtn1, FP1 to rtn2/rtn3, and so forth. +; + .equ ERROR,0 + .equ NO_ERROR,1 + + .equ DOUBLE_FUNCTION,0 + .equ SINGLE_FUNCTION,1 + + .equ T_OPERATION,0 + .equ Q_OPERATION,1 + + .equ R_SOURCE_29000,0 + .equ R_SOURCE_29027,1 + + .equ S_SOURCE_29000,0 + .equ S_SOURCE_29027,1 + + .equ DESTINATION_29000, 0 + .equ DESTINATION_29027, 1 + +; +; SMART MACRO : mfadd +; +; FUNCTION : single-precision floating point addition +; +; Required arguments : destination - one of possible destinations +; operand1 - one of possible sources +; operand2 - one of possible sources +; + .macro mfadd,destination,operand1,operand2 + + .if $narg!=3 + .err + .print "mfadd: missing parameter(s)" + .exitm + .endif + + .ifdef _29027_MODE + ; + ; For 29027 mode, perform full suite of checking + ; + initialize_previous_instruction + .set CURRENT_INSTRUCTION, CP_S_S | CP_P_PLUS_T + .set OPERATION_TYPE, T_OPERATION + perform_single_operation destination,operand1,operand2 + read_single_result destination + ; + ; Save the instruction for the next macro invocation + ; + .set PREVIOUS_INSTRUCTION, CURRENT_INSTRUCTION + + .else + ; + ; For 29000 mode, simply produce equivalent trap-inducing instruction + ; + fadd destination,operand1,operand2 + + .endif + + .endm ; end of mfadd macro definition + +; +; SMART MACRO : mfsub +; +; FUNCTION : single-precision floating point subtraction +; +; Required arguments : destination - one of possible destinations +; operand1 - one of possible sources +; operand2 - one of possible sources +; + .macro mfsub,destination,operand1,operand2 + + .if $narg!=3 + .err + .print "mfsub: missing parameter(s)" + .exitm + .endif + + .ifdef _29027_MODE + ; + ; For 29027 mode, perform full suite of checking + ; + initialize_previous_instruction + .set CURRENT_INSTRUCTION, CP_S_S | CP_P_MINUS_T + .set OPERATION_TYPE, T_OPERATION + perform_single_operation destination,operand1,operand2 + read_single_result destination + ; + ; Save the instruction for the next macro invocation + ; + .set PREVIOUS_INSTRUCTION, CURRENT_INSTRUCTION + + .else + ; + ; For 29000 mode, simply produce equivalent trap-inducing instruction + ; + fsub destination,operand1,operand2 + + .endif + + .endm ; end of mfsub macro definition + +; +; SMART MACRO : mfmul +; +; FUNCTION : single-precision floating point multiplication +; +; Required arguments : destination - one of possible destinations +; operand1 - one of possible sources +; operand2 - one of possible sources +; + .macro mfmul,destination,operand1,operand2 + + .if $narg!=3 + .err + .print "mfmul: missing parameter(s)" + .exitm + .endif + + .ifdef _29027_MODE + ; + ; For 29027 mode, perform full suite of checking + ; + initialize_previous_instruction + .set CURRENT_INSTRUCTION, CP_S_S | CP_P_TIMES_Q + .set OPERATION_TYPE, Q_OPERATION + perform_single_operation destination,operand1,operand2 + read_single_result destination + ; + ; Save the instruction for the next macro invocation + ; + .set PREVIOUS_INSTRUCTION, CURRENT_INSTRUCTION + + .else + ; + ; For 29000 mode, simply produce equivalent trap-inducing instruction + ; + fmul destination,operand1,operand2 + + .endif + + .endm ; end of mfmul macro definition + +; +; SMART MACRO : mfdiv +; +; FUNCTION : single-precision floating point divide +; +; Required arguments : destination - one of possible destinations +; operand1 - one of possible sources +; operand2 - one of possible sources +; + .macro mfdiv,destination,operand1,operand2 + + .if $narg!=3 + .err + .print "mfdiv: missing parameter(s)" + .exitm + .endif + + ; + ; Generate the trap instruction in all cases + ; + fdiv destination, operand1, operand2 + + .endm ; end of mfdiv macro definition + + +; +; SMART MACRO : mdadd +; +; FUNCTION : double-precision floating point addition +; +; Required arguments : destination - one of possible destinations +; operand1 - one of possible sources +; operand2 - one of possible sources +; + .macro mdadd,destination,operand1,operand2 + + .if $narg!=3 + .err + .print "mdadd: missing parameter(s)" + .exitm + .endif + + .ifdef _29027_MODE + ; + ; For 29027 mode, perform full suite of checking + ; + initialize_previous_instruction + .set CURRENT_INSTRUCTION, CP_D_D | CP_P_PLUS_T + .set OPERATION_TYPE, T_OPERATION + perform_double_operation destination,operand1,operand2 + read_double_result destination + ; + ; Save the instruction for the next macro invocation + ; + .set PREVIOUS_INSTRUCTION, CURRENT_INSTRUCTION + + .else + ; + ; For 29000 mode, simply produce equivalent trap-inducing instruction + ; + dadd destination,operand1,operand2 + + .endif + + .endm ; end of mdadd macro definition + +; +; SMART MACRO : mdsub +; +; FUNCTION : double-precision floating point subtraction +; +; Required arguments : destination - one of possible destinations +; operand1 - one of possible sources +; operand2 - one of possible sources +; + .macro mdsub,destination,operand1,operand2 + + .if $narg!=3 + .err + .print "mdsub: missing parameter(s)" + .exitm + .endif + + .ifdef _29027_MODE + ; + ; For 29027 mode, perform full suite of checking + ; + initialize_previous_instruction + .set CURRENT_INSTRUCTION, CP_D_D | CP_P_MINUS_T + .set OPERATION_TYPE, T_OPERATION + perform_double_operation destination,operand1,operand2 + read_double_result destination + ; + ; Save the instruction for the next macro invocation + ; + .set PREVIOUS_INSTRUCTION, CURRENT_INSTRUCTION + + .else + ; + ; For 29000 mode, simply produce equivalent trap-inducing instruction + ; + dsub destination,operand1,operand2 + + .endif + + .endm ; end of mdsub macro definition + +; +; SMART MACRO : mdmul +; +; FUNCTION : double-precision floating point multiplication +; +; Required arguments : destination - one of possible destinations +; operand1 - one of possible sources +; operand2 - one of possible sources +; + .macro mdmul,destination,operand1,operand2 + + .if $narg!=3 + .err + .print "mdmul: missing parameter(s)" + .exitm + .endif + + .ifdef _29027_MODE + ; + ; For 29027 mode, perform full suite of checking + ; + initialize_previous_instruction + .set CURRENT_INSTRUCTION, CP_D_D | CP_P_TIMES_Q + .set OPERATION_TYPE, Q_OPERATION + perform_double_operation destination,operand1,operand2 + read_double_result destination + ; + ; Save the instruction for the next macro invocation + ; + .set PREVIOUS_INSTRUCTION, CURRENT_INSTRUCTION + + .else + ; + ; For 29000 mode, simply produce equivalent trap-inducing instruction + ; + dmul destination,operand1,operand2 + + .endif + + .endm ; end of mdmul macro definition + +; +; SMART MACRO : mddiv +; +; FUNCTION : double-precision floating point divide +; +; Required arguments : destination - one of possible destinations +; operand1 - one of possible sources +; operand2 - one of possible sources +; + .macro mddiv,destination,operand1,operand2 + + .if $narg!=3 + .err + .print "mddiv: missing parameter(s)" + .exitm + .endif + + ; + ; Generate the trap instruction in all cases + ; + ddiv destination, operand1, operand2 + + .endm ; end of mfdiv macro definition + +; +; SMART MACRO: mconvert +; +; FUNCTION: Floating point/integer conversion +; +; PARAMETERS: destination - one of the possible destinations +; source - one of the possible sources +; sign_flag - one of SIGNED or UNSIGNED +; rounding_mode - one of ROUND_TO_NEAREST, ROUND_TO_PLUS, +; ROUND_TO_MINUS, ROUND_TO_ZERO +; destination_precision - one of FORMAT_INTEGER, FORMAT_DOUBLE, +; or FORMAT_SINGLE +; source_precision - one of FORMAT_INTEGER, FORMAT_DOUBLE, +; or FORMAT_SINGLE +; + .macro mconvert, destination, source, sign_flag, rounding_mode, destination_precision, source_precision + + .if $narg!=6 + .err + .print "mconvert: missing parameter(s)" + .exitm + .endif + + .ifdef _29027_MODE + ; + ; Generate in line 29027 code + ; + initialize_previous_instruction + .if ( destination_precision == FORMAT_INTEGER ) + .set CURRENT_INSTRUCTION, CP_CONVERT_T_TO_INT + select_T_operand source + .if ( source_precision == FORMAT_DOUBLE ) + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_S_D + .else + .if ( source_precision == FORMAT_SINGLE ) + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_S_S + .else + .err + .print "mconvert: invalid source type" + .exitm + .endif + .endif + .else + .if ( destination_precision == FORMAT_DOUBLE ) + .if ( source_precision == FORMAT_SINGLE ) + .set CURRENT_INSTRUCTION, CP_PASS_P | CP_P_EQ_R | CP_D_S + select_P_operand source + .else + .if ( source_precision == FORMAT_INTEGER ) + .set CURRENT_INSTRUCTION, CP_I_CONVERT_T_TO_FLOAT | CP_D_S + select_T_operand source + .else + .err + .print "mconvert: invalid source type" + .exitm + .endif + .endif + .else + .if ( destination_precision == FORMAT_SINGLE ) + .if ( source_precision == FORMAT_DOUBLE ) + .set CURRENT_INSTRUCTION, CP_PASS_P | CP_P_EQ_R | CP_S_D + select_P_operand source + .else + .if ( source_precision == FORMAT_INTEGER ) + .set CURRENT_INSTRUCTION, CP_I_CONVERT_T_TO_FLOAT | CP_S_S + select_T_operand source + .else + .err + .print "mconvert: invalid source type" + .exitm + .endif + .endif + .else + .err + .print "mconvert: invalid destination type " + .exitm + .endif + .endif + .endif + ; + ; Perform the operation, using a 29027 dummy register as the second + ; source operand, to avoid writing any data inappropriately to the + ; 29027 + ; + select_destination destination + .set S_SOURCE, S_SOURCE_29027 + .if ( source_precision == FORMAT_DOUBLE ) + write_and_execute_double_operation source, FP0 + .else + write_and_execute_single_operation source, FP0 + .endif + .if ( destination_precision == FORMAT_DOUBLE ) + read_double_result destination + .else + .if ( destination_precision == FORMAT_SINGLE ) + read_single_result destination + .else + read_integer_result destination + .endif + .endif + .else + ; + ; For 29000 mode (the default) just invoke the trap-inducing instruction + ; + convert destination,source,sign_flag,rounding_mode,destination_precision,source_precision + + .endif + + .endm ; end of mfeq macro definition + +; +; SMART MACRO: mfeq +; +; FUNCTION: Single precision, floating point compare +; +; PARAMETERS: destination - one of the possible destinations +; operand1 - one of the possible sources +; operand2 - one of the possible sources +; + .macro mfeq, destination, operand1, operand2 + + .if $narg!=3 + .err + .print "mfeq: missing parameter(s)" + .exitm + .endif + + .ifdef _29027_MODE + ; + ; Generate in line 29027 code + ; + initialize_previous_instruction + .set CURRENT_INSTRUCTION, CP_S_S | CP_COMPARE_P_AND_T + .set OPERATION_TYPE, T_OPERATION + select_destination destination + ; + ; 29027 registers are not valid destinations for compare operations + ; If the destination is a 29000 register, write the appropriate + ; Boolean value to that register. + ; + .if ( DESTINATION == DESTINATION_29027 ) + .err + .print "29027 destinations invalid for compares - @destination@" + .exitm + .else + perform_single_operation destination, operand1, operand2 + cp_read_flags destination + srl destination, destination, CP_EQUAL_FLAG_POSITION + sll destination, destination, 31 + .endif + + .else + ; + ; For 29000 mode (the default) just invoke the trap-inducing instruction + ; + feq destination,operand1,operand2 + + .endif + + .endm ; end of mfeq macro definition + +; +; SMART MACRO: mfge +; +; FUNCTION: Single precision, floating point compare +; +; PARAMETERS: destination - one of the possible destinations +; operand1 - one of the possible sources +; operand2 - one of the possible sources +; + .macro mfge, destination, operand1, operand2 + + .if $narg!=3 + .err + .print "mfge: missing parameter(s)" + .exitm + .endif + + .ifdef _29027_MODE + ; + ; Generate in line 29027 code + ; + initialize_previous_instruction + .set CURRENT_INSTRUCTION, CP_S_S | CP_COMPARE_P_AND_T + .set OPERATION_TYPE, T_OPERATION + select_destination destination + ; + ; 29027 registers are not valid destinations for compare operations + ; If the destination is a 29000 register, write the appropriate + ; Boolean value to that register. + ; + .if ( DESTINATION == DESTINATION_29027 ) + .err + .print "29027 destinations invalid for compares - @destination@" + .exitm + .else + perform_single_operation destination, operand1, operand2 + cp_read_flags destination + and destination, destination, CP_EQUAL_FLAG | CP_GREATER_THAN_FLAG + cpneq destination, destination, 0x0 + .endif + + .else + ; + ; For 29000 mode (the default) just invoke the trap-inducing instruction + ; + fge destination,operand1,operand2 + + .endif + + .endm ; end of mfge macro definition + +; +; SMART MACRO: mfgt +; +; FUNCTION: Single precision, floating point compare +; +; PARAMETERS: destination - one of the possible destinations +; operand1 - one of the possible sources +; operand2 - one of the possible sources +; + .macro mfgt, destination, operand1, operand2 + + .if $narg!=3 + .err + .print "mfgt: missing parameter(s)" + .exitm + .endif + + .ifdef _29027_MODE + ; + ; Generate in line 29027 code + ; + initialize_previous_instruction + .set CURRENT_INSTRUCTION, CP_S_S | CP_COMPARE_P_AND_T + .set OPERATION_TYPE, T_OPERATION + select_destination destination + ; + ; 29027 registers are not valid destinations for compare operations + ; If the destination is a 29000 register, write the appropriate + ; Boolean value to that register. + ; + .if ( DESTINATION == DESTINATION_29027 ) + .err + .print "29027 destinations invalid for compares - @destination@" + .exitm + .else + perform_single_operation destination, operand1, operand2 + cp_read_flags destination + srl destination, destination, CP_GREATER_THAN_FLAG_POSITION + sll destination, destination, 31 + .endif + + .else + ; + ; For 29000 mode (the default) just invoke the trap-inducing instruction + ; + fgt destination,operand1,operand2 + + .endif + + .endm ; end of mfgt macro definition + +; +; SMART MACRO: mdeq +; +; FUNCTION: Double precision, floating point compare +; +; PARAMETERS: destination - one of the possible destinations +; operand1 - one of the possible sources +; operand2 - one of the possible sources +; + .macro mdeq, destination, operand1, operand2 + + .if $narg!=3 + .err + .print "mdeq: missing parameter(s)" + .exitm + .endif + + + .ifdef _29027_MODE + ; + ; Generate in line 29027 code + ; + initialize_previous_instruction + .set CURRENT_INSTRUCTION, CP_D_D | CP_COMPARE_P_AND_T + .set OPERATION_TYPE, T_OPERATION + select_destination destination + ; + ; 29027 registers are not valid destinations for compare operations + ; If the destination is a 29000 register, write the appropriate + ; Boolean value to that register. + ; + .if ( DESTINATION == DESTINATION_29027 ) + .err + .print "29027 destinations invalid for compare - @destination@" + .exitm + .else + perform_double_operation destination, operand1, operand2 + cp_read_flags destination + srl destination, destination, CP_EQUAL_FLAG_POSITION + sll destination, destination, 31 + .endif + .else + ; + ; For 29000 mode (the default) just invoke the trap-inducing instruction + ; + deq destination,operand1,operand2 + + .endif + + .endm ; end of mdeq macro definition + +; +; SMART MACRO: mdge +; +; FUNCTION: Double precision, floating point compare +; +; PARAMETERS: destination - one of the possible destinations +; operand1 - one of the possible sources +; operand2 - one of the possible sources +; + .macro mdge, destination, operand1, operand2 + + .if $narg!=3 + .err + .print "mdge: missing parameter(s)" + .exitm + .endif + + + .ifdef _29027_MODE + ; + ; Generate in line 29027 code + ; + initialize_previous_instruction + .set CURRENT_INSTRUCTION, CP_D_D | CP_COMPARE_P_AND_T + .set OPERATION_TYPE, T_OPERATION + select_destination destination + ; + ; 29027 registers are not valid destinations for compare operations + ; If the destination is a 29000 register, write the appropriate + ; Boolean value to that register. + ; + .if ( DESTINATION == DESTINATION_29027 ) + .err + .print "29027 destinations invalid for compare - @destination@" + .exitm + .else + perform_double_operation destination, operand1, operand2 + cp_read_flags destination + and destination, destination, CP_EQUAL_FLAG | CP_GREATER_THAN_FLAG + cpneq destination, destination, 0x0 + .endif + .else + ; + ; For 29000 mode (the default) just invoke the trap-inducing instruction + ; + dge destination,operand1,operand2 + + .endif + + .endm ; end of mdge macro definition + +; +; SMART MACRO: mdgt +; +; FUNCTION: Double precision, floating point compare +; +; PARAMETERS: destination - one of the possible destinations +; operand1 - one of the possible sources +; operand2 - one of the possible sources +; + .macro mdgt, destination, operand1, operand2 + + .if $narg!=3 + .err + .print "mdgt: missing parameter(s)" + .exitm + .endif + + + .ifdef _29027_MODE + ; + ; Generate in line 29027 code + ; + initialize_previous_instruction + .set CURRENT_INSTRUCTION, CP_D_D | CP_COMPARE_P_AND_T + .set OPERATION_TYPE, T_OPERATION + select_destination destination + ; + ; 29027 registers are not valid destinations for compare operations + ; If the destination is a 29000 register, write the appropriate + ; Boolean value to that register. + ; + .if ( DESTINATION == DESTINATION_29027 ) + .err + .print "29027 destinations invalid for compare - @destination@" + .exitm + .else + perform_double_operation destination, operand1, operand2 + cp_read_flags destination + srl destination, destination, CP_GREATER_THAN_FLAG_POSITION + sll destination, destination, 31 + .endif + .else + ; + ; For 29000 mode (the default) just invoke the trap-inducing instruction + ; + dgt destination,operand1,operand2 + + .endif + + .endm ; end of mdgt macro definition + +; +; MACRO NAME : perform_double_operation +; +; FUNCTION : After the instruction base is set up, do the appropriate checking +; to send the instruction if necessary, send the double-precision +; operands if necessary, and start the operation +; +; PARAMETERS : destination - one of possible destination operands +; operand1 - one of possible source operands +; operand2 - one of possible source operands +; + .macro perform_double_operation,destination,operand1,operand2 + + .if $narg!=3 + .err + .print "perform_double_operation: missing parameter(s)" + .exitm + .endif + + ; + ; Start defining the instruction + ; + select_destination destination + select_P_operand operand1 + select_S_operand operand2 + + write_and_execute_double_operation operand1, operand2 + + .endm ; End of perform_double_operation macro definition + +; +; MACRO NAME : perform_single_operation +; +; FUNCTION : After the instruction base is set up, do the appropriate checking +; to send the instruction if necessary, send the single-precision +; operands if necessary and start the operation +; +; PARAMETERS : destination - one of possible destination operands +; operand1 - one of possible source operands +; operand2 - one of possible source operands +; + .macro perform_single_operation,destination,operand1,operand2 + + ; + ; Start defining the instruction + ; + select_destination destination + select_P_operand operand1 + select_S_operand operand2 + write_and_execute_single_operation operand1,operand2 + + .endm ; End of perform_single_operation macro definition + +; +; MACRO NAME : write_and_execute_double_operation +; +; FUNCTION : Write the instruction and operands for a double-precision +; operation, and start the operation +; +; PARAMETER : operand1 - first operand of double-precision operation +; operand2 - second operand of operation +; + .macro write_and_execute_double_operation,operand1,operand2 + .if ( ( R_SOURCE == R_SOURCE_29027 ) && ( S_SOURCE == S_SOURCE_29027 ) ) + ; + ; If both sources are within the 29027, write the instruction + ; and start the operation + ; + const t4, CURRENT_INSTRUCTION + consth t4, CURRENT_INSTRUCTION + cp_write_inst t4, START + .else + ; + ; One or both of the sources must be written first, so check the + ; previous instruction + ; + const t4, CURRENT_INSTRUCTION + consth t4, CURRENT_INSTRUCTION + cp_write_inst t4 + .if ( R_SOURCE == R_SOURCE_29000 ) && ( S_SOURCE == S_SOURCE_29027 ) + .ifeqs "@operand1@","t0" + cp_write_r t0, t1, START + .else + .ifeqs "@operand1@","t2" + cp_write_r t2, t3, START + .else + .ifeqs "@operand1@","rtn0" + cp_write_r rtn0, rtn1, START + .else + .err + .print "Invalid source for double operation - @operand1@" + .exitm + .endif + .endif + .endif + .endif + .if ( R_SOURCE == R_SOURCE_29027 ) && ( S_SOURCE == S_SOURCE_29000 ) + .ifeqs "@operand2@","t0" + cp_write_s t0, t1, START + .else + .ifeqs "@operand2@","t2" + cp_write_s t2, t3, START + .else + .ifeqs "@operand2@","rtn0" + cp_write_s rtn0, rtn1, START + .else + .err + .print "Invalid source for double operation - @operand1@" + .exitm + .endif + .endif + .endif + .endif + .if ( R_SOURCE == R_SOURCE_29000 ) && ( S_SOURCE == S_SOURCE_29000 ) + .ifeqs "@operand1@","t0" + cp_write_r t0, t1 + .else + .ifeqs "@operand1@","t2" + cp_write_r t2, t3 + .else + .ifeqs "@operand1@","rtn0" + cp_write_r rtn0, rtn1 + .else + .err + .print "Invalid source for double operation - @operand1@" + .exitm + .endif + .endif + .endif + .ifeqs "@operand2@","t0" + cp_write_s t0, t1, START + .else + .ifeqs "@operand2@","t2" + cp_write_s t2, t3, START + .else + .ifeqs "@operand2@","rtn0" + cp_write_s rtn0, rtn1, START + .else + .err + .print "Invalid source for double operation - @operand1@" + .exitm + .endif + .endif + .endif + .endif + .endif + + .endm ; end of write_and_execute_double_operation macro definition + +; +; MACRO NAME : write_and_execute_single_operation +; +; FUNCTION : If necessary, read the result from the 29027 into a +; register on the 29000 +; +; PARAMETER : operand1 - first source for single-precision operation +; operand2 - second source for operation +; + .macro write_and_execute_single_operation,operand1,operand2 + + .if ( ( R_SOURCE == R_SOURCE_29027 ) && ( S_SOURCE == S_SOURCE_29027 ) ) + ; + ; If both sources are within the 29027, write the instruction + ; and start the operation + ; + const t4, CURRENT_INSTRUCTION + consth t4, CURRENT_INSTRUCTION + cp_write_inst t4, START + .else + ; + ; One or both of the sources must be written first, so check the + ; previous instruction + ; + const t4,CURRENT_INSTRUCTION + consth t4,CURRENT_INSTRUCTION + cp_write_inst t4, START + .if ( R_SOURCE == R_SOURCE_29000 ) && ( S_SOURCE == S_SOURCE_29027 ) + cp_write_r operand1, operand1, START + .endif + .if ( R_SOURCE == R_SOURCE_29027 ) && ( S_SOURCE == S_SOURCE_29000 ) + cp_write_s operand2, operand2, START + .endif + .if ( R_SOURCE == R_SOURCE_29000 ) && ( S_SOURCE == S_SOURCE_29000 ) + cp_write_rs operand1, operand2, START + .endif + .endif + + .endm ; End of write_and_execute_single_operation macro definition + +; +; MACRO NAME : read_double_result +; +; FUNCTION : If necessary, read the result from the 29027 into a +; register on the 29000 +; +; PARAMETER : destination - one of the possible destination registers +; + .macro read_double_result,destination + .if ( DESTINATION == DESTINATION_29000 ) + ; + ; If the destination is not within the 29027 register file, read + ; the result and store it into the correct register in the 29000 + ; + .ifeqs "@destination@","rtn0" + cp_read_dp rtn0, rtn1 + .else + .err + .print "Invalid destination for double result - @destination@" + .exitm + .endif + .endif + + .endm ; End of read_double_result macro definition + +; +; MACRO NAME : read_single_result +; +; FUNCTION : If necessary, read the result from the 29027 into a +; register on the 29000 +; +; PARAMETER : destination +; + .macro read_single_result,destination + + .if ( DESTINATION == DESTINATION_29000 ) + ; + ; If the destination is not within the 29027 register file, read + ; the result and store it into the correct register in the 29000 + ; + .ifeqs "@destination@","rtn0" + cp_read_sp rtn0 + .else + .err + .print "Invalid destination for single result - @destination@" + .exitm + .endif + .endif + + .endm ; End of read_single_result macro definition + +; +; MACRO NAME : read_integer_result +; +; FUNCTION : If necessary, read the result from the 29027 into a +; register on the 29000 +; +; PARAMETER : destination +; + .macro read_integer_result,destination + + .if ( DESTINATION == DESTINATION_29000 ) + ; + ; If the destination is not within the 29027 register file, read + ; the result and store it into the correct register in the 29000 + ; + .ifeqs "@destination@","rtn0" + cp_read_int rtn0 + .else + .err + .print "Invalid destination for single result - @destination@" + .exitm + .endif + .endif + + .endm ; End of read_integer_result macro definition + +; +; MACRO NAME : select_P_operand +; +; FUNCTION : Given an operand, determine if the operand is from the +; register file, and if so, set the appropriate bits in +; the current instruction word. In addition, set the +; variable R_SOURCE to 0 for local register file, or 1 for +; floating-point register file. +; +; PARAMETER : operand1 - one of the possible source operands +; + .macro select_P_operand,operand1 + .ifeqs "@operand1@","t0" + .set R_SOURCE,R_SOURCE_29000 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_P_EQ_R + .exitm + .endif + .ifeqs "@operand1@","t2" + .set R_SOURCE,R_SOURCE_29000 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_P_EQ_R + .exitm + .endif + .ifeqs "@operand1@","rtn0" + .set R_SOURCE,R_SOURCE_29000 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_P_EQ_R + .exitm + .endif + .ifeqs "@operand1@","FP0" + .set R_SOURCE,R_SOURCE_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_P_EQ_RF0 + .exitm + .endif + .ifeqs "@operand1@","FP1" + .set R_SOURCE,R_SOURCE_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_P_EQ_RF1 + .exitm + .endif + .ifeqs "@operand1@","FP2" + .set R_SOURCE,R_SOURCE_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_P_EQ_RF2 + .exitm + .endif + .ifeqs "@operand1@","FP3" + .set R_SOURCE,R_SOURCE_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_P_EQ_RF3 + .exitm + .endif + .ifeqs "@operand1@","FP4" + .set R_SOURCE,R_SOURCE_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_P_EQ_RF4 + .exitm + .endif + .ifeqs "@operand1@","FP5" + .set R_SOURCE,R_SOURCE_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_P_EQ_RF5 + .exitm + .endif + .ifeqs "@operand1@","FP6" + .set R_SOURCE,R_SOURCE_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_P_EQ_RF6 + .exitm + .endif + .ifeqs "@operand1@","FP7" + .set R_SOURCE,R_SOURCE_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_P_EQ_RF7 + .exitm + .endif + .err + .print "@operand1@ - Invalid operand" + + .endm ; end of select_P_operand macro definition + +; +; MACRO NAME : select_S_operand +; +; FUNCTION : Given an operand, determine if the operand is from the +; register file, and if so, set the appropriate bits in +; the current instruction word. In addition, set the +; variable S_SOURCE to S_SOURCE_29000 or S_SOURCE_29027 +; as appropriate +; +; PARAMETER : operand2 - one of the possible source operands +; + .macro select_S_operand,operand2 + .ifeqs "@operand2@","t0" + .set S_SOURCE,S_SOURCE_29000 + .if ( OPERATION_TYPE == T_OPERATION ) + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_S + .else + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_Q_EQ_S + .endif + .exitm + .endif + .ifeqs "@operand2@","t2" + .set S_SOURCE,S_SOURCE_29000 + .if ( OPERATION_TYPE == T_OPERATION ) + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_S + .else + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_Q_EQ_S + .endif + .exitm + .endif + .ifeqs "@operand2@","rtn0" + .set S_SOURCE,S_SOURCE_29000 + .if ( OPERATION_TYPE == T_OPERATION ) + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_S + .else + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_Q_EQ_S + .endif + .exitm + .endif + .ifeqs "@operand2@","FP0" + .set S_SOURCE,S_SOURCE_29027 + .if ( OPERATION_TYPE == T_OPERATION ) + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_RF0 + .else + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_Q_EQ_RF0 + .endif + .exitm + .endif + .ifeqs "@operand2@","FP1" + .set S_SOURCE,S_SOURCE_29027 + .if ( OPERATION_TYPE == T_OPERATION ) + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_RF1 + .else + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_Q_EQ_RF1 + .endif + .exitm + .endif + .ifeqs "@operand2@","FP2" + .set S_SOURCE,S_SOURCE_29027 + .if ( OPERATION_TYPE == T_OPERATION ) + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_RF2 + .else + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_Q_EQ_RF2 + .endif + .exitm + .endif + .ifeqs "@operand2@","FP3" + .set S_SOURCE,S_SOURCE_29027 + .if ( OPERATION_TYPE == T_OPERATION ) + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_RF3 + .else + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_Q_EQ_RF3 + .endif + .exitm + .endif + .ifeqs "@operand2@","FP4" + .set S_SOURCE,S_SOURCE_29027 + .if ( OPERATION_TYPE == T_OPERATION ) + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_RF4 + .else + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_Q_EQ_RF4 + .endif + .exitm + .endif + .ifeqs "@operand2@","FP5" + .set S_SOURCE,S_SOURCE_29027 + .if ( OPERATION_TYPE == T_OPERATION ) + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_RF5 + .else + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_Q_EQ_RF5 + .endif + .exitm + .endif + .ifeqs "@operand2@","FP6" + .set S_SOURCE,S_SOURCE_29027 + .if ( OPERATION_TYPE == T_OPERATION ) + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_RF6 + .else + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_Q_EQ_RF6 + .endif + .exitm + .endif + .ifeqs "@operand2@","FP7" + .set S_SOURCE,S_SOURCE_29027 + .if ( OPERATION_TYPE == T_OPERATION ) + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_RF7 + .else + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_Q_EQ_RF7 + .endif + .exitm + .endif + .err + .print "@operand2@ - Invalid operand" + + .endm ; end of select_S_operand macro definition + +; +; MACRO NAME : select_T_operand +; +; FUNCTION : Given an operand, determine if the operand is from the +; register file, and if so, set the appropriate bits in +; the current instruction word, to read the corresponding +; source into the T operand. In addition, set the +; variable R_SOURCE to 0 for local register file, or 1 for +; floating-point register file. +; +; PARAMETER : operand1 - one of the possible source operands +; + .macro select_T_operand,operand1 + .ifeqs "@operand1@","t0" + .set R_SOURCE,R_SOURCE_29000 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_R + .exitm + .endif + .ifeqs "@operand1@","t2" + .set R_SOURCE,R_SOURCE_29000 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_R + .exitm + .endif + .ifeqs "@operand1@","rtn0" + .set R_SOURCE,R_SOURCE_29000 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_R + .exitm + .endif + .ifeqs "@operand1@","FP0" + .set R_SOURCE,R_SOURCE_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_RF0 + .exitm + .endif + .ifeqs "@operand1@","FP1" + .set R_SOURCE,R_SOURCE_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_RF1 + .exitm + .endif + .ifeqs "@operand1@","FP2" + .set R_SOURCE,R_SOURCE_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_RF2 + .exitm + .endif + .ifeqs "@operand1@","FP3" + .set R_SOURCE,R_SOURCE_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_RF3 + .exitm + .endif + .ifeqs "@operand1@","FP4" + .set R_SOURCE,R_SOURCE_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_RF4 + .exitm + .endif + .ifeqs "@operand1@","FP5" + .set R_SOURCE,R_SOURCE_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_RF5 + .exitm + .endif + .ifeqs "@operand1@","FP6" + .set R_SOURCE,R_SOURCE_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_RF6 + .exitm + .endif + .ifeqs "@operand1@","FP7" + .set R_SOURCE,R_SOURCE_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_RF7 + .exitm + .endif + .err + .print "@operand1@ - Invalid operand" + + .endm ; end of select_T_operand macro definition + +; +; MACRO NAME : select_destination +; +; FUNCTION : Given a destination, determine if the operand is from the +; register file, and if so, set the appropriate bits in +; the current instruction word. In addition, set the +; variable DESTINATION to DESTINATION_29000 or +; DESTINATION_29027 as appropriate +; +; PARAMETER : destination - one of the possible destination operands +; + .macro select_destination,destination + .ifeqs "@destination@","rtn0" + .set DESTINATION,DESTINATION_29000 + .exitm + .endif + .ifeqs "@destination@","FP0" + .set DESTINATION,DESTINATION_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_DEST_EQ_RF0 + .exitm + .endif + .ifeqs "@destination@","FP1" + .set DESTINATION,DESTINATION_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_DEST_EQ_RF1 + .exitm + .endif + .ifeqs "@destination@","FP2" + .set DESTINATION,DESTINATION_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_DEST_EQ_RF2 + .exitm + .endif + .ifeqs "@destination@","FP3" + .set DESTINATION,DESTINATION_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_DEST_EQ_RF3 + .exitm + .endif + .ifeqs "@destination@","FP4" + .set DESTINATION,DESTINATION_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_DEST_EQ_RF4 + .exitm + .endif + .ifeqs "@destination@","FP5" + .set DESTINATION,DESTINATION_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_DEST_EQ_RF5 + .exitm + .endif + .ifeqs "@destination@","FP6" + .set DESTINATION,DESTINATION_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_DEST_EQ_RF6 + .exitm + .endif + .ifeqs "@destination@","FP7" + .set DESTINATION,DESTINATION_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_DEST_EQ_RF7 + .exitm + .endif + .err + .print "@destination@ - Invalid operand" + + .endm ; end of select_destination macro definition + +; MACRO NAME : initialize_previous_instruction +; +; FUNCTION : Make sure the previous instruction is defined and set to zero +; + .macro initialize_previous_instruction + + .ifndef PREVIOUS_INSTRUCTION + ; + ; Make sure that the previous instruction variable is initialized + ; + .set PREVIOUS_INSTRUCTION,0 + .endif + + .endm ; end of initialize_previous_instruction macro definition + + +; MACRO NAME : prepare_function_parameters +; +; FUNCTION : To place the input parameters into the correct position for +; use by the function body. When the target language is +; FORTRAN, the values of the input arguments are read from the +; supplied addresses and moved to the t0-t3 temporary area. +; When the target language is C or Pascal, the values of the +; input arguments are simply moved to the t0-t3 temporary area. +; + .macro prepare_function_parameters,arg1,arg2 + + .if $narg==0 + .err + .print "Missing function argument(s)" + .exitm + .endif + + .if $narg>2 + .err + .print "Too many function arguments + .exitm + .endif + + .if $narg>=1 + .if $isreg(@arg1) + .ifdef FORTRAN + load 0,0,t0,arg1 + .if ( FUNCTION_TYPE == DOUBLE_FUNCTION ) + add t1,arg1,4 + load 0,0,t1,t1 + .endif + .else + add t0,arg1,0 + .if ( FUNCTION_TYPE == DOUBLE_FUNCTION ) + add t1,%%(&arg1+1),0 + .endif + .endif + .else + .err + .print "Function argument not register - @arg1@" + .endif + .endif + .if $narg==2 + .if $isreg (@arg2) + .ifdef FORTRAN + load 0,0,t2,arg2 + .if ( FUNCTION_TYPE == DOUBLE_FUNCTION ) + add t3,arg2,4 + load 0,0,t3,t3 + .endif + .else + add t2,arg2,0 + .if ( FUNCTION_TYPE == DOUBLE_FUNCTION ) + add t3,%%(&arg2+1),0 + .endif + .endif + .else + .err + .print "Function argument not register - @arg2@" + .endif + .endif + + .endm ; end of prepare_function_parameters macro definition + +; end of smartmac.h file
sys/smartmac.h Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.