Commit Graph

598 Commits

Author SHA1 Message Date
msaitoh 95d875fb90 libc for SH3.
TODO: fplib
2000-01-05 14:07:29 +00:00
eeh 0ba088f0a3 New bzero() using block store insns. 1999-12-30 15:31:39 +00:00
eeh d1b815fe32 Sample code to implement ffs() using the popc insn (if it's ever implemented). 1999-12-30 15:30:26 +00:00
shin 509e885e3b fix name space pollution by adding prefix '_mips_'.
closes PR 8770.
1999-12-26 00:22:31 +00:00
kleink 11e6c54cfc C99: Define a NAN macro in <math.h> which evaulates to a constant expression of
a single-precision quiet NaN; only to be defined on platforms that do support
this value.
1999-12-23 10:15:05 +00:00
matthias 87bb3a7b2b make this work again with -mrtd. 1999-11-16 18:16:53 +00:00
is eaf45b75c1 Fix spelling of contributors name 1999-10-27 09:10:27 +00:00
thorpej 3b435a7396 Add register prefixes. 1999-10-25 23:48:07 +00:00
itohy 1d0a433095 ELF PIC support. 1999-10-18 03:24:28 +00:00
itohy 29215efa45 ELF PIC support.
Small optimization.
1999-10-18 03:22:14 +00:00
shin 54de12eae6 remove extra lw (SOFTFLOAT) 1999-10-11 05:25:35 +00:00
shin f761ddb744 adjust #endif position (SOFTFLOAT) 1999-10-11 05:21:06 +00:00
takemura cdabc2eb91 Hpcmips needs completely FPU instruction free user land.
XXX, this modification is kinda ad-hoc.
1999-09-29 13:19:13 +00:00
kleink 30ae96c534 Oops, missed these in the mcount -> __mcount renaming. 1999-09-28 08:27:08 +00:00
is e203553a11 Finish support for auto-generated libkern divsi3.S. 1999-09-21 09:43:38 +00:00
is 897dbf6c67 Use an identical source file for the libc and the libkern version of
divsi3.S, conditionally compiling the divide by zero case. This way,
after a change to the one, we can just copy it over to update the other
without creating ... problems. By Chris G.  Demetriou.
1999-09-20 09:22:47 +00:00
mycroft 959acd6d47 Looks like I forgot to add this copy of isnan.c. 1999-09-17 21:32:53 +00:00
takemura 2f85eb6142 Import NetBSD/hpcmips source files from hpcmips repository.
file list:
        sys/arch/hpcmips/
        distrib/hpcmips/
        etc/etc.hpcmips/
        lib/libc/arch/mips/fplib/
        lib/libc/arch/mips/fplib/Makefile.inc
        lib/libc/arch/mips/fplib/environment.h
        lib/libc/arch/mips/fplib/fplib_glue.c
        lib/libc/arch/mips/fplib/fplib_libc.c
        lib/libc/arch/mips/fplib/hpcmips-gcc.h
        lib/libc/arch/mips/fplib/softfloat-macros.h
        lib/libc/arch/mips/fplib/softfloat-specialize.h
        lib/libc/arch/mips/fplib/softfloat.c
        lib/libc/arch/mips/fplib/softfloat.h
        lib/libc/arch/mips/gen/ieee.h
        lib/libc/arch/mips/gen/sf_fabs.c
        lib/libc/arch/mips/gen/sf_flt_rounds.c
        lib/libc/arch/mips/gen/sf_fpgetmask.c
        lib/libc/arch/mips/gen/sf_fpgetround.c
        lib/libc/arch/mips/gen/sf_fpgetsticky.c
        lib/libc/arch/mips/gen/sf_fpsetmask.c
        lib/libc/arch/mips/gen/sf_fpsetround.c
        lib/libc/arch/mips/gen/sf_fpsetsticky.c
        lib/libc/arch/mips/gen/sf_isinf.c
        lib/libc/arch/mips/gen/sf_ldexp.c
        lib/libc/arch/mips/gen/sf_modf.c
1999-09-16 12:13:17 +00:00
is bc086d24af In the division core: if the highest bit of the dividend is set,
we have to be careful when shifting the divisor. Test this.

This fixes PR 7760 by Richard Earnshaw.
1999-09-16 09:15:05 +00:00
drochner ec2a7d4249 SYS.h was nuked from libkern 1999-09-10 15:41:51 +00:00
chs f70d067294 use RODATA() instead of ENTRY() for __ffstab so that it works when profiling. 1999-09-06 19:00:24 +00:00
mycroft b3b07a4c6e Another microoptimization. Take advantage of the addition already having set
the flags for the <=0 comparison.
1999-08-30 18:28:24 +00:00
mycroft 0560606383 Reuse the trick of loading 0.0 (rather than 1.0) and then modifying the
exponent.  It's a bit faster on some machines.
1999-08-30 18:01:40 +00:00
mycroft 5579a03f91 Nuke unused variable. 1999-08-30 16:48:07 +00:00
augustss 75d2dfe657 Remove more unused mulexp variables. 1999-08-30 15:11:32 +00:00
augustss 6a4d7f0bc4 Make it compile again by removing an unused variable. 1999-08-30 12:14:09 +00:00
mycroft 9cba4741ee Use C versions of isinf() and isnan(). The assembler code is basically
identical, but was endian-dependent.
1999-08-29 23:01:40 +00:00
mycroft 6b221be206 ldexp(denormal, exp>1023) would generate the wrong result in all non-overflow
cases.  Totally rework this code to fix this bug *and* make it faster.
1999-08-29 22:50:25 +00:00
mycroft 5f34ffabca ldexp(denormal, exp>1023) would generate the wrong result in all non-overflow
cases.  Totally rework this code to fix this bug *and* make it faster.
1999-08-29 22:45:32 +00:00
mycroft c3140da584 Oops; committed wrong version here. 1999-08-29 19:42:54 +00:00
mycroft f784c98496 Reimplement the FSCALE version as C-with-assembler. (Make the compiler deal
with ABI crap.)
1999-08-29 19:41:53 +00:00
mycroft 0ae41d0984 Use the C version of ldexp(). The assembler version was broken in several
ways (ldexp(0.0, 5000) returned +Inf, didn't do normalization/denormalization,
etc.).
1999-08-29 19:08:44 +00:00
mycroft 02a48bde49 Don't ever return -0.0. 1999-08-29 19:04:02 +00:00
mycroft 0d708431b7 Minor style change. 1999-08-29 18:40:50 +00:00
mycroft ea4b733810 Trivial KNF. 1999-08-29 18:39:35 +00:00
mycroft 6850b97bb3 Sync with SPARC version. 1999-08-29 18:35:51 +00:00
mycroft ed01c49a3f Use the C version. The assembler version was just transliterated (and buggy)
anyway.
1999-08-29 18:32:36 +00:00
mycroft 099dd01a1d Make the C version of frexp() consitent across platforms, and handle the
Inf/NaN case.
1999-08-29 18:30:14 +00:00
mycroft 291053e1e2 Use ieee.h. 1999-08-29 18:23:26 +00:00
mycroft c8190acc41 Separate isnan() into a separate module, and make isinf()/isnan() use ieee.h. 1999-08-29 18:11:28 +00:00
mycroft 17030e8106 Separate isnan() into a separate module, and make isinf()/isnan() use ieee.h. 1999-08-29 18:08:27 +00:00
thorpej 30dca7f7db Add __msgctl13(), __semctl13(), and __shmctl13() (symbols are __RENAME()'d
in their respective header files).  Add PSEUDO stubs for the old versions
of these system calls.

Note that __semctl13() doesn't require the extra stub that the old
semctl()/__semctl() did, as the SUSv2 version takes variable arguments,
and thus does not require the extra indirection.
1999-08-25 05:09:27 +00:00
kleink 74511f97b1 Use _ALIGN_TEXT from <machine/asm.h>. 1999-08-23 08:45:09 +00:00
danw 687108b42f add the ieeefp functions 1999-07-07 01:55:07 +00:00
danw e8559a61eb mark an asm statement volatile so it doesn't get optimized out 1999-07-07 01:53:38 +00:00
pk 0ffda58ae9 A new implementation of _setjmp/_longjmp that uses the T_FLUSHWIN trap.
This means the stack frame and program counter can restored directly
from the jmp_buf, eliminating the need to backtrack through frames
which does not work in all cases.
1999-06-27 11:10:18 +00:00
tron d7678457d6 Fix definition of infinity. Patch supplied by Richard Earnshaw in
PR lib/7829.
1999-06-21 22:31:32 +00:00
matthias 71dd06e171 Go for correctness instead of speed as suggested by Ian Dall. This fixes
pr#port-pc532/7710.
1999-06-06 20:20:46 +00:00
matthias bb36354c10 Fix spurious page faults by double word aligning the source and not the
destination. Thank's to Ian Dall for this fix.
1999-06-06 19:49:11 +00:00
kleink 15fb0e4315 Shameless hack to reference end if using a.out and _end if using ELF. 1999-06-03 20:14:58 +00:00
kleink 5b4ea02521 _C_FUNC() -> _C_LABEL() 1999-05-06 14:01:20 +00:00
kleink c66e4d7122 * Prefix softfloat symbols which require external linkage with _arm32_ to
move them out of user namespace; declare those not requiring external linkage
static.
* In due course, disable those functions that require neither external nor
internal linkage.
Addresses PR port-arm32/7517.
1999-05-06 13:56:28 +00:00
tsubai cb9a32fdf9 * Add getcachelinesize() prototype.
* Make this compile with -D_STANDALONE.
1999-05-05 12:35:54 +00:00
kleink 5b2a4f0824 Call cerror through the PLT. 1999-05-02 23:19:49 +00:00
kleink 18d5ba6151 We can shave off a register-register move when using the SVR4 ABI: __errno()
will return its pointer result in a0.
1999-05-02 20:52:02 +00:00
kleink 4e0adc06d5 When using the SVR4 ABI, return pointer results in a0, too. 1999-05-02 20:34:04 +00:00
kleink 1bd013aa27 Oops, typo. 1999-05-02 20:18:17 +00:00
kleink d658cafb30 When using the SVR4 ABI, just return floating point values in fp0. 1999-05-02 20:17:20 +00:00
kleink bcd9993e4e When using the SVR4 ABI, return the pointer in a0, too. 1999-05-02 20:09:29 +00:00
ross c5a82dd848 * New MI man page for fp{set,get}{round,sticky,mask}(3).
* Implement fpgetsticky() for alpha.
* Direct fpsetsticky() and fp{get,set}mask() into alpha kernel via sysarch(2).
* Define new sysarch(2) stub for above and install and distribute sysarch.h
for alpha.  (The fpcr IS user mode r/w, but for reasons beyond the scope
of a commit message kernel calls are needed.) And much kernel Magick is
required before these do anything, but this way programs compiled under
1.4 will DTRT on future snapshots and releases.
1999-04-30 00:58:30 +00:00
kleink b74f892f6d Declare cerror using _ENTRY() to get, among other things, a .type statement. 1999-04-29 15:37:21 +00:00
ws 5423093850 Modify syncicache on PowerPC from an inline to a real function.
Support different cache line sizes with the same object code in userland.
While here, move the function to implementation name space.
1999-04-17 21:16:45 +00:00
ragge 765d11306b Set infinity to the highest D-float possible.
XXX - infinity does not exist on vax...
1999-04-17 14:53:32 +00:00
eeh 713a1d89ff Add _dtoul() which gcc generates a lot. Maybe it should go in another file. 1999-04-04 21:01:39 +00:00
kleink dccf2a15e4 While in transition, conditionally rename _ASM_LABEL(cerror) and
_ASM_LABEL(curbrk) to _C_LABEL(__cerror) and _C_LABEL(__curbrk), respectively,
depending on the object format chosen, to avoid user namespace clashes.
1999-03-31 18:14:27 +00:00
kleink 5af7e7a902 Change references to `end' to `_end' as not to invade (or being invaded by)
the user's name space.
1999-03-31 11:53:07 +00:00
jonathan cd6244f1cc Assembly-coded, word-at-a-time unrolled memset(). 1999-03-15 06:37:43 +00:00
mycroft 2b504929fa Just some minor cleanup. 1999-03-10 08:15:43 +00:00
mycroft f1c544b6a8 Use ieee.h structs and macros. 1999-03-10 08:14:44 +00:00
ragge 22df858e3c Fix typos after the hton* changes. Need __*setjmp14.S also. 1999-03-06 11:13:43 +00:00
christos ae6215337e Don't use 1: label; it is uses by the PIC_PROLOGUE macro and we jmp in the
wrong place!
1999-02-22 13:07:14 +00:00
christos af1c8fd11a For don't mess up the stack before calling syscall when using PIC_PROLOGUE. 1999-02-13 16:13:48 +00:00
is 3fafc185a5 68060 optimization, doesnt hurt others 1999-02-08 22:00:13 +00:00
christos e387e174fc Amend for the PLT fixes, things broke last night with the changes to SYS.h
and cerror.S. In particular, the syscalls in the files committed below were
broken.
1999-02-08 18:56:48 +00:00
christos 143dcdbe44 Make cerror an entry and compensate for the PIC_PROLOGUE change in SYS.h 1999-02-07 17:22:25 +00:00
christos cb41675175 Add PIC_PROLOGUE before the PLT call to cerror. ELF dynamic linking needs
this.
1999-02-07 17:21:38 +00:00
jonathan 2d40554ce3 _setjmp.S needs OFFSETOF_SC_{FP,}REGS, so include <machine/signal.h>
even tho _setjmp()/_longjmp() don't manipulate signals.  (more thought?)
1999-02-05 00:41:42 +00:00
matthias f44e783c10 When invoking ALTENTRY, the arguments may not contain spaces (not even
after the ",") or this will fail when cpp is run with -traditional-cpp.
1999-02-01 21:32:35 +00:00
castor eede9d202f Regularize with removal of genpubassym.cf. Structure offsets
now obtained from signal.h
1999-01-31 00:57:10 +00:00
jonb f23e238690 things like newfs need bswap64 in libc 1999-01-22 14:22:36 +00:00
mycroft da8a0f49c7 Whitespace fix. 1999-01-22 11:01:04 +00:00
mycroft 99355f3153 Use insbl to reduce by 1 instruction. 1999-01-22 10:59:18 +00:00
mycroft 8bf9a67c76 One instruction shorter, and returns the same 32-bit result. 1999-01-22 09:13:17 +00:00
castor 8605fac4eb * Fix typo in Makefile.inc -- byte_swap_2.4 -> byte_swap_4.S
* Change bytes_swap_4.S to have consistent NLEAF and END for swap routine.
1999-01-18 04:32:49 +00:00
bouyer dc306354b0 Move the bswap functions from libutil to libc (this bups the
minor of libc and the major of libutil). For little-endian architectures
merge the bnswap() assembly versions with nto* and hton* using symbols
aliasing. Use symbol renaming for the bswap function in this case to avoid
namespace pollution.
Declare bswap* in machine/bswap.h, not machine/endian.h. For little-endian
machines, common code for inline macros go in machine/byte_swap.h
Sync libkern with libc.
Adjust #include in kernel sources for machine/bswap.h.
1999-01-15 13:31:15 +00:00
castor 7ad987bb7c Userland support for 64-bit safe sigcontexts. 1999-01-15 03:53:33 +00:00
kleink 6348b7d5b5 * On architectures using ELF, and conditionally on those in transition, rename
_ASM_LABEL(cerror) and _ASM_LABEL(curbrk) to _C_LABEL(__cerror) and
_C_LABEL(__curbrk) (or their respective architecture-specific equivalents) to
avoid possible name clashes with identifiers used in user applications.
* Do the same for minbrk on all architectures to avoid a GCC-specific (and
on ELF architectures effectively useless) symbol reference renaming in MI code.
1999-01-14 22:48:18 +00:00
simonb c93135c35a s/vm_offset_t/vaddr_t/ 1999-01-10 08:24:42 +00:00
eeh ff34887c45 More fixes to signal handling code... 1999-01-03 16:22:04 +00:00
mycroft 317ff12487 Slight cleanup. 1998-12-04 09:52:43 +00:00
thorpej efd37a7da8 Warn about references to the compatibility vfork() (i.e. the vfork() with
the 4.4BSD non-shared-address-space semantics), and direct the user to
include <unistd.h> to generate the correct reference.

This warning isn't about an ABI compatibility issue, but the new vfork() is
considerably faster.
1998-12-02 19:29:56 +00:00
thorpej e644246e6a Warn about references to the compatibility() sigaction(), sigpending(),
sigprocmask(), sigreturn(), and sigsuspend(), and direct the user to
include <signal.h> to generate the correct reference.
1998-12-02 01:01:03 +00:00
sakamoto e3a695901c Add frexp.c and modf.c. 1998-11-26 07:50:56 +00:00
tsubai 106908bdb8 Add PIC version. 1998-11-24 11:14:54 +00:00
christos 7c990e0c7b delint 1998-11-14 19:31:01 +00:00
matt cf2842a1b0 Some changes to disassembly easier without causing any performance penalty. 1998-10-20 06:46:19 +00:00
christos f2e15d15fa Fix the non pic version too. 1998-10-16 14:11:53 +00:00
christos 3d8121f3df PR/6285: Tom Ivar Helbekkmo: sigsetjmp/siglongjmp broken after current signal
changes.
1998-10-16 13:28:39 +00:00
kleink d541ca6d80 Need internal names for isinf() and isnan(). 1998-10-13 14:43:36 +00:00
matt c1d0053032 PICify. (e.g. change movl $sym, rX to movab sym, rX) 1998-10-13 00:02:19 +00:00