Commit Graph

17146 Commits

Author SHA1 Message Date
joerg
47a96e3a4d _Unwind_GetLanguageSpecificData is supposed to return a _Unwind_Ptr.
This makes a difference on M68K as it uses a different register for
integer vs pointer values.
2014-03-24 21:26:01 +00:00
martin
6d0fe06315 Avoid strict aliasing problems 2014-03-23 15:26:47 +00:00
pooka
0ab0c8a502 fix name of HAVE_PTHREAD_SETNAME_3 2014-03-21 16:03:35 +00:00
pooka
fe7fe5876f fix braces 2014-03-21 16:03:07 +00:00
pooka
bc215c110d use a probe result to decide which pthread_setname_np() to use 2014-03-21 12:28:54 +00:00
pooka
fa5f7ef47e set threadname for correct pthread_t 2014-03-21 12:07:10 +00:00
christos
13ec391985 CID 273814, don't confuse coverity. 2014-03-20 17:25:23 +00:00
uwe
66df54162c On sh3 __udivsi3 is gcc "millicode" with special calling convention
(less registers clobbered than usual).  Each DSO that needs it gets
its own hidden copy from libgcc.a.  Do not compile udivsi3.c for sh3
here since this C version doesn't conform to what gcc expects and
overrides the libgcc.a version.

This makes binaries compiled with gcc4.8 work.  The issue was not
exposed with gcc4.5 since it uses different division strategy by
default.
2014-03-19 20:30:53 +00:00
dsl
3a9ebe222a Change 'i0' to be signed so that the sign bit is preserved on 'k'
and the code at the bottom splits the multiply.
Fixes denormal results.
This might have been introduced when I deferred shifting 'k' left.
2014-03-18 21:52:19 +00:00
riastradh
6cb10275d0 Merge riastradh-drm2 to HEAD. 2014-03-18 18:20:35 +00:00
christos
e2ecf243c3 fix memory leak
XXX: pullup 6
2014-03-17 13:24:23 +00:00
dsl
0f547b99f1 Simplify somewhat: this is C not FORTRAN-IV - we have structures!
Directly us 'ieee_double_shape_type' when ripping apart the fp number
  to avoid an extra store-load in 'STRICT_ASSIGN'.
Keep 'k' as the exponent, only do 'k << 20' when generating the fp number
  from it.
Fix infinity and underflow returns on i386 - because the value is returned
  in %st0 (x87 stack) we have to generate a long double error value.
The returned value for integers -1023 and below (which should be denormal
  fp valuesr) are 'just plain wrong' (tm).
2014-03-16 22:44:48 +00:00
dsl
ec1660cff5 Fix overflow and underflow on i386.
The return value of a 'float' function is in the x87 %st(0) register.
This is an 80bit 'long double' register.
If you multiply 0x1p100f by 0x1p100f the caller sees 0x1p200 - not the
  expected infinity.
So use a 'double' value which goes through a store-load sequence to generate
  the required exception and value.
2014-03-16 22:30:43 +00:00
joerg
39f1409e2e __do_global_ctors_aux and __do_global_ctors_aux must be used locally, so
mark them as hidden.
2014-03-16 11:41:30 +00:00
njoly
61d6bfec15 Do not use uninitialized pointer if posix_memalign() fails. 2014-03-16 10:23:59 +00:00
martin
16e71f2a62 Add roundl() 2014-03-16 10:02:27 +00:00
martin
d30e39112d Provide all missing variants of trunc/floor/ceil. 2014-03-16 09:51:39 +00:00
martin
03e412de5e Need to load the full argument 2014-03-15 14:12:56 +00:00
martin
89434fa764 Provide copysignf and copysignl 2014-03-15 12:20:09 +00:00
dsl
092f718fed There is some very odd code in s_exp2.c that only works if 'double'
values are rounded to 53 bit mantissa in teh x87 registers.
This hasn't been true since Nov 11 2013.
Forcing a store-load for 'double' in STRICT_ASSIGN() seems to fix things
  (at least enough for the few random test cases).
I suspect the code could be changed so that the number of mantissa bits
  didn't matter.
2014-03-14 22:21:31 +00:00
cherry
27f396ba32 Add crtstuff for ia64. Compile tested only 2014-03-14 18:15:02 +00:00
justin
54d90457f6 If dlopen returns NULL assume we are statically linked and return,
rather than getting a warning when dlinfo fails.
2014-03-14 01:18:39 +00:00
pooka
300f37afc0 Do not process linkmaps if there is exactly one link map present
(i.e. there is no ld.so).  Makes statically linked rump kernels work on
glibc (at least for me).

based on some discussion with Justin Cormack
2014-03-13 11:21:54 +00:00
martin
7a17404a6d XXX This is all wrong and needs new tables and constants - but at least use
constants in the VAX double range for now, so it is compilable with newer
gcc.
2014-03-12 19:42:18 +00:00
wiz
4e760575d6 Remove trailing whitespace. 2014-03-12 18:17:06 +00:00
dholland
1e9d60e3bf typo 2014-03-12 07:32:46 +00:00
pooka
43925050d7 rump_pub_getversion -> rump_getversion 2014-03-10 22:47:27 +00:00
justin
cf83766ecf Revert conversion to __thread as breaks on archs without TLS support 2014-03-10 22:37:51 +00:00
justin
587ef2949a Use __thread rather than pthread_getspecific for rumpuser curlwp.
This has better performance and curlwp is a performance bottleneck
in rump kernel code.
2014-03-09 23:01:11 +00:00
christos
bb5309eeb0 another libelf instance 2014-03-09 21:37:37 +00:00
christos
0c84150c90 switch to the elftoolchain code. 2014-03-09 17:09:20 +00:00
matt
1de2b6f186 This is no different from the 32bit powerpc one.
Remove the redundancy.
2014-03-07 07:26:42 +00:00
matt
2a0cd0801f these are obsolete. Now using the common powerpc files in csu/arch/powerpc. 2014-03-07 07:23:49 +00:00
christos
9669e36fb7 reduce diffs with other copies of this code. 2014-03-07 01:07:01 +00:00
christos
32a8f22f2c Fix incorrect overflow test: https://android-review.googlesource.com/#/c/50570/ 2014-03-07 01:00:58 +00:00
matt
f99069ca40 Use _XENTRY 2014-03-06 19:05:59 +00:00
skrll
1b5cff8f1d Move to a flat space register convention. %sr[4-7] are all now the space
number allocated to the process.  gcc produces (slightly) better code
with this convention.

Retain backwards compatiblity.

Welcome to 6.99.36
2014-03-06 19:02:58 +00:00
martin
ed95e9602b Include new/missing files for vax 2014-03-06 11:01:16 +00:00
martin
74530a2d26 Provide sqrtl alias 2014-03-06 11:00:17 +00:00
martin
f03b314bc0 Simple tanf() for vax 2014-03-06 10:59:52 +00:00
martin
ea3fa8f391 Simplistic tanhf() for vax 2014-03-06 10:59:00 +00:00
martin
96c6725640 Simplistic log1pf() for vax 2014-03-06 10:58:26 +00:00
martin
ae998fcbfa log10f() for vax 2014-03-06 10:57:44 +00:00
martin
d408a8629c log2() for vax 2014-03-06 10:57:01 +00:00
martin
13958f72dc Add brute-force adaptions of the ieee version of exp2() and exp2f for
vax. Needs some polishing (and table adaption), but should get the build
going for now.
2014-03-06 10:55:57 +00:00
joerg
6ccf4859e4 Add GENASSYM_CPPFLAGS in two more places. 2014-03-04 17:57:56 +00:00
joerg
9c3fd52490 Introduce GENASSYM_CPPFLAGS for options during genassym processing.
Consistently drop assembler flags.
2014-03-04 14:58:14 +00:00
matt
c1987519cf #include <m68k/m68k.h> 2014-03-04 06:38:08 +00:00
matt
94c30368e1 The fixuns* come from compiler_rt so softfloat doesn't need to provide them. 2014-03-04 06:30:40 +00:00
matt
c479ba2f5a Avoid a warning and just do the trap #1 instead of calling sigreturn inline.
If it fails, it'll fall into the botch case so don't bother calling CERROR
on failure.
2014-03-04 06:27:00 +00:00