mirror of git://sourceware.org/git/glibc.git
Update from main archive 961219
This commit is contained in:
parent
1003a96da9
commit
910e2e14fc
|
@ -211,7 +211,7 @@ _dl_start_user:
|
|||
stq $2, 0($sp)
|
||||
/* Load _dl_default_scope[2] into s1 to pass to _dl_init_next. */
|
||||
0: ldq $10, _dl_default_scope+16
|
||||
/* Call _dl_init_next to return the address of an initalizer
|
||||
/* Call _dl_init_next to return the address of an initializer
|
||||
function to run. */
|
||||
1: mov $10, $16
|
||||
jsr $26, _dl_init_next
|
||||
|
|
|
@ -55,7 +55,7 @@ __DTOR_LIST__:
|
|||
jsr $26,__do_global_dtors_aux
|
||||
|
||||
/* Must match the alignment we got from crti.o else we get
|
||||
zero-filled holes in our _fini function and thense SIGILL. */
|
||||
zero-filled holes in our _fini function and then SIGILL. */
|
||||
.align 3
|
||||
|
||||
/*
|
||||
|
|
|
@ -17,7 +17,7 @@ License along with the GNU C Library; see the file COPYING.LIB. If
|
|||
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
|
||||
Cambridge, MA 02139, USA. */
|
||||
|
||||
/* Return the address of the last occurrance of a given character
|
||||
/* Return the address of the last occurrence of a given character
|
||||
within a null-terminated string, or null if it is not found.
|
||||
|
||||
This is generally scheduled for the EV5 (got to look out for my own
|
||||
|
|
|
@ -118,7 +118,7 @@ L(Lend:)
|
|||
rts
|
||||
|
||||
/* We loop from least significant end of the arrays, which is only
|
||||
permissable if the source and destination don't overlap, since the
|
||||
permissible if the source and destination don't overlap, since the
|
||||
function is documented to work for overlapping source and destination. */
|
||||
|
||||
L(Lspecial:)
|
||||
|
|
|
@ -71,7 +71,7 @@ L(Lnormal:)
|
|||
movel MEM_POSTINC(s_ptr),R(d2)
|
||||
movel R(d2),R(d0)
|
||||
lsll R(d5),R(d0) /* compute carry limb */
|
||||
|
||||
|
||||
lsrl R(cnt),R(d2)
|
||||
movel R(d2),R(d1)
|
||||
subql #1,R(s_size)
|
||||
|
@ -107,7 +107,7 @@ L(Lend:)
|
|||
rts
|
||||
|
||||
/* We loop from most significant end of the arrays, which is only
|
||||
permissable if the source and destination don't overlap, since the
|
||||
permissible if the source and destination don't overlap, since the
|
||||
function is documented to work for overlapping source and destination. */
|
||||
|
||||
L(Lspecial:)
|
||||
|
|
|
@ -14,9 +14,9 @@
|
|||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If
|
||||
not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#define ELF_MACHINE_NAME "MIPS"
|
||||
|
||||
|
@ -27,12 +27,12 @@
|
|||
#include <sys/mman.h>
|
||||
#include <unistd.h>
|
||||
|
||||
/* DT_MIPS macro ranslate a processor specific dynamic tag to the index
|
||||
/* Translate a processor specific dynamic tag to the index
|
||||
in l_info array. */
|
||||
#define DT_MIPS(x) (DT_MIPS_##x - DT_LOPROC + DT_NUM)
|
||||
|
||||
#if 1
|
||||
/* XXX If FLAGS has the MAP_ALIGN bit, we need 64k alignement. */
|
||||
/* XXX If FLAGS has the MAP_ALIGN bit, we need 64k alignment. */
|
||||
#ifndef MAP_ALIGN
|
||||
#define MAP_ALIGN 0x1000
|
||||
#endif
|
||||
|
|
|
@ -1,29 +1,28 @@
|
|||
/* Copyright (C) 1994 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1994, 1996 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil),
|
||||
On-Line Applications Research Corporation.
|
||||
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If
|
||||
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
|
||||
Cambridge, MA 02139, USA. */
|
||||
On-Line Applications Research Corporation.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* i960ca.h
|
||||
*
|
||||
* This file contains macros which are used to access i80960CA
|
||||
* This file contains macros which are used to access i80960CA
|
||||
* registers which are not addressable by C. The functions
|
||||
* in this file sould be useful to the developer of target
|
||||
* in this file should be useful to the developer of target
|
||||
* specific code.
|
||||
*/
|
||||
|
||||
|
@ -37,22 +36,22 @@ typedef unsigned int unsigned32;
|
|||
/*
|
||||
* Intel i80960CA Processor Control Block
|
||||
*/
|
||||
|
||||
|
||||
struct i80960ca_prcb {
|
||||
unsigned32 *fault_tbl; /* fault table base address */
|
||||
unsigned32 *fault_tbl; /* fault table base address */
|
||||
struct i80960ca_ctltbl
|
||||
*control_tbl; /* control table base address */
|
||||
unsigned32 initial_ac; /* AC register initial value */
|
||||
unsigned32 fault_config; /* fault configuration word */
|
||||
unsigned32 fault_config; /* fault configuration word */
|
||||
void *intr_tbl; /* interrupt table base address */
|
||||
void *sys_proc_tbl; /* system procedure table */
|
||||
/* base address */
|
||||
unsigned32 reserved; /* reserved */
|
||||
unsigned32 *intr_stack; /* interrupt stack pointer */
|
||||
unsigned32 ins_cache_cfg; /* instruction cache */
|
||||
/* configuration word */
|
||||
unsigned32 reg_cache_cfg; /* register cache */
|
||||
/* configuration word */
|
||||
void *sys_proc_tbl; /* system procedure table */
|
||||
/* base address */
|
||||
unsigned32 reserved; /* reserved */
|
||||
unsigned32 *intr_stack; /* interrupt stack pointer */
|
||||
unsigned32 ins_cache_cfg; /* instruction cache */
|
||||
/* configuration word */
|
||||
unsigned32 reg_cache_cfg; /* register cache */
|
||||
/* configuration word */
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -128,7 +127,7 @@ struct i80960ca_ctltbl {
|
|||
: "0" (_addr), "1" (_mask) ); \
|
||||
(prev) = _mask; \
|
||||
}
|
||||
|
||||
|
||||
#define delay( microseconds ) \
|
||||
{ register unsigned32 _delay=(microseconds); \
|
||||
register unsigned32 _tmp; \
|
||||
|
@ -185,22 +184,22 @@ struct i80960ca_ctltbl {
|
|||
: "0" (_cmd), "1" (_next), "2" (_prcb) ); \
|
||||
}
|
||||
|
||||
static inline unsigned32 pend_intrs()
|
||||
{ register unsigned32 _intr=0;
|
||||
asm volatile( "mov sf0,%0" : "=d" (_intr) : "0" (_intr) );
|
||||
return ( _intr );
|
||||
static inline unsigned32 pend_intrs()
|
||||
{ register unsigned32 _intr=0;
|
||||
asm volatile( "mov sf0,%0" : "=d" (_intr) : "0" (_intr) );
|
||||
return ( _intr );
|
||||
}
|
||||
|
||||
static inline unsigned32 mask_intrs()
|
||||
static inline unsigned32 mask_intrs()
|
||||
{ register unsigned32 _intr=0;
|
||||
asm volatile( "mov sf1,%0" : "=d" (_intr) : "0" (_intr) );
|
||||
asm volatile( "mov sf1,%0" : "=d" (_intr) : "0" (_intr) );
|
||||
return( _intr );
|
||||
}
|
||||
|
||||
static inline unsigned32 get_fp()
|
||||
{ register unsigned32 _fp=0;
|
||||
asm volatile( "mov fp,%0" : "=d" (_fp) : "0" (_fp) );
|
||||
return ( _fp );
|
||||
static inline unsigned32 get_fp()
|
||||
{ register unsigned32 _fp=0;
|
||||
asm volatile( "mov fp,%0" : "=d" (_fp) : "0" (_fp) );
|
||||
return ( _fp );
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1,34 +1,32 @@
|
|||
/* Copyright (C) 1994 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1994, 1996 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil),
|
||||
On-Line Applications Research Corporation.
|
||||
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If
|
||||
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
|
||||
Cambridge, MA 02139, USA. */
|
||||
On-Line Applications Research Corporation.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include <ansidecl.h>
|
||||
#include <standalone.h>
|
||||
#include "m68020.h"
|
||||
|
||||
/* Console IO routines for a Motorola MVME135/MVME136 board.
|
||||
|
||||
|
||||
They currently use the B port. It should be possible to
|
||||
use the A port by filling in the reset of the chip structure,
|
||||
adding an ifdef for PORTA/PORTB, and switching the addresses,
|
||||
and maybe the macroes based on the macro. */
|
||||
and maybe the macros based on the macro. */
|
||||
|
||||
/* M68681 DUART chip register structures and constants */
|
||||
|
||||
|
@ -69,14 +67,15 @@ XON/XOFF flow control. */
|
|||
#define XOFF 0x13 /* control-S */
|
||||
|
||||
int
|
||||
DEFUN( _Console_Putc, (ch), char ch )
|
||||
_Console_Putc (ch)
|
||||
char ch;
|
||||
{
|
||||
while ( ! (RD_M68681->srb & TXRDYB) ) ;
|
||||
while ( RD_M68681->srb & RXRDYB ) /* must be an XOFF */
|
||||
if ( RD_M68681->rbb == XOFF )
|
||||
if ( RD_M68681->rbb == XOFF )
|
||||
do {
|
||||
while ( ! (RD_M68681->srb & RXRDYB) ) ;
|
||||
} while ( RD_M68681->rbb != XON );
|
||||
} while ( RD_M68681->rbb != XON );
|
||||
|
||||
WR_M68681->tbb = ch;
|
||||
return( 0 );
|
||||
|
@ -87,10 +86,11 @@ DEFUN( _Console_Putc, (ch), char ch )
|
|||
This routine reads a character from the UART and returns it. */
|
||||
|
||||
int
|
||||
DEFUN( _Console_Getc, (poll), int poll )
|
||||
_Console_Getc (poll)
|
||||
int poll;
|
||||
{
|
||||
if ( poll ) {
|
||||
if ( !(RD_M68681->srb & RXRDYB) )
|
||||
if ( !(RD_M68681->srb & RXRDYB) )
|
||||
return -1;
|
||||
else
|
||||
return RD_M68681->rbb;
|
||||
|
|
|
@ -1,21 +1,22 @@
|
|||
/* Structure and constand definitions for sigaction et al. OSF/1 version.
|
||||
/* Structure and constant definitions for sigaction et al. OSF/1 version.
|
||||
Copyright (C) 1993, 1996 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Brendan Kehoe (brendan@zen.org).
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If
|
||||
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
|
||||
Cambridge, MA 02139, USA. */
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Structure describing the action to be taken when a signal arrives. */
|
||||
struct sigaction
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
/* Copyright (C) 1996 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include <sysdep.h>
|
||||
|
||||
/* The mremap system call is special because it needs to return
|
||||
its value in register %a0. */
|
||||
|
||||
.text
|
||||
PSEUDO (__mremap, mremap, 4)
|
||||
move.l %d0, %a0
|
||||
rts
|
||||
PSEUDO_END (__mremap)
|
||||
weak_alias (__mremap, mremap)
|
|
@ -36,7 +36,7 @@
|
|||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
/*
|
||||
* Find the first occurence of c in the memory at cp (length n).
|
||||
* Find the first occurrence of c in the memory at cp (length n).
|
||||
* Return pointer to match or null pointer.
|
||||
*
|
||||
* This code optimises the usual case (0 < n < 65535).
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
/*
|
||||
* Find the first occurence of c in the string cp.
|
||||
* Find the first occurrence of c in the string cp.
|
||||
* Return pointer to match or null pointer.
|
||||
*
|
||||
* char *
|
||||
|
@ -58,7 +58,7 @@ ENTRY(strchr, 0)
|
|||
*/
|
||||
movab tbl,r3 /* r3 = base of table */
|
||||
bbss $0,(r3),Lreent /* ensure not reentering */
|
||||
movab (r3)[r2],r5
|
||||
movab (r3)[r2],r5
|
||||
incb (r5) /* mark both '\0' and c */
|
||||
0:
|
||||
scanc r4,(r1),(r3),$1 /* look for c or '\0' */
|
||||
|
|
|
@ -53,14 +53,14 @@ ENTRY(strncmp, 0)
|
|||
movl 4(ap),r1 # r1 = s1
|
||||
movq 8(ap),r3 # r3 = s2; r4 = n
|
||||
1:
|
||||
clrl r5 # calculate min bytes to next page boundry
|
||||
clrl r5 # calculate min bytes to next page boundary
|
||||
subb3 r1,$255,r5 # r5 = (bytes - 1) to end of page for s1
|
||||
subb3 r3,$255,r0 # r0 = (bytes - 1) to end of page for s2
|
||||
cmpb r0,r5 # r5 = min(r0, r5);
|
||||
bgtru 2f
|
||||
movb r0,r5
|
||||
2:
|
||||
incl r5 # r5 = min bytes to next page boundry
|
||||
incl r5 # r5 = min bytes to next page boundary
|
||||
cmpl r4,r5 # r5 = min(n, r5);
|
||||
bgeq 3f
|
||||
movl r4,r5
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
/*
|
||||
* Find the last occurence of c in the string cp.
|
||||
* Find the last occurrence of c in the string cp.
|
||||
* Return pointer to match or null pointer.
|
||||
*
|
||||
* char *
|
||||
|
|
Loading…
Reference in New Issue