Searched hist:37 (Results 276 - 300 of 673) sorted by relevance

<<11121314151617181920>>

/seL4-refos-master/libs/libmuslc/arch/mips/
H A Datomic_arch.hdiff 6d99ad91 Sun Apr 03 04:42:37 MDT 2016 Rich Felker <dalias@aerifal.cx> add support for mips and mips64 r6 isa

mips32r6 and mips64r6 are actually new isas at both the asm source and
opcode levels (pre-r6 code cannot run on r6) and thus need to be
treated as a new subarch. the following changes are made, some of
which yield code generation improvements for non-r6 targets too:

- add subarch logic in configure script and reloc.h files for dynamic
linker name.

- suppress use of .set mips2 asm directives (used to allow mips2
atomic instructions on baseline mips1 builds; the kernel has to
emulate them on mips1) except when actually needed. they cause wrong
instruction encodings on r6, and pessimize inlining on at least some
compilers.

- only hard-code sync instruction encoding on mips1.

- use "ZC" constraint instead of "m" constraint for llsc memory
operands on r6, where the ll/sc instructions no longer accept full
16-bit offsets.

- only hard-code rdhwr instruction encoding with .word on targets
(pre-r2) where it may need trap-and-emulate by the kernel.
otherwise, just use the instruction mnemonic, and allow an arbitrary
destination register to be used.
/seL4-refos-master/libs/libmuslc/arch/mips64/
H A Datomic_arch.hdiff 6d99ad91 Sun Apr 03 04:42:37 MDT 2016 Rich Felker <dalias@aerifal.cx> add support for mips and mips64 r6 isa

mips32r6 and mips64r6 are actually new isas at both the asm source and
opcode levels (pre-r6 code cannot run on r6) and thus need to be
treated as a new subarch. the following changes are made, some of
which yield code generation improvements for non-r6 targets too:

- add subarch logic in configure script and reloc.h files for dynamic
linker name.

- suppress use of .set mips2 asm directives (used to allow mips2
atomic instructions on baseline mips1 builds; the kernel has to
emulate them on mips1) except when actually needed. they cause wrong
instruction encodings on r6, and pessimize inlining on at least some
compilers.

- only hard-code sync instruction encoding on mips1.

- use "ZC" constraint instead of "m" constraint for llsc memory
operands on r6, where the ll/sc instructions no longer accept full
16-bit offsets.

- only hard-code rdhwr instruction encoding with .word on targets
(pre-r2) where it may need trap-and-emulate by the kernel.
otherwise, just use the instruction mnemonic, and allow an arbitrary
destination register to be used.
/seL4-refos-master/libs/libmuslc/arch/or1k/
H A Dsyscall_arch.hdiff 4f449374 Wed Jul 30 21:25:37 MDT 2014 Rich Felker <dalias@aerifal.cx> fix broken offset argument to the mmap2 syscall on or1k

for or1k, the kernel expects the offset passed to mmap2 in units of
the 8k page size, not the standard unit of 4k used on most other
archs.
/seL4-refos-master/libs/libmuslc/arch/x86_64/bits/
H A Dfloat.hdiff 559de8f5 Sat Mar 07 03:00:37 MST 2015 Szabolcs Nagy <nsz@port70.net> fix FLT_ROUNDS to reflect the current rounding mode

Implemented as a wrapper around fegetround introducing a new function
to the ABI: __flt_rounds. (fegetround cannot be used directly from float.h)
H A Duser.hdiff 4758f056 Sun Feb 01 02:43:37 MST 2015 Felix Janda <felix.janda@posteo.de> fix typo in x86_64/x32 user_fpregs_struct

mxcs_mask should be mxcr_mask
/seL4-refos-master/libs/libmuslc/arch/x86_64_sel4/bits/
H A Dfloat.hdiff 559de8f5 Sat Mar 07 03:00:37 MST 2015 Szabolcs Nagy <nsz@port70.net> fix FLT_ROUNDS to reflect the current rounding mode

Implemented as a wrapper around fegetround introducing a new function
to the ABI: __flt_rounds. (fegetround cannot be used directly from float.h)
H A Duser.hdiff 4758f056 Sun Feb 01 02:43:37 MST 2015 Felix Janda <felix.janda@posteo.de> fix typo in x86_64/x32 user_fpregs_struct

mxcs_mask should be mxcr_mask
/seL4-refos-master/libs/libmuslc/include/
H A Dsearch.hdiff fe1ba7db Tue Mar 25 10:37:51 MDT 2014 sin <sin@2f30.org> implement hcreate_r, hdestroy_r and hsearch_r

the size and alignment of struct hsearch_data are matched to the glibc
definition for binary compatibility. the members of the structure do
not match, which should not be a problem as long as applications
correctly treat the structure as opaque.

unlike the glibc implementation, this version of hcreate_r does not
require the caller to zero-fill the structure before use.
/seL4-refos-master/libs/libmuslc/include/sys/
H A Depoll.hdiff b10ca0f5 Sat Mar 19 06:37:03 MDT 2016 Szabolcs Nagy <nsz@port70.net> add EPOLLEXCLUSIVE epoll flag from linux v4.5

new flag for exclusive wakeup mode when an event source fd is attached
to multiple epoll fds but they should not all receive the events.
new in linux commit df0108c5da561c66c333bb46bfe3c1fc65905898
H A Dprctl.hdiff 11ac2a6e Mon Dec 15 18:37:33 MST 2014 Szabolcs Nagy <nsz@port70.net> add new prctl command PR_SET_MM_MAP to sys/prctl.h

PR_SET_MM_MAP was introduced as a subcommand for PR_SET_MM in
linux v3.18 commit f606b77f1a9e362451aca8f81d8f36a3a112139e

the associated struct type is replicated in sys/prctl.h using
libc types.

example usage:

struct prctl_mm_map *p;
...
prctl(PR_SET_MM, PR_SET_MM_MAP, p, sizeof *p);

the kernel side supported struct size may be queried with
the PR_SET_MM_MAP_SIZE subcommand.
/seL4-refos-master/libs/libmuslc/src/fenv/x86_64/
H A Dfenv.s773b0fe4 Mon Jun 13 11:37:43 MDT 2011 Rich Felker <dalias@aerifal.cx> x86_64 fenv support (untested; at least known to build successfully)
/seL4-refos-master/libs/libmuslc/src/fenv/x86_64_sel4/
H A Dfenv.s773b0fe4 Mon Jun 13 11:37:43 MDT 2011 Rich Felker <dalias@aerifal.cx> x86_64 fenv support (untested; at least known to build successfully)
/seL4-refos-master/libs/libmuslc/src/math/
H A D__rem_pio2l.cdiff 0ce946cf Tue Oct 28 17:34:37 MDT 2014 Szabolcs Nagy <nsz@port70.net> math: use the rounding idiom consistently

the idiomatic rounding of x is

n = x + toint - toint;

where toint is either 1/EPSILON (x is non-negative) or 1.5/EPSILON
(x may be negative and nearest rounding mode is assumed) and EPSILON is
according to the evaluation precision (the type of toint is not very
important, because single precision float can represent the 1/EPSILON of
ieee binary128).

in case of FLT_EVAL_METHOD!=0 this avoids a useless store to double or
float precision, and the long double code became cleaner with
1/LDBL_EPSILON instead of ifdefs for toint.

__rem_pio2f and __rem_pio2 functions slightly changed semantics:
on i386 a double-rounding is avoided so close to half-way cases may
get evaluated differently eg. as sin(pi/4-eps) instead of cos(pi/4+eps)
H A Dceil.cdiff 0ce946cf Tue Oct 28 17:34:37 MDT 2014 Szabolcs Nagy <nsz@port70.net> math: use the rounding idiom consistently

the idiomatic rounding of x is

n = x + toint - toint;

where toint is either 1/EPSILON (x is non-negative) or 1.5/EPSILON
(x may be negative and nearest rounding mode is assumed) and EPSILON is
according to the evaluation precision (the type of toint is not very
important, because single precision float can represent the 1/EPSILON of
ieee binary128).

in case of FLT_EVAL_METHOD!=0 this avoids a useless store to double or
float precision, and the long double code became cleaner with
1/LDBL_EPSILON instead of ifdefs for toint.

__rem_pio2f and __rem_pio2 functions slightly changed semantics:
on i386 a double-rounding is avoided so close to half-way cases may
get evaluated differently eg. as sin(pi/4-eps) instead of cos(pi/4+eps)
H A Dceill.cdiff 0ce946cf Tue Oct 28 17:34:37 MDT 2014 Szabolcs Nagy <nsz@port70.net> math: use the rounding idiom consistently

the idiomatic rounding of x is

n = x + toint - toint;

where toint is either 1/EPSILON (x is non-negative) or 1.5/EPSILON
(x may be negative and nearest rounding mode is assumed) and EPSILON is
according to the evaluation precision (the type of toint is not very
important, because single precision float can represent the 1/EPSILON of
ieee binary128).

in case of FLT_EVAL_METHOD!=0 this avoids a useless store to double or
float precision, and the long double code became cleaner with
1/LDBL_EPSILON instead of ifdefs for toint.

__rem_pio2f and __rem_pio2 functions slightly changed semantics:
on i386 a double-rounding is avoided so close to half-way cases may
get evaluated differently eg. as sin(pi/4-eps) instead of cos(pi/4+eps)
H A Dfloor.cdiff 0ce946cf Tue Oct 28 17:34:37 MDT 2014 Szabolcs Nagy <nsz@port70.net> math: use the rounding idiom consistently

the idiomatic rounding of x is

n = x + toint - toint;

where toint is either 1/EPSILON (x is non-negative) or 1.5/EPSILON
(x may be negative and nearest rounding mode is assumed) and EPSILON is
according to the evaluation precision (the type of toint is not very
important, because single precision float can represent the 1/EPSILON of
ieee binary128).

in case of FLT_EVAL_METHOD!=0 this avoids a useless store to double or
float precision, and the long double code became cleaner with
1/LDBL_EPSILON instead of ifdefs for toint.

__rem_pio2f and __rem_pio2 functions slightly changed semantics:
on i386 a double-rounding is avoided so close to half-way cases may
get evaluated differently eg. as sin(pi/4-eps) instead of cos(pi/4+eps)
H A Dfloorl.cdiff 0ce946cf Tue Oct 28 17:34:37 MDT 2014 Szabolcs Nagy <nsz@port70.net> math: use the rounding idiom consistently

the idiomatic rounding of x is

n = x + toint - toint;

where toint is either 1/EPSILON (x is non-negative) or 1.5/EPSILON
(x may be negative and nearest rounding mode is assumed) and EPSILON is
according to the evaluation precision (the type of toint is not very
important, because single precision float can represent the 1/EPSILON of
ieee binary128).

in case of FLT_EVAL_METHOD!=0 this avoids a useless store to double or
float precision, and the long double code became cleaner with
1/LDBL_EPSILON instead of ifdefs for toint.

__rem_pio2f and __rem_pio2 functions slightly changed semantics:
on i386 a double-rounding is avoided so close to half-way cases may
get evaluated differently eg. as sin(pi/4-eps) instead of cos(pi/4+eps)
H A Dhypotf.cdiff c2a0dfea Tue Sep 03 08:37:48 MDT 2013 Szabolcs Nagy <nsz@port70.net> math: rewrite hypot

method: if there is a large difference between the scale of x and y
then the larger magnitude dominates, otherwise reduce x,y so the
argument of sqrt (x*x+y*y) does not overflow or underflow and calculate
the argument precisely using exact multiplication. If the argument
has less error than 1/sqrt(2) ~ 0.7 ulp, then the result has less error
than 1 ulp in nearest rounding mode.

the original fdlibm method was the same, except it used bit hacks
instead of dekker-veltkamp algorithm, which is problematic for long
double where different representations are supported. (the new hypot
and hypotl code should be smaller and faster on 32bit cpu archs with
fast fpu), the new code behaves differently in non-nearest rounding,
but the error should be still less than 2ulps.

ld80 and ld128 are supported
H A Dtruncl.cdiff 0ce946cf Tue Oct 28 17:34:37 MDT 2014 Szabolcs Nagy <nsz@port70.net> math: use the rounding idiom consistently

the idiomatic rounding of x is

n = x + toint - toint;

where toint is either 1/EPSILON (x is non-negative) or 1.5/EPSILON
(x may be negative and nearest rounding mode is assumed) and EPSILON is
according to the evaluation precision (the type of toint is not very
important, because single precision float can represent the 1/EPSILON of
ieee binary128).

in case of FLT_EVAL_METHOD!=0 this avoids a useless store to double or
float precision, and the long double code became cleaner with
1/LDBL_EPSILON instead of ifdefs for toint.

__rem_pio2f and __rem_pio2 functions slightly changed semantics:
on i386 a double-rounding is avoided so close to half-way cases may
get evaluated differently eg. as sin(pi/4-eps) instead of cos(pi/4+eps)
/seL4-refos-master/libs/libmuslc/src/network/
H A Dsendmsg.cdiff 96107564 Thu Jul 12 19:37:54 MDT 2012 Rich Felker <dalias@aerifal.cx> workaround another sendmsg kernel bug on 64-bit machines

the kernel wrongly expects the cmsg length field to be size_t instead
of socklen_t. in order to work around the issue, we have to impose a
length limit and copy to a local buffer. the length limit should be
more than sufficient for any real-world use; these headers are only
used for passing file descriptors and permissions between processes
over unix sockets.
/seL4-refos-master/libs/libmuslc/src/signal/x86_64/
H A Drestore.sdiff 54991729 Sat Nov 12 17:43:37 MST 2016 Rich Felker <dalias@aerifal.cx> work around gdb issues recognizing sigreturn trampoline on x86_64

gdb can only backtrace/unwind across signal handlers if it recognizes
the sa_restorer trampoline. for x86_64, gdb first attempts to
determine the symbol name for the function in which the program
counter resides and match it against "__restore_rt". if no name can be
found (e.g. in the case of a stripped binary), the exact instruction
sequence is matched instead.

when matching the function name, however, gdb's unwind code wrongly
considers the interval [sym,sym+size] rather than [sym,sym+size).
thus, if __restore_rt begins immediately after another function, gdb
wrongly identifies pc as lying within the previous adjacent function.
this patch adds a nop before __restore_rt to preclude that
possibility. it also removes the symbol name __restore and replaces it
with a macro since the stability of whether gdb identifies the
function as __restore_rt or __restore is not clear.

for the no-symbols case, the instruction sequence is changed to use
%rax rather than %eax to match what gdb expects.

based on patch by Szabolcs Nagy, with extended description and
corresponding x32 changes added.
/seL4-refos-master/libs/libmuslc/src/stat/
H A Dmknod.cdiff 1a70198b Thu May 16 14:27:37 MDT 2013 Rich Felker <dalias@aerifal.cx> fix mknod and mknodat to accept large dev_t values

support for these was recently added to sysmacros.h. note that the
syscall argument is a long, despite dev_t being 64-bit, so on 32-bit
archs the high bits will be lost. it appears the high bits are just
glibc silliness and not part of the kernel api, anyway, but it's nice
that we have them there for future expansion if needed.
/seL4-refos-master/libs/libmuslc/src/thread/
H A Dclone.cdiff 3f72cdac Sun Sep 18 08:14:37 MDT 2011 Rich Felker <dalias@aerifal.cx> overhaul clone syscall wrapping

several things are changed. first, i have removed the old __uniclone
function signature and replaced it with the "standard" linux
__clone/clone signature. this was necessary to expose clone to
applications anyway, and it makes it easier to port __clone to new
archs, since it's now testable independently of pthread_create.

secondly, i have removed all references to the ugly ldt descriptor
structure (i386 only) from the c code and pthread structure. in places
where it is needed, it is now created on the stack just when it's
needed, in assembly code. thus, the i386 __clone function takes the
desired thread pointer as its argument, rather than an ldt descriptor
pointer, just like on all other sane archs. this should not affect
applications since there is really no way an application can use clone
with threads/tls in a way that doesn't horribly conflict with and
clobber the underlying implementation's use. applications are expected
to use clone only for creating actual processes, possibly with new
namespace features and whatnot.
H A Dpthread_mutexattr_setpshared.c1d6b1f15 Tue Mar 08 00:33:37 MST 2011 Rich Felker <dalias@aerifal.cx> implement pthread_mutexattr_[gs]etpshared functions
H A Dpthread_setcanceltype.cdiff a7778dae Sun Sep 04 19:37:07 MDT 2011 Rich Felker <dalias@aerifal.cx> handle pending cancellation when enabling async cancellation

this is not strictly required by the standard, but without it, there
is a race condition where cancellation arriving just before async
cancellation is enabled might not be acted upon. it is impossible for
a conforming application to work around this race condition since
calling pthread_testcancel after setting async cancellation mode is
not allowed (pthread_testcancel is not specified to be
async-cancel-safe). thus the implementation should be responsible for
eliminating the race, from a quality-of-implementation standpoint.

Completed in 201 milliseconds

<<11121314151617181920>>