Commit Graph

755 Commits

Author SHA1 Message Date
msaitoh aa754324f7 style fix (no functional change) 2001-05-11 19:58:06 +00:00
kleink 6814785547 Make the END() argument match the entry name. 2001-05-07 17:19:17 +00:00
ross b25c2304f3 I have no idea why this syscall wrapper does some very un-unix-like
argument prefrobbing, in particular, it computes max(addr, __minbrk)
and uses that. The code is like this even in the ancient libc/i386 tree,
back to the earliest rev 1.2. I did not see it Lite 1, but I'm not totally
sure what the random site I found was serving up.
*
* However, I do know that it should use jb and not jl.
*
2001-05-06 19:27:07 +00:00
kleink d493d86cac Shameless hack to reference end when using a.out and _end when using ELF. 2001-05-05 17:56:58 +00:00
kleink f56935aca7 Shameless hack to reference end when using a.out and _end when using ELF. 2001-05-05 17:46:37 +00:00
ross 1b16e0e8ee tweak barrier ops some more 2001-04-26 04:18:32 +00:00
ross 18274acbcd Delete the trapb ops bracketing mf_fpcr, they aren't needed.
Change the trapb ops bracketing mt_fpcr to excb ops.
2001-04-26 03:23:18 +00:00
ross 0c3b624af9 Complete rewrite. Call the new sysarch(ALPHA_FPGETSTICKY, ...). 2001-04-26 03:21:39 +00:00
ross 91a26b1052 remove the trapb ops bracketing mf_fpcr, in this one case they aren't needed 2001-04-26 03:19:10 +00:00
ross 885770193a minor cleanup 2001-04-26 03:16:58 +00:00
simonb 8b33f6cba9 Fix typos in an (unused) function return type. 2001-04-26 01:00:30 +00:00
marcus 059c35bcd9 Renamed reference to compat syscall to conform to new naming scheme. 2001-04-09 16:08:41 +00:00
marcus 84308157cc Added missing _C_LABEL to errno reference. 2001-04-09 16:07:34 +00:00
bjh21 d1fdb92ff8 Remove arm32-specific files from libc. NetBSD/arm32 now uses the generic
ARM sources in lib/libc/arch/arm.
2001-03-13 19:31:36 +00:00
bjh21 6964bdfcad Re-instate __fixunssfsi() and __fixunsdfsi(), but only for arm32 with a.out
binaries, because libc's provided them there forever.
2001-03-08 18:56:19 +00:00
bjh21 328780b294 Leave selection of APCS mode to the compiler -- future versions of cpp will
get it right.

Always include new softfloat code -- it seems OK on arm32.
2001-03-07 00:49:48 +00:00
cgd 2eb1943575 make these more amenable to being copied into libkern. (Gee, why wasn't
this done before?  it's not like it was hard...)
2001-02-27 19:44:54 +00:00
cgd 181fee6ea8 pull up <machine/endian.h> and use BYTE_ORDER to decide endianness,
rather than MIPSEL and MIPSEB definitions.
2001-02-27 18:59:16 +00:00
bjh21 fe6fa58436 Add support for ARM VFP-format doubles, conditional on __VFP_FP__. 2001-02-21 18:09:25 +00:00
msaitoh 6e979b59fa _C_LABEL() 2001-02-16 20:03:09 +00:00
msaitoh 3c31811206 don't profile (use NENTRY() and ALTENTRY()) 2001-02-14 21:04:17 +00:00
msaitoh 43f68615ec use _C_LABEL() 2001-02-14 11:32:44 +00:00
eeh e21d458f48 Don't flush the zero-ed data from the cache. 2001-02-10 23:35:41 +00:00
wiz d1112b63ff De-lint. Reviewed by christos. 2001-02-09 14:16:12 +00:00
wiz 4d8cd9d9e4 Add some casts to make lint shut up. Reviewed by christos. 2001-02-08 18:28:07 +00:00
bjh21 0347c41a17 Don't declare functions that are provided elsewhere in libc. 2001-02-08 13:22:15 +00:00
scottr ed472989a6 Implement a significantly improved version of memccpy(), with thanks to
Ignatios Souvatzis for correcting the SVR4 ABI code and for a few
micro-optimizations that followed from these changes.

The overall improvement was measured at 3-4x for copies of at least
4 bytes on the 68030, and 8 bytes on the 68040.  For smaller copies
the improvement was still measurable, if not as dramatic.
2001-02-05 00:17:22 +00:00
scottr 7b10d18078 Implement a significantly improved version of memccpy(), with thanks to
Ignatios Souvatzis for correcting the SVR4 ABI code and for a few
micro-optimizations that followed from these changes.
2001-02-05 00:17:21 +00:00
wiz 37606c1593 delint (variable is only used for size, so make if size_t instead of int). 2001-01-26 13:20:32 +00:00
bjh21 3da8f9bff4 Correct licence to current TNF one. 2001-01-23 19:07:34 +00:00
itojun 9870327734 fix syscall() and __syscall(). r0 has to be set to SYS_syscall or
SYS___syscall, respectively.  otherwise sys/arch/sh3/sh3/trap.c will
look at the wrong argument.
2001-01-17 05:15:02 +00:00
bjh21 da666fcde6 Replace boiler-plate code sequences with macro invocations from SYS.h. 2001-01-09 21:19:33 +00:00
bjh21 4cb97060e6 Use SYSTRAP() everywhere rather than coding SWI instructions directly. 2001-01-09 19:47:27 +00:00
bjh21 f5fadef6d9 Add some explanatory comments. 2001-01-09 19:30:38 +00:00
lukem e0cb66f652 rcsid & whitespace police 2001-01-08 15:21:37 +00:00
fvdl 52d1f12742 Make these actually work (fixes PR 11914). 2001-01-08 14:36:41 +00:00
itojun 6de175eeb8 __syscall is now mandatory 2001-01-04 08:53:50 +00:00
matthias c7a662aae7 Cosmetics. Use _ASM_LABEL for cerror. 2000-12-29 23:16:42 +00:00
matthias beff37f457 Implement 64 bit version of syscall. 2000-12-29 23:16:18 +00:00
bjh21 5aefcfdc06 Create shared ARM source for libc, and move arm26 port over to using it.
The code is (almost) a direct copy of the current arm26 sources.
It's identical to the current arm32 sources, with the following exceptions:
 - _C_LABEL is used on references to C labels from assembler.
 - Function returns in assembler have APCS-26 versions in #ifdef __APCS_26__.
 - It uses SoftFloat 2a rather than SoftFloat 1a.

The first two of these should be inconsequential.  I believe that SoftFloat 2a
should work on arm32 and be backward-compatible with existing code, but this
is not obviously true.  For now, arm32 remains using its own bits of libc.
2000-12-29 20:13:44 +00:00
bjh21 a88be20997 We no longer have _C_FUNC: Use _C_LABEL instead. 2000-12-29 13:39:39 +00:00
bjh21 40906c10a4 Sync with arm32: remove ovbcopy entry point. 2000-12-28 18:33:54 +00:00
bjh21 9d5c6f8887 RCSID cleanup. 2000-12-28 18:27:24 +00:00
tsubai 7ec5b1f483 Fix weak alias. 2000-12-16 01:40:38 +00:00
bjh21 148c9ed7ee Resync with arm32:
byte_swap_2.S 1.4
  byte_swap_4.S 1.3
2000-12-14 20:47:26 +00:00
mycroft e4a2f51cc9 Adjust to not use ALTENTRY(). 2000-12-14 20:17:32 +00:00
mycroft ffb377199e Make this link right again! 2000-12-14 20:03:42 +00:00
bjh21 f213bb8702 Use _C_LABEL rather than _C_FUNC. 2000-12-14 19:40:22 +00:00
bjh21 d0ec536a8d Sync with arm32. 2000-12-14 19:27:34 +00:00
simonb 1bb9a3396c Remove all the .abicalls assembler directives - "SYS.h" already has that. 2000-12-13 23:29:06 +00:00
simonb 488ef36c45 Another bare minimum __syscall. 2000-12-13 23:18:40 +00:00
scw e86cd7609a The bare minimum to get m68k libc working again... 2000-12-13 21:46:23 +00:00
martin 772baecb3a Add simple __syscall.S to make libc compile on sparc64 again. 2000-12-13 20:25:04 +00:00
pk efd94d5369 Add required __syscall.S stub. 2000-12-13 10:29:40 +00:00
matt b0bf2adc11 This should convert to syscall but that's too hard. So punt. XXX 2000-12-13 07:50:48 +00:00
mycroft 344549013e Add the obvious, trivial __syscall() stub. 2000-12-13 07:49:17 +00:00
matt 3a17b3526a Don't need __syscall.S here either. 2000-12-13 07:44:34 +00:00
matt 44e25a6200 Add __syscall.S back to sys/Makefile.inc. Remove from arch/i386/gen/
Makefile.inc.  If your architecture doesn't have __syscall.S, *add it*.
2000-12-13 07:42:47 +00:00
matt 0e233d1597 Add a VAX version of __syscall. XXX Doesn't handle if syscall number is
> 0xffffffff or < -0xffffffff.
2000-12-13 07:34:54 +00:00
matt 9a6a3ec1b5 Add __syscall.S to arch/i386/gen/Makefile.inc along with all the other
sys .S files.  Remove from arch/i386/Makefile.inc since it doesn't belong
there.
2000-12-13 07:14:43 +00:00
enami 44db4d16cc KMSRCS is different from SRCS. Put __syscall.S in latter. 2000-12-13 07:05:55 +00:00
simonb 0e35eedd7e Move __syscall.S to the arch specific Makefile.inc's where it is
implemented.
2000-12-12 22:38:42 +00:00
mycroft 0878972b4c Adjust for changes in asm.h. 2000-12-12 07:35:39 +00:00
mycroft 62664869a2 Add trivial implementation. 2000-12-12 07:10:25 +00:00
mycroft 3340188285 Minor cleanup. 2000-12-12 07:10:14 +00:00
is aaed06d422 Identical on m68k. 2000-12-11 16:17:18 +00:00
mycroft 731305d114 Handle __syscall() in user-level code for i386. 2000-12-10 21:27:37 +00:00
mycroft 10bfc7b1b3 Use the SYSTRAP() macro more uniformly. 2000-12-08 22:57:57 +00:00
scw c762ba1426 Use A1 to save the return address, since A0 is no longer preserved across
system calls.
2000-12-07 14:13:43 +00:00
scw 4cc90c99f2 The last change broke things if SYS___vfork14 returned an error; fix it. 2000-12-07 14:12:49 +00:00
is 0bffee4893 The mapping is, effectively, an exclusive or with 0x01. Replace.
Savings: 10 bytes of code/constant data, 1 machine instruction (including
one memory access).
2000-12-04 12:02:08 +00:00
scw 6751bb4f81 Save the return address in %a1 across the vfork syscall instead of %a0. 2000-12-02 17:03:06 +00:00
scw c586587e47 Restore %a0 after the call to sigprogmask(2) since an ELF kernel
will stomp on it due to SVR4 ABI compliance...
2000-12-02 16:25:39 +00:00
is a4fe32b56e Another change by Hiroshi Horimoto. 2000-11-28 15:23:09 +00:00
scw c81e32f3dd Add missing register prefixes. 2000-11-28 11:37:20 +00:00
scw 4dab4ff2ca Add a missing `%' register prefix. 2000-11-28 11:34:14 +00:00
is a3a6f324e6 Use dbeq loops, code submitted by Hiroshi Horimoto in PR 3223, integrated
and tested by Allen Briggs.
Needs 1/3 less time on 68030, 45% less time on 68040.
XXX On 68060, 1/2 less time for the padding part, but 40% more time on the
copy part. I've stared at the 68060 User Manual, but can't understand why;
must be some wierd (branch) cache interaction.
2000-11-27 22:35:30 +00:00
eeh 5d73d71676 Fix modf() (I hope. Can't be any worse than the old version.) 2000-11-01 23:32:41 +00:00
jeffs 4912e50a59 Make memcpy and memmove use bcopy assembly for mips. Tweak forward copy
code for backward copy to make overlap copy faster.  This happens in
some SW like sleepycat db.  Use temp labels in order to not confused
the profiling tools.
2000-10-10 21:51:54 +00:00
kleink a253819635 Whitespace botch in previous, noticed by Leo Weppelman and Thorsten Frueauf. 2000-10-02 14:52:39 +00:00
kleink bea4776498 _SYSCALL() argument order botch in previous. 2000-10-02 14:51:57 +00:00
kleink 82fd76bb06 Need an internal name for pipe(2). 2000-09-28 08:38:53 +00:00
msaitoh f9b799b651 check LIBC_SCCS 2000-09-13 22:32:25 +00:00
thorpej 9c5afcb2f0 Move the Alpha _mcount() into a .S file so that it can be
pre-processed, like other Alpha assembly files.
2000-09-05 16:28:30 +00:00
eeh d3312c2719 Fix layout of fields in jmp_buf. [N.B. we could make JMP_BUFLEN 9 if we want.] 2000-08-28 00:45:59 +00:00
joda 991b448f39 add newline at end of file, to please (the quite buggy) mkid 2000-08-22 12:24:17 +00:00
ad 136f4e3b32 %edx is free; use it instead of %ebx. 2000-08-07 14:46:52 +00:00
matt 09f029058b Fix some ELF/a.out lossage 2000-08-07 03:18:04 +00:00
tsubai 7272e1b36f s/minbrk/_C_LABEL(__minbrk)/. 2000-08-04 09:19:39 +00:00
tsubai 511556bf86 Change comment character from '#' to '!'. (binutils-2.10 doesn't like '#') 2000-08-04 08:47:03 +00:00
eeh 9c2bf87977 Need to reserve a full 64-bit stackframe, not a 32-bit one. 2000-07-26 00:53:50 +00:00
mycroft 01a39929fc Store the whole 64-bit pointer... 2000-07-25 20:15:40 +00:00
mycroft fb41c8728c Use cpp comment style. 2000-07-25 15:14:45 +00:00
mycroft c54917029b Make __dtoul() actually DTRT. The calling convention was totally wrong, and
the `big' value should be 2^63, not 2^31.
Also, nuke __fixunsdfsi(), since this is never output by the sparc64 compiler.
2000-07-25 04:26:12 +00:00
mycroft 4272204d8d Offset the %i2 stack slot from %sp, not %fp. Otherwise we may modify the
caller's registers!
2000-07-24 15:36:49 +00:00
mycroft fc590aafb4 There's no good reason not to assume a 64-bit stack here. 2000-07-24 15:24:55 +00:00
mycroft eded30220a Don't bother saving %f16-%f31, since we don't use them. 2000-07-24 07:30:54 +00:00
mycroft b3e75eb4ed _errno -> __errno 2000-07-24 00:11:10 +00:00
mycroft e740400671 Just use a store/load pair to get the pattern into the FP reg. This eliminates
a bunch of cruft and avoids using a v9a instruction.
In addition, eliminate 8 of the fmovda's, which we are not using the result of
anyway.
Net result is that this should be faster in all cases.
2000-07-23 20:34:07 +00:00
eeh 32ceb997a8 Fix stack BIAS issues. 2000-07-23 07:12:22 +00:00