justin
b4bb74214e
Do not build arm toolchain symbols in the rump kernel
...
These symbols will be provided at link time and will be
duplicate symbols in rump kernel and libc if defined.
Many have been fixed previously, but these were missed
as did not have a test.
2015-05-17 20:57:11 +00:00
christos
72b528eece
Now that _PROP_ISSPACE does not include the EOF check, put the check for
...
EOF inside the loop. Also fix another unbounded loop that did not check for
EOF. From Mateusz Kocielski
XXX: pullup-7
2015-05-12 14:59:35 +00:00
christos
272b1fe359
Don't treat NUL (EOF) as SPACE. All the code that uses _PROP_ISSPACE() checks
...
explicitly for _PROP_EOF() anyway, and this can be abused to cause run beyond
the end of buffer DoS (Mateusz Kocielski)
XXX: pullup-7
2015-05-11 16:50:35 +00:00
christos
ad3d79508d
Limit size of xml buffer for userland requests (From Mateusz Kocielski)
...
XXX: pullup-7
2015-05-11 16:48:34 +00:00
christos
35d355f3ea
- new test for strtoi
...
- namespace protection for strto{i,u}
- separate manpages for strto{i,u} from the ones for strto{u,}l
From: Kamil Rytarowski
2015-05-01 14:17:56 +00:00
riastradh
808c0b52c7
Sort includes.
2015-04-21 12:47:33 +00:00
skrll
a2e01a4bd7
Use the right register in previous. Spotted by matt@
2015-04-17 07:15:02 +00:00
skrll
bbef540942
ARM ARM D7.3.2 - ensure all previous accesses are observed before
...
the lock is cleared
2015-04-17 07:03:40 +00:00
justin
6324ab4097
On big endian machines needs to include sys/endian.h for le32dec
...
Mainly affects cross builds on big endian; tested on FreeBSD mips
and Linux ppc.
2015-04-15 08:31:05 +00:00
matt
2d9adf0d04
Switch to new ABI (a0/a1 replace v0/v1)
2015-03-27 06:42:37 +00:00
justin
8f795c07a7
Don't build the __eabi_ aliases in the arm rump kernel.
...
These are provided by libc in userspace, so leave out of kernel
2015-03-26 13:34:51 +00:00
riastradh
5a2ca44c60
Switch to the suggested constant-time result conversion.
...
Not hard to find CPU/compiler combinations with branches for `!res'.
While here, make everything unsigned for good measure.
2015-03-18 20:11:35 +00:00
christos
84a48e0829
match variable names with man page (Kamil Rytarowski)
2015-01-18 17:55:22 +00:00
christos
368192c420
add strto{i,u} from Kamil Rytarowski as discussed in tech-userlevel.
2015-01-16 18:35:28 +00:00
riastradh
fe3ead6a42
Introduce membar_datadep_consumer.
...
Discussed briefly on tech-kern without objection:
https://mail-index.netbsd.org/tech-kern/2014/11/20/msg018054.html
https://mail-index.netbsd.org/tech-kern/2015/01/07/msg018326.html
2015-01-08 22:27:17 +00:00
chs
6d40f9ff57
add a new "fo_mmap" fileops method to allow use of arbitrary uvm_objects for
...
mappings of file objects. move vnode-specific details of mmap()ing a vnode
from uvm_mmap() to the new vnode-specific vn_mmap(). add new uvm_mmap_dev()
and uvm_mmap_anon() convenience functions for mapping character devices
and anonymous memory, and replace all other calls to uvm_mmap() with those.
use the new fileop in drm2 so that libdrm can use mmap() to map things
like on other platforms (instead of the ioctl that we have used so far).
2014-12-14 23:48:58 +00:00
matt
f6453319ae
Add atomic_c11_compare_exchange_cas_{8,16,32}.c
2014-11-20 07:07:13 +00:00
joerg
67ec38504d
Provide prototypes to fix build with clang.
2014-11-04 19:56:44 +00:00
dennis
f8446d6fc9
Add missing C11 atomic support functions to repair prior
...
build breakage. matt@ made me do this.
2014-10-16 18:52:17 +00:00
martin
be3005a074
Provide C++ 2011 <atomic> support functions for hppa and arm.
2014-10-14 07:25:05 +00:00
martin
f0a1164b36
Provide <atomic> C++ 2011 support functions for mips and sh3.
2014-10-13 13:00:55 +00:00
martin
963bb46806
Move the and_{16,8}_nv sources into the right (libc only) block.
2014-10-13 12:49:59 +00:00
martin
6e3879b0c6
Add C++ 2011 <atomic> support functions.
2014-10-13 08:59:41 +00:00
martin
3f671a8ede
Provide __sync_and_and_fetch_2 and __sync_and_and_fetch_1 for pre-ARMv6,
...
they are needed for the C++ 2011 <atomic> stuff.
2014-10-13 07:31:12 +00:00
martin
241614a4c5
Hook __atomic_compare_exchange_N into vax libc.
2014-10-12 17:53:33 +00:00
martin
2a3f84309a
Provide __atomic_compare_exchange_N (as needed for the C11 2011 <atomic>
...
ops) via the corresponding CAS.
2014-10-12 17:51:47 +00:00
khorben
00b617c08a
Look for the character to locate before checking for the NUL character
...
As documented in PR port-i386/49208, this fixes strchr(s, '\0'), as used by
the FAT first-stage bootloader on x86 (bootxx_msdos).
strchr(s, '\0') is otherwise equivalent to strlen(string), which would
probably look nicer in the original file, dosfs.c from libsa.
Confirmed working in qemu and on real hardware.
ok joerg@
XXX pull-up to netbsd-6 and netbsd-7
2014-09-22 20:31:56 +00:00
matt
6cf6fe02a9
New files for Userland support of UCB RISC-V (both 32-bit and 64-bit)
2014-09-19 17:36:24 +00:00
matt
6569f93208
Eliminate use of C++ keywords and don't nest struct definitions.
2014-09-05 05:19:24 +00:00
matt
27620987b8
New files for OR1K support
2014-09-03 19:34:25 +00:00
matt
8f455a577d
Add __sync_val_compare_and_swap_{1,2} aliases for _atomic_cas_{8,16}
2014-09-03 19:30:47 +00:00
matt
903c030159
Remove enclosing parens on return.
2014-08-22 17:19:48 +00:00
riastradh
b4d2027a4b
Fix failure case in rb_tree_find_node_leq/geq.
...
Return NULL, not `NULL - offset'.
XXX pullup to netbsd-5, netbsd-6, netbsd-7
2014-08-22 17:17:02 +00:00
matt
11614bb2b2
MKCOMPAT fixes for when compat MACHINE_CPU != normal MACHINE_CPU
2014-08-10 23:25:49 +00:00
matt
beb9c6d1b5
Preliminary files for AARCH64 (64-bit ARM) support.
...
Enough for a distribution build.
2014-08-10 05:47:35 +00:00
joerg
677b0f4807
Fix decoding of near CALL when address-size prefix (67h) is present.
...
From Wolf Ramovsky via FreeBSD.
2014-08-04 21:41:44 +00:00
joerg
5dfafbb265
Fix decoding of LEA when address-size prefix (67h) is present.
...
From Wolf Ramovsky via FreeBSD, loosly based on Xorg changeset f57bc0e
by Christian Zander.
2014-08-04 21:40:11 +00:00
joerg
2501b6362f
Fix decoding of MOVSX. From Wolf Ramovsky via FreeBSD.
2014-08-04 19:19:02 +00:00
ryo
d82036afdc
fix lack of '>' pointed out in PR/48517
2014-08-02 11:19:01 +00:00
lneto
4ab4902eb2
lua: updated from 5.1 to 5.3 work3
...
* lua(1):
- changed lua_Integer to intmax_t
- updated distrib/sets/lists and etc/mtree
- updated bsd.lua.mk
- fixed bozohttpd (lua-bozo.c)
- compatibilized bindings: gpio, sqlite
* lua(4):
- removed floating-point and libc dependencies using '#ifndef _KERNEL'
- fixed division by zero and exponentiation
- libkern: added isalnum(), iscntrl(), isgraph(), isprint() and ispunct()
- acpica: removed isprint() from acnetbsd.h
- libc: moved strcspn.c, strpbrk.c and strspn.c to common
- removed stub headers
- compatibilized bindings: luapmf, luasystm
* reorganized luaconf.h
* updated doc/CHANGES and doc/RESPONSIBLE
2014-07-19 18:38:33 +00:00
joerg
aa565dfb01
Add unused memory model argument to make GCC happy.
2014-07-06 01:19:45 +00:00
joerg
3ba4836216
Provide a basic implementation of __atomic_load_* and __atomic_store_*,
...
used by GCC and LLVM as backing for C11/C++11 atomics, if the hardware
is not known to have corresponding features. Include it on ARM as LLVM
and libc++ hit it when compiled for ARMv4.
2014-07-05 20:44:46 +00:00
joerg
bd7dee058c
Add aliases for the C11/C++11 spelling of the CAS primitives.
2014-06-28 20:18:55 +00:00
drochner
1970d452ef
add a public domain notice
2014-06-24 16:39:39 +00:00
joerg
504e8e687f
Add aliases for the builtins used to implement C11/C++11 atomics.
2014-06-23 21:53:45 +00:00
christos
f16aa4743c
update for the new function signatures of initstate/srandom
2014-06-12 20:59:46 +00:00
shm
a3f6a15448
PR/48517 do not add extra '>' to string-converted value when nothing matches
2014-06-06 07:08:37 +00:00
uebayasi
19ef5b5b0b
Put missing END() markers to set ELF symbol size.
2014-05-23 03:17:31 +00:00
pooka
b1a03c8e0b
fix build for _KERNEL
2014-05-22 16:47:31 +00:00
uebayasi
502c621104
Put missing END() markers to set ELF symbol size.
2014-05-22 15:21:13 +00:00
joerg
353aedd819
Make EHABI optional.
2014-05-06 16:02:10 +00:00
christos
57561cf1db
The kernel uses 64 bit atomic ops.
2014-04-22 19:27:17 +00:00
joerg
e3dae42754
Undef possible macro versions of memcpy and friends for kernel builds
...
too. libkern sometimes defines them to the builtins.
2014-04-16 20:39:55 +00:00
joerg
a33c368664
Using bcopy/memcpy with NULL arguments is valid as long as the size is
...
also 0.
2014-04-14 18:18:58 +00:00
skrll
39ac7250f3
Ensure SBZ register is zero
2014-03-28 21:32:41 +00:00
christos
a6e338b0d6
kill sprintf
2014-03-26 18:12:46 +00:00
jakllsch
2c56941e16
For all i386 string assembly functions that don't overlap use END() so
...
that symbol size information is available.
2014-03-22 19:38:46 +00:00
jakllsch
6ac3c1f4d7
For all x86_64 string assembly functions that don't overlap (i.e. every
...
one except memset and bzero) use END() so that symbol size information
is available.
2014-03-22 19:16:34 +00:00
riastradh
6cb10275d0
Merge riastradh-drm2 to HEAD.
2014-03-18 18:20:35 +00:00
riastradh
0766111859
Fix subword atomic_cas.
...
- Don't loop forever on failure.
- Don't shift away the result and return zero on success.
Evidently we lack automatic tests for these!
2014-03-09 16:19:14 +00:00
martin
b6407fab71
Fix return value (typo, noticed by Nick Hudson)
2014-03-07 08:42:58 +00:00
matt
3b018d607e
Use the sources in ../../arch/powerpc instead
2014-03-07 07:20:56 +00:00
matt
c9642ed49c
Now the sources in ../../arch/powerpc
2014-03-07 07:20:24 +00:00
matt
6dd4b41fd3
Reduce duplication.
...
Use beqlr to quicken returns
2014-03-07 07:17:54 +00:00
matt
e70564d7d6
apcs-gnu only passes one register on the stack.
...
ldrd always loads little endian (low address, low register).
2014-03-05 17:20:48 +00:00
macallan
1890dda80c
on 601 CPUs skip to normal memcpy if both source and destination are 32bit
...
aligned
2014-03-04 17:05:14 +00:00
matt
ab7ecd2ca6
Don't export __sync* if _KERNEL || _STANDALONE are defined.
...
(except if _RUMPKERNEL is defined)
2014-03-04 16:15:28 +00:00
matt
4fa1971b77
Fix #if/#endif nesting
2014-03-04 07:01:26 +00:00
matt
f2d0e50b73
fix typo.
2014-03-04 06:36:41 +00:00
matt
2e6bec6f0d
Make this work with coldfire.
2014-03-04 06:15:33 +00:00
matt
ab9be61dac
Make this coldfire compatible
2014-03-04 04:03:49 +00:00
matt
37c6d125b7
Fix non-EABI loading of argument. Deal with endian issues.
...
Fixes PR/48635
2014-03-04 03:50:37 +00:00
matt
674350cab3
Add atomic_sub_64.S
2014-03-04 03:49:07 +00:00
matt
308d85879d
Load new value from correct stack location in _atomic_cas_64_up
2014-03-04 03:36:24 +00:00
matt
be9a2e2448
Fetch value from correct stack location. Push an even number of registers
...
so ldrd won't fail.
2014-03-04 03:34:22 +00:00
matt
f3eefe6cf1
Use _KERNEL_OPT around #include "opt_ppcarch.h"
2014-03-03 18:55:02 +00:00
macallan
a00f9ab046
on ppc601 do byte-wise copies when in _KERNEL
...
from scole_mail, ok matt@
2014-03-03 15:30:31 +00:00
matt
d9d3fe3d18
Add atomic_cas_64 support for ARM EABI on V5TE and V5TEJ cpus.
...
(strd is atomic).
2014-02-27 09:39:00 +00:00
matt
99ca27526b
Add a method to test the compiler for things like LDREX availability,
...
LDRD availability, THUMB2, EABI.
2014-02-27 09:37:02 +00:00
martin
7d33c23876
Provide CAS variants for 16 and 8 bit when running with more that 1 cpu
2014-02-24 17:18:27 +00:00
martin
a9af946581
Provide cas_16 and cas_8 emulation via cas_32 and use that for mips64
2014-02-24 16:15:43 +00:00
martin
acddc8c970
Remove misplaced #endif
2014-02-23 07:43:38 +00:00
martin
0bc3e372de
Missed one __sync_* op (or gcc4.8 does inline it, while 4.5 does not?)
2014-02-22 17:16:12 +00:00
martin
b290679a78
Try to hide the C runtime implementation specific __sync_* ops from librump,
...
to avoid duplicates.
2014-02-22 17:08:30 +00:00
martin
a41f5c9de6
Add missing __sunc_* ops for sun2
2014-02-22 14:51:34 +00:00
martin
1e4743d51f
Add missing __sync_* ops to libc
2014-02-22 12:12:30 +00:00
skrll
ee0ea75254
Add the missing __sync_* ops to libc
2014-02-22 10:23:24 +00:00
martin
fc2fa9ee78
Add the missing __sync_* ops to libc
2014-02-22 08:53:33 +00:00
skrll
685e258fc7
Another layout change
2014-02-22 08:24:27 +00:00
skrll
59b3381179
Layout changes - no functional change.
2014-02-22 08:21:03 +00:00
martin
7c40818eed
Move the __sync_* ops added in the previous change to a libc-only section
2014-02-22 08:08:56 +00:00
martin
6868f31bc9
Provide the missing __sync_* ops for earlier arm versions
2014-02-21 21:54:38 +00:00
martin
c2b8beffc9
Provide all __sync_* ops in libc.
2014-02-21 19:05:33 +00:00
martin
dd367c0e94
Provide the missing __sync_* ops for sparc.
2014-02-21 16:21:02 +00:00
martin
de9cd3f918
Add a few missing namespace includes
2014-02-21 16:06:48 +00:00
martin
e39d980f88
Provide 8 and 16 bit sync ops (using 16 bit and 8 bit cas)
2014-02-21 15:51:07 +00:00
martin
181d8404c2
Fix previous: move the alias declaration outside of a #ifdef _LP64
2014-02-21 14:42:09 +00:00
martin
badf055197
Provide 32bit __sync ops based on atomic_cas_32.
2014-02-21 10:52:50 +00:00
martin
3f9f137185
Add missing __sync_lock_test_and_set_* aliases for PR lib/48601
2014-02-21 10:27:34 +00:00
martin
ce6031c29a
Add missing __sync_* ops
2014-02-20 20:39:01 +00:00
martin
566b4de508
Simplify the variants returning a bool
2014-02-20 16:33:23 +00:00
martin
0ac513ac84
Add a few __sync_* and atomic functions.
2014-02-18 16:19:28 +00:00
martin
1a7bc9a039
Make the _and_fetch_8 primitives return the new value they calculated
...
and set - not whatever is found in memory later.
2014-02-18 13:21:04 +00:00
martin
7925d62af9
Do not include <stdbool.h> in the kernel
2014-02-18 12:23:07 +00:00
martin
7c94bf0860
Provide most missing __sync_*64 primitives for i386
2014-02-18 10:16:55 +00:00
matt
a857702bee
switch to unified syntax
2014-01-30 06:39:16 +00:00
joerg
720b2586bd
Include compiler-rt in libc, libm and libkern.
2014-01-29 23:37:18 +00:00
joerg
1f8490615f
Kernel and standalone code uses panic() for broken code.
2014-01-29 22:29:43 +00:00
joerg
80d48117e3
Fix up the remaining __sync_* functions to build with Clang on ARM.
2014-01-29 15:59:11 +00:00
martin
25bbb5795c
Fix a few more copy&pastos - now it actually builds.
2014-01-29 14:49:35 +00:00
martin
428c02d983
Fix copy&pasto
2014-01-29 14:44:32 +00:00
martin
0c99b2643b
Provide _atomic_cas_{16,8}_up
2014-01-29 13:06:36 +00:00
skrll
b39a3f4728
Copyright
2014-01-29 11:34:25 +00:00
skrll
0271e6c132
Provide _atomic_cas_8_up and _atomic_cas_16_up functions
2014-01-29 11:03:04 +00:00
martin
d5d5b0e6b1
Provide _atomic_cas_8_up and _atomic_cas_16_up as assembler functions
2014-01-29 10:20:11 +00:00
joerg
8ee8f2a279
Allow building with clang.
...
XXX __RENAME is currently not allowed for the kernel, so use plain asm.
Clang rejects definitions of builtins, so it doesn't work without.
2014-01-28 21:47:48 +00:00
matt
96e5c530c7
fix c&p bug.
2014-01-27 20:44:29 +00:00
matt
7544d0a287
Return old
2014-01-27 20:01:50 +00:00
matt
40a93006ff
Fix tpyo (add->and)
2014-01-27 18:43:07 +00:00
matt
0e4f0176c5
fix tpyos.
2014-01-27 18:36:52 +00:00
matt
f5dc673f71
Add __sync_<OP>_and_fetch_<N> aliases
2014-01-27 18:36:37 +00:00
matt
56b80ae3d6
Rework so that __sync_fetch_and_<OP>_<N> actually returns a value.
2014-01-27 18:29:47 +00:00
matt
3f7729ad00
Add __sync_fetch_and_<OP>_<N> aliases
2014-01-27 18:12:57 +00:00
matt
739e8f6504
Add __sync_fetch_and_add_8 alias
2014-01-27 18:09:51 +00:00
matt
b139333299
Add __sync_fetch_and_add_4 alias
2014-01-27 18:08:37 +00:00
matt
d9f098af4b
Add _atomic_cas_16_up and _atomic_cas_8_up
2014-01-27 18:05:24 +00:00
matt
335ea84251
Add _atomic_cas_16 and _atomic_cas_8 and their aliases
...
__sync_val_compare_and_swap_2 & __sync_val_compare_and_swap_1
2014-01-27 18:03:44 +00:00
martin
4bb25a32b9
PR port-arm/48543: do provide __ffssi2 as strong alias (in case libgcc.a gets
...
not linked in) for now.
OK: skrll@
2014-01-23 11:45:46 +00:00
joerg
b8bd769d63
Include bsd.own.mk in case it hasn't been yet.
2014-01-16 11:43:49 +00:00
joerg
2356df897c
Use the quad support from compiler-rt for MKLIBGCC=no.
2014-01-15 20:58:09 +00:00
apb
bfdedd98f6
Make strnlen implementation usable from src/tools/compat.
2014-01-09 11:25:11 +00:00
christos
96602b9efa
make it kernel friendly.
2013-12-27 20:26:53 +00:00
christos
967db62434
kernel needs it now too.
2013-12-27 20:24:45 +00:00
joerg
0c87c94ac0
Write out register pairs for strd.
2013-12-17 01:27:21 +00:00
matt
589d55678c
Fix a bug in the divby0 case.
2013-12-12 18:01:14 +00:00
joerg
aceb213538
Allow kernel code to access constant databases by moving cdbr(3) and the
...
required mi_vector_hash(3) into src/common.
2013-12-11 01:24:08 +00:00
skrll
cd08339278
Add __sync_synchronize alias.
2013-12-07 13:09:55 +00:00
joerg
96f5bbd28d
Improve EABI handling of string functions. Most importantly, fix
...
__aeabi_memset, which has the arguments in the wrong order.
2013-12-02 21:21:33 +00:00
joerg
5249048f1e
Fix aliases.
2013-12-02 12:20:44 +00:00
lneto
c4a02e0a12
changed lua_Number to int64_t
2013-12-02 04:39:10 +00:00
joerg
5ce8d6df3c
Use explicit form of register pair operations by specifying both.
2013-11-30 21:09:11 +00:00
joerg
96195b9815
Explicitly name the register pairs.
2013-11-30 20:43:53 +00:00
joerg
d0dcd65c88
Use PLT_SYM.
2013-11-30 20:20:42 +00:00
jakllsch
0182da6369
Remove x86_64 bzero.S; which since 2009 has only contained instructions
...
that it should be removed in 2010.
2013-11-23 16:57:52 +00:00
matt
918e319dfb
Add support for the gcc __sync builtins.
...
Note that these need earmv6 or later to get the ldrex/strex instructions
2013-11-08 22:42:52 +00:00
christos
4fbaa41dd1
mark variables as used
2013-11-07 17:26:13 +00:00
rmind
ecc1424a7c
murmurhash2: add an optimised path for the aligned pointer case.
2013-10-26 21:06:38 +00:00
christos
7c7c6fd125
remove unused
2013-10-20 21:16:54 +00:00
martin
5fb50cc6c4
Make this compilable with gcc 4.8.1 without options DIAGNOSTIC.
2013-10-18 18:26:20 +00:00
skrll
d3b6b7a500
More (stylistic) whitespace.
2013-09-30 13:07:51 +00:00
skrll
fff36bdac8
Appease new gas
2013-09-30 12:31:27 +00:00
joerg
4d12bfcd15
Pass PICFLAGS down to cc-as-as and use __PIC__ to decide if it is small
...
vs big PIC mode. Retire -DPIC and -DBIGPIC.
2013-09-12 15:36:14 +00:00
matt
47c1ea4ca3
Remove movw/movt due to linker problems.
...
Check for 0 divisor and __aeabi_idiv0 if needed (EABI && _LIBC only).
2013-09-09 07:33:54 +00:00
matt
4e222a409b
s/__libc/_libc/
2013-09-09 00:34:10 +00:00
matt
0e3a78e197
Support using hwdiv instructions if those are available.
...
But only for EABI.
2013-09-08 13:24:16 +00:00
chs
18ec38ea7c
switch to ELF naming for local labels.
2013-09-07 19:06:29 +00:00
matt
ca7975ae61
Use __ARM_EABI__ and new __UNWIND_TABLES__ to decide when to use .cfi ops
2013-09-05 05:15:47 +00:00
riastradh
3db7caeeb3
Comment on possible data-dependent branch in `!res'.
2013-08-28 19:31:14 +00:00
riastradh
1239c2bb08
Publish explicit_memset and consttime_memequal in userland libc.
...
Remove the double-underscore from the userland versions, and do the
weak alias dance instead, now that these are public parts of libc.
As discussed on tech-userlevel:
https://mail-index.netbsd.org/tech-userlevel/2013/06/24/msg007843.html
(option 3)
2013-08-28 17:47:07 +00:00
riastradh
495fdb7e9a
Make explicit_memset match memset's return value.
2013-08-28 15:46:23 +00:00
riastradh
cc79193075
Fix sense of consttime_memequal and update all callers.
...
Now it returns true (nonzero) to mean equal and false (zero) to mean
inequal, as the name suggests.
As promised on tech-userlevel back in June:
https://mail-index.netbsd.org/tech-userlevel/2013/06/24/msg007843.html
2013-08-28 15:24:41 +00:00
matt
5fa3a11dc7
move a misplaced #endif
2013-08-25 06:15:06 +00:00
matt
3202e91ce2
Don't include .cfi info if _KERNEL || _STANDALONE
2013-08-22 19:25:00 +00:00
matt
879bc2893e
Use __section(".test.startup") for the init routines
2013-08-21 03:00:56 +00:00
matt
afb7a3b050
write of final NUL in strlcpy doesn't need to be post-incremented
2013-08-20 21:37:39 +00:00
matt
61e4023f77
If compiling standalone with Thumb, use the thumb version instead of the
...
naive version.
2013-08-20 21:35:24 +00:00
matt
bb45e513c6
Thumb versions of strcpy/strlcpy/strncpy
2013-08-20 21:32:50 +00:00
matt
e61510c225
strlcat_arm.S is smaller than strlcat_naive.S so always use it.
2013-08-20 21:08:54 +00:00
matt
1a52a42b91
Add a missing it gt before movgt for thumb
2013-08-20 16:34:47 +00:00
matt
59eed4d06e
Use the arm versions of strnlen if compiling thumb2
2013-08-20 08:08:59 +00:00
matt
04d357d985
Use the arm versions of strlen/strchr/strrchr if compiling thumb2
2013-08-20 08:07:30 +00:00
matt
7477ad6ac7
thumbify (part2)
2013-08-20 08:06:30 +00:00
matt
b628072a9d
swap r1 & ip
...
use adds, eors, etc.
teq -> cmp
2013-08-20 08:05:49 +00:00
matt
7eb7e9aa67
Push two registers to keep stack aligned.
2013-08-20 07:52:31 +00:00
matt
3444a5b35b
Unless we are using an XSCALE, default to the normal arm version of memcpy.
2013-08-20 07:25:52 +00:00
matt
4ca1b3cb84
Add two thumb2 bits.
2013-08-19 17:50:04 +00:00
matt
c2b4a072b1
Missing one teq -> cmp
2013-08-19 17:41:47 +00:00
matt
5df59dfb3f
Swap use of r1 and ip
...
teq -> cmp.
add s to few instructions
(thumbify part 1)
2013-08-19 17:38:47 +00:00
matt
ddea6e9586
cbnz/cbz can not branch backwards so nuke 'em.
...
Use the same register usage in strlen as in strnlen
2013-08-19 17:02:25 +00:00
matt
3d4b320a67
Add END()
2013-08-19 06:23:59 +00:00
matt
5958fbf1be
fix cfi_register -> cfi_offset
2013-08-19 06:11:20 +00:00
matt
1045cebc5a
Rework to allow thumb armv7 compilation.
...
Add atomic_simplelock.c for thumb
2013-08-19 03:55:12 +00:00
matt
578c0a5078
Thumbify (and use .cfi ops)
2013-08-19 03:54:15 +00:00
matt
556b3d5814
thumbify
...
add .cfi ops (for thumb)
2013-08-19 03:51:04 +00:00
matt
3302b194a2
This is ARM only
2013-08-19 03:47:06 +00:00
matt
14ba29f9a7
Add thumb version
...
Use STRONG_ALIAS
2013-08-19 03:44:47 +00:00
matt
a546978def
Use STRONG_ALIAS
...
Add thumb variation
2013-08-19 03:44:18 +00:00
matt
d2610c9da2
Add .cfi ops
...
Thumbify
2013-08-19 03:43:07 +00:00
matt
eeddcf15a5
Add cfi ops.
...
Thumbify
2013-08-19 03:27:34 +00:00
matt
4f50540e20
Add END() and clarify thumb/arm
2013-08-19 02:55:19 +00:00
matt
d0a4289725
Thumbify
2013-08-19 02:54:02 +00:00
matt
70e4c7e047
Add END()
2013-08-19 02:37:12 +00:00
matt
de1d51c4ce
Thumbify
2013-08-19 02:36:27 +00:00
matt
f66bbc4e80
ip -> r2
...
teq -> cmp
2013-08-19 02:24:09 +00:00
matt
7ed75e50a6
Thumbify
2013-08-19 02:22:25 +00:00
matt
d3ce3f542d
ip -> r2
...
teq -> cmp
2013-08-19 02:20:06 +00:00
matt
8ba242506b
Thumbify
2013-08-19 02:13:13 +00:00
matt
414db3a8ba
Use ip as a temporary
2013-08-19 02:11:03 +00:00
matt
0b070291c7
Change previous use of r2 to r3
2013-08-19 02:08:41 +00:00
matt
ad93040ca6
teq -> cmp
...
ip -> r2
add/sub -> adds/subs
(thumbify part 1)
2013-08-19 02:07:22 +00:00
matt
4373b1a3d8
For EABI, add .cfi ops
2013-08-19 01:17:32 +00:00
matt
9dae71ed91
Add .cfi for __ARM_EABI__
...
Thumbify
2013-08-19 01:12:08 +00:00
matt
b4e387d260
Add END(memcpy)
2013-08-19 01:08:53 +00:00
matt
c2438985ca
For Thumb, use naive version
2013-08-19 01:08:29 +00:00
matt
f37c7d04a2
Thumbify
2013-08-19 00:56:12 +00:00
matt
4640cf4296
Add .cfi ops if EABI.
...
Thumbify.
2013-08-19 00:36:29 +00:00
matt
dcdd476662
Thumbify
2013-08-19 00:35:06 +00:00
matt
034de21d59
Add a hidden version for libpthread.
2013-08-16 01:47:41 +00:00
matt
48a3833972
When compiling for Thumb1, the swp instruction is not availble. So this
...
stub is added to provide __cpu_simple_lock and __cpu_simple_lock_try via
thumb interwork support. It is compiled with -mno-thumb.
2013-08-15 22:42:50 +00:00
matt
f376e753f4
Only assemble if !__ARM_EABI__
2013-08-15 21:40:11 +00:00
matt
c4948bca36
Use mvnge AHI, #0x80000000 instead of mvnge AHI, ALO, lsr #1
2013-08-13 15:52:00 +00:00
matt
1271d298bd
0x800000000 -> 0x80000000 (one too many zeroes)
2013-08-13 15:46:31 +00:00
matt
11f1fec6ba
Fix movlt
2013-08-13 15:45:30 +00:00
matt
85779a4007
andlt -> movlt
2013-08-13 15:44:35 +00:00
matt
47ead0f271
Convert some more conditional instructions to unified syntax
2013-08-11 05:02:35 +00:00
matt
a1a64bab57
Switch to unified syntax
...
use RET/RETc
use push/pop
2013-08-11 04:56:32 +00:00
matt
c111670598
Use foo{s} since it reduces the ifdefs for thumb
2013-08-11 04:41:17 +00:00
matt
d650209479
Make these under Thumb2
2013-08-10 19:59:21 +00:00
matt
8f8ed13c79
Never modify NLO/NHI (r2,r3) only LO/HI (r0,r1) so subsequent loops will work.
2013-08-10 19:02:22 +00:00
matt
d86c65aadb
Use r2 instead of ip
2013-08-10 18:45:12 +00:00
matt
b8284f6dcd
Use subs/sbc
...
Use push/pop
Don't adjust return for atomic_dec_64 since it's void and returns nothing
2013-08-10 18:40:19 +00:00
matt
617628a5a2
use push/pop
2013-08-10 18:39:48 +00:00
matt
8aac5a9bd0
Use push/pop
2013-08-10 18:39:25 +00:00
matt
fc14a14e9e
use push/pop
2013-08-10 18:39:07 +00:00
matt
edb257bd2d
cmpne -> cmp
...
Use push/pop
2013-08-10 18:38:33 +00:00
matt
d6ef347e93
Don't adjust return of atomic_inc_64 since it's void and doesn't return
...
anything.
2013-08-10 18:32:06 +00:00
matt
be0a794afa
Fix add -> adds
2013-08-10 18:28:15 +00:00
pgoyette
b18fe62e8a
Now that all of the macros are enclosed in "do { ... } while 0" we can
...
remove unneded parenthesization of their invocations.
OK mrg@
2013-08-08 22:18:20 +00:00
agc
148723966e
Get the correct inttypes.h header, so this can build on !NetBSD.
2013-08-08 16:43:13 +00:00
mrg
1b0c094837
apply some do { ... } while (0) so that macros aren't broken,
...
completing the previous change.
2013-08-08 04:32:43 +00:00
pgoyette
3386094b43
The PUT* things are macros. Use { ... } to make sure they expand correctly.
2013-08-07 23:48:13 +00:00
pgoyette
a4db567a02
Fix boundary condition in multi-line format. When the '=' following a
...
field name exactly filled a line, the back-up logic failed and really
messed up the formatting!
2013-08-07 22:37:28 +00:00
apb
3be9df0daa
If HAVE_SNPRINTB_M is defined, then do not define the snprintb() and
...
snprintb_m() functions. This should allow this file to be compiled
from a tools build regardless of whether or not the host defines these
functions.
2013-08-06 22:02:50 +00:00
matt
8b64a4fc92
Only use MACHINE_ARCH if !_STANDALONE and CPPFLAGS/CFLAGS/CPUFLAGS don't
...
contain -mcpu or -march
2013-08-06 20:49:15 +00:00
matt
1240752cc0
Select ldrex/strex if ${MACHINE_ARCH:Mearmv[67]*}
2013-08-06 20:37:22 +00:00
matt
cb2ad9b126
With these changes, they now produce identical binary as before the coldfire
...
changes.
2013-07-19 16:42:12 +00:00
matt
1d398a1789
Adjust for Coldfire
2013-07-18 22:42:50 +00:00
matt
f320c653c7
invert tests ${MACHINE} != "m68000" -> ${MACHINE} == "m68k"
2013-07-18 19:49:00 +00:00
matt
65726deb61
Add END(func)
...
Fix some straggling %r@<eol> to (%r)
2013-07-16 23:24:18 +00:00
matt
07a0a32561
Convert to normal Motorola syntax for addressing.
...
%r@ -> (%r)
%r@- -> -(%r)
%r@+ -> (%r)+
%r@(n) n(%r)
etc.
No object differences.
2013-07-16 20:49:41 +00:00
uwe
d399d324be
Use "unsigned int" instead of "u_int" to make it easier to steal.
...
u_int is out of fashion anyway...
2013-07-09 16:10:17 +00:00
matt
9137531a8c
remove branch prediction hint from bdnzt
2013-07-04 20:57:59 +00:00
joerg
e49f3fb2ce
Don't pick up strcmp as macro from libkern.h.
2013-07-01 20:51:59 +00:00
rmind
4080fc40d9
RUMP fix: ifdef weak alias. Pointed out by martin@.
2013-06-30 12:20:32 +00:00
riastradh
82db4b9858
Replace consttime_bcmp/explicit_bzero by consttime_memequal/explicit_memset.
...
consttime_memequal is the same as the old consttime_bcmp.
explicit_memset is to memset as explicit_bzero was to bcmp.
Passes amd64 release and i386/ALL, but I'm sure I missed some spots,
so please let me know.
2013-06-24 04:21:19 +00:00
matt
d4c5b4f6c6
Add support for __ARM_ARCH_EXT_IDIV__ which is set for those cores
...
with hardware divide instructions. Note that gcc 4.5.x doesn't support
this so this is just latent. gcc 4.7.x does.
2013-06-20 07:16:23 +00:00
christos
b9d62bd6aa
no need for the local defs of he enc functions; compat_defs.h provides them.
2013-06-09 19:46:56 +00:00
christos
af7cd4f35f
Use be{32,64}enc, suggested by joerg.
2013-06-09 02:58:58 +00:00
christos
ff7cb014e8
PR/47908: Gary Grebus: SHA256_Transform and SHA512_Transform are called
...
by openssl with unaligned buffers. All other Transforms can handle unaligned
buffers so make these handle them too.
XXX[1]: any better fixes are welcome
XXX[2]: pullup-5, pullup-6
2013-06-07 22:40:34 +00:00
joerg
e0ac190e1e
Provide explicit LC_C_LOCALE accessor and drop the various NULL checks.
...
Provide LC_GLOBAL_LOCALE in a way that works with all locale functions.
Merge constant data used by the initial global locale and the C locale.
Drop function call layer for _current_locale() and directly return the
locale reference, not a pointer to it. Use protected access for global
variables, so that libc references can avoid the GOT overhead.
2013-05-17 12:55:56 +00:00