Re: [Mingw-w64-public] [PATCHv2] headers: Add missing 64 bit InterlockedBitTestAndTest functions for arm64

2018-06-03 Thread André Hentschel
Am 24.05.2018 um 14:23 schrieb Martin Storsjö:
> Signed-off-by: Martin Storsjö 
> ---
> Updated to actually use a separate 64 bit inline assembly snippet for
> this as well. This has been tested with various 64 bit input parameters.
> 
> This is a copy of the existing 32 bit versions of these functions, but
> with parameter and return value types updated, and with a separate inline
> assembly template for it that uses the full 64 bit register size for the
> data intermediates.
> ---
>  mingw-w64-headers/include/psdk_inc/intrin-impl.h | 72 
> 
>  1 file changed, 72 insertions(+)

looks good to me

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] [PATCH] setjmp: Provide a manual implementation for arm and arm64 (fwd)

2018-04-12 Thread André Hentschel
r r8,  [r0, #0x14] /* jmp_buf->R8 */
> +    ldr r9,  [r0, #0x18] /* jmp_buf->R9 */
> +    ldr r10, [r0, #0x1c] /* jmp_buf->R10 */
> +    ldr r11, [r0, #0x20] /* jmp_buf->R11 */
> +    ldr sp,  [r0, #0x24] /* jmp_buf->Sp */
> +    ldr r2,  [r0, #0x28] /* jmp_buf->Pc */
> +    ldr r3,  [r0, #0x2c] /* jmp_buf->Fpscr */
> +    vmsr    fpscr, r3
> +    vldr    d8,  [r0, #0x30] /* jmp_buf->D[0] */
> +    vldr    d9,  [r0, #0x38] /* jmp_buf->D[1] */
> +    vldr    d10, [r0, #0x40] /* jmp_buf->D[2] */
> +    vldr    d11, [r0, #0x48] /* jmp_buf->D[3] */
> +    vldr    d12, [r0, #0x50] /* jmp_buf->D[4] */
> +    vldr    d13, [r0, #0x58] /* jmp_buf->D[5] */
> +    vldr    d14, [r0, #0x60] /* jmp_buf->D[6] */
> +    vldr    d15, [r0, #0x68] /* jmp_buf->D[7] */
> +    mov r0,  r1  /* retval */
> +    bx  r2
> +#elif defined(_ARM64_) || defined(__aarch64__)
> +    ldp x19, x20, [x0, #0x10] /* jmp_buf->X19, X20 */
> +    ldp x21, x22, [x0, #0x20] /* jmp_buf->X21, X22 */
> +    ldp x23, x24, [x0, #0x30] /* jmp_buf->X23, X24 */
> +    ldp x25, x26, [x0, #0x40] /* jmp_buf->X25, X26 */
> +    ldp x27, x28, [x0, #0x50] /* jmp_buf->X27, X28 */
> +    ldp x29, x30, [x0, #0x60] /* jmp_buf->Fp,  Lr  */
> +    ldr x2,   [x0, #0x70] /* jmp_buf->Sp */
> +    mov sp,  x2
> +    ldr w2,   [x0, #0x78] /* jmp_buf->Fpcr */
> +    msr fpcr, x2
> +    ldr w2,   [x0, #0x7c] /* jmp_buf->Fpsr */
> +    msr fpsr, x2
> +    ldp d8,  d9,  [x0, #0x80] /* jmp_buf->D[0-1] */
> +    ldp d10, d11, [x0, #0x90] /* jmp_buf->D[2-3] */
> +    ldp d12, d13, [x0, #0xa0] /* jmp_buf->D[4-5] */
> +    ldp d14, d15, [x0, #0xb0] /* jmp_buf->D[6-7] */
> +    mov x0,  x1   /* retval */
> +    ret
> +#endif
> +#endif
> diff --git a/mingw-w64-headers/crt/setjmp.h b/mingw-w64-headers/crt/setjmp.h
> index ec4b013..fc79f10 100644
> --- a/mingw-w64-headers/crt/setjmp.h
> +++ b/mingw-w64-headers/crt/setjmp.h
> @@ -213,6 +213,10 @@ void * __cdecl __attribute__ ((__nothrow__)) mingw_getsp 
> (void);
>  #  ifndef _INC_SETJMPEX
>  #    if defined(_X86_) || defined(__i386__)
>  #  define setjmp(BUF) _setjmp3((BUF), NULL)
> +#    elif defined(_ARM_) || defined(__arm__) || defined(_ARM64_) || 
> defined(__aarch64__)
> +#  define setjmp(BUF) __mingw_setjmp((BUF))
> +#  define longjmp __mingw_longjmp
> +  int __cdecl __attribute__ ((__nothrow__,__returns_twice__)) 
> __mingw_setjmp(jmp_buf _Buf);
>  #    else
>  # if (__MINGW_GCC_VERSION < 40702)
>  #  define setjmp(BUF) _setjmp((BUF), mingw_getsp())


Hi Martin,

Patch looks good, though license wise I'd like to be asked and mentioned when 
moving my code into public domain.
Now that you asked me, I'll solve the mentioning issue by providing my sign-off 
below in the hope it'll land in the git commit.
(Maybe resend your patch to be sure)

Signed-off-by: André Hentschel <n...@dawncrow.de>

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] [PATCH 4/5] RFC: arm: Make sure to at least run a certain number of rounds in 'log' functions

2016-08-08 Thread André Hentschel
Am 08.08.2016 um 15:24 schrieb Martin Storsjö:
> ---
> The value 30 is a blind guesstimate of what's sensible; with that, I
> get log() returning values close to the real values (differing only in
> the third digit or so).
> 
> I'm not sure exactly how the original logic for the number of rounds
> is supposed to work; with any value over 16, it will currently
> run 0 rounds and return 0.
> ---
>  mingw-w64-crt/math/softmath/softmath_private.h | 6 ++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/mingw-w64-crt/math/softmath/softmath_private.h 
> b/mingw-w64-crt/math/softmath/softmath_private.h
> index 72df747..401f7c6 100644
> --- a/mingw-w64-crt/math/softmath/softmath_private.h
> +++ b/mingw-w64-crt/math/softmath/softmath_private.h
> @@ -61,6 +61,9 @@ static inline double softmath_log(double x)
>  else if (x < 0.0001)
>  aprox = 32768;
>  
> +if (aprox < 30)
> +aprox = 30;
> +
>  for(n = 0; n < aprox; n++)
>  {
>  result += bsd__ieee754_pow((x - 1.0) / (x + 1.0), 2 * n + 1) * (1.0 
> / (2.0 * n + 1.0));
> @@ -82,6 +85,9 @@ static inline float softmath_logf(float x)
>  else if (x < 0.0001)
>  aprox = 32768;
>  
> +if (aprox < 30)
> +aprox = 30;
> +
>  for(n = 0; n < aprox; n++)
>  {
>  result += bsd__ieee754_powf((x - 1.0) / (x + 1.0), 2 * n + 1) * (1.0 
> / (2.0 * n + 1.0));
> 

looks good

--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. http://sdm.link/zohodev2dev
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] [PATCH 2/5] arm: Actually return the __fpclassify return value in __fpclassifyl

2016-08-08 Thread André Hentschel
Am 08.08.2016 um 15:24 schrieb Martin Storsjö:
> Previously the value wasn't used, and the function was missing
> a return statement.
> ---
>  mingw-w64-headers/crt/math.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/mingw-w64-headers/crt/math.h b/mingw-w64-headers/crt/math.h
> index 4cbb4d0..b06ca79 100644
> --- a/mingw-w64-headers/crt/math.h
> +++ b/mingw-w64-headers/crt/math.h
> @@ -428,7 +428,7 @@ typedef long double double_t;
>FP_INFINITE : FP_NAN);
>  return FP_NORMAL;
>  #elif defined(__arm__) || defined(_ARM_)
> -__fpclassify(x);
> +return __fpclassify(x);
>  #elif defined(__i386__) || defined(_X86_)
>  unsigned short sw;
>  __asm__ __volatile__ ("fxam; fstsw %%ax;" : "=a" (sw): "t" (x));
> 

looks good

--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. http://sdm.link/zohodev2dev
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] [PATCH 1/5] arm: Add missing it instructions

2016-08-08 Thread André Hentschel
Am 08.08.2016 um 15:24 schrieb Martin Storsjö:
> When building in thumb mode, the conditional instructions are supposed
> to have 'it' instructions preceding them (unless the assembler is
> set to automatically inject such).
> 
> This fixes building with clang/llvm 3.9, while the build passed
> with clang/llvm 3.8 (unsure whether it actually injected such instructions
> though)
> ---
>  mingw-w64-crt/math/copysignl.S | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/mingw-w64-crt/math/copysignl.S b/mingw-w64-crt/math/copysignl.S
> index 77237e9..0becf53 100644
> --- a/mingw-w64-crt/math/copysignl.S
> +++ b/mingw-w64-crt/math/copysignl.S
> @@ -38,10 +38,12 @@ __MINGW_USYMBOL(copysignl):
>   bmi 1f /* jump if d1 is negative */
>   fcmpzd  d0
>   fmstat
> + it mi
>   vnegmi.f64  d0, d0 /* negate d0 if it is negative */
>   bx  lr
>   1: fcmpzd   d0
>   fmstat
> + it pl
>   vnegpl.f64  d0, d0 /* negate d0 if it is positive */
>   bx  lr
>  #elif defined(_X86_) || defined(__i386__)
> 

looks good

--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. http://sdm.link/zohodev2dev
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] Need help building mingw-w64 for ARM

2016-07-26 Thread André Hentschel
Am 25.07.2016 um 12:21 schrieb dw:
> Thank you for the link, I was not aware of this.  I'm using Msys2, so
> the linux issues should not affect me.
>
> While I got the associated binutils to build (which gets me an 'as'
> build that supports the .def directive, yay!), I have been totally
> unable to get the patched gcc to build.
>
> The patches here are from ~3 years ago (2013-03-17), but the PKGBUILD
> seems to download gcc's current 'trunk.'  Does that seem right?  Not
> surprisingly, the patches fail in a number of places. I have tried to
> fix them, but I'm not having much luck.  Would it make sense to git a 3
> year old version of gcc (~215509) instead?  Would -e prevent makepkg
> from trying to update it?

older gcc seems like a solution, or you can compile mingw-w64 for clang instead

> My end goal here is to test a mingw-w64 source code change to make sure
> I'm not breaking ARM builds.
>
> I gotta wonder: How do other people do ARM builds?

There are not too many people doing that


--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity planning
reports.http://sdm.link/zohodev2dev
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] Need help building mingw-w64 for ARM

2016-07-23 Thread André Hentschel
Am 23.07.2016 um 01:15 schrieb dw:
> I have been trying for a couple of days now to get this working and I'm
> having no luck.  But rather than describe the various things I've tried
> and what isn't working, I'm hoping someone can describe a setup they
> used that DID work.  If I can get this working at all, I can modify it
> to suit my needs.
>
> So, I'm looking for:
>
>   * What was your build environment - MSys2?  Cygwin64? Linux cross compile?
>   * Where did you get your ARM Eabi Binutils?  Downloaded (link
> please)?  Built (what source version and what were your configure
> params)?
>   * What configure params did you use for mingw-w64 build?
>
> Any advice from someone who got this working would be helpful.
>
> dw
>

I currently have no perfect setup, but Martell Malone wanted to clean 
everything up and even upload builds to sf.net
While doing this he spotted some strange issues which only happened on linux, 
but not in msys2.
You can have a look at:
https://github.com/Alexpux/MSYS2-packages/blob/master/mingw-w64-cross-gcc-git/PKGBUILD


--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity planning
reports.http://sdm.link/zohodev2dev
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] [PATCH] math.h: Fix arm build

2016-06-17 Thread André Hentschel
Pushed, because there were no objections


Am 02.06.2016 um 21:21 schrieb André Hentschel:
> Am 16.05.2016 um 20:39 schrieb André Hentschel:
>> Am 16.05.2016 um 15:58 schrieb Hugo Beauzée-Luyssen:
>>> On 05/16/2016 03:55 PM, André Hentschel wrote:
>>>> Am 13.05.2016 um 14:17 schrieb Kai Tietz:
>>>>> Hi,
>>>>>
>>>>> from my point of view this is ok.  Nevertheless I would like that
>>>>> Andre is taking a look to it before.
>>>>>
>>>>> Thanks,
>>>>> Kai
>>>>>
>>>>
>>>> long double is the same as double on ARM afaicr, so I'm not sure how a 
>>>> build could break with that code.
>>>> But the patch is also not wrong, but should be even more correct...
>>>>
>>>
>>> I must say I don't know the arm specifics, and trust you if you're saying 
>>> it should behave the same.
>>> The rational for this patch is simply this compiler output:
>>>
>>> /build/prefix/armv7-w64-mingw32/include/math.h:434:11: error: assigning to 
>>> 'double *' from incompatible type 'long double *'
>>> hlp.d = 
>>>   ^ ~~
>>> /build/prefix/armv7-w64-mingw32/include/math.h:594:11: error: assigning to 
>>> 'double *' from incompatible type 'long double *'
>>> hlp.d = &_x;
>>>   ^ ~~~
>>> /build/prefix/armv7-w64-mingw32/include/math.h:665:11: error: assigning to 
>>> 'double *' from incompatible type 'long double *'
>>> hlp.d = 
>>>   ^ ~~
>>>
>>> When building with llvm/clang.
>>>
>>> Regards,
>>
>> OK, thx. I only tested with gcc...
>> But I also just noticed that you should also change the return line dt to 
>> ldt or simply merge the implementation with the x86_64 one
>>
> 
> 
> I made up my own fix now, what about that one?
> 
> 
> 
> 
> --
> What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
> patterns at an interface-level. Reveals which users, apps, and protocols are 
> consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
> J-Flow, sFlow and other flows. Make informed decisions using capacity 
> planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
> 
> 
> 
> ___
> Mingw-w64-public mailing list
> Mingw-w64-public@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
> 


--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity planning
reports. http://sdm.link/zohomanageengine
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] [PATCH] math.h: Fix arm build

2016-06-02 Thread André Hentschel
Am 16.05.2016 um 20:39 schrieb André Hentschel:
> Am 16.05.2016 um 15:58 schrieb Hugo Beauzée-Luyssen:
>> On 05/16/2016 03:55 PM, André Hentschel wrote:
>>> Am 13.05.2016 um 14:17 schrieb Kai Tietz:
>>>> Hi,
>>>>
>>>> from my point of view this is ok.  Nevertheless I would like that
>>>> Andre is taking a look to it before.
>>>>
>>>> Thanks,
>>>> Kai
>>>>
>>>
>>> long double is the same as double on ARM afaicr, so I'm not sure how a 
>>> build could break with that code.
>>> But the patch is also not wrong, but should be even more correct...
>>>
>>
>> I must say I don't know the arm specifics, and trust you if you're saying it 
>> should behave the same.
>> The rational for this patch is simply this compiler output:
>>
>> /build/prefix/armv7-w64-mingw32/include/math.h:434:11: error: assigning to 
>> 'double *' from incompatible type 'long double *'
>> hlp.d = 
>>   ^ ~~
>> /build/prefix/armv7-w64-mingw32/include/math.h:594:11: error: assigning to 
>> 'double *' from incompatible type 'long double *'
>> hlp.d = &_x;
>>   ^ ~~~
>> /build/prefix/armv7-w64-mingw32/include/math.h:665:11: error: assigning to 
>> 'double *' from incompatible type 'long double *'
>> hlp.d = 
>>   ^ ~~
>>
>> When building with llvm/clang.
>>
>> Regards,
> 
> OK, thx. I only tested with gcc...
> But I also just noticed that you should also change the return line dt to ldt 
> or simply merge the implementation with the x86_64 one
> 


I made up my own fix now, what about that one?


--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] [PATCH] math.h: Fix arm build

2016-05-16 Thread André Hentschel
Am 16.05.2016 um 15:58 schrieb Hugo Beauzée-Luyssen:
> On 05/16/2016 03:55 PM, André Hentschel wrote:
>> Am 13.05.2016 um 14:17 schrieb Kai Tietz:
>>> Hi,
>>>
>>> from my point of view this is ok.  Nevertheless I would like that
>>> Andre is taking a look to it before.
>>>
>>> Thanks,
>>> Kai
>>>
>>
>> long double is the same as double on ARM afaicr, so I'm not sure how a build 
>> could break with that code.
>> But the patch is also not wrong, but should be even more correct...
>>
> 
> I must say I don't know the arm specifics, and trust you if you're saying it 
> should behave the same.
> The rational for this patch is simply this compiler output:
> 
> /build/prefix/armv7-w64-mingw32/include/math.h:434:11: error: assigning to 
> 'double *' from incompatible type 'long double *'
> hlp.d = 
>   ^ ~~
> /build/prefix/armv7-w64-mingw32/include/math.h:594:11: error: assigning to 
> 'double *' from incompatible type 'long double *'
> hlp.d = &_x;
>   ^ ~~~
> /build/prefix/armv7-w64-mingw32/include/math.h:665:11: error: assigning to 
> 'double *' from incompatible type 'long double *'
> hlp.d = 
>   ^ ~~
> 
> When building with llvm/clang.
> 
> Regards,

OK, thx. I only tested with gcc...
But I also just noticed that you should also change the return line dt to ldt 
or simply merge the implementation with the x86_64 one


--
Mobile security can be enabling, not merely restricting. Employees who
bring their own devices (BYOD) to work are irked by the imposition of MDM
restrictions. Mobile Device Manager Plus allows you to control only the
apps on BYO-devices by containerizing them, leaving personal data untouched!
https://ad.doubleclick.net/ddm/clk/304595813;131938128;j
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] [PATCH] CRT_fp10: Protect ARM implementation against compiler optimizations

2015-12-24 Thread André Hentschel
Am 24.12.2015 um 07:36 schrieb Martell Malone:
> [PATCH] CRT_fp10: Protect ARM implementation against compiler 
> optimizations
> 
> I take it the clang based toolchain I sent you works ?
> I'm going to move onto fixing i686 and then do a personal builds release for 
> xmas.

That was really just a suggestion by a user.
But yeah, your toolchain somewhat works.
Minor issues so far:
strdup is not mapped to msvcrt._strdup
-mwindows, -mconsole and likely also -mdll are not supported yet 
(there's this wclang project on github that hacks around it)
no binutils, dlltool and such, I mean everything mingw-w64 would bring 
you except ld which is now lld, right...
no complete build instructions, really, I have no idea how to build my 
own toolchain :)
the instructions in the source archive you gave me only got me 
a clang toolchain...


Anyway, I managed to build some easy parts of the Wine testsuite with it 
already, so hey, Awesome!
Keep up the great work and merry xmas!

PS: Next target will be AArch64 ;) no, really, I figure this will be much 
bigger in the M$ world than ARM32...

--
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] [PATCH] CRT_fp10: Protect ARM implementation against compiler optimizations

2015-12-23 Thread André Hentschel
Please review, i'll commit it (in case I still have access), just need an OK.

commit 5e2e73b7754fca77ef7635cf52c73a3885110603
Author: André Hentschel 
Date:   Thu Dec 24 00:01:06 2015 +0100

CRT_fp10: Protect ARM implementation against compiler optimizations

Suggested-by: David Wohlferd 

diff --git a/mingw-w64-crt/crt/CRT_fp10.c b/mingw-w64-crt/crt/CRT_fp10.c
index 89f2617..41cb573 100644
--- a/mingw-w64-crt/crt/CRT_fp10.c
+++ b/mingw-w64-crt/crt/CRT_fp10.c
@@ -10,8 +10,7 @@ void _fpreset (void)
 {
 #if defined(_ARM_) || defined(__arm__)
   __asm__ __volatile__ (
-"mov	r0, #0x00\n\t" /* INITIAL_FPSCR */
-"vmsr	fpscr, r0\n\t");
+"vmsr	fpscr, %0\n\t" : : "r"(0 /* INITIAL_FPSCR */));
 #else
 #ifdef __GNUC__
   __asm__ ("fninit");
--
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] [PATCH] softmath: More error handling

2014-10-21 Thread André Hentschel
Please review, i'll commit it, just need an OK.
diff --git a/mingw-w64-crt/math/softmath/acosh.c b/mingw-w64-crt/math/softmath/acosh.c
index 09bfaa6..01d3e20 100644
--- a/mingw-w64-crt/math/softmath/acosh.c
+++ b/mingw-w64-crt/math/softmath/acosh.c
@@ -46,5 +46,19 @@
 
 double acosh(double x)
 {
+int x_class = fpclassify (x);
+if (x_class == FP_NAN || x  1.0)
+{
+errno = EDOM;
+__mingw_raise_matherr (_DOMAIN, acosh, x, 0.0, NAN);
+return NAN;
+}
+else if (x_class == FP_INFINITE)
+{
+errno = EDOM;
+__mingw_raise_matherr (_DOMAIN, acosh, x, 0.0, NAN);
+return NAN;
+}
+
 return softmath_log(x + sqrt(x * x * 2 - 1));
 }
diff --git a/mingw-w64-crt/math/softmath/acoshf.c b/mingw-w64-crt/math/softmath/acoshf.c
index e8940fb..cc18e6b 100644
--- a/mingw-w64-crt/math/softmath/acoshf.c
+++ b/mingw-w64-crt/math/softmath/acoshf.c
@@ -46,5 +46,19 @@
 
 float acoshf(float x)
 {
+int x_class = fpclassify (x);
+if (x_class == FP_NAN || x  1.0f)
+{
+errno = EDOM;
+__mingw_raise_matherr (_DOMAIN, acoshf, x, 0.0, NANF);
+return NANF;
+}
+else if (x_class == FP_INFINITE)
+{
+errno = EDOM;
+__mingw_raise_matherr (_DOMAIN, acoshf, x, 0.0, NANF);
+return NANF;
+}
+
 return softmath_logf(x + sqrtf(x * x * 2 - 1));
 }
diff --git a/mingw-w64-crt/math/softmath/acoshl.c b/mingw-w64-crt/math/softmath/acoshl.c
index 64d2033..f0c6288 100644
--- a/mingw-w64-crt/math/softmath/acoshl.c
+++ b/mingw-w64-crt/math/softmath/acoshl.c
@@ -46,6 +46,20 @@
 
 long double acoshl(long double x)
 {
+int x_class = fpclassify (x);
+if (x_class == FP_NAN || x  1.0l)
+{
+errno = EDOM;
+__mingw_raise_matherr (_DOMAIN, acoshl, x, 0.0, NANL);
+return NANL;
+}
+else if (x_class == FP_INFINITE)
+{
+errno = EDOM;
+__mingw_raise_matherr (_DOMAIN, acoshl, x, 0.0, NANL);
+return NANL;
+}
+
 #if defined(__arm__) || defined(_ARM_)
 return acosh(x);
 #else
diff --git a/mingw-w64-crt/math/softmath/exp.c b/mingw-w64-crt/math/softmath/exp.c
index b5216c8..f8c067d 100644
--- a/mingw-w64-crt/math/softmath/exp.c
+++ b/mingw-w64-crt/math/softmath/exp.c
@@ -49,6 +49,35 @@ double exp(double x)
 double result = 0.0;
 int n;
 
+int x_class = fpclassify (x);
+if (x_class == FP_NAN)
+{
+errno = EDOM;
+__mingw_raise_matherr (_DOMAIN, exp, x, 0.0, x);
+return x;
+}
+else if (x_class == FP_INFINITE)
+{
+double r = (signbit (x) ? 0.0 : HUGE_VAL);
+errno = ERANGE;
+__mingw_raise_matherr (signbit (x) ? _OVERFLOW : _UNDERFLOW, exp, x, 0.0, r);
+return r;
+}
+else if (x_class == FP_ZERO)
+{
+return 1.0;
+}
+else if (x  7.09782712893383996843E2)
+{
+errno = ERANGE;
+__mingw_raise_matherr (_OVERFLOW, exp, x, 0.0, HUGE_VAL);
+return HUGE_VAL;
+}
+else if (x  -7.45133219101941108420E2)
+{
+return 0.0;
+}
+
 for(n = 0; n  64; n++)
 {
 result += (bsd__ieee754_pow(x, n) / softmath_fact(n));
diff --git a/mingw-w64-crt/math/softmath/expl.c b/mingw-w64-crt/math/softmath/expl.c
index 00d03f2..675a8cb 100644
--- a/mingw-w64-crt/math/softmath/expl.c
+++ b/mingw-w64-crt/math/softmath/expl.c
@@ -46,6 +46,35 @@
 
 long double expl(long double x)
 {
+int x_class = fpclassify (x);
+if (x_class == FP_NAN)
+{
+errno = EDOM;
+__mingw_raise_matherr (_DOMAIN, expl, x, 0.0, x);
+return x;
+}
+else if (x_class == FP_INFINITE)
+{
+long double r = (signbit (x) ? 0.0l : HUGE_VALL);
+errno = ERANGE;
+__mingw_raise_matherr (signbit (x) ? _OVERFLOW : _UNDERFLOW, expl, x, 0.0, r);
+return r;
+}
+else if (x_class == FP_ZERO)
+{
+return 1.0l;
+}
+else if (x  1.1356523406294143949492E4L)
+{
+errno = ERANGE;
+__mingw_raise_matherr (_OVERFLOW, expl, x, 0.0, HUGE_VALL);
+return HUGE_VALL;
+}
+else if (x  -1.1355137111933024058873E4L)
+{
+return 0.0l;
+}
+
 #if defined(__arm__) || defined(_ARM_)
 return exp(x);
 #else
diff --git a/mingw-w64-crt/math/softmath/expm1.c b/mingw-w64-crt/math/softmath/expm1.c
index a76f9c8..bd01683 100644
--- a/mingw-w64-crt/math/softmath/expm1.c
+++ b/mingw-w64-crt/math/softmath/expm1.c
@@ -46,5 +46,21 @@
 
 double expm1(double x)
 {
+int x_class = fpclassify (x);
+if (x_class == FP_NAN)
+{
+errno = EDOM;
+__mingw_raise_matherr (_DOMAIN, expm1, x, 0.0, x);
+return x;
+}
+else if (x_class == FP_INFINITE)
+{
+return (signbit (x) ? -1.0 : HUGE_VAL);
+}
+else if (x_class == FP_ZERO)
+{
+return x;
+}
+
 return exp(x) - 1;
 }
diff --git a/mingw-w64-crt/math/softmath/expm1f.c b/mingw-w64-crt/math/softmath/expm1f.c
index b5d3a86..00ec59d 100644

Re: [Mingw-w64-public] Cleanup and synchronization of DATA-only imports between different MS-runtimes

2014-10-14 Thread André Hentschel
Am 14.10.2014 um 12:53 schrieb Kai Tietz:
 Hi,
 
 this patch unifies DATA only imports for different runtime-versions of
 msvcr* import libraries.
 Additionally it marks some functions to be in future DATA only, if
 function is locally implemented in our crt.
 
 This patch is done only for 32-bit for now.  Of course for the 64-bit
 version same thing needs to be done.
 
 Any comment on this patch?
 
 Kai
 
 PS: Alexey, as told on IRC, this change needs to be tested pretty
 intensive for 32-bit code, as in some context math changes.
 

I'm not entirely sure what DATA means in this context, but do we need to do the 
same for libarm32?

--
Comprehensive Server Monitoring with Site24x7.
Monitor 10 servers for $9/Month.
Get alerted through email, SMS, voice calls or mobile push notifications.
Take corrective actions from your mobile device.
http://p.sf.net/sfu/Zoho
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] [PATCH] stdio: Port functions from ARM to Thumb

2014-10-04 Thread André Hentschel
Please review, i'll commit it, just need an OK.

diff --git a/mingw-w64-crt/stdio/vfscanf.c b/mingw-w64-crt/stdio/vfscanf.c
index ece4701..a5da3cf 100644
--- a/mingw-w64-crt/stdio/vfscanf.c
+++ b/mingw-w64-crt/stdio/vfscanf.c
@@ -15,6 +15,39 @@
 #define QUOTE_(x) #x
 #define QUOTE(x) QUOTE_(x)
 
+#if defined(__arm__) || defined(_ARM_)
+int __ms_vfscanf_internal(FILE * __restrict__, const char * __restrict__, va_list);
+asm(\t.text\n
+\t.align 2\n
+\t.thumb_func\n
+\t.globl __ms_vfscanf_internal\n
+__ms_vfscanf_internal:\n\t
+push {r4-r7, lr}\n\t
+mov r4, sp\n\t
+sub r4, r4, #128\n\t
+
+ldr r5, [r2]\n\t
+add r2, r2, #4\n\t
+ldr r6, [r2]\n\t
+add r2, r2, #4\n\t
+
+mov r3, #116\n\t
+1: ldr r7, [r2]\n\t
+add r2, r2, #4\n\t
+str r7, [r4]\n\t
+add r4, r4, #4\n\t
+sub r3, r3, #4\n\t
+cmp r3, #0\n\t
+bne 1b\n\t
+
+sub sp, sp, #128\n\t
+mov r2, r5\n\t
+mov r3, r6\n\t
+bl  QUOTE(__MINGW_USYMBOL(fscanf)) \n\t
+add sp, sp, #128\n\t
+pop {r4-r7, pc});
+#endif /* defined(__arm__) || defined(_ARM_) */
+
 int __ms_vfscanf (FILE * __restrict__ stream, const char * __restrict__ format, va_list arg)
 {
   int ret;
@@ -84,35 +117,7 @@ int __ms_vfscanf (FILE * __restrict__ stream, const char * __restrict__ format,
   a(ret)
 : ebx, edi);
 #elif defined(_ARM_) || defined(__arm__)
-  int tmp1, tmp2, tmp3, tmp4, tmp5;
-  __asm__ __volatile__ (
-mov %[t1], sp\n\t
-sub %[t1], %[t1], #128\n\t
-mov %[t2], %[arg]\n\t
-
-ldr ip, [%[t2]], #4\n\t
-mov %[t4], ip\n\t
-ldr ip, [%[t2]], #4\n\t
-mov %[t5], ip\n\t
-
-mov %[t3], #120\n\t
-1: ldr ip, [%[t2]], #4\n\t
-str ip, [%[t1]], #4\n\t
-subs %[t3], %[t3], #4\n\t
-bge 1b\n\t
-
-sub sp, sp, #128\n\t
-mov r0, %[s]\n\t
-mov r1, %[format]\n\t
-mov r2, %[t4]\n\t
-mov r3, %[t5]\n\t
-bl  QUOTE(__MINGW_USYMBOL(fscanf)) \n\t
-add sp, sp, #128\n\t
-mov %[ret], r0\n\t
-: [ret] =r (ret), [t1] +r (tmp1), [t2] +r (tmp2), [t3] +r (tmp3), [t4] +r (tmp4), [t5] +r (tmp5)
-: [s] r (stream), [format] r (format), [arg] r (arg)
-: r0, r1, r2, r3, ip, cc, memory
-);
+ret = __ms_vfscanf_internal(stream, format, arg);
 #endif
 
   return ret;
diff --git a/mingw-w64-crt/stdio/vfwscanf.c b/mingw-w64-crt/stdio/vfwscanf.c
index eb1c83e..0e3a884 100644
--- a/mingw-w64-crt/stdio/vfwscanf.c
+++ b/mingw-w64-crt/stdio/vfwscanf.c
@@ -12,6 +12,39 @@
 #define QUOTE_(x) #x
 #define QUOTE(x) QUOTE_(x)
 
+#if defined(__arm__) || defined(_ARM_)
+int __ms_vfwscanf_internal(FILE * __restrict__, const char * __restrict__, va_list);
+asm(\t.text\n
+\t.align 2\n
+\t.thumb_func\n
+\t.globl __ms_vfwscanf_internal\n
+__ms_vfwscanf_internal:\n\t
+push {r4-r7, lr}\n\t
+mov r4, sp\n\t
+sub r4, r4, #128\n\t
+
+ldr r5, [r2]\n\t
+add r2, r2, #4\n\t
+ldr r6, [r2]\n\t
+add r2, r2, #4\n\t
+
+mov r3, #116\n\t
+1: ldr r7, [r2]\n\t
+add r2, r2, #4\n\t
+str r7, [r4]\n\t
+add r4, r4, #4\n\t
+sub r3, r3, #4\n\t
+cmp r3, #0\n\t
+bne 1b\n\t
+
+sub sp, sp, #128\n\t
+mov r2, r5\n\t
+mov r3, r6\n\t
+bl  QUOTE(__MINGW_USYMBOL(fwscanf)) \n\t
+add sp, sp, #128\n\t
+pop {r4-r7, pc});
+#endif /* defined(__arm__) || defined(_ARM_) */
+
 int __ms_vfwscanf (FILE * __restrict__ stream, const wchar_t * __restrict__ format,
   va_list arg) {
 
@@ -83,35 +116,7 @@ int __ms_vfwscanf (FILE * __restrict__ stream, const wchar_t * __restrict__ form
   a(ret)
 : ebx, edi);
 #elif defined(_ARM_) || defined(__arm__)
-  int tmp1, tmp2, tmp3, tmp4, tmp5;
-  __asm__ __volatile__ (
-mov %[t1], sp\n\t
-sub %[t1], %[t1], #128\n\t
-mov %[t2], %[arg]\n\t
-
-ldr ip, [%[t2]], #4\n\t
-mov %[t4], ip\n\t
-ldr ip, [%[t2]], #4\n\t
-mov %[t5], ip\n\t
-
-mov %[t3], #120\n\t
-1: ldr ip, [%[t2]], #4\n\t
-str ip, [%[t1]], #4\n\t
-subs %[t3], %[t3], #4\n\t
-bge 1b\n\t
-
-sub sp, sp, #128\n\t
-mov r0, %[s]\n\t
-mov r1, %[format]\n\t
-mov r2, %[t4]\n\t
-mov r3, %[t5]\n\t
-bl  QUOTE(__MINGW_USYMBOL(fwscanf)) \n\t
-add sp, sp, #128\n\t
-mov %[ret], r0\n\t
-: [ret] =r (ret), [t1] +r (tmp1), [t2] +r (tmp2), [t3] +r (tmp3), [t4] +r (tmp4), [t5] +r (tmp5)
-: [s] r (stream), [format] r (format), [arg] r (arg)
-: r0, r1, r2, r3, ip, cc, memory
-);
+ret = __ms_vfwscanf_internal(stream, format, arg);
 #endif
 
   return ret;
diff --git a/mingw-w64-crt/stdio/vsscanf.c b/mingw-w64-crt/stdio/vsscanf.c
index 0c148c1..f6c412a 100644
--- a/mingw-w64-crt/stdio/vsscanf.c
+++ b/mingw-w64-crt/stdio/vsscanf.c
@@ -12,6 +12,39 @@
 #define QUOTE_(x) #x
 #define QUOTE(x) QUOTE_(x)
 
+#if defined(__arm__) || defined(_ARM_)
+int __ms_vsscanf_internal(const char * __restrict__, const char * __restrict__, va_list);
+asm(\t.text\n
+\t.align 2\n
+\t.thumb_func\n
+\t.globl __ms_vsscanf_internal\n
+

[Mingw-w64-public] [PATCH] Header adjustments for ARM

2014-10-04 Thread André Hentschel
Please review, i'll commit it, just need an OK.


diff --git a/mingw-w64-crt/math/softmath/cos.c b/mingw-w64-crt/math/softmath/cos.c
index 2ea746f..371efd4 100644
--- a/mingw-w64-crt/math/softmath/cos.c
+++ b/mingw-w64-crt/math/softmath/cos.c
@@ -43,7 +43,6 @@
 */
 
 #include softmath_private.h
-#include errno.h
 
 double cos(double x)
 {
diff --git a/mingw-w64-crt/math/softmath/cosf.c b/mingw-w64-crt/math/softmath/cosf.c
index 5b33570..1400c13 100644
--- a/mingw-w64-crt/math/softmath/cosf.c
+++ b/mingw-w64-crt/math/softmath/cosf.c
@@ -43,7 +43,6 @@
 */
 
 #include softmath_private.h
-#include errno.h
 
 float cosf(float x)
 {
diff --git a/mingw-w64-crt/math/softmath/cosl.c b/mingw-w64-crt/math/softmath/cosl.c
index 2984045..478f6cc 100644
--- a/mingw-w64-crt/math/softmath/cosl.c
+++ b/mingw-w64-crt/math/softmath/cosl.c
@@ -43,7 +43,6 @@
 */
 
 #include softmath_private.h
-#include errno.h
 
 long double cosl(long double x)
 {
diff --git a/mingw-w64-crt/math/softmath/sinl.c b/mingw-w64-crt/math/softmath/sinl.c
index 4e3a851..34e6417 100644
--- a/mingw-w64-crt/math/softmath/sinl.c
+++ b/mingw-w64-crt/math/softmath/sinl.c
@@ -43,7 +43,6 @@
 */
 
 #include softmath_private.h
-#include errno.h
 
 long double sinl(long double x)
 {
diff --git a/mingw-w64-crt/math/softmath/softmath_private.h b/mingw-w64-crt/math/softmath/softmath_private.h
index 00eaa2b..72df747 100644
--- a/mingw-w64-crt/math/softmath/softmath_private.h
+++ b/mingw-w64-crt/math/softmath/softmath_private.h
@@ -11,6 +11,7 @@
 
 #include math.h
 #include inttypes.h
+#include errno.h
 
 /* NAN builtins for gcc, as they are not part of math.h  */
 #ifndef NANF
diff --git a/mingw-w64-headers/crt/math.h b/mingw-w64-headers/crt/math.h
index 8546b3c..906192e 100644
--- a/mingw-w64-headers/crt/math.h
+++ b/mingw-w64-headers/crt/math.h
@@ -406,7 +406,7 @@ typedef long double double_t;
 
 #ifndef __CRT__NO_INLINE
   __CRT_INLINE int __cdecl __fpclassifyl (long double x) {
-#ifdef __x86_64__
+#if defined(__x86_64__) || defined(_AMD64_)
 __mingw_fp_types_t hlp;
 unsigned int e;
 hlp.ld = x;
@@ -423,14 +423,29 @@ typedef long double double_t;
   return (((hlp.ldt-lh.high  0x7fff) | hlp.ldt-lh.low) == 0 ?
   FP_INFINITE : FP_NAN);
 return FP_NORMAL;
-#else
+#elif defined(__arm__) || defined(_ARM_)
+__mingw_fp_types_t hlp;
+unsigned int l, h;
+
+hlp.d = x;
+h = hlp.ldt-lh.high;
+l = hlp.ldt-lh.low | (h  0xf);
+h = 0x7ff0;
+if ((h | l) == 0)
+  return FP_ZERO;
+if (!h)
+  return FP_SUBNORMAL;
+if (h == 0x7ff0)
+  return (l ? FP_NAN : FP_INFINITE);
+return FP_NORMAL;
+#elif defined(__i386__) || defined(_X86_)
 unsigned short sw;
 __asm__ __volatile__ (fxam; fstsw %%ax; : =a (sw): t (x));
 return sw  (FP_NAN | FP_NORMAL | FP_ZERO );
 #endif
   }
   __CRT_INLINE int __cdecl __fpclassify (double x) {
-#ifdef __x86_64__
+#if defined(__x86_64__) || defined(_AMD64_) || defined(__arm__) || defined(_ARM_)
 __mingw_fp_types_t hlp;
 unsigned int l, h;
 
@@ -445,14 +460,14 @@ typedef long double double_t;
 if (h == 0x7ff0)
   return (l ? FP_NAN : FP_INFINITE);
 return FP_NORMAL;
-#else
+#elif defined(__i386__) || defined(_X86_)
 unsigned short sw;
 __asm__ __volatile__ (fxam; fstsw %%ax; : =a (sw): t (x));
 return sw  (FP_NAN | FP_NORMAL | FP_ZERO );
 #endif
   }
   __CRT_INLINE int __cdecl __fpclassifyf (float x) {
-#ifdef __x86_64__
+#if defined(__x86_64__) || defined(_AMD64_) || defined(__arm__) || defined(_ARM_)
 __mingw_fp_types_t hlp;
 
 hlp.f = x;
@@ -464,7 +479,7 @@ typedef long double double_t;
 if (hlp.ft-val = 0x7f80)
   return (hlp.ft-val  0x7f80 ? FP_NAN : FP_INFINITE);
 return FP_NORMAL;
-#else
+#elif defined(__i386__) || defined(_X86_)
 unsigned short sw;
 __asm__ __volatile__ (fxam; fstsw %%ax; : =a (sw): t (x));
 return sw  (FP_NAN | FP_NORMAL | FP_ZERO );
@@ -518,7 +533,7 @@ __mingw_choose_expr ( \
 #ifndef __CRT__NO_INLINE
   __CRT_INLINE int __cdecl __isnan (double _x)
   {
-#ifdef __x86_64__
+#if defined(__x86_64__) || defined(_AMD64_) || defined(__arm__) || defined(_ARM_)
 __mingw_fp_types_t hlp;
 int l, h;
 
@@ -528,7 +543,7 @@ __mingw_choose_expr ( \
 h |= (unsigned int) (l | -l)  31;
 h = 0x7ff0 - h;
 return (int) ((unsigned int) h)  31;
-#else
+#elif defined(__i386__) || defined(_X86_)
 unsigned short sw;
 __asm__ __volatile__ (fxam;
   fstsw %%ax: =a (sw) : t (_x));
@@ -539,7 +554,7 @@ __mingw_choose_expr ( \
 
   __CRT_INLINE int __cdecl __isnanf (float _x)
   {
-#ifdef __x86_64__
+#if defined(__x86_64__) || defined(_AMD64_) || defined(__arm__) || defined(_ARM_)
 __mingw_fp_types_t hlp;
 int i;
 
@@ -547,7 +562,7 @@ __mingw_choose_expr ( \
 i = 

[Mingw-w64-public] [PATCH] mingw-w64-headers: Make ARM assembler Thumb compatible

2014-09-30 Thread André Hentschel
Please review, i'll commit it, just need an OK.
diff --git a/mingw-w64-headers/include/psdk_inc/intrin-impl.h b/mingw-w64-headers/include/psdk_inc/intrin-impl.h
index 8ccff53..32a001b 100644
--- a/mingw-w64-headers/include/psdk_inc/intrin-impl.h
+++ b/mingw-w64-headers/include/psdk_inc/intrin-impl.h
@@ -121,7 +121,8 @@ __INTRINSICS_USEINLINE
Offset = 1  Offset; \
__asm__ __volatile__ (dmb	sy\n\t \
 1: ldrex	%[old], %[Base]\n\t \
-z 	%[tmp1], %[old], %[Offset]\n\t \
+mov	%[tmp1], %[old]\n\t \
+z 	%[tmp1], %[tmp1], %[Offset]\n\t \
 strex	%[tmp2], %[tmp1], %[Base]\n\t \
 cmp	%[tmp2], #0\n\t \
 bne	1b\n\t \
--
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311iu=/4140/ostg.clktrk___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] [PATCH] stdio/math: Various implementations and more for ARM (v2)

2014-09-22 Thread André Hentschel
Am 21.09.2014 um 23:41 schrieb dw:
 
 On 9/20/2014 8:07 AM, André Hentschel wrote:
 Am 19.09.2014 um 17:30 schrieb Kai Tietz:
 2014-09-19 1:34 GMT+02:00 dw limegreenso...@yahoo.com:
 For the parts that are working around a compiler bug:

 - Does it make sense to list the bug number in the comment?
 I think it makes sense in general.  Only important thing should be to
 mark bug-number, that it belongs to SF bug-tracker.  We might want to
 change in future bug-tracker and so we would loose relation.

 - If the bug has been fixed, what about using __GNUC__ and __GNUC_MINOR__ 
 to
 limit the code?
 Well, depends on the nature of code.  If it is a general bug-fix, then
 I don't see the need for __GNUC__/__GNUC_MINOR__ guarding (btw we have
 in _mingw.h some helper-macros for checking easier gcc-version).
 For compiler-specific bugs, it makes sense.  Only questional point
 here is how we treat reviews for new-compilers, as the reason for
 compiler-related bug-fixes might be resolved in future version.

 dw
 Kai
 I guess the problem might be related to the early state of changes to gcc 
 for armv7-pe support, so i don't see a point in reporting a bug
 
 I'm just envisioning someone looking at this code many years from now 
 trying to figure out why it is there and whether it is still needed.  A 
 bug number is a simple way to convey this information, but there are others.
 
 dw

Well, it's easy to try it out by moving the code into inline assembler.
We should check again before releasing a final build that targets ARM


--
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311iu=/4140/ostg.clktrk
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] cherrypick request

2014-09-21 Thread André Hentschel
Hi,
someone should cherry-pick this into stable branches:
997b3564e412f33dccb1cb4671ffdb10d3507cd2

--
Slashdot TV.  Video for Nerds.  Stuff that Matters.
http://pubads.g.doubleclick.net/gampad/clk?id=160591471iu=/4140/ostg.clktrk
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] cherrypick request

2014-09-21 Thread André Hentschel
Am 21.09.2014 um 20:05 schrieb Ozkan Sezer:
 On 9/21/14, André Hentschel n...@dawncrow.de wrote:
 Hi,
 someone should cherry-pick this into stable branches:
 997b3564e412f33dccb1cb4671ffdb10d3507cd2

 
 Cherry-picked into v1.x, v2.x and v3.x, and pushed.

Thx


--
Slashdot TV.  Video for Nerds.  Stuff that Matters.
http://pubads.g.doubleclick.net/gampad/clk?id=160591471iu=/4140/ostg.clktrk
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] [PATCH] stdio/math: Various implementations and more for ARM (v2)

2014-09-20 Thread André Hentschel
Am 19.09.2014 um 17:30 schrieb Kai Tietz:
 2014-09-19 1:34 GMT+02:00 dw limegreenso...@yahoo.com:
 For the parts that are working around a compiler bug:

 - Does it make sense to list the bug number in the comment?
 I think it makes sense in general.  Only important thing should be to
 mark bug-number, that it belongs to SF bug-tracker.  We might want to
 change in future bug-tracker and so we would loose relation.
 
 - If the bug has been fixed, what about using __GNUC__ and __GNUC_MINOR__ to
 limit the code?
 
 Well, depends on the nature of code.  If it is a general bug-fix, then
 I don't see the need for __GNUC__/__GNUC_MINOR__ guarding (btw we have
 in _mingw.h some helper-macros for checking easier gcc-version).
 For compiler-specific bugs, it makes sense.  Only questional point
 here is how we treat reviews for new-compilers, as the reason for
 compiler-related bug-fixes might be resolved in future version.
 
 dw
 
 Kai

I guess the problem might be related to the early state of changes to gcc for 
armv7-pe support, so i don't see a point in reporting a bug


--
Slashdot TV.  Video for Nerds.  Stuff that Matters.
http://pubads.g.doubleclick.net/gampad/clk?id=160591471iu=/4140/ostg.clktrk
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] [PATCH] stdio/math: Various implementations and more for ARM

2014-09-18 Thread André Hentschel
Please review, i'll commit it, just need an OK.






diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index 7245956..9731aa9 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -233,7 +233,7 @@ src_libmingwex=\
   math/fabs.c   math/fabsf.c   math/fabsl.c  math/fdim.c  math/fdimf.c math/fdiml.c \
   math/fmal.c   math/fmax.cmath/fmaxf.c  math/fmaxl.c math/fmin.c  math/fminf.c \
   math/fminl.c  math/fp_consts.c   math/fp_constsf.c \
-  math/fp_constsl.c math/fpclassify.c  math/fpclassifyf.cmath/fpclassifyl.c   math/frexpf.cmath/fucom.c \
+  math/fp_constsl.c math/fpclassify.c  math/fpclassifyf.cmath/fpclassifyl.c   math/frexpf.c\
   math/hypotf.c math/hypotl.c  math/isnan.c  math/isnanf.cmath/isnanl.c\
   math/ldexpf.c math/lgamma.c  math/lgammaf.cmath/lgammal.c   math/llrint.c\
   math/signgam.c \
@@ -299,13 +299,14 @@ src_libmingwex64=\
   math/atanhf.c math/atanhl.c math/cos.cmath/cosf.c   math/cosl.c   \
   math/cosl_internal.S  math/cossin.c math/exp.cmath/expl.c   math/exp2.S   \
   math/exp2f.S  math/exp2l.S  math/expm1.c  math/expm1f.c math/expm1l.c \
-  math/fmod.c   math/fmodf.c  math/fmodl.c  math/ilogb.S  math/ilogbf.S \
-  math/ilogbl.S math/internal_logl.S  math/ldexp.c  math/ldexpl.c math/log.c   \
-  math/log10l.S math/log1p.S  math/log1pf.S math/log1pl.S math/log2.S   \
-  math/log2f.S  math/log2l.S  math/logb.c   math/logbf.c  math/logbl.c  \
-  math/logl.c   math/pow.cmath/powl.c   math/remainder.S  math/remainderf.S \
-  math/remainderl.S math/scalbn.S math/scalbnf.Smath/scalbnl.Smath/sin.c\
-  math/sinf.c   math/sinl.c   math/sinl_internal.S  math/tanf.c   math/tanl.S
+  math/fmod.c   math/fmodf.c  math/fmodl.c  math/fucom.c  math/ilogb.S  \
+  math/ilogbf.S math/ilogbl.S math/internal_logl.S  math/ldexp.c  math/ldexpl.c \
+  math/log.cmath/log10l.S math/log1p.S  math/log1pf.S math/log1pl.S \
+  math/log2.S   math/log2f.S  math/log2l.S  math/logb.c   math/logbf.c  \
+  math/logbl.c  math/logl.c   math/pow.cmath/powl.c   math/remainder.S  \
+  math/remainderf.S math/remainderl.S math/scalbn.S math/scalbnf.Smath/scalbnl.S\
+  math/sin.cmath/sinf.c   math/sinl.c   math/sinl_internal.S  math/tanf.c   \
+  math/tanl.S
 
 # these only go into the 32 bit version:
 src_libmingwex32=\
@@ -315,13 +316,14 @@ src_libmingwex32=\
   math/atanhf.c math/atanhl.c math/cos.cmath/cosf.c   math/cosl.c   \
   math/cosl_internal.S  math/cossin.c math/exp.cmath/expl.c   math/exp2.S   \
   math/exp2f.S  math/exp2l.S  math/expm1.c  math/expm1f.c math/expm1l.c \
-  math/fmod.c   math/fmodf.c  math/fmodl.c  math/ilogb.S  math/ilogbf.S \
-  math/ilogbl.S math/internal_logl.S  math/ldexp.c  math/ldexpl.c math/log.c   \
-  math/log10l.S math/log1p.S  math/log1pf.S math/log1pl.S math/log2.S   \
-  math/log2f.S  math/log2l.S  math/logb.c   math/logbf.c  math/logbl.c  \
-  math/logl.c   math/pow.cmath/powl.c   math/remainder.S  math/remainderf.S \
-  math/remainderl.S math/scalbn.S math/scalbnf.Smath/scalbnl.Smath/sin.c\
-  math/sinf.c   math/sinl.c   math/sinl_internal.S  math/tanf.c   math/tanl.S
+  math/fmod.c   math/fmodf.c  math/fmodl.c  math/fucom.c  math/ilogb.S  \
+  math/ilogbf.S 

[Mingw-w64-public] [PATCH] misc: Various implementations and more for ARM

2014-09-17 Thread André Hentschel
Please review, i'll commit it, just need an OK.





diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index 5aa4900..7245956 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -1359,29 +1359,11 @@ libarm32/libvfw32.a: libarm32/vfw32.mri libarm32/libmsvfw32.a libarm32/libavifil
 
 dx32_DATA =
 dx32_DATA += libarm32/libxinput.a
-dx32_DATA += libarm32/libxapofx.a
-dx32_DATA += libarm32/libx3daudio.a
-dx32_DATA += libarm32/libd3dx9.a
-dx32_DATA += libarm32/libd3dx10.a
-dx32_DATA += libarm32/libd3dx11.a
-dx32_DATA += libarm32/libd3dcsxd.a
 dx32_DATA += libarm32/libd3dcompiler.a
 
-libarm32/libxinput.a: libarm32/$(xinput).def
+libarm32/libxinput.a: libarm32/xinput1_4.def
 	$(DTDEFARM32) $
-libarm32/libxapofx.a: libarm32/$(xapofx).def
-	$(DTDEFARM32) $
-libarm32/libx3daudio.a: libarm32/$(x3daudio).def
-	$(DTDEFARM32) $
-libarm32/libd3dx9.a: libarm32/$(d3dx9).def
-	$(DTDEFARM32) $
-libarm32/libd3dx10.a: libarm32/$(d3dx10).def
-	$(DTDEFARM32) $
-libarm32/libd3dx11.a: libarm32/$(d3dx11).def
-	$(DTDEFARM32) $
-libarm32/libd3dcsxd.a: libarm32/$(d3dcsxd).def
-	$(DTDEFARM32) $
-libarm32/libd3dcompiler.a: libarm32/$(d3dcompiler).def
+libarm32/libd3dcompiler.a: libarm32/d3dcompiler_47.def
 	$(DTDEFARM32) $
 
 endif
diff --git a/mingw-w64-crt/Makefile.in b/mingw-w64-crt/Makefile.in
index fcdf276..2d0c2fe 100644
--- a/mingw-w64-crt/Makefile.in
+++ b/mingw-w64-crt/Makefile.in
@@ -5584,10 +5584,8 @@ winrtlibs = \
 @LIB32_TRUE@	lib32/libx3daudio.a lib32/libd3dx9.a \
 @LIB32_TRUE@	lib32/libd3dx10.a lib32/libd3dx11.a \
 @LIB32_TRUE@	lib32/libd3dcsxd.a lib32/libd3dcompiler.a
-@LIBARM32_TRUE@dx32_DATA = libarm32/libxinput.a libarm32/libxapofx.a \
-@LIBARM32_TRUE@	libarm32/libx3daudio.a libarm32/libd3dx9.a \
-@LIBARM32_TRUE@	libarm32/libd3dx10.a libarm32/libd3dx11.a \
-@LIBARM32_TRUE@	libarm32/libd3dcsxd.a libarm32/libd3dcompiler.a
+@LIBARM32_TRUE@dx32_DATA = libarm32/libxinput.a \
+@LIBARM32_TRUE@	libarm32/libd3dcompiler.a
 
 # End 32-bit runtime
 # ##
@@ -48374,21 +48372,9 @@ lib64/DFP_src_%.dfp.obj: math/DFP/mpdecimal/libmpdec/%.c
 @LIBARM32_TRUE@	$(AR) -M  $
 @LIBARM32_TRUE@	$(RANLIB) $@
 
-@LIBARM32_TRUE@libarm32/libxinput.a: libarm32/$(xinput).def
+@LIBARM32_TRUE@libarm32/libxinput.a: libarm32/xinput1_4.def
 @LIBARM32_TRUE@	$(DTDEFARM32) $
-@LIBARM32_TRUE@libarm32/libxapofx.a: libarm32/$(xapofx).def
-@LIBARM32_TRUE@	$(DTDEFARM32) $
-@LIBARM32_TRUE@libarm32/libx3daudio.a: libarm32/$(x3daudio).def
-@LIBARM32_TRUE@	$(DTDEFARM32) $
-@LIBARM32_TRUE@libarm32/libd3dx9.a: libarm32/$(d3dx9).def
-@LIBARM32_TRUE@	$(DTDEFARM32) $
-@LIBARM32_TRUE@libarm32/libd3dx10.a: libarm32/$(d3dx10).def
-@LIBARM32_TRUE@	$(DTDEFARM32) $
-@LIBARM32_TRUE@libarm32/libd3dx11.a: libarm32/$(d3dx11).def
-@LIBARM32_TRUE@	$(DTDEFARM32) $
-@LIBARM32_TRUE@libarm32/libd3dcsxd.a: libarm32/$(d3dcsxd).def
-@LIBARM32_TRUE@	$(DTDEFARM32) $
-@LIBARM32_TRUE@libarm32/libd3dcompiler.a: libarm32/$(d3dcompiler).def
+@LIBARM32_TRUE@libarm32/libd3dcompiler.a: libarm32/d3dcompiler_47.def
 @LIBARM32_TRUE@	$(DTDEFARM32) $
 
 # End ARM 32-bit runtime
diff --git a/mingw-w64-crt/math/sqrt.def.h b/mingw-w64-crt/math/sqrt.def.h
index 431fb3d..dc48905 100644
--- a/mingw-w64-crt/math/sqrt.def.h
+++ b/mingw-w64-crt/math/sqrt.def.h
@@ -54,7 +54,6 @@ asm(.def __fsqrt_internal; .scl 2; .type 32; .endef\n
 \t.text\n
 \t.align 4\n
 \t.globl __fsqrt_internal\n
-//\t.type __fsqrt_internal,2\n
 __fsqrt_internal:\n
 #if _NEW_COMPLEX_FLOAT
 \t fsqrts s0, s0\n
diff --git a/mingw-w64-crt/misc/feclearexcept.c b/mingw-w64-crt/misc/feclearexcept.c
index 63bf999..d6c65d2 100644
--- a/mingw-w64-crt/misc/feclearexcept.c
+++ b/mingw-w64-crt/misc/feclearexcept.c
@@ -5,6 +5,7 @@
  */
 #include fenv.h
 
+#if !(defined(_ARM_) || defined(__arm__))
 int __mingw_has_sse (void);
 
 int __mingw_has_sse(void)
@@ -31,6 +32,7 @@ int __mingw_has_sse(void)
 return 1;
   return 0;
 }
+#endif /* !(defined(_ARM_) || defined(__arm__)) */
 
 /* 7.6.2.1
The feclearexcept function clears the supported exceptions
@@ -38,9 +40,13 @@ int __mingw_has_sse(void)
 
 int feclearexcept (int excepts)
 {
+#if defined(_ARM_) || defined(__arm__)
   fenv_t _env;
+  __asm__ volatile (fmrx %0, FPSCR : =r (_env));
+  _env.__cw = ~(excepts  FE_ALL_EXCEPT);
+  __asm__ volatile (fmxr FPSCR, %0 : : r (_env));
+#else
   int _mxcsr;
-
   if (excepts == FE_ALL_EXCEPT)
 {
   __asm__ volatile (fnclex);
@@ -57,5 +63,6 @@ int feclearexcept (int excepts)
   _mxcsr = ~(((excepts  FE_ALL_EXCEPT)));
   __asm__ volatile (ldmxcsr %0 : : m (_mxcsr));
 }
+#endif /* defined(_ARM_) || defined(__arm__) */
   return (0);
 }
diff --git a/mingw-w64-crt/misc/fegetenv.c b/mingw-w64-crt/misc/fegetenv.c
index 6e08d77..96f57e4 100644
--- a/mingw-w64-crt/misc/fegetenv.c
+++ b/mingw-w64-crt/misc/fegetenv.c
@@ -5,7 +5,9 @@
  */
 #include fenv.h
 
+#if !(defined(_ARM_) || defined(__arm__))
 int __mingw_has_sse (void);
+#endif /* !(defined(_ARM_) || defined(__arm__)) */
 
 /* 

[Mingw-w64-public] [PATCH] misc/stdio: Various changes for ARM

2014-09-16 Thread André Hentschel
Please review, i'll commit it, just need an OK.




diff --git a/mingw-w64-crt/misc/mingw_getsp.S b/mingw-w64-crt/misc/mingw_getsp.S
index 517a351..e15a0f4 100644
--- a/mingw-w64-crt/misc/mingw_getsp.S
+++ b/mingw-w64-crt/misc/mingw_getsp.S
@@ -12,26 +12,39 @@
 #else
 	.align 4
 #endif
-.globl __MINGW_USYMBOL(mingw_getsp)
+	.globl __MINGW_USYMBOL(mingw_getsp)
 	.def	__MINGW_USYMBOL(mingw_getsp);	.scl	2;	.type	32;	.endef
 __MINGW_USYMBOL(mingw_getsp):
-#ifdef _WIN64
+#if defined(_AMD64_) || defined(__x86_64__)
 	leaq  8(%rsp),%rax
-#else
+	ret
+#elif defined(_X86_) || defined(__i386__)
 	lea	4(%esp),%eax
-#endif
 	ret
+#elif defined(_ARM_) || defined(__arm__)
+	mov	r0, sp
+	bx	lr
+#endif
 
-.globl __MINGW_USYMBOL(longjmp)
+/* On ARM:
+ * Error: cannot represent BFD_RELOC_32_PCREL relocation in this object file format
+ * But anyway, nothing is needed here as libarm32/libmsvcrt.a is exporting longjmp
+  ldr ip, 1f
+  ldr pc, [pc, ip]
+  1: .long __imp_longjmp - (1b + 4)
+*/
+#if !(defined(_ARM_) || defined(__arm__))
+	.globl __MINGW_USYMBOL(longjmp)
 	.def	__MINGW_USYMBOL(longjmp);	.scl	2;	.type	32;	.endef
 __MINGW_USYMBOL(longjmp):
-#ifdef _WIN64
+#if defined(_AMD64_) || defined(__x86_64__)
 #ifndef __SEH__
   xorl %eax,%eax
   movl %eax, (%rcx)
 #endif
   leaq __MINGW_IMP_LSYMBOL(longjmp)(%rip), %rax
   jmpq *(%rax)
-#else
+#elif defined(_X86_) || defined(__i386__)
   jmp *__imp__longjmp
 #endif
+#endif /* !(defined(_ARM_) || defined(__arm__)) */
diff --git a/mingw-w64-crt/stdio/vfscanf2.S b/mingw-w64-crt/stdio/vfscanf2.S
index e3586eb..f6ba5d6 100644
--- a/mingw-w64-crt/stdio/vfscanf2.S
+++ b/mingw-w64-crt/stdio/vfscanf2.S
@@ -20,7 +20,11 @@ FCT:
 #ifdef _WIN64
 .seh_endprologue
 #endif
+#if defined(_AMD64_) || defined(__x86_64__) || defined(_X86_) || defined(__i386__)
 jmp FWD
+#elif defined(_ARM_) || defined(__arm__)
+b   FWD
+#endif
 #ifdef _WIN64
 .seh_endproc
 #endif
diff --git a/mingw-w64-crt/stdio/vfwscanf2.S b/mingw-w64-crt/stdio/vfwscanf2.S
index e3cd28c..c27fb7d 100644
--- a/mingw-w64-crt/stdio/vfwscanf2.S
+++ b/mingw-w64-crt/stdio/vfwscanf2.S
@@ -20,7 +20,11 @@ FCT:
 #ifdef _WIN64
 .seh_endprologue
 #endif
+#if defined(_AMD64_) || defined(__x86_64__) || defined(_X86_) || defined(__i386__)
 jmp FWD
+#elif defined(_ARM_) || defined(__arm__)
+b   FWD
+#endif
 #ifdef _WIN64
 .seh_endproc
 #endif
diff --git a/mingw-w64-crt/stdio/vscanf2.S b/mingw-w64-crt/stdio/vscanf2.S
index 191a48a..4114cd0 100644
--- a/mingw-w64-crt/stdio/vscanf2.S
+++ b/mingw-w64-crt/stdio/vscanf2.S
@@ -20,7 +20,11 @@ FCT:
 #ifdef _WIN64
 .seh_endprologue
 #endif
+#if defined(_AMD64_) || defined(__x86_64__) || defined(_X86_) || defined(__i386__)
 jmp FWD
+#elif defined(_ARM_) || defined(__arm__)
+b   FWD
+#endif
 #ifdef _WIN64
 .seh_endproc
 #endif
diff --git a/mingw-w64-crt/stdio/vsscanf2.S b/mingw-w64-crt/stdio/vsscanf2.S
index 7e1ffc2..5f814bb 100644
--- a/mingw-w64-crt/stdio/vsscanf2.S
+++ b/mingw-w64-crt/stdio/vsscanf2.S
@@ -20,7 +20,11 @@ FCT:
 #ifdef _WIN64
 .seh_endprologue
 #endif
+#if defined(_AMD64_) || defined(__x86_64__) || defined(_X86_) || defined(__i386__)
 jmp FWD
+#elif defined(_ARM_) || defined(__arm__)
+b   FWD
+#endif
 #ifdef _WIN64
 .seh_endproc
 #endif
diff --git a/mingw-w64-crt/stdio/vswscanf2.S b/mingw-w64-crt/stdio/vswscanf2.S
index 8b20c31a..87cbe2d 100644
--- a/mingw-w64-crt/stdio/vswscanf2.S
+++ b/mingw-w64-crt/stdio/vswscanf2.S
@@ -20,7 +20,11 @@ FCT:
 #ifdef _WIN64
 .seh_endprologue
 #endif
+#if defined(_AMD64_) || defined(__x86_64__) || defined(_X86_) || defined(__i386__)
 jmp FWD
+#elif defined(_ARM_) || defined(__arm__)
+b   FWD
+#endif
 #ifdef _WIN64
 .seh_endproc
 #endif
diff --git a/mingw-w64-crt/stdio/vwscanf2.S b/mingw-w64-crt/stdio/vwscanf2.S
index f1e2cb5..c4c6716 100644
--- a/mingw-w64-crt/stdio/vwscanf2.S
+++ b/mingw-w64-crt/stdio/vwscanf2.S
@@ -20,7 +20,11 @@ FCT:
 #ifdef _WIN64
 .seh_endprologue
 #endif
+#if defined(_AMD64_) || defined(__x86_64__) || defined(_X86_) || defined(__i386__)
 jmp FWD
+#elif defined(_ARM_) || defined(__arm__)
+b   FWD
+#endif
 #ifdef _WIN64
 .seh_endproc
 #endif
--
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce.
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191iu=/4140/ostg.clktrk___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] [PATCH] math: Various changes for ARM

2014-09-08 Thread André Hentschel
Please review, i'll commit it, just need an OK.





softmath.patch.gz
Description: application/gzip
--
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191iu=/4140/ostg.clktrk___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] [PATCH] math: Add ARM implementation for sqrt functions

2014-09-07 Thread André Hentschel
Please review, i'll commit it, just need an OK.


commit f399299f11cc790faf0217e42454ae026335a15d
Author: André Hentschel n...@dawncrow.de
Date:   Sun Sep 7 21:55:31 2014 +0200

math: Add ARM implementation for sqrt functions

diff --git a/mingw-w64-crt/math/sqrt.def.h b/mingw-w64-crt/math/sqrt.def.h
index af349bc..ef1d03c 100644
--- a/mingw-w64-crt/math/sqrt.def.h
+++ b/mingw-w64-crt/math/sqrt.def.h
@@ -45,6 +45,25 @@
 #include ../complex/complex_internal.h
 #include errno.h
 
+#if defined(__arm__) || defined(_ARM_)
+/* This works around a compiler bug, normally you would inline it with e.g.
+ * asm (fsqrts %[dst], %[src];\n : [dst] =w (res) : [src] w (x));
+ */
+__FLT_TYPE __fsqrt_internal( __FLT_TYPE x ) __attribute__((visibility (hidden)));
+asm(.def __fsqrt_internal; .scl 2; .type 32; .endef\n
+\t.text\n
+\t.align 4\n
+\t.globl __fsqrt_internal\n
+//\t.type __fsqrt_internal,2\n
+__fsqrt_internal:\n
+#if _NEW_COMPLEX_FLOAT
+\t fsqrts s0, s0\n
+#else
+\t fsqrtd d0, d0\n
+#endif /* _NEW_COMPLEX_FLOAT */
+\tbx lr);
+#endif /* defined(__arm__) || defined(_ARM_) */
+
 __FLT_TYPE
 __FLT_ABI (sqrt) (__FLT_TYPE x)
 {
@@ -62,6 +81,12 @@ __FLT_ABI (sqrt) (__FLT_TYPE x)
 return __FLT_HUGE_VAL;
   else if (x == __FLT_CST (1.0))
return __FLT_CST (1.0);
+#if defined(__arm__) || defined(_ARM_)
+  __fsqrt_internal(x);
+#elif defined(_X86_) || defined(__i386__) || defined(_AMD64_) || defined(__x86_64__)
   asm (fsqrt : =t (res) : 0 (x));
+#else
+#error Not supported on your platform yet
+#endif
   return res;
 }
--
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] Planning of VLC mingw-w64 hackathon

2014-08-30 Thread André Hentschel
Am 27.08.2014 um 21:20 schrieb Kai Tietz:
 Hello everybody,
 
 As you might noticed already is mingw-w64 and VLC working together for
 a while now to get VLC running on WP ARM (and x86/x64).  We would like
 to speed up work on that a bit and would like to do a 5 day hackathon
 to port VLC to WP ARM, and Xbox 1 targets.  And of course this needs

Do you mean the first Xbox here or the Xbox One?

 
 This event is still in planning phase. We thought about let this event
 happen at end of September (tentative 24th up to 28th). And it is
 intended to run in .de.

I have two other events in that time frame with higher prio...


--
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] [PATCH] Add more trigonometric long double functions for ARM

2014-08-27 Thread André Hentschel
Please review, i'll commit it, just need an OK.

diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index 7a945e9..c4aec7d 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -226,10 +226,8 @@ src_libmingwex=\
   math/internal_logl.S  math/log10l.S  \
   math/nearbyint.S  math/nearbyintf.S  math/nearbyintl.S \
   math/remquo.S math/remquof.S math/remquol.S\
-  math/sinl_internal.S  math/tanl.Smath/trunc.S  math/truncf.S\
-  math/acosl.c  \
-  math/asinl.c  math/atan2l.c  \
-  math/atanl.c  math/cbrt.c\
+  math/sinl_internal.S  math/trunc.S   math/truncf.S\
+  math/cbrt.c   \
   math/cbrtf.c  math/cbrtl.c   math/cephes_emath.c   math/copysign.c  math/copysignf.c \
   math/coshf.c  math/coshl.c   math/cosl.c   math/erfl.c  \
   math/expf.c   \
@@ -296,46 +294,50 @@ src_libmingwex=\
 
 # these only go into the 64 bit version:
 src_libmingwex64=\
-  math/acosf.c  math/acosh.c  math/acoshf.c math/acoshl.c math/asinf.c  \
-  math/asinh.c  math/asinhf.c math/asinhl.c math/atan2f.c math/atanf.c  \
-  math/atanh.c  math/atanhf.c math/atanhl.c math/cos.cmath/cosf.c   \
-  math/cossin.c math/exp.cmath/expl.c   math/exp2.S   math/exp2f.S  \
-  math/exp2l.S  math/expm1.c  math/expm1f.c math/expm1l.c math/fmod.c   \
-  math/fmodf.c  math/fmodl.c  math/ilogb.S  math/ilogbf.S math/ilogbl.S \
-  math/ldexp.c  math/ldexpl.c math/log1p.S  math/log1pf.S math/log1pl.S \
-  math/log2.S   math/log2f.S  math/log2l.S  math/logb.c   math/logbf.c  \
-  math/logbl.c  math/pow.cmath/powl.c   math/remainder.S  math/remainderf.S \
-  math/remainderl.S math/scalbn.S math/scalbnf.Smath/scalbnl.Smath/sin.c\
-  math/sinf.c   math/tanf.c
+  math/acosf.c  math/acosh.c  math/acosl.c  math/acoshf.c math/acoshl.c \
+  math/asinf.c  math/asinh.c  math/asinl.c  math/asinhf.c math/asinhl.c \
+  math/atan2f.c math/atan2l.c math/atanf.c  math/atanh.c  math/atanl.c  \
+  math/atanhf.c math/atanhl.c math/cos.cmath/cosf.c   math/cossin.c \
+  math/exp.cmath/expl.c   math/exp2.S   math/exp2f.S  math/exp2l.S  \
+  math/expm1.c  math/expm1f.c math/expm1l.c math/fmod.c   math/fmodf.c  \
+  math/fmodl.c  math/ilogb.S  math/ilogbf.S math/ilogbl.S math/ldexp.c  \
+  math/ldexpl.c math/log1p.S  math/log1pf.S math/log1pl.S math/log2.S   \
+  math/log2f.S  math/log2l.S  math/logb.c   math/logbf.c  math/logbl.c  \
+  math/pow.cmath/powl.c   math/remainder.S  math/remainderf.S math/remainderl.S \
+  math/scalbn.S math/scalbnf.Smath/scalbnl.Smath/sin.cmath/sinf.c   \
+  math/tanf.c   math/tanl.S
 
 # these only go into the 32 bit version:
 src_libmingwex32=\
-  math/acosf.c  math/acosh.c  math/acoshf.c math/acoshl.c math/asinf.c  \
-  math/asinh.c  math/asinhf.c math/asinhl.c math/atan2f.c math/atanf.c  \
-  math/atanh.c  math/atanhf.c math/atanhl.c math/cos.cmath/cosf.c   \
-  math/cossin.c math/exp.cmath/expl.c   math/exp2.S   math/exp2f.S  \
-  math/exp2l.S  math/expm1.c  math/expm1f.c math/expm1l.c math/fmod.c   \
-  math/fmodf.c  math/fmodl.c  math/ilogb.S  math/ilogbf.S math/ilogbl.S \
-  math/ldexp.c  math/ldexpl.c math/log1p.S  math/log1pf.S math/log1pl.S \
-  

Re: [Mingw-w64-public] [PATCH] Add more trigonometric long double functions for ARM

2014-08-27 Thread André Hentschel
Am 27.08.2014 um 22:40 schrieb Kai Tietz:
 Hi Andre,
 
 I have just one comment to patch.
 
 +long double tanl(long double x)
 +{
 +#if defined(__arm__) || defined(_ARM_)
 +return sin(x) / cos(x);
 
 Shouldn't that be instead return sinl (x) / cosl (x); ?

My build hasn't complained about sinl  cosl yet, maybe because they depend on 
the internal functions...
This is still valid, remember double == long double on ARM

--
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] Windows Phone

2014-08-19 Thread André Hentschel
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Am 17.08.2014 um 16:10 schrieb Ruben De Smet:
 Hi mingw-w64 list and especially André Hentschel, (CC: a teammember of mine)
 
 I decided to mail this directly to mr Hentschel too, as I was told you were 
 the one working on these kind of problems.
 
 We're developing a library that's compiling fine for Windows x86 and x86_64, 
 Linux and Android, all using GCC cross compilers on Linux hosts. The library 
 is written in C++11, which I didn't think of it could be a problem, until I 
 saw the bad MSVC support for C++11. The library can't be ported to Windows 
 Phone this way.
 
 Plans are to develop the UI on a per-device base using swig; Android will be 
 Java/JNI based, desktop will be Python or Java, web interface will be Ruby 
 and Rails, iOS objective C, and Windows Phone will be C#.
 
 I wanted to ask if there is an option of already using the recent 
 developments of mr Hentschel to compile this library for Windows Phone.
 
 I'm not using any special win32 routines, the most complicated I can think of 
 is winsock on Windows and bsd sockets on Unices.
 
 So, my main question is: what is the state of the ARM/Windows RT/Windows 
 Phone port at this moment and what is still to be done?
 
 Ruben De Smet
 


For the MinGW-w64 part I'd say we are somewhat over 50% since April, after that 
there's still some work in GCC...
-BEGIN PGP SIGNATURE-
Version: GnuPG v1

iQGcBAEBAgAGBQJT84WWAAoJEGm5GZTakYssGP4L/RKvFg6zykHohfhNg8bDtVA5
t/komIHaxXrVjqqcaU0H3cu+AJ6mBKVJpS4hpxlsdD8zchOrcUcX/M1qqH+ADApx
oKGfpiGtoI1HX58wk+MvVLWcB+kTen6sOXFWce6ZCfRnlR2uVxG25R7OpPKfqxKy
FJQLjqI9WeCYWDWhzWCqi1kk2dW+JLj45J96BVSxA4DUedOOPhmnIMHODIrYFuV8
Y/0vFNW9X263VdQZuQwEsei74vNku+du33dRcO42epyO1s59OjGsCiKHhx0X02op
fTE7vlz2ejp1Mzt5X6Dch14zXPEGTMPmfdY8PUflRwb4lI0nPrTDnFonLlJlYQ4/
4f6/weE4Q4j9PRuEq+lkeTFJRb/lmaQ7Fz/29FHARnKLHFXu1CWx1fpOrjnwZl54
9616QTgTeKtAOUSCPMIf/9isibul7o2zUAfSh8oHiQtOAznjgyocA3u8w71k+l0J
5f+uEkRk/iS4UYKfYFaiDrTBEVURhDEhOoZE+N0BMw==
=CQ1T
-END PGP SIGNATURE-

--
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] [PATCH] Add some long double functions for ARM

2014-08-18 Thread André Hentschel
Please review, i'll commit it, just need an OK.
(these are the rather easy ones, it mostly looks like the RFC i sent some days 
ago)


softmath.patch.gz
Description: application/gzip
--
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] [RFC] long double implementations

2014-08-15 Thread André Hentschel
Hi,
To speed things up, i would like to do it as shown in the attached patch, is 
that ok with you?
(NOTE: on ARM, double == long double)
commit f80874fdd29e66bef2d28843656be84344031c39
Author: André Hentschel n...@dawncrow.de
Date:   Fri Aug 15 00:03:11 2014 +0200

softmath: Add acoshl

diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index ca92c6a..3f34dec 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -227,7 +227,7 @@ src_libmingwex=\
   math/log2l.S  math/nearbyint.S   math/nearbyintf.S math/nearbyintl.S\
   math/remainderl.S math/remquo.S  math/remquof.Smath/remquol.S   \
   math/scalbnl.Smath/sinl_internal.S  math/tanl.Smath/trunc.S math/truncf.S\
-  math/acoshl.c math/acosl.c   \
+  math/acosl.c  \
   math/asinhl.c math/asinl.c   math/atan2l.c \
   math/atanhl.c math/atanl.c   math/cbrt.c   \
   math/cbrtf.c  math/cbrtl.c   math/cephes_emath.c   math/copysign.c  math/copysignf.c \
@@ -296,37 +296,37 @@ src_libmingwex=\
 
 # these only go into the 64 bit version:
 src_libmingwex64=\
-  math/acosf.c  math/acosh.c  math/acoshf.c math/asinf.c  math/asinh.c  \
-  math/asinhf.c math/atan2f.c math/atanf.c  math/atanh.c  math/atanhf.c \
-  math/cos.cmath/cosf.c   math/cossin.c math/exp.cmath/exp2.S   \
-  math/exp2f.S  math/expm1.c  math/expm1f.c math/fmod.c   math/fmodf.c  \
-  math/ilogb.S  math/ilogbf.S math/ldexp.c  math/log1p.S  math/log1pf.S \
-  math/log2.S   math/log2f.S  math/logb.c   math/logbf.c  math/pow.c\
-  math/remainder.S  math/remainderf.S math/scalbn.S math/scalbnf.Smath/sin.c\
-  math/sinf.c   math/tanf.c
+  math/acosf.c  math/acosh.c  math/acoshf.c math/acoshl.c math/asinf.c  \
+  math/asinh.c  math/asinhf.c math/atan2f.c math/atanf.c  math/atanh.c  \
+  math/atanhf.c math/cos.cmath/cosf.c   math/cossin.c math/exp.c\
+  math/exp2.S   math/exp2f.S  math/expm1.c  math/expm1f.c math/fmod.c   \
+  math/fmodf.c  math/ilogb.S  math/ilogbf.S math/ldexp.c  math/log1p.S  \
+  math/log1pf.S math/log2.S   math/log2f.S  math/logb.c   math/logbf.c  \
+  math/pow.cmath/remainder.S  math/remainderf.S math/scalbn.S math/scalbnf.S\
+  math/sin.cmath/sinf.c   math/tanf.c
 
 # these only go into the 32 bit version:
 src_libmingwex32=\
-  math/acosf.c  math/acosh.c  math/acoshf.c math/asinf.c  math/asinh.c  \
-  math/asinhf.c math/atan2f.c math/atanf.c  math/atanh.c  math/atanhf.c \
-  math/cos.cmath/cosf.c   math/cossin.c math/exp.cmath/exp2.S   \
-  math/exp2f.S  math/expm1.c  math/expm1f.c math/fmod.c   math/fmodf.c  \
-  math/ilogb.S  math/ilogbf.S math/ldexp.c  math/log1p.S  math/log1pf.S \
-  math/log2.S   math/log2f.S  math/logb.c   math/logbf.c  math/pow.c\
-  math/remainder.S  math/remainderf.S math/scalbn.S math/scalbnf.Smath/sin.c\
-  math/sinf.c   math/tanf.c
+  math/acosf.c  math/acosh.c  math/acoshf.c math/acoshl.c math/asinf.c  \
+  math/asinh.c  math/asinhf.c math/atan2f.c math/atanf.c  math/atanh.c  \
+  math/atanhf.c math/cos.cmath/cosf.c   math/cossin.c math/exp.c\
+  math/exp2.S   math/exp2f.S  math/expm1.c  math/expm1f.c math/fmod.c   \
+  math/fmodf.c  math/ilogb.S  math/ilogbf.S math/ldexp.c  math/log1p.S  \
+  math/log1pf.S math/log2.S   math/log2f.S   

[Mingw-w64-public] [PATCH] Add more math functions for ARM

2014-08-11 Thread André Hentschel
Please review, i'll commit it, just need an OK.

diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index 90567df..ca92c6a 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -237,14 +237,14 @@ src_libmingwex=\
   math/fmal.c   math/fmax.cmath/fmaxf.c  math/fmaxl.c math/fmin.c  math/fminf.c \
   math/fminl.c  math/fmodl.c   math/fp_consts.c  math/fp_constsf.c\
   math/fp_constsl.c math/fpclassify.c  math/fpclassifyf.cmath/fpclassifyl.c   math/frexpf.cmath/fucom.c \
-  math/hypotf.c math/hypotl.c  math/isnan.c  math/isnanf.cmath/isnanl.cmath/ldexp.c \
+  math/hypotf.c math/hypotl.c  math/isnan.c  math/isnanf.cmath/isnanl.c\
   math/ldexpf.c math/ldexpl.c  math/lgamma.c math/lgammaf.c   math/lgammal.c   math/llrint.c\
   math/signgam.c \
   math/llrintf.cmath/llrintl.c math/llround.cmath/llroundf.c  math/llroundl.c  math/log.c   \
   math/log10f.c math/logbl.c   math/logf.c   math/logl.c  \
   math/lrint.c  math/lrintf.c  math/lrintl.c math/lround.cmath/lroundf.c   math/lroundl.c   \
   math/modf.c   math/modff.c   math/modfl.c  math/nextafterf.cmath/nextafterl.cmath/nexttoward.c\
-  math/nexttowardf.cmath/pow.c math/powf.c   math/powi.c  math/powif.c math/powil.c \
+  math/nexttowardf.cmath/powf.cmath/powi.c   math/powif.c math/powil.c \
   math/powl.c   math/rint.cmath/rintf.c  math/rintl.c math/round.c math/roundf.c\
   math/roundl.c math/s_erf.c   math/sf_erf.c math/signbit.c   math/signbitf.c  math/signbitl.c  \
   math/sinhf.c  math/sinhl.c   math/sinl.c   math/sqrt.c  \
@@ -300,9 +300,10 @@ src_libmingwex64=\
   math/asinhf.c math/atan2f.c math/atanf.c  math/atanh.c  math/atanhf.c \
   math/cos.cmath/cosf.c   math/cossin.c math/exp.cmath/exp2.S   \
   math/exp2f.S  math/expm1.c  math/expm1f.c math/fmod.c   math/fmodf.c  \
-  math/ilogb.S  math/ilogbf.S math/log1p.S  math/log1pf.S math/log2.S   \
-  math/log2f.S  math/logb.c   math/logbf.c  math/remainder.S  math/remainderf.S \
-  math/scalbn.S math/scalbnf.Smath/sin.cmath/sinf.c   math/tanf.c
+  math/ilogb.S  math/ilogbf.S math/ldexp.c  math/log1p.S  math/log1pf.S \
+  math/log2.S   math/log2f.S  math/logb.c   math/logbf.c  math/pow.c\
+  math/remainder.S  math/remainderf.S math/scalbn.S math/scalbnf.Smath/sin.c\
+  math/sinf.c   math/tanf.c
 
 # these only go into the 32 bit version:
 src_libmingwex32=\
@@ -310,9 +311,10 @@ src_libmingwex32=\
   math/asinhf.c math/atan2f.c math/atanf.c  math/atanh.c  math/atanhf.c \
   math/cos.cmath/cosf.c   math/cossin.c math/exp.cmath/exp2.S   \
   math/exp2f.S  math/expm1.c  math/expm1f.c math/fmod.c   math/fmodf.c  \
-  math/ilogb.S  math/ilogbf.S math/log1p.S  math/log1pf.S math/log2.S   \
-  math/log2f.S  math/logb.c   math/logbf.c  math/remainder.S  math/remainderf.S \
-  math/scalbn.S math/scalbnf.Smath/sin.cmath/sinf.c   math/tanf.c
+  math/ilogb.S  math/ilogbf.S math/ldexp.c  math/log1p.S  math/log1pf.S \
+  math/log2.S   math/log2f.S  math/logb.c   math/logbf.c  math/pow.c\
+  math/remainder.S  math/remainderf.S math/scalbn.S math/scalbnf.Smath/sin.c\
+  math/sinf.c   math/tanf.c
 
 # these only go into the ARM32 version:
 src_libmingwexarm32=\
@@ -321,10 +323,10 @@ src_libmingwexarm32=\
   math/softmath/asinhf.cmath/softmath/atan2f.cmath/softmath/atanf.c math/softmath/atanh.c math/softmath/atanhf.c\
   math/softmath/cos.c   math/softmath/cosf.c  

Re: [Mingw-w64-public] [PATCH] Add more math functions for ARM

2014-08-11 Thread André Hentschel
Am 11.08.2014 um 23:04 schrieb André Hentschel:
 Please review, i'll commit it, just need an OK.
 

OKed by jon_y on IRC and i pushed it, thx.



--
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] [PATCH] softmath: Add more functions

2014-07-30 Thread André Hentschel
Please review, i'll commit it, just need an OK.
diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index c2b5ff6..90567df 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -224,14 +224,14 @@ src_libmingwex=\
   math/exp2l.S  math/floor.S   math/floorf.S math/floorl.S\
   math/fma.Smath/fmaf.Smath/frexpl.S math/ilogbl.S\
   math/internal_logl.S  math/log10l.S  math/log1pl.S \
-  math/log2l.S  math/nearbyint.S   math/nearbyintf.S math/nearbyintl.Smath/remainder.S \
-  math/remainderf.S math/remainderl.S  math/remquo.S math/remquof.S   math/remquol.S   \
+  math/log2l.S  math/nearbyint.S   math/nearbyintf.S math/nearbyintl.S\
+  math/remainderl.S math/remquo.S  math/remquof.Smath/remquol.S   \
   math/scalbnl.Smath/sinl_internal.S  math/tanl.Smath/trunc.S math/truncf.S\
   math/acoshl.c math/acosl.c   \
   math/asinhl.c math/asinl.c   math/atan2l.c \
   math/atanhl.c math/atanl.c   math/cbrt.c   \
-  math/cbrtf.c  math/cbrtl.c   math/cephes_emath.c   math/copysign.c  math/copysignf.c math/cos.c   \
-  math/coshf.c  math/coshl.c   math/cosl.c   math/cossin.cmath/erfl.c  \
+  math/cbrtf.c  math/cbrtl.c   math/cephes_emath.c   math/copysign.c  math/copysignf.c \
+  math/coshf.c  math/coshl.c   math/cosl.c   math/erfl.c  \
   math/expf.c   math/expl.cmath/expm1l.c \
   math/fabs.c   math/fabsf.c   math/fabsl.c  math/fdim.c  math/fdimf.c math/fdiml.c \
   math/fmal.c   math/fmax.cmath/fmaxf.c  math/fmaxl.c math/fmin.c  math/fminf.c \
@@ -247,7 +247,7 @@ src_libmingwex=\
   math/nexttowardf.cmath/pow.c math/powf.c   math/powi.c  math/powif.c math/powil.c \
   math/powl.c   math/rint.cmath/rintf.c  math/rintl.c math/round.c math/roundf.c\
   math/roundl.c math/s_erf.c   math/sf_erf.c math/signbit.c   math/signbitf.c  math/signbitl.c  \
-  math/sin.cmath/sinhf.c   math/sinhl.c  math/sinl.c  math/sqrt.c  \
+  math/sinhf.c  math/sinhl.c   math/sinl.c   math/sqrt.c  \
   math/sqrtf.c  math/sqrtl.c   math/tanhf.c  math/tanhl.c math/tgamma.c\
   math/tgammaf.cmath/tgammal.c math/truncl.c \
   math/acosh.def.h  math/cos.def.h math/exp.def.hmath/expm1.def.h math/log.def.h   math/pow.def.h   \
@@ -298,29 +298,33 @@ src_libmingwex=\
 src_libmingwex64=\
   math/acosf.c  math/acosh.c  math/acoshf.c math/asinf.c  math/asinh.c  \
   math/asinhf.c math/atan2f.c math/atanf.c  math/atanh.c  math/atanhf.c \
-  math/cosf.c   math/exp.cmath/exp2.S   math/exp2f.S  math/expm1.c  \
-  math/expm1f.c math/fmod.c   math/fmodf.c  math/ilogb.S  math/ilogbf.S \
-  math/log1p.S  math/log1pf.S math/log2.S   math/log2f.S  math/logb.c   \
-  math/logbf.c  math/scalbn.S math/scalbnf.Smath/sinf.c   math/tanf.c
+  math/cos.cmath/cosf.c   math/cossin.c math/exp.cmath/exp2.S   \
+  math/exp2f.S  math/expm1.c  math/expm1f.c math/fmod.c   math/fmodf.c  \
+  math/ilogb.S  math/ilogbf.S math/log1p.S  math/log1pf.S math/log2.S   \
+  math/log2f.S  math/logb.c   math/logbf.c  math/remainder.S  math/remainderf.S \
+  math/scalbn.S math/scalbnf.Smath/sin.cmath/sinf.c   math/tanf.c
 
 # these only go into the 32 bit version:
 src_libmingwex32=\
   math/acosf.c  math/acosh.c  math/acoshf.c math/asinf.c  math/asinh.c  \
   math/asinhf.c math/atan2f.c math/atanf.c  math/atanh.c  math/atanhf.c \
-  math/cosf.c   math/exp.cmath/exp2.S   math/exp2f.S  math/expm1.c  \
-  math/expm1f.c math/fmod.c   math/fmodf.c  math/ilogb.S  math/ilogbf.S  

[Mingw-w64-public] [PATCH] softmath: Add more double functions again

2014-07-29 Thread André Hentschel
Please review, i'll commit it, just need an OK.
(Last time it was confirmed on IRC and is already pushed upstream)
diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index 5d4e469..2c0d85e 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -224,7 +224,7 @@ src_libmingwex=\
   math/fma.Smath/fmaf.Smath/frexpl.S math/ilogbl.S\
   math/internal_logl.S  math/log10l.S  math/log1pl.S \
   math/log2l.S  math/nearbyint.S   math/nearbyintf.S math/nearbyintl.Smath/remainder.S \
-  math/remainderf.S math/remainderl.S  math/remquo.S math/remquof.S   math/remquol.S   math/scalbn.S\
+  math/remainderf.S math/remainderl.S  math/remquo.S math/remquof.S   math/remquol.S   \
   math/scalbnl.Smath/sinl_internal.S  math/tanl.Smath/trunc.S math/truncf.S\
   math/acoshl.c math/acosl.c   \
   math/asinhl.c math/asinl.c   math/atan2l.c \
@@ -234,13 +234,13 @@ src_libmingwex=\
   math/expf.c   math/expl.cmath/expm1l.c \
   math/fabs.c   math/fabsf.c   math/fabsl.c  math/fdim.c  math/fdimf.c math/fdiml.c \
   math/fmal.c   math/fmax.cmath/fmaxf.c  math/fmaxl.c math/fmin.c  math/fminf.c \
-  math/fminl.c  math/fmod.cmath/fmodl.c  math/fp_consts.c math/fp_constsf.c\
+  math/fminl.c  math/fmodl.c   math/fp_consts.c  math/fp_constsf.c\
   math/fp_constsl.c math/fpclassify.c  math/fpclassifyf.cmath/fpclassifyl.c   math/frexpf.cmath/fucom.c \
   math/hypotf.c math/hypotl.c  math/isnan.c  math/isnanf.cmath/isnanl.cmath/ldexp.c \
   math/ldexpf.c math/ldexpl.c  math/lgamma.c math/lgammaf.c   math/lgammal.c   math/llrint.c\
   math/signgam.c \
   math/llrintf.cmath/llrintl.c math/llround.cmath/llroundf.c  math/llroundl.c  math/log.c   \
-  math/log10f.c math/logb.cmath/logbl.c  math/logf.c  math/logl.c  \
+  math/log10f.c math/logbl.c   math/logf.c   math/logl.c  \
   math/lrint.c  math/lrintf.c  math/lrintl.c math/lround.cmath/lroundf.c   math/lroundl.c   \
   math/modf.c   math/modff.c   math/modfl.c  math/nextafterf.cmath/nextafterl.cmath/nexttoward.c\
   math/nexttowardf.cmath/pow.c math/powf.c   math/powi.c  math/powif.c math/powil.c \
@@ -298,28 +298,28 @@ src_libmingwex64=\
   math/acosf.c  math/acosh.c  math/acoshf.c math/asinf.c  math/asinh.c  \
   math/asinhf.c math/atan2f.c math/atanf.c  math/atanh.c  math/atanhf.c \
   math/cosf.c   math/exp.cmath/exp2.S   math/exp2f.S  math/expm1.c  \
-  math/expm1f.c math/fmodf.c  math/ilogb.S  math/ilogbf.S math/log1p.S  \
-  math/log1pf.S math/log2.S   math/log2f.S  math/logbf.c  math/scalbnf.S\
-  math/sinf.c   math/tanf.c
+  math/expm1f.c math/fmod.c   math/fmodf.c  math/ilogb.S  math/ilogbf.S \
+  math/log1p.S  math/log1pf.S math/log2.S   math/log2f.S  math/logb.c   \
+  math/logbf.c  math/scalbn.S math/scalbnf.Smath/sinf.c   math/tanf.c
 
 # these only go into the 32 bit version:
 src_libmingwex32=\
   math/acosf.c  math/acosh.c  math/acoshf.c math/asinf.c  math/asinh.c  \
   math/asinhf.c math/atan2f.c math/atanf.c  math/atanh.c  math/atanhf.c \
   math/cosf.c   math/exp.cmath/exp2.S   math/exp2f.S  math/expm1.c  \
-  math/expm1f.c math/fmodf.c  math/ilogb.S  math/ilogbf.S math/log1p.S  \
-  math/log1pf.S math/log2.S   math/log2f.S  math/logbf.c  math/scalbnf.S\
-  math/sinf.c   math/tanf.c
+  math/expm1f.c math/fmod.c   math/fmodf.c  math/ilogb.S  math/ilogbf.S \
+  math/log1p.S  math/log1pf.S math/log2.S   math/log2f.S  math/logb.c   \
+  math/logbf.c  math/scalbn.S

Re: [Mingw-w64-public] [PATCH] softmath: Add more double functions

2014-07-28 Thread André Hentschel
Am 28.07.2014 um 03:44 schrieb JonY:
 On 7/27/2014 23:50, André Hentschel wrote:
 Am 26.07.2014 um 01:54 schrieb JonY:
 On 7/26/2014 06:20, André Hentschel wrote:
 +double log2(double x) +{ +return softmath_log(x) / softmath_log(2); +}

 Any reason not to expand softmath_log(2) into a constant? Otherwise, it 
 looks OK.



 Like this?

 
 
 Yes, but I'm not sure if 0.69314718246459960938d and
 0.69314718246459960938f having the same precision matters, do you get
 the same results when tested against the original code?
 
 

the compiler trims the number to fit in a float, and having the same number 
makes the code easier to read, further we could make up a macro or simple 
definition for it...


--
Infragistics Professional
Build stunning WinForms apps today!
Reboot your WinForms applications with our WinForms controls. 
Build a bridge from your legacy apps to the future.
http://pubads.g.doubleclick.net/gampad/clk?id=153845071iu=/4140/ostg.clktrk
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] [PATCH] softmath: Add more double functions

2014-07-27 Thread André Hentschel
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Am 26.07.2014 um 01:54 schrieb JonY:
 On 7/26/2014 06:20, André Hentschel wrote:
 +double log2(double x) +{ +return softmath_log(x) / softmath_log(2); +}
 
 Any reason not to expand softmath_log(2) into a constant? Otherwise, it looks 
 OK.
 
 

Like this?

-BEGIN PGP SIGNATURE-
Version: GnuPG v1

iQGcBAEBAgAGBQJT1R+iAAoJEGm5GZTakYssU5wL/ixIN3v3SRGCY3dlGld2wTOq
V7n2sz1eppJKuds3bPjHWPHgaR4gI+Z1b8clnGcMsnl+uYPzQW+RHPNxeXyDM6g7
/Dn8TK3eQ2tv/MUVBH1XFfZHyZXLvB+OEBmxnpMvjbvKPYp/Eha015bM9RLqYvEC
RbGp1An/qk1jT3ThpZbyWmjm2ufyUNAZCyAxdBKzUFoa+M9qmgpJ85Z/F1gbmPBA
scM6RzoD0xI5QC3xDflAR2wLxTtvbt4znr7GLxcelvWU5JQzO5KHrIzOg2gSgPEG
xiWjJGbq6x8fj1cuwZFTf811LEj6pT5njDvHQ9R0faW+aNYejwU03/O1MZrRKGbp
yegdTtDe5SxX2maOD+CMrUEe1URgkn6EEhwBWSmI7y77Dmi1lYx0oYcCsTSFveKq
1Q/AMgqgBLsHKl9FMiZRyV7o9Twv/ImDl+p2LR6YXDXmca+6N7hFK5Oci7zHcZat
VsT2nzxUd2vXpKRFXvA7fDC7WEJhkrxxBWHZ75wtGw==
=9S19
-END PGP SIGNATURE-
diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index 175ecdd..5d4e469 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -220,18 +220,18 @@ src_libmingwex=\
   gdtoa/strtopx.c   gdtoa/sum.c  gdtoa/ulp.c\
   \
   math/_chgsignl.S  math/ceil.Smath/ceilf.S  math/ceill.S math/copysignl.S math/cosl_internal.S \
-  math/exp2.S   math/exp2l.S   math/floor.S  math/floorf.Smath/floorl.S\
-  math/fma.Smath/fmaf.Smath/frexpl.S math/ilogb.S math/ilogbl.S\
-  math/internal_logl.S  math/log10l.S  math/log1p.S  math/log1pl.Smath/log2.S  \
+  math/exp2l.S  math/floor.S   math/floorf.S math/floorl.S\
+  math/fma.Smath/fmaf.Smath/frexpl.S math/ilogbl.S\
+  math/internal_logl.S  math/log10l.S  math/log1pl.S \
   math/log2l.S  math/nearbyint.S   math/nearbyintf.S math/nearbyintl.Smath/remainder.S \
   math/remainderf.S math/remainderl.S  math/remquo.S math/remquof.S   math/remquol.S   math/scalbn.S\
   math/scalbnl.Smath/sinl_internal.S  math/tanl.Smath/trunc.S math/truncf.S\
   math/acoshl.c math/acosl.c   \
-  math/asinh.c  math/asinhl.c  math/asinl.c  math/atan2l.c\
-  math/atanh.c  math/atanhl.c  math/atanl.c  math/cbrt.c  \
+  math/asinhl.c math/asinl.c   math/atan2l.c \
+  math/atanhl.c math/atanl.c   math/cbrt.c   \
   math/cbrtf.c  math/cbrtl.c   math/cephes_emath.c   math/copysign.c  math/copysignf.c math/cos.c   \
   math/coshf.c  math/coshl.c   math/cosl.c   math/cossin.cmath/erfl.c  \
-  math/exp.cmath/expf.cmath/expl.c   math/expm1.c math/expm1l.c\
+  math/expf.c   math/expl.cmath/expm1l.c \
   math/fabs.c   math/fabsf.c   math/fabsl.c  math/fdim.c  math/fdimf.c math/fdiml.c \
   math/fmal.c   math/fmax.cmath/fmaxf.c  math/fmaxl.c math/fmin.c  math/fminf.c \
   math/fminl.c  math/fmod.cmath/fmodl.c  math/fp_consts.c math/fp_constsf.c\
@@ -295,25 +295,31 @@ src_libmingwex=\
 
 # these only go into the 64 bit version:
 src_libmingwex64=\
-  math/acosf.c  math/acosh.c  math/acoshf.c math/asinf.c  math/asinhf.c \
-  math/atan2f.c math/atanf.c  math/atanhf.c math/cosf.c   math/exp2f.S  \
-  math/expm1f.c math/fmodf.c  math/ilogbf.S math/log1pf.S math/log2f.S  \
-  math/logbf.c  math/scalbnf.Smath/sinf.c   math/tanf.c
+  math/acosf.c  math/acosh.c  math/acoshf.c math/asinf.c  math/asinh.c  \
+  math/asinhf.c math/atan2f.c math/atanf.c  math/atanh.c  math/atanhf.c \
+  math/cosf.c   math/exp.cmath/exp2.S   math/exp2f.S  math/expm1.c  \
+  math/expm1f.c math/fmodf.c  math/ilogb.S  math/ilogbf.S math/log1p.S  \
+  math/log1pf.S math/log2.S   math/log2f.S  math/logbf.c  math/scalbnf.S\
+  math/sinf.c   math/tanf.c
 
 # these only go into the 32 bit version:
 src_libmingwex32=\
-  math/acosf.c  math/acosh.c  math/acoshf.c math/asinf.c  math/asinhf.c \
-  math/atan2f.c math/atanf.c

[Mingw-w64-public] [PATCH] softmath: Add more double functions

2014-07-25 Thread André Hentschel
Please review, i'll commit it, just need an OK.
diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index 175ecdd..5d4e469 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -220,18 +220,18 @@ src_libmingwex=\
   gdtoa/strtopx.c   gdtoa/sum.c  gdtoa/ulp.c\
   \
   math/_chgsignl.S  math/ceil.Smath/ceilf.S  math/ceill.S math/copysignl.S math/cosl_internal.S \
-  math/exp2.S   math/exp2l.S   math/floor.S  math/floorf.Smath/floorl.S\
-  math/fma.Smath/fmaf.Smath/frexpl.S math/ilogb.S math/ilogbl.S\
-  math/internal_logl.S  math/log10l.S  math/log1p.S  math/log1pl.Smath/log2.S  \
+  math/exp2l.S  math/floor.S   math/floorf.S math/floorl.S\
+  math/fma.Smath/fmaf.Smath/frexpl.S math/ilogbl.S\
+  math/internal_logl.S  math/log10l.S  math/log1pl.S \
   math/log2l.S  math/nearbyint.S   math/nearbyintf.S math/nearbyintl.Smath/remainder.S \
   math/remainderf.S math/remainderl.S  math/remquo.S math/remquof.S   math/remquol.S   math/scalbn.S\
   math/scalbnl.Smath/sinl_internal.S  math/tanl.Smath/trunc.S math/truncf.S\
   math/acoshl.c math/acosl.c   \
-  math/asinh.c  math/asinhl.c  math/asinl.c  math/atan2l.c\
-  math/atanh.c  math/atanhl.c  math/atanl.c  math/cbrt.c  \
+  math/asinhl.c math/asinl.c   math/atan2l.c \
+  math/atanhl.c math/atanl.c   math/cbrt.c   \
   math/cbrtf.c  math/cbrtl.c   math/cephes_emath.c   math/copysign.c  math/copysignf.c math/cos.c   \
   math/coshf.c  math/coshl.c   math/cosl.c   math/cossin.cmath/erfl.c  \
-  math/exp.cmath/expf.cmath/expl.c   math/expm1.c math/expm1l.c\
+  math/expf.c   math/expl.cmath/expm1l.c \
   math/fabs.c   math/fabsf.c   math/fabsl.c  math/fdim.c  math/fdimf.c math/fdiml.c \
   math/fmal.c   math/fmax.cmath/fmaxf.c  math/fmaxl.c math/fmin.c  math/fminf.c \
   math/fminl.c  math/fmod.cmath/fmodl.c  math/fp_consts.c math/fp_constsf.c\
@@ -295,25 +295,31 @@ src_libmingwex=\
 
 # these only go into the 64 bit version:
 src_libmingwex64=\
-  math/acosf.c  math/acosh.c  math/acoshf.c math/asinf.c  math/asinhf.c \
-  math/atan2f.c math/atanf.c  math/atanhf.c math/cosf.c   math/exp2f.S  \
-  math/expm1f.c math/fmodf.c  math/ilogbf.S math/log1pf.S math/log2f.S  \
-  math/logbf.c  math/scalbnf.Smath/sinf.c   math/tanf.c
+  math/acosf.c  math/acosh.c  math/acoshf.c math/asinf.c  math/asinh.c  \
+  math/asinhf.c math/atan2f.c math/atanf.c  math/atanh.c  math/atanhf.c \
+  math/cosf.c   math/exp.cmath/exp2.S   math/exp2f.S  math/expm1.c  \
+  math/expm1f.c math/fmodf.c  math/ilogb.S  math/ilogbf.S math/log1p.S  \
+  math/log1pf.S math/log2.S   math/log2f.S  math/logbf.c  math/scalbnf.S\
+  math/sinf.c   math/tanf.c
 
 # these only go into the 32 bit version:
 src_libmingwex32=\
-  math/acosf.c  math/acosh.c  math/acoshf.c math/asinf.c  math/asinhf.c \
-  math/atan2f.c math/atanf.c  math/atanhf.c math/cosf.c   math/exp2f.S  \
-  math/expm1f.c math/fmodf.c  math/ilogbf.S math/log1pf.S math/log2f.S  \
-  math/logbf.c  math/scalbnf.Smath/sinf.c   math/tanf.c
+  math/acosf.c  math/acosh.c  math/acoshf.c math/asinf.c  math/asinh.c  \
+  math/asinhf.c math/atan2f.c math/atanf.c  math/atanh.c  math/atanhf.c \
+  math/cosf.c   math/exp.cmath/exp2.S   math/exp2f.S  math/expm1.c  \
+  math/expm1f.c math/fmodf.c  math/ilogb.S  math/ilogbf.S math/log1p.S  \
+  math/log1pf.S math/log2.S   

[Mingw-w64-public] [PATCH] softmath: Add acosh

2014-07-10 Thread André Hentschel
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Please review, i'll commit it.

btw, is it OK to add my copyright notice like:


 Copyright (c) 2014 by the mingw-w64 project
 Copyright (c) 2014 André Hentschel
-BEGIN PGP SIGNATURE-
Version: GnuPG v1
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQGcBAEBAgAGBQJTvu9CAAoJEGm5GZTakYssQ38L/1sgctgWIQbQgA7A4CQLPnSm
lrKXUY4ue+H+xMtPqjxwcQ1oZ52vG7C0CUR+voH/0Sx8eOUZN/qxOXBw6TyFftN0
VO0wE3Ocdzcc2/PTWlajQKfJJnssZt3k/IoGQ1QCmKSXeSr2kmoAiSEAg8gnDrZE
MaU5KDnT64mheOzaS6RVs9LnuP4KMbAylvQfysSfw4FIBp8tKw5uc0a9uF/K0Iro
lM0Nti1CbsGiEbgRR0i9Y7N/qy4QwZn3fDg/rWlLZIm7dGByMmGV+LrQqT/uf3fD
cXsF0QiEdGOdoKkx6wL1LDzqAGEiSuXS7KZDdfOcp8gkA41zL+vBTWQG5miJgAck
pk0R2UnCzVSMUkZkmhw2WFBbXlw3zTB8jQ4iqvIYkzDKgIro+MZcrzP0YKlNxQFI
ur+1g7BI8gF2WR/WFGXP2lbesDYMQvifJsYw7LCu+HwPspFY2/mtiPu9m4wpZ/SW
4dcom3J8eWyVbVFU4Sq0etmh4Lnjqh7teZEUkkbNtw==
=J8gG
-END PGP SIGNATURE-
commit 9c837c7081e8efb165893a68934119c278b1517c
Author: André Hentschel n...@dawncrow.de
Date:   Thu Jul 10 21:35:57 2014 +0200

softmath: Add acosh

diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index 65e0df3..175ecdd 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -226,7 +226,7 @@ src_libmingwex=\
   math/log2l.S  math/nearbyint.S   math/nearbyintf.S math/nearbyintl.Smath/remainder.S \
   math/remainderf.S math/remainderl.S  math/remquo.S math/remquof.S   math/remquol.S   math/scalbn.S\
   math/scalbnl.Smath/sinl_internal.S  math/tanl.Smath/trunc.S math/truncf.S\
-  math/acosh.c  math/acoshl.c  math/acosl.c  \
+  math/acoshl.c math/acosl.c   \
   math/asinh.c  math/asinhl.c  math/asinl.c  math/atan2l.c\
   math/atanh.c  math/atanhl.c  math/atanl.c  math/cbrt.c  \
   math/cbrtf.c  math/cbrtl.c   math/cephes_emath.c   math/copysign.c  math/copysignf.c math/cos.c   \
@@ -295,25 +295,25 @@ src_libmingwex=\
 
 # these only go into the 64 bit version:
 src_libmingwex64=\
-  math/acosf.c  math/acoshf.c math/asinf.c  math/asinhf.c math/atan2f.c \
-  math/atanf.c  math/atanhf.c math/cosf.c   math/exp2f.S  math/expm1f.c \
-  math/fmodf.c  math/ilogbf.S math/log1pf.S math/log2f.S  math/logbf.c  \
-  math/scalbnf.Smath/sinf.c   math/tanf.c
+  math/acosf.c  math/acosh.c  math/acoshf.c math/asinf.c  math/asinhf.c \
+  math/atan2f.c math/atanf.c  math/atanhf.c math/cosf.c   math/exp2f.S  \
+  math/expm1f.c math/fmodf.c  math/ilogbf.S math/log1pf.S math/log2f.S  \
+  math/logbf.c  math/scalbnf.Smath/sinf.c   math/tanf.c
 
 # these only go into the 32 bit version:
 src_libmingwex32=\
-  math/acosf.c  math/acoshf.c math/asinf.c  math/asinhf.c math/atan2f.c \
-  math/atanf.c  math/atanhf.c math/cosf.c   math/exp2f.S  math/expm1f.c \
-  math/fmodf.c  math/ilogbf.S math/log1pf.S math/log2f.S  math/logbf.c  \
-  math/scalbnf.Smath/sinf.c   math/tanf.c
+  math/acosf.c  math/acosh.c  math/acoshf.c math/asinf.c  math/asinhf.c \
+  math/atan2f.c math/atanf.c  math/atanhf.c math/cosf.c   math/exp2f.S  \
+  math/expm1f.c math/fmodf.c  math/ilogbf.S math/log1pf.S math/log2f.S  \
+  math/logbf.c  math/scalbnf.Smath/sinf.c   math/tanf.c
 
 # these only go into the ARM32 version:
 src_libmingwexarm32=\
   math/softmath/e_fmodf.c   math/softmath/e_powf.c\
-  math/softmath/acosf.c math/softmath/acoshf.cmath/softmath/asinf.c math/softmath/asinhf.cmath/softmath/atan2f.c\
-  math/softmath/atanf.c math/softmath/atanhf.cmath/softmath/cosf.c  math/softmath/exp2f.c math/softmath/expm1f.c\
-  math/softmath/fmodf.c math/softmath/ilogbf.cmath/softmath/log1pf.cmath/softmath/log2f.c math/softmath/logbf.c \
-  math/softmath/scalbnf.c   math/softmath/sinf.c  math/softmath/tanf.c
+  math/softmath/acosf.c math/softmath/acosh.c math/softmath/acoshf.cmath/softmath/asinf.c math/softmath/asinhf.c\
+  math/softmath/atan2f.cmath/softmath/atanf.c math/softmath/atanhf.cmath/softmath/cosf.c

Re: [Mingw-w64-public] Ohloh: I Use It

2014-07-10 Thread André Hentschel
Hi,
in short: it's good for job applications and the kudo rank depends on
the rating of the projects a developer contributes to.

Am 07.07.2014 23:24, schrieb Riot:
 In what way does ohloh affect us, and why do we need to care if the
 mingw-w64 project is rated highly on it or not?
 
 
 On 7 July 2014 21:27, André Hentschel n...@dawncrow.de
 mailto:n...@dawncrow.de wrote:
 
 Hi,
 On Ohloh.net we have only 14 official users ([1]), while mingw has
 nearly 300 and Wine more than 1000...
 I think we should do our best to improve our user count there, because
 Ohloh became somewhat important in the OSS world.
 If you try to add MinGW-w64 to it and you type mingw because you're
 lazy, you'll get a long list of projects. And while mingw-w64-dgn is
 available in that list, MinGW-w64 is not.
 Only if you add a hyphen (mingw-) you'll find MinGW-w64 in the list -
 at the end of the list.
 
 I first though it's a chicken-egg problem: Having only 14 people marking
 us as I use this makes Ohloh think we're not that popular.
 But mingw-w64-dgn only has one user and is more visible in the list
 
 Tasks:
 * I just changed the Ohloh project name from MinGW-w64 - for 32 and 64
 bit Windows to MinGW-w64, because the help on it says Please use as
 short a name as possible.
 * We should highlight a button on the website, e.g. I Use It - Simple
 from [2]
 * Collect other ideas to improve the situation
 
 
 [1] https://www.ohloh.net/p/mingw-w64
 [2] https://www.ohloh.net/p/mingw-w64/widgets
 
 
 --
 Open source business process management suite built on Java and Eclipse
 Turn processes into business applications with Bonita BPM Community
 Edition
 Quickly connect people, data, and systems into organized workflows
 Winner of BOSSIE, CODIE, OW2 and Gartner awards
 http://p.sf.net/sfu/Bonitasoft
 ___
 Mingw-w64-public mailing list
 Mingw-w64-public@lists.sourceforge.net
 mailto:Mingw-w64-public@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
 
 
 
 
 --
 Open source business process management suite built on Java and Eclipse
 Turn processes into business applications with Bonita BPM Community Edition
 Quickly connect people, data, and systems into organized workflows
 Winner of BOSSIE, CODIE, OW2 and Gartner awards
 http://p.sf.net/sfu/Bonitasoft
 
 
 
 ___
 Mingw-w64-public mailing list
 Mingw-w64-public@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
 


--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] Ohloh: I Use It

2014-07-07 Thread André Hentschel
Hi,
On Ohloh.net we have only 14 official users ([1]), while mingw has
nearly 300 and Wine more than 1000...
I think we should do our best to improve our user count there, because
Ohloh became somewhat important in the OSS world.
If you try to add MinGW-w64 to it and you type mingw because you're
lazy, you'll get a long list of projects. And while mingw-w64-dgn is
available in that list, MinGW-w64 is not.
Only if you add a hyphen (mingw-) you'll find MinGW-w64 in the list -
at the end of the list.

I first though it's a chicken-egg problem: Having only 14 people marking
us as I use this makes Ohloh think we're not that popular.
But mingw-w64-dgn only has one user and is more visible in the list

Tasks:
* I just changed the Ohloh project name from MinGW-w64 - for 32 and 64
bit Windows to MinGW-w64, because the help on it says Please use as
short a name as possible.
* We should highlight a button on the website, e.g. I Use It - Simple
from [2]
* Collect other ideas to improve the situation


[1] https://www.ohloh.net/p/mingw-w64
[2] https://www.ohloh.net/p/mingw-w64/widgets

--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] [PATCH] Add softmath mainly for ARM

2014-07-01 Thread André Hentschel
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Am 30.06.2014 22:59, schrieb André Hentschel:
 Hi,
 is this ready for master (trunk)?
 I'll organize the patches as in:
 https://github.com/AndreRH/mingw-w64/commits/splitup
 

confirmed by ktietz on IRC, i'll push

-BEGIN PGP SIGNATURE-
Version: GnuPG v1
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQGcBAEBAgAGBQJTswzVAAoJEGm5GZTakYssdR8L/AjVjV2WyVA71tyAfjc8dEJ0
39Op3GPWQZBGX/4rBUyRn5TM8zR1sbFVDINzPtWwVbL6C/+HyJVXThgcgAzWtVh9
tgVcekD5ZB8wADYADCUrZlkn9vyKX02Dms5wQGkO4eSE3Q2YPAeZ2WBHhHmIaLAt
9NsyxYUf/jKmplv29BDqq2cZDh2hP1gB/ysTtZneeG7GIJgfzJW/ZKmsalLo5+iM
8U+qok590CSZf3qTQP9KLP/AjkOF2tI0aD57Omu5BF6o7IQMqeBC5OWnpsAce9Cw
s8rr6mnqyAGJkwgB4UdFQiasLUJT8OzrU1F10mJtuJZpUfvyLFWWUXNto0MmbxJw
E7LG/oFlG9FLLiEpSmpmmtU33a1K5vBvP1TCaxg2WeQpp/JhCJDdtQMwTsNi3gnp
rGeLE+fP0SGBI7TJgTT6TB+rlk2EVoFxsnMP+A6UZAD1L4bJ7kd5MFNxms19PSiC
ROfN9FelS1yKa4vIJpIEg8CZTM1z1gztXFASgWgx2Q==
=0myR
-END PGP SIGNATURE-

--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] [PATCH] Add more softmath mainly for ARM

2014-07-01 Thread André Hentschel
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Hi,
is this also ready for git?
I'll organize the patches as in:
https://github.com/AndreRH/mingw-w64/commits/master
-BEGIN PGP SIGNATURE-
Version: GnuPG v1
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQGcBAEBAgAGBQJTsyL9AAoJEGm5GZTakYssq24MAJqY/Cpb1YrLLVL0itCyQ7uT
jVFc60os7oDX63uCyCg2Zeebc9NbX1vV13GK2GbMgPdUnY8HPMKsH7SGebVqRh+Z
qMUwSdw+U31EFFCXjTnDAQthDN7xGLt0gxQPY/FNeXEDY9b8BWxvZ34L12K54x63
ouaNsfBuLBH0ZxTD9CviDVcfewZQb4lGGSINtIHP3DTeQ2Vo3u35qXvOZgf3Jbej
mUrTME5Y+Kg3mYXSwFKWCPR9CJFVEbwGKp4yVw65LyEZhmRo2twND8TsPSKN0GCh
6gQV5aDOLOp6DzJZ9DS02eSW1eQfjOlk0vZZ3i9s3CxZHoVoXvjZwmJpg4UxFxvN
eV2V60S3FYVcunWJEXD9ytmU0l5IFQdOm3R/ZQkFYYHIdQVdJkL4qi0TwvAy6YNf
8OyShyFJvTGwTUlnTJ4vsH6H8M1EqUzs+PtiLlA98lWiafEcxAu763mvq5DuvIya
+vucHb5X7UlitueTXpbjRfUVmDBap4BILypr+grupA==
=zh0B
-END PGP SIGNATURE-
diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index 0e82f92..65e0df3 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -225,16 +225,16 @@ src_libmingwex=\
   math/internal_logl.S  math/log10l.S  math/log1p.S  math/log1pl.Smath/log2.S  \
   math/log2l.S  math/nearbyint.S   math/nearbyintf.S math/nearbyintl.Smath/remainder.S \
   math/remainderf.S math/remainderl.S  math/remquo.S math/remquof.S   math/remquol.S   math/scalbn.S\
-  math/scalbnf.Smath/scalbnl.S math/sinl_internal.S  math/tanl.S  math/trunc.S math/truncf.S\
-  math/acosh.c  math/acoshf.c  math/acoshl.c math/acosl.c \
-  math/asinh.c  math/asinhf.c  math/asinhl.c math/asinl.c math/atan2f.cmath/atan2l.c\
-  math/atanh.c  math/atanhf.c  math/atanhl.c math/atanl.c math/cbrt.c  \
+  math/scalbnl.Smath/sinl_internal.S  math/tanl.Smath/trunc.S math/truncf.S\
+  math/acosh.c  math/acoshl.c  math/acosl.c  \
+  math/asinh.c  math/asinhl.c  math/asinl.c  math/atan2l.c\
+  math/atanh.c  math/atanhl.c  math/atanl.c  math/cbrt.c  \
   math/cbrtf.c  math/cbrtl.c   math/cephes_emath.c   math/copysign.c  math/copysignf.c math/cos.c   \
   math/coshf.c  math/coshl.c   math/cosl.c   math/cossin.cmath/erfl.c  \
   math/exp.cmath/expf.cmath/expl.c   math/expm1.c math/expm1l.c\
   math/fabs.c   math/fabsf.c   math/fabsl.c  math/fdim.c  math/fdimf.c math/fdiml.c \
   math/fmal.c   math/fmax.cmath/fmaxf.c  math/fmaxl.c math/fmin.c  math/fminf.c \
-  math/fminl.c  math/fmod.cmath/fmodf.c  math/fmodl.c math/fp_consts.c math/fp_constsf.c\
+  math/fminl.c  math/fmod.cmath/fmodl.c  math/fp_consts.c math/fp_constsf.c\
   math/fp_constsl.c math/fpclassify.c  math/fpclassifyf.cmath/fpclassifyl.c   math/frexpf.cmath/fucom.c \
   math/hypotf.c math/hypotl.c  math/isnan.c  math/isnanf.cmath/isnanl.cmath/ldexp.c \
   math/ldexpf.c math/ldexpl.c  math/lgamma.c math/lgammaf.c   math/lgammal.c   math/llrint.c\
@@ -295,22 +295,25 @@ src_libmingwex=\
 
 # these only go into the 64 bit version:
 src_libmingwex64=\
-  math/acosf.c  math/asinf.c  math/atanf.c  math/cosf.c   math/exp2f.S  \
-  math/expm1f.c math/ilogbf.S math/log1pf.S math/log2f.S  math/logbf.c  \
-  math/sinf.c   math/tanf.c
+  math/acosf.c  math/acoshf.c math/asinf.c  math/asinhf.c math/atan2f.c \
+  math/atanf.c  math/atanhf.c math/cosf.c   math/exp2f.S  math/expm1f.c \
+  math/fmodf.c  math/ilogbf.S math/log1pf.S math/log2f.S  math/logbf.c  \
+  math/scalbnf.Smath/sinf.c   math/tanf.c
 
 # these only go into the 32 bit version:
 src_libmingwex32=\
-  math/acosf.c  math/asinf.c  math/atanf.c  math/cosf.c   math/exp2f.S  \
-  math/expm1f.c math/ilogbf.S math/log1pf.S math/log2f.S  math/logbf.c  \
-  math/sinf.c   math/tanf.c
+  math/acosf.c  math/acoshf.c math/asinf.c  math/asinhf.c math/atan2f.c \
+  math/atanf.c  math/atanhf.c math/cosf.c   math/exp2f.S  

[Mingw-w64-public] [PATCH] Add softmath mainly for ARM

2014-06-30 Thread André Hentschel
Hi,
is this ready for master (trunk)?
I'll organize the patches as in:
https://github.com/AndreRH/mingw-w64/commits/splitup
diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index 53da0ae..0e82f92 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -220,18 +220,18 @@ src_libmingwex=\
   gdtoa/strtopx.c   gdtoa/sum.c  gdtoa/ulp.c\
   \
   math/_chgsignl.S  math/ceil.Smath/ceilf.S  math/ceill.S math/copysignl.S math/cosl_internal.S \
-  math/exp2.S   math/exp2f.S   math/exp2l.S  math/floor.S math/floorf.Smath/floorl.S\
-  math/fma.Smath/fmaf.Smath/frexpl.S math/ilogb.S math/ilogbf.Smath/ilogbl.S\
-  math/internal_logl.S  math/log10l.S  math/log1p.S  math/log1pf.Smath/log1pl.Smath/log2.S  \
-  math/log2f.S  math/log2l.S   math/nearbyint.S  math/nearbyintf.Smath/nearbyintl.Smath/remainder.S \
+  math/exp2.S   math/exp2l.S   math/floor.S  math/floorf.Smath/floorl.S\
+  math/fma.Smath/fmaf.Smath/frexpl.S math/ilogb.S math/ilogbl.S\
+  math/internal_logl.S  math/log10l.S  math/log1p.S  math/log1pl.Smath/log2.S  \
+  math/log2l.S  math/nearbyint.S   math/nearbyintf.S math/nearbyintl.Smath/remainder.S \
   math/remainderf.S math/remainderl.S  math/remquo.S math/remquof.S   math/remquol.S   math/scalbn.S\
   math/scalbnf.Smath/scalbnl.S math/sinl_internal.S  math/tanl.S  math/trunc.S math/truncf.S\
-  math/acosf.c  math/acosh.c   math/acoshf.c math/acoshl.cmath/acosl.c math/asinf.c \
+  math/acosh.c  math/acoshf.c  math/acoshl.c math/acosl.c \
   math/asinh.c  math/asinhf.c  math/asinhl.c math/asinl.c math/atan2f.cmath/atan2l.c\
-  math/atanf.c  math/atanh.c   math/atanhf.c math/atanhl.cmath/atanl.c math/cbrt.c  \
+  math/atanh.c  math/atanhf.c  math/atanhl.c math/atanl.c math/cbrt.c  \
   math/cbrtf.c  math/cbrtl.c   math/cephes_emath.c   math/copysign.c  math/copysignf.c math/cos.c   \
   math/coshf.c  math/coshl.c   math/cosl.c   math/cossin.cmath/erfl.c  \
-  math/exp.cmath/expf.cmath/expl.c   math/expm1.c math/expm1f.cmath/expm1l.c\
+  math/exp.cmath/expf.cmath/expl.c   math/expm1.c math/expm1l.c\
   math/fabs.c   math/fabsf.c   math/fabsl.c  math/fdim.c  math/fdimf.c math/fdiml.c \
   math/fmal.c   math/fmax.cmath/fmaxf.c  math/fmaxl.c math/fmin.c  math/fminf.c \
   math/fminl.c  math/fmod.cmath/fmodf.c  math/fmodl.c math/fp_consts.c math/fp_constsf.c\
@@ -240,14 +240,14 @@ src_libmingwex=\
   math/ldexpf.c math/ldexpl.c  math/lgamma.c math/lgammaf.c   math/lgammal.c   math/llrint.c\
   math/signgam.c \
   math/llrintf.cmath/llrintl.c math/llround.cmath/llroundf.c  math/llroundl.c  math/log.c   \
-  math/log10f.c math/logb.cmath/logbf.c  math/logbl.c math/logf.c  math/logl.c  \
+  math/log10f.c math/logb.cmath/logbl.c  math/logf.c  math/logl.c  \
   math/lrint.c  math/lrintf.c  math/lrintl.c math/lround.cmath/lroundf.c   math/lroundl.c   \
   math/modf.c   math/modff.c   math/modfl.c  math/nextafterf.cmath/nextafterl.cmath/nexttoward.c\
   math/nexttowardf.cmath/pow.c math/powf.c   math/powi.c  math/powif.c math/powil.c \
   math/powl.c   math/rint.cmath/rintf.c  math/rintl.c math/round.c math/roundf.c\
   math/roundl.c math/s_erf.c   math/sf_erf.c math/signbit.c   math/signbitf.c  math/signbitl.c  \
-  math/sin.cmath/sinf.cmath/sinhf.c  math/sinhl.c math/sinl.c  math/sqrt.c  \
-  math/sqrtf.c  math/sqrtl.c   math/tanf.c   math/tanhf.c math/tanhl.c math/tgamma.c\
+  math/sin.cmath/sinhf.c   math/sinhl.c  math/sinl.c  math/sqrt.c  \
+  math/sqrtf.c  math/sqrtl.c   math/tanhf.c  math/tanhl.c math/tgamma.c\
   math/tgammaf.cmath/tgammal.c math/truncl.c \
   math/acosh.def.h 

Re: [Mingw-w64-public] [PATCH] Add softmath mainly for ARM

2014-06-25 Thread André Hentschel
Am 24.06.2014 22:28, schrieb Kai Tietz:
 2014-06-22 14:38 GMT+02:00 André Hentschel n...@dawncrow.de:
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1

 Am 21.06.2014 22:06, schrieb Kai Tietz:
 2014-06-21 18:10 GMT+02:00 André Hentschel n...@dawncrow.de:
 Am 21.06.2014 17:10, schrieb André Hentschel:
 Hi,
 this time i just put some commits on github for review [1],
 so please review, then i'll commit it except of the temporary tests.
 (btw, this is the work of more than two weeks...)

 [1] https://github.com/AndreRH/mingw-w64/commits/master


 Here it is as patch (without Makefile.in)

 Patch is ok.  Only thing we might want to change here is softfloat.c.
 I don't think we should have one file implementing many math functions
 without need.  So functions, which can go into own files, should be
 isolated, and it might be of interest to make out of softfloat.c
 instead an include file.

 1) Why is it so bad to have all in one file?
 Because that reasons to link all functions into binary at once.
 Without LTO you get a lot of stuff you might not need into your
 executable.
 2) How do you want it exactly? sin.def.h and so on? which functions could 
 stay in softfloat.c?
 Well, something like implementation file.  I wouldn't name them .h.
 Call them sin.c ... which includes the shared stuff from (best static
 or inline) softfloat.h.  The none-inline version of those shared
 function could be placed into softfloat.c.
 
 Kai

OK, how is that?

commit 1a2aaad2b7b768f9009b8244a53e66d0a3b93753
Author: André Hentschel n...@dawncrow.de
Date:   Wed Jun 25 23:14:01 2014 +0200

softmath: Add initial softmath implementation by adding cosf

diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index b530a7b..53da0ae 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -195,6 +195,7 @@ src_msvcrt32=\
   $(src_msvcrt) \
   misc/lc_locale_func.c
 
+# These mingwex sources are target independent:
 src_libmingwex=\
   crt/dllentry.ccrt/dllmain.c \
   \
@@ -229,7 +230,7 @@ src_libmingwex=\
   math/asinh.c  math/asinhf.c  math/asinhl.c math/asinl.c math/atan2f.cmath/atan2l.c\
   math/atanf.c  math/atanh.c   math/atanhf.c math/atanhl.cmath/atanl.c math/cbrt.c  \
   math/cbrtf.c  math/cbrtl.c   math/cephes_emath.c   math/copysign.c  math/copysignf.c math/cos.c   \
-  math/cosf.c   math/coshf.c   math/coshl.c  math/cosl.c  math/cossin.cmath/erfl.c  \
+  math/coshf.c  math/coshl.c   math/cosl.c   math/cossin.cmath/erfl.c  \
   math/exp.cmath/expf.cmath/expl.c   math/expm1.c math/expm1f.cmath/expm1l.c\
   math/fabs.c   math/fabsf.c   math/fabsl.c  math/fdim.c  math/fdimf.c math/fdiml.c \
   math/fmal.c   math/fmax.cmath/fmaxf.c  math/fmaxl.c math/fmin.c  math/fminf.c \
@@ -292,6 +293,20 @@ src_libmingwex=\
   stdio/vscanf.c   stdio/vsnprintf.c stdio/vsnprintf_s.c  stdio/vsnwprintf.cstdio/vsscanf.c \
   stdio/vswscanf.c stdio/vwscanf.c   stdio/wtoll.cstdio/mingw_asprintf.cstdio/mingw_vasprintf.c
 
+# these only go into the 64 bit version:
+src_libmingwex64=\
+  math/cosf.c
+
+# these only go into the 32 bit version:
+src_libmingwex32=\
+  math/cosf.c
+
+# these only go into the ARM32 version:
+src_libmingwexarm32=\
+  math/softmath/e_fmodf.c   math/softmath/e_powf.c\
+  math/softmath/cosf.c
+
+
 # These intrinsics are target independent:
 src_intrincs= \
   intrincs/__movsb.cintrincs/__movsd.cintrincs/__movsw.c intrincs/__stosb.c   intrincs/__stosd.c\
@@ -513,7 +528,7 @@ lib32_libmingw32_a_SOURCES = $(src_libmingw32)
 
 lib32_LIBRARIES += lib32/libmingwex.a
 lib32_libmingwex_a_CPPFLAGS=$(CPPFLAGS32) $(extra_include) $(AM_CPPFLAGS)
-lib32_libmingwex_a_SOURCES = $(src_libmingwex) $(src_dfp_math)
+lib32_libmingwex_a_SOURCES = $(src_libmingwex) $(src_libmingwex32) $(src_dfp_math)
 lib32_libmingwex_a_LIBADD = $(obj_dfpsrc32)
 
 lib32_LIBRARIES += lib32/libmoldname.a
@@ -758,7 +773,7 @@ lib64_libmingw32_a_SOURCES = $(src_libmingw32)
 
 lib64_LIBRARIES += lib64/libmingwex.a
 lib64_libmingwex_a_CPPFLAGS=$(CPPFLAGS64) $(extra_include) $(AM_CPPFLAGS)
-lib64_libmingwex_a_SOURCES = $(src_libmingwex) $(src_dfp_math)
+lib64_libmingwex_a_SOURCES = $(src_libmingwex) $(src_libmingwex64) $(src_dfp_math)
 lib64_libmingwex_a_LIBADD = $(obj_dfpsrc64)
 
 lib64_LIBRARIES += lib64/libmoldname.a
@@ -1269,7 +1284,7 @@ libarm32_libmingw32_a_SOURCES = $(src_libmingw32)
 
 libarm32_LIBRARIES += libarm32/libmingwex.a
 libarm32_libmingwex_a_CPPFLAGS=$(CPPFLAGSARM32) $(extra_include) $(AM_CPPFLAGS)
-libarm32_libmingwex_a_SOURCES = $(src_libmingwex) $(src_dfp_math

[Mingw-w64-public] [PATCH] Add softmath mainly for ARM

2014-06-21 Thread André Hentschel
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Hi,
this time i just put some commits on github for review [1],
so please review, then i'll commit it except of the temporary tests.
(btw, this is the work of more than two weeks...)

[1] https://github.com/AndreRH/mingw-w64/commits/master
-BEGIN PGP SIGNATURE-
Version: GnuPG v1
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQGcBAEBAgAGBQJTpaBYAAoJEGm5GZTakYssgBwL/1LUjz4i4ezttKbFqIw0/6jn
leNCm6b+n5+aJtN46BhtMIN5VsxdkxkLGOfmh399CVMlnJiM4qlkiETYmFII9RJ6
dGaovGwlGIAH+l2hqJDWSVf2qxfgHQrXPxjz7EPGYiIFOrliKtPQz4X/ySxD7Kew
wkNkcGJLhCQeR8Q/KDzUmBlCy055VQSTsd/UOEGAgxsTcDe5SslRpyv71tgUM4kN
4aguRKdx6qe2prYO08tHwNu2m8Ec/sOIFQq/cRO40gt61lShy00PHXs+xtcnMvsF
vuWYkOegHp/9vJwv/uxh8OzniwSkjx19P30s1iAnHtViZmdEYBIftN18k39J78IA
0GPhgw52AGwi5FPdUoQaV+P0uCtB9V9bqovDAaWZCjmyf+q4ABm9GIbRzPPb6RrL
IX06I+zRZHDY00a0qC/qAYgZ5Z+IFIUGEbJBM5DEniJS7OlCKCWojW2QktBmSpEi
YbAJXABy2sE42W353eU27az3pkwwMOKEvxwLev2a1A==
=ky8H
-END PGP SIGNATURE-

--
HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions
Find What Matters Most in Your Big Data with HPCC Systems
Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
Leverages Graph Analysis for Fast Processing  Easy Data Exploration
http://p.sf.net/sfu/hpccsystems
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] [PATCH] Add softmath mainly for ARM

2014-06-21 Thread André Hentschel
Am 21.06.2014 17:10, schrieb André Hentschel:
 Hi,
 this time i just put some commits on github for review [1],
 so please review, then i'll commit it except of the temporary tests.
 (btw, this is the work of more than two weeks...)
 
 [1] https://github.com/AndreRH/mingw-w64/commits/master
 

Here it is as patch (without Makefile.in)
diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index b530a7b..5379a1d 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -195,6 +195,7 @@ src_msvcrt32=\
   $(src_msvcrt) \
   misc/lc_locale_func.c
 
+# These mingwex sources are target independent:
 src_libmingwex=\
   crt/dllentry.ccrt/dllmain.c \
   \
@@ -219,34 +220,34 @@ src_libmingwex=\
   gdtoa/strtopx.c   gdtoa/sum.c  gdtoa/ulp.c\
   \
   math/_chgsignl.S  math/ceil.Smath/ceilf.S  math/ceill.S math/copysignl.S math/cosl_internal.S \
-  math/exp2.S   math/exp2f.S   math/exp2l.S  math/floor.S math/floorf.Smath/floorl.S\
-  math/fma.Smath/fmaf.Smath/frexpl.S math/ilogb.S math/ilogbf.Smath/ilogbl.S\
-  math/internal_logl.S  math/log10l.S  math/log1p.S  math/log1pf.Smath/log1pl.Smath/log2.S  \
-  math/log2f.S  math/log2l.S   math/nearbyint.S  math/nearbyintf.Smath/nearbyintl.Smath/remainder.S \
+  math/exp2.S   math/exp2l.S   math/floor.S  math/floorf.Smath/floorl.S\
+  math/fma.Smath/fmaf.Smath/frexpl.S math/ilogb.S math/ilogbl.S\
+  math/internal_logl.S  math/log10l.S  math/log1p.S  math/log1pl.Smath/log2.S  \
+  math/log2l.S  math/nearbyint.S   math/nearbyintf.S math/nearbyintl.Smath/remainder.S \
   math/remainderf.S math/remainderl.S  math/remquo.S math/remquof.S   math/remquol.S   math/scalbn.S\
-  math/scalbnf.Smath/scalbnl.S math/sinl_internal.S  math/tanl.S  math/trunc.S math/truncf.S\
-  math/acosf.c  math/acosh.c   math/acoshf.c math/acoshl.cmath/acosl.c math/asinf.c \
-  math/asinh.c  math/asinhf.c  math/asinhl.c math/asinl.c math/atan2f.cmath/atan2l.c\
-  math/atanf.c  math/atanh.c   math/atanhf.c math/atanhl.cmath/atanl.c math/cbrt.c  \
+  math/scalbnl.Smath/sinl_internal.S  math/tanl.Smath/trunc.S math/truncf.S\
+  math/acosh.c  math/acoshl.c  math/acosl.c  \
+  math/asinh.c  math/asinhl.c  math/asinl.c  math/atan2l.c\
+  math/atanh.c  math/atanhl.c  math/atanl.c  math/cbrt.c  \
   math/cbrtf.c  math/cbrtl.c   math/cephes_emath.c   math/copysign.c  math/copysignf.c math/cos.c   \
-  math/cosf.c   math/coshf.c   math/coshl.c  math/cosl.c  math/cossin.cmath/erfl.c  \
-  math/exp.cmath/expf.cmath/expl.c   math/expm1.c math/expm1f.cmath/expm1l.c\
+  math/coshf.c  math/coshl.c   math/cosl.c   math/cossin.cmath/erfl.c  \
+  math/exp.cmath/expf.cmath/expl.c   math/expm1.c math/expm1l.c\
   math/fabs.c   math/fabsf.c   math/fabsl.c  math/fdim.c  math/fdimf.c math/fdiml.c \
   math/fmal.c   math/fmax.cmath/fmaxf.c  math/fmaxl.c math/fmin.c  math/fminf.c \
-  math/fminl.c  math/fmod.cmath/fmodf.c  math/fmodl.c math/fp_consts.c math/fp_constsf.c\
+  math/fminl.c  math/fmod.cmath/fmodl.c  math/fp_consts.c math/fp_constsf.c\
   math/fp_constsl.c math/fpclassify.c  math/fpclassifyf.cmath/fpclassifyl.c   math/frexpf.cmath/fucom.c \
   math/hypotf.c math/hypotl.c  math/isnan.c  math/isnanf.cmath/isnanl.cmath/ldexp.c \
   math/ldexpf.c math/ldexpl.c  math/lgamma.c math/lgammaf.c   math/lgammal.c   math/llrint.c\
   math/signgam.c \
   math/llrintf.cmath/llrintl.c math/llround.cmath/llroundf.c  math/llroundl.c  math/log.c   \
-  math/log10f.c math/logb.cmath/logbf.c  math/logbl.c math/logf.c  math/logl.c  \
+  math/log10f.c math/logb.cmath/logbl.c  math/logf.c  math/logl.c  \
   math/lrint.c  math/lrintf.c  math/lrintl.c math/lround.cmath/lroundf.c   math/lroundl.c   \
   math/modf.c   math/modff.c   math/modfl.c

Re: [Mingw-w64-public] [RFC] sinf and cosf for ARM

2014-06-20 Thread André Hentschel
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Am 19.06.2014 22:36, schrieb Pavel:
 Hi André,

Hi, wow, thanks for having such a close look.

 I have some comments to the sinf implementation. First of all,
 calculating the factorials in separate function is quite inefficient,
 since you repeat multiplication of what has already been multiplied.

yeah, i guess that's even true when making it inline...

 Slightly better would be to declare local variable and calculate the
 factorial in the for loop:
 
 float fact = 1;
 float y = 1;
 float res = y;
 for(int i = 1; i  6; i++)
 {
 y *= x;
 fact *= i;
 res += y/fact;
 }

i think this could make the code more unreadable

 this is rather an example for exp function, sine would require a
 modification. And since you only calculate 6 values, it would be even
 better to precalculate them and hardcode them in a table.

yes, that's my best bet i guess, too.

 However, calculating goniometric functions from Taylor expansion is
 quite inefficient and slow in general. In your algorithm, you use 6
 values and power of 11, which itself introduces some error. The accuracy
 of your implementation is 4 decimal digits at pi/2, where I believe the
 deviation is the highest.
 
 I suggest the following formula for calculating sine at (0, pi/2)
 interval:
 
 sin(x) = (0.6736*x - 0.09779183*x^2 - 0.12839086*x^3 +
 0.01826627*x^4) / (1 - 0.09809942*x + 0.03936879*x^2)
 
 This is accurate at 6 decimal digits in the whole interval, moreover it
 matches the values at 0, pi/12, pi/6, pi/4, pi/3, 5*pi/12 and pi/2
 exactly. The highest deviation magnitude is about 7.8e-7. I have derived
 the coefficients using R.

could you please attach some R code for this?
My plan for now is to make those functions work, not spending too much time 
optimizing precision and performance.
After that me and others could start improving both. So you can try with your 
formula later, hopefully also for other functions.

 cosine can be then calculated as sin(pi/2 - x) at the (0, pi/2)
 interval.
 
 So I hope it might help you.

It does, thanks!
If you wanna continue looking into that, i put my code here: 
https://github.com/AndreRH/mingw-w64/commits/master
Note that you sometimes get in trouble when fetching from it, as i might do 
forced pushes when needed.
-BEGIN PGP SIGNATURE-
Version: GnuPG v1
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQGcBAEBAgAGBQJTpIrCAAoJEGm5GZTakYsseOML/3Lry/5hzegZBCC6LJAk397F
qx8E59Y2lr6cSRgsp0HudkErh84+YALkb5tFxX24yHQwPs6sbxL9JClpReXJJNYH
val9Vkj8lV0BiG2kSlPE1nPqqTUbHUbkCRc2mfylTzT1v2cLWNgkZhM+eUqtp1Xp
j0tsyBCR0L6LU5SOFaqbpgnMn4A2DO/fN3GyPwZDubQ04iZXw/6toCWiN8RzRr8/
8BBHCdMtJghS9l8LoEjOTD/ffSy6Pz7CEre7iuFRZA+LUcfncrstaMebAjjkui9p
BBgtBQUas9gl6GtovmdD1jwFUJZyr7pezqOQTq2dBI9jmartYPogqc/+t1DBnJdf
qpYigBC2NFzqSnOMN2E6U7FVCuQIS+IIzMNVKcqiw22V1JJsUNKQL9jsWcHT6ahr
fmeMkdJyFjIdPDKo6gT6/7Jw0UzxDeFhx9iUFM79ieF/cjdNFqv72hyVNoNSSNZQ
+xGDU05ahsSiuwLenh99yHS9iR76VCbbyl5n/TBX9w==
=h95E
-END PGP SIGNATURE-

--
HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions
Find What Matters Most in Your Big Data with HPCC Systems
Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
Leverages Graph Analysis for Fast Processing  Easy Data Exploration
http://p.sf.net/sfu/hpccsystems
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] [RFC] sinf and cosf for ARM

2014-06-16 Thread André Hentschel
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Please review this initial implementation for the remaining math functions
I'm unsure about the folder name and the license for taylor_private.h, it 
mostly contains
defines/typedefs/consts from FreeBSD...
-BEGIN PGP SIGNATURE-
Version: GnuPG v1
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQGcBAEBAgAGBQJTn0KlAAoJEGm5GZTakYssggYL/iNc6+WuWR8Nx+k06Zjy4yxl
CCB3/c9AL/uqSZdUaqHr0HGTZsy6ny8iLXUy082XnY5wE/87QInWPZ7hZjJ/5WKc
3pay4H1FufDKfrHJRBkcWD1z6PDiYNWboTKkHVOrNLcA6rQV8iOjFocIdepQjiF7
nIJDx+/i+YQ2VDNt3KgHhYnuR3smZFC2vhKSOR61XVx72v+CZ78IBE072ONvJyfM
UxKa/FNEzKx5yF+ebC60nX15KldS+xBGcnsSsq8rdQpRN8dog0Z/vfQepV3yrzLV
mx3s7nR3wU3b4j6rnxwnAkIAqfjkZk6JbPVB6I+rx+zKekkg966ZkNZX/TQeh2BM
WyX+jlnRpwolLRPXN77Ywt/FQ6UJ8S8AoCaIWh7rpPtBADUh6z/mZxhH1F+h0Zs/
rTSE6w+dGWj3Szh1K/boqSdM6RdBg8gqrDr7SzNFy2XKgvuRjp2O/nUT3SB/nJHh
nNoDvEt4LerCYnplOa/rfFDBd9kLAQiSacVw1iCPow==
=4G6y
-END PGP SIGNATURE-
commit 6d9072f9de43493e177248e2cf080899567f2be4
Author: André Hentschel n...@dawncrow.de
Date:   Mon Jun 16 20:59:39 2014 +0200

sinf cosf draft

diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index b530a7b..c7ac221 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -195,6 +195,7 @@ src_msvcrt32=\
   $(src_msvcrt) \
   misc/lc_locale_func.c
 
+# These mingwex sources are target independent:
 src_libmingwex=\
   crt/dllentry.ccrt/dllmain.c \
   \
@@ -224,12 +225,12 @@ src_libmingwex=\
   math/internal_logl.S  math/log10l.S  math/log1p.S  math/log1pf.Smath/log1pl.Smath/log2.S  \
   math/log2f.S  math/log2l.S   math/nearbyint.S  math/nearbyintf.Smath/nearbyintl.Smath/remainder.S \
   math/remainderf.S math/remainderl.S  math/remquo.S math/remquof.S   math/remquol.S   math/scalbn.S\
-  math/scalbnf.Smath/scalbnl.S math/sinl_internal.S  math/tanl.S  math/trunc.S math/truncf.S\
+  math/scalbnf.Smath/scalbnl.S math/tanl.S   math/trunc.S math/truncf.S\
   math/acosf.c  math/acosh.c   math/acoshf.c math/acoshl.cmath/acosl.c math/asinf.c \
   math/asinh.c  math/asinhf.c  math/asinhl.c math/asinl.c math/atan2f.cmath/atan2l.c\
   math/atanf.c  math/atanh.c   math/atanhf.c math/atanhl.cmath/atanl.c math/cbrt.c  \
   math/cbrtf.c  math/cbrtl.c   math/cephes_emath.c   math/copysign.c  math/copysignf.c math/cos.c   \
-  math/cosf.c   math/coshf.c   math/coshl.c  math/cosl.c  math/cossin.cmath/erfl.c  \
+  math/coshf.c  math/coshl.c   math/cosl.c   math/cossin.cmath/erfl.c  \
   math/exp.cmath/expf.cmath/expl.c   math/expm1.c math/expm1f.cmath/expm1l.c\
   math/fabs.c   math/fabsf.c   math/fabsl.c  math/fdim.c  math/fdimf.c math/fdiml.c \
   math/fmal.c   math/fmax.cmath/fmaxf.c  math/fmaxl.c math/fmin.c  math/fminf.c \
@@ -245,7 +246,7 @@ src_libmingwex=\
   math/nexttowardf.cmath/pow.c math/powf.c   math/powi.c  math/powif.c math/powil.c \
   math/powl.c   math/rint.cmath/rintf.c  math/rintl.c math/round.c math/roundf.c\
   math/roundl.c math/s_erf.c   math/sf_erf.c math/signbit.c   math/signbitf.c  math/signbitl.c  \
-  math/sin.cmath/sinf.cmath/sinhf.c  math/sinhl.c math/sinl.c  math/sqrt.c  \
+  math/sin.cmath/sinhf.c   math/sinhl.c  math/sinl.c  math/sqrt.c  \
   math/sqrtf.c  math/sqrtl.c   math/tanf.c   math/tanhf.c math/tanhl.c math/tgamma.c\
   math/tgammaf.cmath/tgammal.c math/truncl.c \
   math/acosh.def.h  math/cos.def.h math/exp.def.hmath/expm1.def.h math/log.def.h   math/pow.def.h   \
@@ -292,6 +293,16 @@ src_libmingwex=\
   stdio/vscanf.c   stdio/vsnprintf.c stdio/vsnprintf_s.c  stdio/vsnwprintf.cstdio/vsscanf.c \
   stdio/vswscanf.c stdio/vwscanf.c   stdio/wtoll.cstdio/mingw_asprintf.cstdio/mingw_vasprintf.c
 
+# these only go into the 64 bit version:
+src_libmingwex64=math/cosf.c math/sinl_internal.S math/sinf.c
+
+# these only go into the 32 bit version:
+src_libmingwex32=math/cosf.c math/sinl_internal.S math/sinf.c
+
+# these only go into the ARM32 version:
+src_libmingwexarm32=math/taylor/e_fmodf.c math/taylor/e_powf.c math/taylor/taylor.c
+
+
 # These intrinsics are target independent:
 

Re: [Mingw-w64-public] [RFC] sinf and cosf for ARM

2014-06-16 Thread André Hentschel
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Am 16.06.2014 21:51, schrieb Kai Tietz:
 2014-06-16 21:16 GMT+02:00 André Hentschel n...@dawncrow.de:
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1

 Please review this initial implementation for the remaining math functions
 I'm unsure about the folder name and the license for taylor_private.h, it 
 mostly contains
 defines/typedefs/consts from FreeBSD...
 
 Well, license is BSD.  That's actuallly ok.

ok, true

 What is about the accuracy of the sinf/cosf implementation?
 It might be of interest to replace for x64 the current x87
 implementation by soft-float, too.

As discussed on IRC i'll continue the plan of bringing the algorithms and build 
system changes in and later we see what we can do for amd64

-BEGIN PGP SIGNATURE-
Version: GnuPG v1
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQGcBAEBAgAGBQJTn1vLAAoJEGm5GZTakYssUFML/1WN9ff0SZLmMy5j8pgPIO3h
lHIwEPL8Bau+aHr/TNlah7ihnKToXgqGHlOkP6y757ZAdr1t5AZoOKmGILVFJ8xz
0xBSWp3LNCHtivBvz4x9AFLiTQCvXuHkpFgl6Kcw/sec3n6++ZN4OxOg8InoKgXs
JTz5ylLcwLiwTftWa+2Twx90q+TVw61AbOCb7KK7EiA2cDZCBNf7b+6tBIH5BcdR
xKjJFsuW+Wqdp4+IvHsI2zKm3Dx2IfJPn1q/Ht1RCJE/Ly5SMYzBKAtzrgJt63tj
RkOltTUADuM29uKoR2IvAFRNcRy7fbkMLtcqd0u8yJXXMfWeyrXVQqKm0PjNQVYc
4JFqhfrW3ra7tCfPZmC9d5dN8EGj45nLSJGw7kTpuDKcAj95Nr2NmlI5/2IYe03E
uvOGynAGh4dNVJH6JELYFJ1B7KJSKHaBylv7Dvajg18vrDlQcoi8lsWSMXFloPRB
xYTl//LvfKHGpxBmv8AHxR/G/ZCS8FNVHb6yxJXpZA==
=vomx
-END PGP SIGNATURE-

--
HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions
Find What Matters Most in Your Big Data with HPCC Systems
Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
Leverages Graph Analysis for Fast Processing  Easy Data Exploration
http://p.sf.net/sfu/hpccsystems
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] ARM: Math functions co

2014-06-05 Thread André Hentschel
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Hi,
I'll attach a status report at the end wrt ARM.
For now i mostly think about cos, sin, exp, tan, scalb, log, pow and related 
functions.
VFP FPUs on ARM can't handle those directly, and afaik NEON is limited the same 
way.
Some CORDIC implementation would be my best bet, but what do you think?
Further I'm not sure about a floating point version of CORDIC, afaict all code 
I've seen was for integer.

I also wonder if there is some easier way with recent GCCs for scanf 
functions...

Any thougths welcome!






Not yet building:
math/libarm32_libmingwex_a-cosl_internal.o
math/libarm32_libmingwex_a-exp2.o
math/libarm32_libmingwex_a-exp2f.o
math/libarm32_libmingwex_a-exp2l.o
math/libarm32_libmingwex_a-frexpl.o
math/libarm32_libmingwex_a-ilogb.o
math/libarm32_libmingwex_a-ilogbf.o
math/libarm32_libmingwex_a-ilogbl.o
math/libarm32_libmingwex_a-internal_logl.o
math/libarm32_libmingwex_a-log10l.o
math/libarm32_libmingwex_a-log1p.o
math/libarm32_libmingwex_a-log1pf.o
math/libarm32_libmingwex_a-log1pl.o
math/libarm32_libmingwex_a-log2.o
math/libarm32_libmingwex_a-log2f.o
math/libarm32_libmingwex_a-log2l.o
math/libarm32_libmingwex_a-remainder.o
math/libarm32_libmingwex_a-remainderf.o
math/libarm32_libmingwex_a-remainderl.o
math/libarm32_libmingwex_a-remquo.o
math/libarm32_libmingwex_a-remquof.o
math/libarm32_libmingwex_a-remquol.o
math/libarm32_libmingwex_a-scalbn.o
math/libarm32_libmingwex_a-scalbnf.o
math/libarm32_libmingwex_a-scalbnl.o
math/libarm32_libmingwex_a-sinl_internal.o
math/libarm32_libmingwex_a-tanl.o
math/libarm32_libmingwex_a-acosf.o
math/libarm32_libmingwex_a-acosh.o
math/libarm32_libmingwex_a-acoshf.o
math/libarm32_libmingwex_a-acoshl.o
math/libarm32_libmingwex_a-acosl.o
math/libarm32_libmingwex_a-asinf.o
math/libarm32_libmingwex_a-asinh.o
math/libarm32_libmingwex_a-asinhf.o
math/libarm32_libmingwex_a-asinhl.o
math/libarm32_libmingwex_a-asinl.o
math/libarm32_libmingwex_a-atan2f.o
math/libarm32_libmingwex_a-atan2l.o
math/libarm32_libmingwex_a-atanf.o
math/libarm32_libmingwex_a-atanh.o
math/libarm32_libmingwex_a-atanhf.o
math/libarm32_libmingwex_a-atanhl.o
math/libarm32_libmingwex_a-atanl.o
math/libarm32_libmingwex_a-cossin.o
math/libarm32_libmingwex_a-exp.o
math/libarm32_libmingwex_a-expl.o
math/libarm32_libmingwex_a-expm1.o
math/libarm32_libmingwex_a-expm1f.o
math/libarm32_libmingwex_a-expm1l.o
math/libarm32_libmingwex_a-fmod.o
math/libarm32_libmingwex_a-fmodf.o
math/libarm32_libmingwex_a-fmodl.o
math/libarm32_libmingwex_a-fpclassify.o
math/libarm32_libmingwex_a-fpclassifyf.o
math/libarm32_libmingwex_a-fpclassifyl.o
math/libarm32_libmingwex_a-fucom.o
math/libarm32_libmingwex_a-isnan.o
math/libarm32_libmingwex_a-isnanf.o
math/libarm32_libmingwex_a-isnanl.o
math/libarm32_libmingwex_a-ldexp.o
math/libarm32_libmingwex_a-ldexpl.o
math/libarm32_libmingwex_a-llrint.o
math/libarm32_libmingwex_a-llrintf.o
math/libarm32_libmingwex_a-llrintl.o
math/libarm32_libmingwex_a-logb.o
math/libarm32_libmingwex_a-logbf.o
math/libarm32_libmingwex_a-logbl.o
math/libarm32_libmingwex_a-lrint.o
math/libarm32_libmingwex_a-lrintf.o
math/libarm32_libmingwex_a-lrintl.o
math/libarm32_libmingwex_a-modf.o
math/libarm32_libmingwex_a-modff.o
math/libarm32_libmingwex_a-modfl.o
math/libarm32_libmingwex_a-pow.o
math/libarm32_libmingwex_a-powl.o
math/libarm32_libmingwex_a-rint.o
math/libarm32_libmingwex_a-rintf.o
math/libarm32_libmingwex_a-rintl.o
math/libarm32_libmingwex_a-signbit.o
math/libarm32_libmingwex_a-signbitf.o
math/libarm32_libmingwex_a-signbitl.o
math/libarm32_libmingwex_a-sqrt.o
math/libarm32_libmingwex_a-sqrtf.o
math/libarm32_libmingwex_a-sqrtl.o
math/libarm32_libmingwex_a-truncl.o
misc/libarm32_libmingwex_a-mingw_getsp.o
misc/libarm32_libmingwex_a-feclearexcept.o
misc/libarm32_libmingwex_a-fegetenv.o
misc/libarm32_libmingwex_a-fegetexceptflag.o
misc/libarm32_libmingwex_a-fegetround.o
misc/libarm32_libmingwex_a-feholdexcept.o
misc/libarm32_libmingwex_a-feraiseexcept.o
misc/libarm32_libmingwex_a-fesetenv.o
misc/libarm32_libmingwex_a-fesetexceptflag.o
misc/libarm32_libmingwex_a-fesetround.o
misc/libarm32_libmingwex_a-fetestexcept.o
misc/libarm32_libmingwex_a-winbs_uint64.o
misc/libarm32_libmingwex_a-winbs_ulong.o
misc/libarm32_libmingwex_a-winbs_ushort.o
stdio/libarm32_libmingwex_a-vfscanf2.o
stdio/libarm32_libmingwex_a-vfwscanf2.o
stdio/libarm32_libmingwex_a-vscanf2.o
stdio/libarm32_libmingwex_a-vsscanf2.o
stdio/libarm32_libmingwex_a-vswscanf2.o
stdio/libarm32_libmingwex_a-vwscanf2.o
stdio/libarm32_libmingwex_a-vfscanf.o
stdio/libarm32_libmingwex_a-vfwscanf.o
stdio/libarm32_libmingwex_a-vsscanf.o
stdio/libarm32_libmingwex_a-vswscanf.o
-BEGIN PGP SIGNATURE-
Version: GnuPG v1
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQGcBAEBAgAGBQJTkOEzAAoJEGm5GZTakYssAK0L/RcTjnZ4QYnnmtIpqLF6O8XW
ddeNhkfYtmqhUwE7ASnhyJj2tLS7aOG+B9nrwKZgbubCBtOC0Nm4UDKCbdqDH7pr
CjbntxAsrxCepCv9yqHxX6IT2rKxDIMGhlz6eE7n6Q+Oj8DnjY+i7YAlObfOQEnZ

[Mingw-w64-public] [PATCH] Use gcc fabs builtins on ARM

2014-06-03 Thread André Hentschel
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Please review, i'll commit it.

Btw, what is mingw_getsp meant to do? return the stackpointer or the frame 
pointer?
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.12 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQGcBAEBAgAGBQJTjj1RAAoJEGm5GZTakYssIEAL/ibFDp4l0FDKMyqZrO6lh1pI
6EKQiekydFYrMnYROx2tddO6e8o8uFQfV5KpwF5Uxe+RhMAt7wTHisH/MPR6GI6t
TGfqXUkkRiZFDNR+JvcItrvmKKNmK6uCERvRHA9bTVNPR2XcLVdDpEeT21p0CfjP
J0W4yNbogXUmDvkO6AMt+tI5hIQC+aWOGzsQFohyoSRxxCbiZH+mz0mJZSouBmtN
WCH1qVTiUe++1FfBX/vbYeJ7NKo51xJ5XytM8oaKGksPHmy13FchiBbHzoGvXIwm
7Fpd28fIc74fF5kItBbMxhfjQ1WBS5GWmOlLxMmfQShkulc3qv8Vp7wGG+iHGDWt
wx9VkVCcLZ8A6CtT/UqGc+I1Ktu6AbyWMPRoIs/89XHMy8plQVa7hlRib6IK43at
T0zXd7gmQs4NeVHja0qlg16Jkb+/ysFAm/YmGhj1EWBThhEeQMXMM2HdQ5IePZoE
cLHzvVGtdP8xfogtGpq9cIGI4RbI1GvqDvZFoX3lRA==
=5XF4
-END PGP SIGNATURE-
 Use gcc fabs builtins on ARM

diff --git a/mingw-w64-crt/math/fabs.c b/mingw-w64-crt/math/fabs.c
index f5e4dbe..cf2e6ef 100644
--- a/mingw-w64-crt/math/fabs.c
+++ b/mingw-w64-crt/math/fabs.c
@@ -9,12 +9,12 @@
 double
 fabs (double x)
 {
-#ifdef __x86_64__
+#if defined(__x86_64__) || defined(_AMD64_) || defined(__arm__) || defined(_ARM_)
   return __builtin_fabs (x);
-#else
+#elif defined(__i386__) || defined(_X86_)
   double res = 0.0;
 
   asm (fabs; : =t (res) : 0 (x));
   return res;
-#endif
+#endif /* defined(__x86_64__) || defined(_AMD64_) || defined(__arm__) || defined(_ARM_) */
 }
diff --git a/mingw-w64-crt/math/fabsf.c b/mingw-w64-crt/math/fabsf.c
index 0a8fddb..5431c96 100644
--- a/mingw-w64-crt/math/fabsf.c
+++ b/mingw-w64-crt/math/fabsf.c
@@ -8,11 +8,11 @@ float fabsf (float x);
 float
 fabsf (float x)
 {
-#ifdef __x86_64__
+#if defined(__x86_64__) || defined(_AMD64_) || defined(__arm__) || defined(_ARM_)
   return __builtin_fabsf (x);
-#else
+#elif defined(__i386__) || defined(_X86_)
   float res = 0.0F;
   asm (fabs; : =t (res) : 0 (x));
   return res;
-#endif
+#endif /* defined(__x86_64__) || defined(_AMD64_) || defined(__arm__) || defined(_ARM_) */
 }
diff --git a/mingw-w64-crt/math/fabsl.c b/mingw-w64-crt/math/fabsl.c
index 5ffbe41..2dfdfaa 100644
--- a/mingw-w64-crt/math/fabsl.c
+++ b/mingw-w64-crt/math/fabsl.c
@@ -8,7 +8,11 @@ long double fabsl (long double x);
 long double
 fabsl (long double x)
 {
+#if defined(__x86_64__) || defined(_AMD64_) || defined(__i386__) || defined(_X86_)
   long double res = 0.0L;
   asm (fabs; : =t (res) : 0 (x));
   return res;
+#elif defined(__arm__) || defined(_ARM_)
+  return __builtin_fabsl (x);
+#endif /* defined(__x86_64__) || defined(_AMD64_) || defined(__i386__) || defined(_X86_) */
 }


tmp.diff.sig
Description: PGP signature
--
Learn Graph Databases - Download FREE O'Reilly Book
Graph Databases is the definitive new guide to graph databases and their 
applications. Written by three acclaimed leaders in the field, 
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/NeoTech___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] [PATCH] Various changes for ARM

2014-05-30 Thread André Hentschel
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Please review, i'll split it up and commit it.

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.12 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQGcBAEBAgAGBQJTiLoLAAoJEGm5GZTakYsszxoMALMK9wIyw737hP/+HPbnj2VJ
KZ1r4j49ofWF1K0KQt0oyyDKk2gkP2Kys5xdzgHoArrp1cKEU50Z+EurKL0Uh4Xz
m3ZQ11NYr6Ws5CZyLZZ0yY8l00bJe8F1iE4aiz07D5z2wnap3XPJh43870VhgtyQ
bF1CuU3lVchreKOUKusXYP8q7mc5rVMWDQ6YulRJyhps7EvL1OferXZHUlf4V11V
JQWCmGhiOatKIYdQhRRS1dUNj7eEN5GviwEl667DVDz6GriRaPbA6g4LEf2eNk2P
eTpiBNLv7+/h69n5TEuFCa6uA/+6K0B9FwlzsxcrWCo99ozsPMImtHtSAKYgatLL
VE49ztqhR5lKCq9zHz5yRCLzlUmUwkye9YCSDoJkIf9HtGLJ0olAkzBwu8mZJjsS
CHO03XvEOsrfisH9y2hEcsvOUtwgHqzbQTEKJxPD6t/s0UGC5/dvlIgBPm/Y5zKh
M1mBJdHTwz9htLkg8GDPPgUagL3ilEgxIqCJSavvwA==
=1dqI
-END PGP SIGNATURE-
diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index fbb00b6..b809595 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -306,7 +306,7 @@ src_intrincs= \
   intrincs/ilockor64.c  intrincs/ilockxor.c   intrincs/ilockxor64.c  intrincs/inbyte.cintrincs/inbytestring.c   \
   intrincs/indword.cintrincs/indwordstring.c  intrincs/inword.c  intrincs/inwordstring.c  intrincs/outbyte.c\
   intrincs/outbytestring.c  intrincs/outdword.c   intrincs/outdwordstring.c  intrincs/outword.c   intrincs/outwordstring.c  \
-  intrincs/rdtsc.c  intrincs/readcr0.cintrincs/readcr2.c intrincs/readcr3.c   intrincs/readcr4.c\
+  intrincs/readcr0.cintrincs/readcr2.cintrincs/readcr3.c intrincs/readcr4.c   \
   intrincs/readcr8.cintrincs/readmsr.cintrincs/writecr0.cintrincs/writecr2.c  intrincs/writecr3.c   \
   intrincs/writecr4.c   intrincs/writecr8.c   intrincs/writemsr.cintrincs/__int2c.c   intrincs/RtlSecureZeroMemory.c
 
@@ -314,7 +314,7 @@ src_intrincs= \
 src_intrincs64=\
   intrincs/bittest64.cintrincs/bittestc64.c   intrincs/bittestr64.c   intrincs/bittestri64.c \
   intrincs/bittests64.c   intrincs/bittestsi64.c  intrincs/bitscanfwd64.c intrincs/bitscanrev64.c\
-  intrincs/ilockadd64.c   intrincs/readgsbyte.c   intrincs/readgsword.c   intrincs/readgsdword.c \
+  intrincs/ilockadd64.c   intrincs/rdtsc.cintrincs/readgsbyte.c   intrincs/readgsword.c  intrincs/readgsdword.c \
   intrincs/readgsqword.c  intrincs/writegsbyte.c  intrincs/writegsword.c  intrincs/writegsdword.c\
   intrincs/writegsqword.c intrincs/mul128ex.c intrincs/umul128ex.cintrincs/_mul128.c \
   intrincs/_umul128.c intrincs/__movsq.c  intrincs/__stosq.c  intrincs/__shiftright128.c \
@@ -322,9 +322,12 @@ src_intrincs64=\
 
 # these only go into the 32 bit version:
 src_intrincs32=\
-  intrincs/readfsbyte.c   intrincs/readfsword.c   intrincs/readfsdword.c  \
+  intrincs/rdtsc.cintrincs/readfsbyte.c   intrincs/readfsword.c   intrincs/readfsdword.c  \
   intrincs/writefsbyte.c  intrincs/writefsword.c  intrincs/writefsdword.c
 
+# these only go into the ARM32 version:
+src_intrincsarm32=
+
 winrtlibs=\
   winrt/libruntimeobject.a
 
@@ -1148,14 +1151,14 @@ dxerr.c \
 test.c
 
 libarm32_LIBRARIES = libarm32/libkernel32.a
-libarm32_libkernel32_a_SOURCES = $(src_intrincs)
+libarm32_libkernel32_a_SOURCES = $(src_intrincs) $(src_intrincsarm32)
 libarm32_libkernel32_a_AR = $(DTLIBARM32)  $(AR) $(ARFLAGS)
 libarm32_libkernel32_a_CPPFLAGS=$(CPPFLAGSARM32) $(extra_include) $(AM_CPPFLAGS)
 
 if !W32API
 libarm32_LIBRARIES += libarm32/libmsvcrt.a
 libarm32_libmsvcrt_a_SOURCES = $(src_msvcrt32)
-libarm32_libmsvcrt_a_AR = $(DTDEFARM32)  $(AR) $(ARFLAGS)
+libarm32_libmsvcrt_a_AR = $(DTLIBARM32)  $(AR) $(ARFLAGS)
 libarm32_libmsvcrt_a_CPPFLAGS=$(CPPFLAGSARM32) -D__LIBMSVCRT__ $(extra_include) $(sysincludes)
 EXTRA_libarm32_libmsvcrt_a_DEPENDENCIES=libarm32/msvcrt.def
 endif
diff --git a/mingw-w64-crt/crt/crtexe.c b/mingw-w64-crt/crt/crtexe.c
index fef0172..ade4124 100644
--- a/mingw-w64-crt/crt/crtexe.c
+++ b/mingw-w64-crt/crt/crtexe.c
@@ -226,7 +226,7 @@ __tmainCRTStartup (void)
   WINBOOL inDoubleQuote = FALSE;
   memset (StartupInfo, 0, sizeof (STARTUPINFO));
 
-#ifndef _WIN64
+#if defined(__i386__) || defined(_X86_)
   /* We need to make sure that this function is build with frame-pointer
  and that we align the stack to 16 bytes for the sake of SSE ops in main
  or in functions inlined into main.  */
@@ -235,7 +235,7 @@ __tmainCRTStartup (void)
 #ifdef __GNUC__
   asm  __volatile__  (andl $-16, %%esp : : : %esp);
 #endif
-#endif
+#endif /* defined(__i386__) || defined(_X86_) */
 
   if (mingw_app_type)
 GetStartupInfo (StartupInfo);
diff --git a/mingw-w64-crt/crt/gs_support.c b/mingw-w64-crt/crt/gs_support.c
index 4126526..dbd95d5 100644
--- a/mingw-w64-crt/crt/gs_support.c
+++ b/mingw-w64-crt/crt/gs_support.c
@@ -119,21 +119,26 @@ __report_gsfailure (ULONG_PTR StackCookie)
   else
 

Re: [Mingw-w64-public] [PATCH] mingw-w64-crt: Build system changes for ARM

2014-05-28 Thread André Hentschel
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Am 27.05.2014 01:04, schrieb JonY:
 On 5/27/2014 05:23, André Hentschel wrote:
 I don't see any obvious problems with it. Just one question though, does
 the ARM compiler also interpret -m32/-m64?

 If so, there should be some checks added to prevent accidentally trying
 to build x86 stuff with it. Of course, the check can come in later.

 Thx for the review, i pushed it after fixing some obvious bugs.
 The ARM gcc bails out on -m32/-m64... Do you mean a check like the existing 
 one for libce?

 
 That too, I'm just wondering what will the ARM compiler do with
 -m32/-m64 or if multilib is even possible given that ARM has recently
 introduced 64bit CPUs.

- -m32/-m64 even alerts with aarch64 aware compilers, the architectures are 
strictly separated.
On aarch32 there are switches like -marm and -mthumb(2), but i really doubt 
that we should wait for -m32/-m64 on ARM. At the moment we also should focus on 
aarch32 and don't even care about aarch64 until we have a working toolchain.
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.12 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQGcBAEBAgAGBQJThhurAAoJEGm5GZTakYssAJUL/jrhSTAdOSOqDlyQQbqAxlxl
zAcIMc5JqLJqvPfbCUSGMrJ6uH8gYHggLtk5KBAalym08vFnErAwwk5b6JQC+9Eu
Xb5fj199CwdeVX/fMR2nkjyS6UruVvYoLHtEqXW+e7z21K9KHMNR1Sd1hxJaaMhk
aN19rHLAOv10WBXayAHxFBhW8THy4Lyu9i2OlDVyAFDRX03Hu5htPj7ut9ST1J5D
EmIp7oHKsE8UK+g6w2KX6RDxJGa0yIlagoHv6zIxABWxHe8eNEb9ztP7bROQ4JrG
BAUDf368Qh5Ha8U5B4QBmmRKTxXeBwtLkZ/RV+7nh6y0mVKUqRoApPhLVIHLUzlY
IeejaW6/d/u6A7icSzPsMHHT+44Q5fkFq6xd5IiDLaOy1KgEPNI3cauE0OcfjeIJ
jXG2AIBTBh/wIHHBKKumbse/Zyr+Fj6tMqEDJTsKcZfRFW1vQZmeKHE54oTPI1/V
ZIqWdlDU28AXN3KcHFdoMmr58fOYSUhAG0uQlku3qQ==
=Vq0K
-END PGP SIGNATURE-

--
Time is money. Stop wasting it! Get your web API in 5 minutes.
www.restlet.com/download
http://p.sf.net/sfu/restlet
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] [RFC] Removing CE from build system

2014-05-28 Thread André Hentschel
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Am 27.05.2014 07:28, schrieb Vincent Torri:
 i was the one who ported the EFL (set of graphic libs) to Windows CE
 and I plan to remove that port. Nowadays, Windows CE is dead and the
 guys who worked on CEgcc (the Win CE port of gcc) has given up. So no
 problem for me if you remove it.
 
 I would really prefer that people work on Win Phone 8 than on Win CE :)
 
 Vincent Torri
 
 On Tue, May 27, 2014 at 12:24 AM, Kai Tietz ktiet...@googlemail.com wrote:
 My 5 cents. I would vote for removing libce stuff.  Actually it
 doesn't work, and I don't think somebody actually uses it, or intends
 to make it working.  Nevertheless it is just my opinion.  So if I am
 wrong about that please point out your objections for removing it.

 Kai

I was really waiting for feedback from Vincent (know you form the cegcc-devel 
mailing list), so i guess next week i'll remove it. thx

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.12 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQGcBAEBAgAGBQJThhz/AAoJEGm5GZTakYssaCQMAIdoGciHhWsZMfSB+o1gWMvT
iX47yp9UTpBCWYP+/0p18qKcefpefCDQnYNjpUiGzZBLZa/KJRpJ5U+DbthDi4dc
ByxqlWxWTBLsFLQoe+VXrErtA9IU1J67PtNkfObspUlH8pEvUni6O0rkiQXlPN/R
rFEvITJOjKN0y1DAT4+kdtZ5aNaRmTvg+OQgkx5J0WN/AoxQMdYdj+XQwLKhfEPm
17RPSTm/bQowjBMDPuL9qjbEskAqJniB4JX6f/zZfIIk3WyApOQrS0IM5v1hhKyu
ar2vLLklOP8XjymfFkIkoliSbhyH8eAw2UH/mKf4V/Nb8bqvjyl55hK42bjBOguL
p0vVUGtJlkkAfzoT9MKTpW9KP+W/sE7i3FtnNxpI0QyKcnM3plDc9H6h9Umj3UYa
xghi3ZdA21jvZU9zgUGzfBUTscYaO+Gbwm6T+O/myvJFuNxEdu7fgzyOb0Q6kHs4
NlqCFziVY57zGlmWYzbDVn8mdWGQTUkArdqeFYR7tw==
=UUQk
-END PGP SIGNATURE-

--
Time is money. Stop wasting it! Get your web API in 5 minutes.
www.restlet.com/download
http://p.sf.net/sfu/restlet
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] atlbase.h

2014-05-28 Thread André Hentschel
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Am 27.05.2014 16:02, schrieb Victor Bombi:
 atlbase.h includes atliface.h but there is only atliface.idl that I guess 
 should be used to generate atliface.h but i dont know how

should do the trick:
widl -o atliface.h atliface.idl -Ipath/to/includefolder

if it's not sufficient add:
- -D__WINESRC__
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.12 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQGcBAEBAgAGBQJThh3hAAoJEGm5GZTakYssghEL+wU7asJdoa2toeTW4BHGMOzh
cGIy8bsfdwlEzs9q/lFh/v5+GPEVMJP0NZ89PSqLGb2663y2c5+2ZiFF4yoCibF4
tB212mWe9xqaAb0he+IeFk4g11ZKIkeNAlwIg1eZKp8UZdpBrXVkv6P/yHgr1u79
cXqvQkq/KZ5BgaLkNrcospWhtryee6Sb4kHn3ayyXIfjf4VZv3jjMvQkSG9X5W3W
QhoupW0Qaj1+mQL+ca/GV9TEGv+8nqAaJIZANk04tJS2UF3fUI1sDYG/g+1AtVMW
e2H/LdIcKVuH5b6fWR/mc1A+BB7Km9KROHcQUYjIEJCJNTomJ5wvAXer3EcVIwBY
3EiD6eyk+PznlJMcSjMllf/+Mz759xllflDy6C9SUs9Ah9q9rtCN+ZW6EU9eu3Jg
CWYYejwt8tRVCn1lXSNukhL5PKLGj7xbaKdS3PqR9npwTbIicaSf7fKC7cZpbdOc
sHQWmWx7Y0napmFLGJ5Tr2/BkdHRcpwmpbjFGZW98g==
=u27T
-END PGP SIGNATURE-

--
Time is money. Stop wasting it! Get your web API in 5 minutes.
www.restlet.com/download
http://p.sf.net/sfu/restlet
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] [RFC] Removing CE from build system

2014-05-26 Thread André Hentschel
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Hi,
After doing the ARM32 build system changes i figured it would be good to get 
rid of the CE
stuff in the build system. And yes, i think we should keep the def files in 
libce for reference, even if git won't forget it...

The non-autogenerated change would come down to the following patch, which also 
makes clear to me that building the libce stuff doesn't even work right now:

diff --git a/mingw-w64-crt/configure.ac b/mingw-w64-crt/configure.ac
index c4b241b..80257dd 100644
- --- a/mingw-w64-crt/configure.ac
+++ b/mingw-w64-crt/configure.ac
@@ -115,25 +115,6 @@ AS_CASE([$enable_libarm32],
   [AC_MSG_ERROR([invalid argument.  Must be either yes or no.])])
 AM_CONDITIONAL([LIBARM32], [AS_VAR_TEST_SET([LIBARM32])])
 
- -AC_MSG_CHECKING([whether to build the WinCE libraries])
- -AC_ARG_ENABLE([libce],
- -  [AS_HELP_STRING([--enable-libce],
- -[Build the WinCE libraries])],
- -  [],
- -  [AS_CASE([$host_cpu],
- -[*],[enable_libce=no])
- -  ])
- -AC_MSG_RESULT([$enable_libce])
- -AS_CASE([$enable_libce],
- -  [no],[],
- -  [yes],[AS_VAR_SET([LIBCE])],
- -  [AC_MSG_ERROR([invalid argument.  Must be either yes or no.])])
- -AM_CONDITIONAL([LIBCE], [AS_VAR_TEST_SET([LIBCE])])
- -
- -AS_VAR_IF([enable_libce],[yes],[
- -  AS_IF([AS_VAR_TEST_SET([LIB32]) || AS_VAR_TEST_SET([LIB64]) || 
AS_VAR_TEST_SET([LIBARM32])],
- -[AC_MSG_WARN([Building the runtime to use libce with lib32, lib64 or 
libarm32 is unsupported.])])])
- -
 AS_CASE([$host_cpu],
   [x86_64],[
 lib64suffx=lib
@@ -319,7 +300,6 @@ AC_MSG_NOTICE([])
 AC_MSG_NOTICE([])
 AC_MSG_NOTICE([Configuration Options Summary:])
 AC_MSG_NOTICE([])
- -AC_MSG_NOTICE([  WinCE runtime: $enable_libce])
 AC_MSG_NOTICE([  WinARM32 runtime.: $enable_libarm32])
 AC_MSG_NOTICE([  Win32 runtime: $enable_lib32])
 AC_MSG_NOTICE([  Win64 runtime: $enable_lib64])

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.12 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQGcBAEBAgAGBQJTg6khAAoJEGm5GZTakYssRQAL/0f0ghsJ/aVq3mWwyu4ZLhmA
qHq9LsYbjTNT3R2+8WMXTuHGAwZz+LNgbvLwMCSm7UyOnlCaVh7TyTM44mYXQvVx
RF4tBhxNejEZOJC2HwwP8c0zBFJpFuEclSNEuLCqX2s4G7Hz52+K0oApnG+b79I1
y3ATN2S5RqMrrp4U9BC0SY8TML+v1rygnuj6iPUnKyOKwoyqk1UYtZlLw10Estpk
VZ7kNQcTXcbg8efxPd36hDPM6Ns2cnmW4VPPpUcvb7Q5d3V3/Wa/Jy0sUbRZYFOf
tgIxsettZhBnCZq+2EHPfPg3NBDVzYWrQnPQbKWwErX+5D9hTl1P1mH/4pBb0lDE
SXkMcaFzF9+qFS/HiuXbV+Yl8VjOmvtI0iuz9GOMboWL5OJs4Lsa2c5697zxYbsI
ycJq+eT52KQN5cS3Q9eyQSLk3PoATkDtXElfD3oJWf/q/I9LmbKM/ijfnDmNFbwa
G3NhbblRkV2lb54nzack6C30cjnNJGXPE0YYXDDyFA==
=LiKx
-END PGP SIGNATURE-

--
The best possible search technologies are now affordable for all companies.
Download your FREE open source Enterprise Search Engine today!
Our experts will assist you in its installation for $59/mo, no commitment.
Test it for FREE on our Cloud platform anytime!
http://pubads.g.doubleclick.net/gampad/clk?id=145328191iu=/4140/ostg.clktrk
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] atlbase.h

2014-05-26 Thread André Hentschel
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Am 26.05.2014 19:57, schrieb Victor Bombi:
 Hello,
 
 for building some project atlbase.h is needed but not found.
 which is the status of this?

Just curious: does it help to copy it from Wine?

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.12 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQGcBAEBAgAGBQJTg6mjAAoJEGm5GZTakYsstJYL/198k6jShdv78WIdcWom04in
veGV5Dtn+I09HvualVJXPudrFw5icZvxAdCgm6+bpupbgah6EvXXg+p1i5ft5Tr3
h2MdwcdD2/B5BfmM17S12BmLs3Q0EsQz8/bJLKa7FaP/fysyHpTNwsSSSsmJHA9b
VJHe7/gcIExcX4e6efwQuUHxDppd+hCe9d8DXUQT2J6OYWZLCI+OlXuLYeyIx/Yy
ZWrR5iE8w4BXW8On+eYYqa5mfRacVkFckxJNa69O2UFUBhBLGGtFBqm8+n25nymX
B4a7P3xS3Q21F8YTw8KVNia74y1UM8l3m/QTxw8rUAJCBj1lhAsUvo1hCyoOpy73
mWKIvVvrmgnBSO391mx4OCwwgZiCE4gQa6hj32JQfsPgO9nPumf0aBl40ebpNc/A
Oabs68wAAW7rw9urKxYTRDs5/zEObGrFsfnxecwBDwPNrrfXBHRY3AlzVwy/smQO
k2uODOiXr/C5TCK4B58BFh7sqTvD+JrWJ5GOyvZNUw==
=jT5U
-END PGP SIGNATURE-

--
The best possible search technologies are now affordable for all companies.
Download your FREE open source Enterprise Search Engine today!
Our experts will assist you in its installation for $59/mo, no commitment.
Test it for FREE on our Cloud platform anytime!
http://pubads.g.doubleclick.net/gampad/clk?id=145328191iu=/4140/ostg.clktrk
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] [PATCH] mingw-w64-crt: Build system changes for ARM

2014-05-26 Thread André Hentschel
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Am 24.05.2014 14:18, schrieb JonY:
 On 5/24/2014 04:43, André Hentschel wrote:
 Am 22.05.2014 11:36, schrieb Jean-Baptiste Kempf:
 On 19 May, André Hentschel wrote :
 Hope it is ok to compress these 1.8 MB

 To be honest, it would be easier to review if you just send the
 non-generated files :)


 You're right, here it is.

 
 
 I don't see any obvious problems with it. Just one question though, does
 the ARM compiler also interpret -m32/-m64?
 
 If so, there should be some checks added to prevent accidentally trying
 to build x86 stuff with it. Of course, the check can come in later.

Thx for the review, i pushed it after fixing some obvious bugs.
The ARM gcc bails out on -m32/-m64... Do you mean a check like the existing one 
for libce?
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.12 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQGcBAEBAgAGBQJTg7C0AAoJEGm5GZTakYssqH8L/26yVSlBBUwz/V+msVI494Xg
iV33sYS9ncNRMUfGdxZx/paBRjQUjHVEMLy0xJy3HcG19BYZ+I9ahVmSt8UJmqUN
yJItkwLPJkXP5sQGn7+zqSZjTX9c7HxWlKbZGTtUhac4rGk2tWoo3Yy+GlPdm3Q2
vPQk+MtGpKoUx5xy2TtEpb93EAp6XGZ1K3EE5RqbBzXXugaBrZ7UQBZKCgxDMxNn
0qsE8+o2StALyzuSJd1FG3tmh+XSW1iTl5ICiCiwIYNZEwwMlxcUQpNmopTCOhFK
DWU2apWS4vIBAA5TZVQty1ydx1lkExwLJFBZx90SgQdeuHUp++S6Ebb5CjjQplf7
lfUoqBb9U/kqm3VefSr3B46iUJ1cen46LKTth/y/K2EQX2f/z5VOO4lrxkGv3u37
jFgnEBBTGkQZ6LSk2BPlmKuOJys79Cna8lFo1A0EDY7q+kQsE5W3xY9YqUFNrhf0
nksabCZNh158qXg0xwjyBtcpiuUe+wzUgtvd2JvuBQ==
=hgMt
-END PGP SIGNATURE-

--
The best possible search technologies are now affordable for all companies.
Download your FREE open source Enterprise Search Engine today!
Our experts will assist you in its installation for $59/mo, no commitment.
Test it for FREE on our Cloud platform anytime!
http://pubads.g.doubleclick.net/gampad/clk?id=145328191iu=/4140/ostg.clktrk
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] [PATCH] mingw-w64-crt: Build system changes for ARM

2014-05-23 Thread André Hentschel
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Am 22.05.2014 11:36, schrieb Jean-Baptiste Kempf:
 On 19 May, André Hentschel wrote :
 Hope it is ok to compress these 1.8 MB
 
 To be honest, it would be easier to review if you just send the
 non-generated files :)
 

You're right, here it is.

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.12 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQGcBAEBAgAGBQJTf7LpAAoJEGm5GZTakYssJmkL/AuqWqZR67wQVB4Kibj6TxZ/
i6u7+5STwoliEgx9K5GUwSlN3OmgbhrVU3SP404tfuJuXLlavbmMv9wCtmXDZkYr
glDL6d2sut742/PbaWy00TZNlPEBAGSdfbQEAbVEuVakVb+SHqzaEZtAmH5O27Sv
ft7Q2f6svQ7p09zkM9j74cbO9tAmkIXXK3vb2yU8qCGthRcvRF2O6UBwG7NNWbjN
gg1/J+RUh2NBv7wAjcmGEDdK0A/VrdIU+gEx37/4yI8Z9reB6oXaXy2wd3Iglf9c
dFRt7p5CwCS/ao+Dda4xvYckDlfCsF3+9xjtagPp21z89+1T19twFrjFMoeUWOwv
OQ5ms4wyFzbdDBkZAWJcokrTmF6WJ91FB0cNSuyDdoeVR3KF+hMSrmm6ADj3r+3h
BTHgwlzDoFvwBT/HjbRBw4QG7zyp8xo2rfII7DyzGcugFPqg8hMDLtYjBeFYf/Ph
HJslu3ijQG2q4eBvgXRJz9uNGsY75LAH2FcpMqwX6A==
=q7lm
-END PGP SIGNATURE-
diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index 47532cb..3806416 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -26,14 +26,18 @@ AM_DLLTOOLFLAGS=-k --as=$(AS) --output-lib $@
 if DELAY_IMPORT_LIBS
   AM_DLLTOOLFLAGS += --output-delaylib $@.delayimp.a
 endif
+CPPFLAGSARM32=-mfpu=vfp
 CPPFLAGS32=-m32
 CPPFLAGS64=-m64
+DLLTOOLFLAGSARM32=
 DLLTOOLFLAGS32=--as-flags=--32 -m i386
 DLLTOOLFLAGS64=--as-flags=--64 -m i386:x86-64
+DTDEFARM32=$(DLLTOOL) $(DLLTOOLFLAGSARM32) $(AM_DLLTOOLFLAGS) --input-def
 DTDEF32=$(DLLTOOL) $(DLLTOOLFLAGS32) $(AM_DLLTOOLFLAGS) --input-def
 DTDEF64=$(DLLTOOL) $(DLLTOOLFLAGS64) $(AM_DLLTOOLFLAGS) --input-def
 DTLIB32=$(DTDEF32) $(top_srcdir)/`echo $@ | $(SED) 's|/lib|/|;s|\.a|.def|'`
 DTLIB64=$(DTDEF64) $(top_srcdir)/`echo $@ | $(SED) 's|/lib|/|;s|\.a|.def|'`
+LDFLAGSARM32= -L$(top_builddir)/libarm32
 LDFLAGS32=-m32 -L$(top_builddir)/lib32
 LDFLAGS64=-m64 -L$(top_builddir)/lib64
 extra_include=-I$(top_srcdir)/include
@@ -1087,6 +1091,259 @@ endif
 # End 64-bit runtime
 ##
 
+
+
+if LIBARM32
+#
+# Compiling ARM 32-bit runtime
+#
+
+libarm32dir=$(prefix)/@LIBARM32SUFFIXDIR@
+crt32dir=$(libarm32dir)
+winrt32dir=$(libarm32dir)
+dx32dir=$(libarm32dir)
+
+winrt32_DATA = $(winrtlibs)
+
+if !W32API
+crt32_DATA = \
+  libarm32/crt1.olibarm32/crt2.o libarm32/crt1u.o   libarm32/crt2u.o   
 libarm32/dllcrt1.olibarm32/dllcrt2.o \
+  libarm32/CRT_fp8.o libarm32/CRT_fp10.o libarm32/txtmode.o libarm32/binmode.o 
 libarm32/crtbegin.o   libarm32/crtend.o \
+  libarm32/gcrt0.o   libarm32/gcrt1.olibarm32/gcrt2.o   
libarm32/CRT_glob.o libarm32/CRT_noglob.o
+else
+crt32_DATA =
+endif
+
+COMPILE32=$(COMPILE) $(CPPFLAGSARM32) $(extra_include) -D_SYSCRT=1 -DCRTDLL=1
+libarm32/crt1.o: crt/crtexe.c
+   $(COMPILE32) -c $ -o $@ -D__CRTDLL__ -U__MSVCRT__
+libarm32/crt2.o: crt/crtexe.c
+   $(COMPILE32) -c $ -o $@ -U__CRTDLL__ -D__MSVCRT__
+libarm32/crt1u.o: crt/ucrtexe.c
+   $(COMPILE32) -c $ -o $@ -D__CRTDLL__ -U__MSVCRT__
+libarm32/crt2u.o: crt/ucrtexe.c
+   $(COMPILE32) -c $ -o $@ -U__CRTDLL__ -D__MSVCRT__
+libarm32/dllcrt1.o: crt/crtdll.c
+   $(COMPILE32) -c $ -o $@ -D__CRTDLL__ -U__MSVCRT__
+libarm32/dllcrt2.o: crt/crtdll.c
+   $(COMPILE32) -c $ -o $@ -U__CRTDLL__ -D__MSVCRT__
+
+libarm32/gcrt0.o: profile/gcrt0.c
+   $(COMPILE) $(CPPFLAGSARM32) -c $ -o $@
+libarm32/gcrt1.o: profile/gcrt0.c
+   $(COMPILE) $(CPPFLAGSARM32) -c $ -o $@ -U__MSVCRT__
+libarm32/gcrt2.o: profile/gcrt0.c
+   $(COMPILE) $(CPPFLAGSARM32) -c $ -o $@ -D__MSVCRT__
+
+libarm32/%.o: crt/%.c
+   $(COMPILE) $(CPPFLAGSARM32) -c $ -o $@
+
+# These source files aren't compiled in to any library yet.  I'm not sure how 
/ where to do so.
+# The source files that I did compile somewhere I just guessed at anyway.
+#
+
+temp= \
+dxerr.c \
+test.c
+
+libarm32_LIBRARIES = libarm32/libkernel32.a
+libarm32_libkernel32_a_SOURCES = $(src_intrincs)
+libarm32_libkernel32_a_AR = $(DTLIB32)  $(AR) $(ARFLAGS)
+libarm32_libkernel32_a_CPPFLAGS=$(CPPFLAGSARM32) $(extra_include) 
$(AM_CPPFLAGS)
+
+if !W32API
+libarm32_LIBRARIES += libarm32/libmsvcrt.a
+libarm32_libmsvcrt_a_SOURCES = $(src_msvcrt32) libarm32/msvcrt.def.in
+libarm32_libmsvcrt_a_AR = $(DTDEFARM32) libarm32/msvcrt.def  $(AR) $(ARFLAGS)
+libarm32_libmsvcrt_a_CPPFLAGS=$(CPPFLAGSARM32) -D__LIBMSVCRT__ 
$(extra_include) $(sysincludes)
+EXTRA_libarm32_libmsvcrt_a_DEPENDENCIES=libarm32/msvcrt.def
+endif
+
+libarm32_LIBRARIES += libarm32/libshell32.a
+libarm32_libshell32_a_SOURCES = $(src_libshell32)
+libarm32_libshell32_a_AR = $(DTLIB32)  $(AR) $(ARFLAGS)
+libarm32_libshell32_a_CPPFLAGS=$(CPPFLAGSARM32) $(sysincludes)
+
+libarm32_LIBRARIES += libarm32/libdinput.a
+libarm32_libdinput_a_SOURCES = $(src_libdinput)
+libarm32_libdinput_a_AR = $(DTLIB32)  $(AR) $(ARFLAGS)
+libarm32_libdinput_a_CPPFLAGS=$(CPPFLAGSARM32) $(sysincludes)
+
+libarm32_LIBRARIES += libarm32/libdinput8

[Mingw-w64-public] [PATCH] Various changes for ARM

2014-05-12 Thread André Hentschel
Please review, i'll split it up and commit it.
Index: mingw-w64-headers/crt/intrin.h
===
--- mingw-w64-headers/crt/intrin.h	(Revision 6627)
+++ mingw-w64-headers/crt/intrin.h	(Arbeitskopie)
@@ -1057,7 +1057,7 @@
 /* __MACHINEI(__MINGW_EXTENSION unsigned __int64 __readmsr(unsigned __LONG32)) moved to psdk_inc/intrin-impl.h */
 /* __MACHINEI(__MINGW_EXTENSION void __writemsr(unsigned __LONG32,unsigned __int64)) moved to psdk_inc/intrin-impl.h */
 #ifndef __GNUC__
-__MACHINEI(__MINGW_EXTENSION unsigned __int64 __rdtsc(void))
+__MACHINEIW64(__MINGW_EXTENSION unsigned __int64 __rdtsc(void))
 #endif
 /* __MACHINEI(void __movsb(unsigned char *,unsigned char const *,size_t)) moved to psdk_inc/intrin-impl.h */
 /* __MACHINEI(void __movsw(unsigned short *,unsigned short const *,size_t)) moved to psdk_inc/intrin-impl.h */
Index: mingw-w64-crt/math/trunc.S
===
--- mingw-w64-crt/math/trunc.S	(Revision 6627)
+++ mingw-w64-crt/math/trunc.S	(Arbeitskopie)
@@ -8,14 +8,14 @@
 	.file trunc.S
 	.text
 	.p2align 4,,15
-.globl __MINGW_USYMBOL(trunc)
+	.globl __MINGW_USYMBOL(trunc)
 .def__MINGW_USYMBOL(trunc);  .scl2;  .type   32; .endef
 
 #ifdef _WIN64
 	.seh_proc __MINGW_USYMBOL(trunc)
 #endif
 __MINGW_USYMBOL(trunc):
-#ifdef _WIN64
+#if defined(_AMD64_) || defined(__x86_64__)
 	subq	$24, %rsp
 	.seh_stackalloc	24
 	.seh_endprologue
@@ -75,7 +75,15 @@
 	addq	$24, %rsp
 	ret
 	.seh_endproc
-#else
+#elif defined(_ARM_) || defined(__arm__)
+	vmrs	r1, fpscr
+	orr		r0, r1, #0x00c0 /* Round towards Zero */
+	vmsr	fpscr, r0
+	vcvtr.s32.f64	s0, d0
+	vcvt.f64.s32	d0, s0
+	vmsr	fpscr, r1
+	bx	lr
+#elif defined(_X86_) || defined(__i386__)
 	fldl4(%esp)
 	subl	$8, %esp
 	fstcw	(%esp)
Index: mingw-w64-crt/math/nearbyint.S
===
--- mingw-w64-crt/math/nearbyint.S	(Revision 6627)
+++ mingw-w64-crt/math/nearbyint.S	(Arbeitskopie)
@@ -12,10 +12,10 @@
 #else
 	.align 4
 #endif
-.globl __MINGW_USYMBOL(nearbyint)
+	.globl __MINGW_USYMBOL(nearbyint)
 	.def	__MINGW_USYMBOL(nearbyint);	.scl	2;	.type	32;	.endef
 __MINGW_USYMBOL(nearbyint):
-#ifdef _WIN64
+#if defined(_AMD64_) || defined(__x86_64__)
 	movsd	%xmm0,-16(%rsp)
 	fldl	-16(%rsp)
 	pushq	%rax
@@ -33,7 +33,11 @@
 	fstpl	-16(%rsp)
 	movsd	-16(%rsp),%xmm0
 	ret
-#else
+#elif defined(_ARM_) || defined(__arm__)
+	vcvtr.s32.f64	s0, d0
+	vcvt.f64.s32	d0, s0
+	bx	lr
+#elif defined(_X86_) || defined(__i386__)
 	fldl	4(%esp)
 	pushl	%eax
 	pushl	%ecx
Index: mingw-w64-crt/math/floorl.S
===
--- mingw-w64-crt/math/floorl.S	(Revision 6627)
+++ mingw-w64-crt/math/floorl.S	(Arbeitskopie)
@@ -12,10 +12,10 @@
 #else
 	.align 4
 #endif
-.globl __MINGW_USYMBOL(floorl)
+	.globl __MINGW_USYMBOL(floorl)
 	.def	__MINGW_USYMBOL(floorl);	.scl	2;	.type	32;	.endef
 __MINGW_USYMBOL(floorl):
-#ifdef _WIN64
+#if defined(_AMD64_) || defined(__x86_64__)
 	fldt	(%rdx)
 	subq	$24,%rsp
 
@@ -39,7 +39,16 @@
 	movq	$0,8(%rcx)
 	fstpt	(%rcx)
 	ret
-#else
+#elif defined(_ARM_) || defined(__arm__)
+	vmrs	r1, fpscr
+	bic		r0, r1, #0x00c0
+	orr		r0, r0, #0x0080 /* Round towards Minus Infinity */
+	vmsr	fpscr, r0
+	vcvtr.s32.f64	s0, d0
+	vcvt.f64.s32	d0, s0
+	vmsr	fpscr, r1
+	bx	lr
+#elif defined(_X86_) || defined(__i386__)
 	fldt	4(%esp)
 	subl	$8,%esp
 
Index: mingw-w64-crt/math/ceill.S
===
--- mingw-w64-crt/math/ceill.S	(Revision 6627)
+++ mingw-w64-crt/math/ceill.S	(Arbeitskopie)
@@ -12,10 +12,10 @@
 #else
 	.align 4
 #endif
-.globl __MINGW_USYMBOL(ceill)
+	.globl __MINGW_USYMBOL(ceill)
 	.def	__MINGW_USYMBOL(ceill);	.scl	2;	.type	32;	.endef
 __MINGW_USYMBOL(ceill):
-#ifdef _WIN64
+#if defined(_AMD64_) || defined(__x86_64__)
 	fldt	(%rdx)
 	subq	$24,%rsp
 
@@ -39,7 +39,16 @@
 	movq	$0,8(%rcx)
 	fstpt	(%rcx)
 	ret
-#else
+#elif defined(_ARM_) || defined(__arm__)
+	vmrs	r1, fpscr
+	bic		r0, r1, #0x00c0
+	orr		r0, r0, #0x0040 /* Round towards Plus Infinity */
+	vmsr	fpscr, r0
+	vcvtr.s32.f64	s0, d0
+	vcvt.f64.s32	d0, s0
+	vmsr	fpscr, r1
+	bx	lr
+#elif defined(_X86_) || defined(__i386__)
 	fldt	4(%esp)
 	subl	$8,%esp
 	fstcw	4(%esp)
Index: mingw-w64-crt/math/copysignl.S
===
--- mingw-w64-crt/math/copysignl.S	(Revision 6627)
+++ mingw-w64-crt/math/copysignl.S	(Arbeitskopie)
@@ -18,10 +18,10 @@
 	.align 4
 #endif
 
-.globl __MINGW_USYMBOL(copysignl)
+	.globl __MINGW_USYMBOL(copysignl)
 	.def	__MINGW_USYMBOL(copysignl);	.scl	2;	.type	32;	.endef
 __MINGW_USYMBOL(copysignl):
-#ifdef _WIN64
+#if defined(_AMD64_) || defined(__x86_64__)
 	movq	(%rdx), %rax
 	movq	%rax, (%rcx)
 	movq	8(%rdx), %rax
@@ -32,7 +32,19 @@
 	movq	%rax, 8(%rcx)
 	movq	%rcx, %rax
 	ret
-#else
+#elif defined(_ARM_) || 

Re: [Mingw-w64-public] [PATCH] Various changes for ARM

2014-05-09 Thread André Hentschel
What about this?

Am 09.05.2014 00:08, schrieb Kai Tietz:
 Hi
 
 I would prefer here to use __x86_64__ __i386__ etc.
 Have you tested that your changes work for IA targets?
 
 Cheers
 Kai
 
 Am 08.05.2014 23:35 schrieb André Hentschel n...@dawncrow.de 
 mailto:n...@dawncrow.de:
 
 Please review, i'll split it up and commit it.
 
 the tab before .globl is needed, otherwise it's not recognized on ARM.
 DECLSPEC_ALIGN(8) for the context seems to be hardly supported by our 
 current toolchain
 
Index: mingw-w64-crt/math/_chgsignl.S
===
--- mingw-w64-crt/math/_chgsignl.S	(Revision 6618)
+++ mingw-w64-crt/math/_chgsignl.S	(Arbeitskopie)
@@ -25,10 +25,10 @@
 #else
 	.align 4
 #endif
-.globl __MINGW_USYMBOL(_chgsignl)
+	.globl __MINGW_USYMBOL(_chgsignl)
 	.def	__MINGW_USYMBOL(_chgsignl);	.scl	2;	.type	32;	.endef
 __MINGW_USYMBOL(_chgsignl):
-#ifdef _WIN64
+#if defined(_AMD64_) || defined(__x86_64__)
 	movq	(%rdx), %rax
 	movq	8(%rdx), %rdx
 	xorq	$0x8000, %rdx
@@ -36,7 +36,10 @@
 	movq	%rdx, 8(%rcx)
 	movq	%rcx, %rax
 	ret
-#else
+#elif defined(_ARM_)
+	vneg.f64	d0, d0
+	bx	lr
+#elif defined(_X86_) || defined(__i386__)
 	movl	12(%esp),%eax
 	xorl	$0x8000,%eax
 	movl	%eax,12(%esp)
Index: mingw-w64-headers/include/winnt.h
===
--- mingw-w64-headers/include/winnt.h	(Revision 6618)
+++ mingw-w64-headers/include/winnt.h	(Arbeitskopie)
@@ -1838,7 +1838,7 @@
 LONGLONG High;
   } NEON128, *PNEON128;
 
-  typedef struct DECLSPEC_ALIGN(8) _CONTEXT {
+  typedef struct _CONTEXT {
 DWORD ContextFlags;
 
 DWORD R0;
--
Is your legacy SCM system holding you back? Join Perforce May 7 to find out:
#149; 3 signs your SCM is hindering your productivity
#149; Requirements for releasing software faster
#149; Expert tips and advice for migrating your SCM now
http://p.sf.net/sfu/perforce___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] [PATCH] Various changes for ARM

2014-05-08 Thread André Hentschel
Please review, i'll split it up and commit it.

the tab before .globl is needed, otherwise it's not recognized on ARM.
DECLSPEC_ALIGN(8) for the context seems to be hardly supported by our current 
toolchain
Index: mingw-w64-crt/math/_chgsignl.S
===
--- mingw-w64-crt/math/_chgsignl.S	(Revision 6615)
+++ mingw-w64-crt/math/_chgsignl.S	(Arbeitskopie)
@@ -25,10 +25,10 @@
 #else
 	.align 4
 #endif
-.globl __MINGW_USYMBOL(_chgsignl)
+	.globl __MINGW_USYMBOL(_chgsignl)
 	.def	__MINGW_USYMBOL(_chgsignl);	.scl	2;	.type	32;	.endef
 __MINGW_USYMBOL(_chgsignl):
-#ifdef _WIN64
+#if defined(_AMD64_)
 	movq	(%rdx), %rax
 	movq	8(%rdx), %rdx
 	xorq	$0x8000, %rdx
@@ -36,7 +36,10 @@
 	movq	%rdx, 8(%rcx)
 	movq	%rcx, %rax
 	ret
-#else
+#elif defined(_ARM_)
+	vneg.f64	d0, d0
+	bx	lr
+#elif defined(_X86_)
 	movl	12(%esp),%eax
 	xorl	$0x8000,%eax
 	movl	%eax,12(%esp)
Index: mingw-w64-headers/include/winnt.h
===
--- mingw-w64-headers/include/winnt.h	(Revision 6615)
+++ mingw-w64-headers/include/winnt.h	(Arbeitskopie)
@@ -1838,7 +1838,7 @@
 LONGLONG High;
   } NEON128, *PNEON128;
 
-  typedef struct DECLSPEC_ALIGN(8) _CONTEXT {
+  typedef struct _CONTEXT {
 DWORD ContextFlags;
 
 DWORD R0;
--
Is your legacy SCM system holding you back? Join Perforce May 7 to find out:
#149; 3 signs your SCM is hindering your productivity
#149; Requirements for releasing software faster
#149; Expert tips and advice for migrating your SCM now
http://p.sf.net/sfu/perforce___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] [PATCH] Various changes for ARM

2014-05-08 Thread André Hentschel
Is this meant to run on ia64?:
 #if defined(_AMD64_)
   movq(%rdx), %rax
   movq8(%rdx), %rdx
   xorq$0x8000, %rdx
   movq%rax, (%rcx)
   movq%rdx, 8(%rcx)
   movq%rcx, %rax
   ret



Am 09.05.2014 00:08, schrieb Kai Tietz:
 Hi
 
 I would prefer here to use __x86_64__ __i386__ etc.
 Have you tested that your changes work for IA targets?
 
 Cheers
 Kai
 
 Am 08.05.2014 23:35 schrieb André Hentschel n...@dawncrow.de 
 mailto:n...@dawncrow.de:
 
 Please review, i'll split it up and commit it.
 
 the tab before .globl is needed, otherwise it's not recognized on ARM.
 DECLSPEC_ALIGN(8) for the context seems to be hardly supported by our 
 current toolchain
 

--
Is your legacy SCM system holding you back? Join Perforce May 7 to find out:
#149; 3 signs your SCM is hindering your productivity
#149; Requirements for releasing software faster
#149; Expert tips and advice for migrating your SCM now
http://p.sf.net/sfu/perforce
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] [PATCH] Don't use __stdcall on ARM

2014-05-06 Thread André Hentschel
Am 06.05.2014 21:01, schrieb Yaakov (Cygwin/X):
 On 2014-05-05 16:32, André Hentschel wrote:
 Am 05.05.2014 23:29, schrieb André Hentschel:
 Please review, i'll commit it.

 Again the right patch attached now, it's getting late, sorry.
 
 Since stdcall isn't used on x64 either, wouldn't it make more sense to 
 just do the following in _mingw.h:
 
   /* C/C++ specific language defines.  */
 -#ifdef _WIN64
 +#if defined(_WIN64) || defined(_ARM_)
   #ifdef __stdcall
   #undef __stdcall
   #endif
   #define __stdcall
   #endif
 
 
 Yaakov
 Cygwin Ports
 

Looks like that should work, be free to send a patch as this should help with 
the remaining use of __stdcall in functions


--
Is your legacy SCM system holding you back? Join Perforce May 7 to find out:
#149; 3 signs your SCM is hindering your productivity
#149; Requirements for releasing software faster
#149; Expert tips and advice for migrating your SCM now
http://p.sf.net/sfu/perforce
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] [PATCH] Various header fixes for ARM

2014-05-06 Thread André Hentschel
Please review, i'll split it up and commit it.

Index: mingw-w64-headers/crt/setjmp.h
===
--- mingw-w64-headers/crt/setjmp.h	(Revision 6610)
+++ mingw-w64-headers/crt/setjmp.h	(Arbeitskopie)
@@ -141,6 +141,27 @@
 SETJMP_FLOAT128 Xmm15;
   } _JUMP_BUFFER;
 
+#elif defined(_ARM_)
+
+#define _JBLEN 28
+#define _JBTYPE int
+
+  typedef struct __JUMP_BUFFER {
+unsigned long Frame;
+unsigned long R4;
+unsigned long R5;
+unsigned long R6;
+unsigned long R7;
+unsigned long R8;
+unsigned long R9;
+unsigned long R10;
+unsigned long R11;
+unsigned long Sp;
+unsigned long Pc;
+unsigned long Fpscr;
+unsigned long long D[8];
+  } _JUMP_BUFFER;
+
 #endif
 
 #ifndef _JMP_BUF_DEFINED
Index: mingw-w64-headers/crt/intrin.h
===
--- mingw-w64-headers/crt/intrin.h	(Revision 6610)
+++ mingw-w64-headers/crt/intrin.h	(Arbeitskopie)
@@ -99,6 +99,8 @@
 #endif
 #endif
 
+#if (defined(_X86_) || defined(__x86_64))
+
 #if defined(__MMX__) || defined(__MINGW_FORCE_SYS_INTRINS)
 #if defined(__cplusplus)
 extern C {
@@ -150,6 +152,8 @@
 #endif
 #endif
 
+#endif
+
 #if (defined(_X86_)  !defined(__x86_64))
 #if defined(__cplusplus)
 extern C {
Index: mingw-w64-headers/crt/malloc.h
===
--- mingw-w64-headers/crt/malloc.h	(Revision 6610)
+++ mingw-w64-headers/crt/malloc.h	(Arbeitskopie)
@@ -134,7 +134,7 @@
 #define _ALLOCA_S_STACK_MARKER 0x
 #define _ALLOCA_S_HEAP_MARKER 0x
 
-#if(defined(_X86_)  !defined(__x86_64))
+#if defined(_ARM_) || (defined(_X86_)  !defined(__x86_64))
 #define _ALLOCA_S_MARKER_SIZE 8
 #elif defined(__ia64__) || defined(__x86_64)
 #define _ALLOCA_S_MARKER_SIZE 16
--
Is your legacy SCM system holding you back? Join Perforce May 7 to find out:
#149; 3 signs your SCM is hindering your productivity
#149; Requirements for releasing software faster
#149; Expert tips and advice for migrating your SCM now
http://p.sf.net/sfu/perforce___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] [PATCH] More ARM related changes to winnt.h

2014-05-05 Thread André Hentschel
Please review, i'll commit it. (most likely i'll split it up into individual 
patches, if that's ok)
Index: mingw-w64-headers/include/winnt.h
===
--- mingw-w64-headers/include/winnt.h   (Revision 6596)
+++ mingw-w64-headers/include/winnt.h   (Arbeitskopie)
@@ -32,6 +32,13 @@
 #endif
 #endif /* _AMD64_ */
 
+#if defined(__arm__)  \
+  !(defined(_X86_) || defined(__x86_64) || defined(_AMD64_) || defined 
(__ia64__))
+#if !defined(_ARM_)
+#define _ARM_
+#endif
+#endif /* _ARM_ */
+
 #if defined(__ia64__)  \
   !(defined(_X86_) || defined(__x86_64) || defined(_AMD64_) || defined 
(__arm__))
 #if !defined(_IA64_)
@@ -1728,6 +1735,172 @@
 #endif /* end of _AMD64_ */
 
 
+#ifdef _ARM_
+
+#if defined(__arm__)  !defined(RC_INVOKED)
+
+#ifdef __cplusplus
+  extern C {
+#endif
+
+#define BitTest _bittest
+#define BitTestAndComplement _bittestandcomplement
+#define BitTestAndSet _bittestandset
+#define BitTestAndReset _bittestandreset
+
+#define BitScanForward _BitScanForward
+#define BitScanReverse _BitScanReverse
+
+#define InterlockedIncrement16 _InterlockedIncrement16
+#define InterlockedDecrement16 _InterlockedDecrement16
+#define InterlockedCompareExchange16 _InterlockedCompareExchange16
+
+#define InterlockedAnd _InterlockedAnd
+#define InterlockedOr _InterlockedOr
+#define InterlockedXor _InterlockedXor
+#define InterlockedIncrement _InterlockedIncrement
+#define InterlockedIncrementAcquire InterlockedIncrement
+#define InterlockedIncrementRelease InterlockedIncrement
+#define InterlockedDecrement _InterlockedDecrement
+#define InterlockedDecrementAcquire InterlockedDecrement
+#define InterlockedDecrementRelease InterlockedDecrement
+#define InterlockedAdd _InterlockedAdd
+#define InterlockedExchange _InterlockedExchange
+#define InterlockedExchangeAdd _InterlockedExchangeAdd
+#define InterlockedCompareExchange _InterlockedCompareExchange
+#define InterlockedCompareExchangeAcquire InterlockedCompareExchange
+#define InterlockedCompareExchangeRelease InterlockedCompareExchange
+
+#define InterlockedAnd64 _InterlockedAnd64
+#define InterlockedAndAffinity InterlockedAnd64
+#define InterlockedOr64 _InterlockedOr64
+#define InterlockedOrAffinity InterlockedOr64
+#define InterlockedXor64 _InterlockedXor64
+#define InterlockedIncrement64 _InterlockedIncrement64
+#define InterlockedDecrement64 _InterlockedDecrement64
+#define InterlockedAdd64 _InterlockedAdd64
+#define InterlockedExchange64 _InterlockedExchange64
+#define InterlockedExchangeAcquire64 InterlockedExchange64
+#define InterlockedExchangeAdd64 _InterlockedExchangeAdd64
+#define InterlockedCompareExchange64 _InterlockedCompareExchange64
+#define InterlockedCompareExchangeAcquire64 InterlockedCompareExchange64
+#define InterlockedCompareExchangeRelease64 InterlockedCompareExchange64
+
+#define InterlockedExchangePointer _InterlockedExchangePointer
+#define InterlockedCompareExchangePointer _InterlockedCompareExchangePointer
+#define InterlockedCompareExchangePointerAcquire 
_InterlockedCompareExchangePointer
+#define InterlockedCompareExchangePointerRelease 
_InterlockedCompareExchangePointer
+
+#ifdef __cplusplus
+  }
+#endif
+#endif /* defined(__arm__)  !defined(RC_INVOKED) */
+
+#define EXCEPTION_READ_FAULT0
+#define EXCEPTION_WRITE_FAULT   1
+#define EXCEPTION_EXECUTE_FAULT 8
+
+#if !defined(RC_INVOKED)
+
+#define CONTEXT_ARM0x020
+
+#define CONTEXT_CONTROL (CONTEXT_ARM | 0x0001)
+#define CONTEXT_INTEGER (CONTEXT_ARM | 0x0002)
+#define CONTEXT_FLOATING_POINT  (CONTEXT_ARM | 0x0004)
+#define CONTEXT_DEBUG_REGISTERS (CONTEXT_ARM | 0x0008)
+
+#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | 
CONTEXT_FLOATING_POINT)
+
+#define CONTEXT_ALL  (CONTEXT_CONTROL | CONTEXT_INTEGER | 
CONTEXT_FLOATING_POINT | CONTEXT_DEBUG_REGISTERS)
+
+#define CONTEXT_EXCEPTION_ACTIVE0x0800
+#define CONTEXT_SERVICE_ACTIVE  0x1000
+#define CONTEXT_EXCEPTION_REQUEST   0x4000
+#define CONTEXT_EXCEPTION_REPORTING 0x8000
+
+#define CONTEXT_UNWOUND_TO_CALL 0x2000
+
+#endif /* !defined(RC_INVOKED) */
+
+#define INITIAL_CPSR  0x10
+#define INITIAL_FPSCR 0x00
+
+#define ARM_MAX_BREAKPOINTS 8
+#define ARM_MAX_WATCHPOINTS 1
+
+
+  typedef struct _NEON128 {
+ULONGLONG Low;
+LONGLONG High;
+  } NEON128, *PNEON128;
+
+  typedef struct DECLSPEC_ALIGN(8) _CONTEXT {
+DWORD ContextFlags;
+
+DWORD R0;
+DWORD R1;
+DWORD R2;
+DWORD R3;
+DWORD R4;
+DWORD R5;
+DWORD R6;
+DWORD R7;
+DWORD R8;
+DWORD R9;
+DWORD R10;
+DWORD R11;
+DWORD R12;
+
+DWORD Sp;
+DWORD Lr;
+DWORD Pc;
+DWORD Cpsr;
+
+DWORD Fpscr;
+DWORD Padding;
+union {
+NEON128   Q[16];
+ULONGLONG D[32];
+DWORD S[32];
+} DUMMYUNIONNAME;
+
+DWORD Bvr[ARM_MAX_BREAKPOINTS];
+DWORD Bcr[ARM_MAX_BREAKPOINTS];
+DWORD Wvr[ARM_MAX_WATCHPOINTS];
+DWORD 

Re: [Mingw-w64-public] [PATCH] More ARM related changes to winnt.h

2014-05-05 Thread André Hentschel
Am 05.05.2014 22:17, schrieb André Hentschel:
 Please review, i'll commit it. (most likely i'll split it up into individual 
 patches, if that's ok)

Sorry, now with the correct changes attached

Index: mingw-w64-headers/include/winnt.h
===
--- mingw-w64-headers/include/winnt.h	(Revision 6606)
+++ mingw-w64-headers/include/winnt.h	(Arbeitskopie)
@@ -256,7 +256,11 @@
 #endif
 #endif /* FASTCALL */
 
+#if defined(_ARM_)
+#define NTAPI
+#else
 #define NTAPI __stdcall
+#endif
 #define NTAPI_INLINE NTAPI
 
 #if !defined(_NTSYSTEM_)
@@ -1870,9 +1874,10 @@
 DWORD Wcr[ARM_MAX_WATCHPOINTS];
 
 DWORD Padding2[2];
-  } CONTEXT;
+  } CONTEXT, *PCONTEXT;
 
   typedef struct _IMAGE_ARM_RUNTIME_FUNCTION_ENTRY RUNTIME_FUNCTION, *PRUNTIME_FUNCTION;
+  typedef PRUNTIME_FUNCTION (*PGET_RUNTIME_FUNCTION_CALLBACK)(DWORD64 ControlPc,PVOID Context);
 
 #define UNW_FLAG_NHANDLER   0x0
 #define UNW_FLAG_EHANDLER   0x1
@@ -1896,6 +1901,26 @@
 UNWIND_HISTORY_TABLE_ENTRY Entry[UNWIND_HISTORY_TABLE_SIZE];
   } UNWIND_HISTORY_TABLE, *PUNWIND_HISTORY_TABLE;
 
+  typedef struct _KNONVOLATILE_CONTEXT_POINTERS {
+PDWORD R4;
+PDWORD R5;
+PDWORD R6;
+PDWORD R7;
+PDWORD R8;
+PDWORD R9;
+PDWORD R10;
+PDWORD R11;
+PDWORD Lr;
+PULONGLONG D8;
+PULONGLONG D9;
+PULONGLONG D10;
+PULONGLONG D11;
+PULONGLONG D12;
+PULONGLONG D13;
+PULONGLONG D14;
+PULONGLONG D15;
+  } KNONVOLATILE_CONTEXT_POINTERS, *PKNONVOLATILE_CONTEXT_POINTERS;
+
 #define OUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK_EXPORT_NAME OutOfProcessFunctionTableCallback
 
 #endif /* _ARM_ */
--
Is your legacy SCM system holding you back? Join Perforce May 7 to find out:
#149; 3 signs your SCM is hindering your productivity
#149; Requirements for releasing software faster
#149; Expert tips and advice for migrating your SCM now
http://p.sf.net/sfu/perforce___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] Register your vote (was Re: mingw-w64 may move to git in the future)

2014-05-04 Thread André Hentschel
Am 02.05.2014 13:02, schrieb JonY:
 Calling all regular mingw-w64 users, for the benefit of all, let's run a
 poll on user opinions on the move.
 
 In order to qualify to vote, please state how you are using mingw-w64
 and how this change may affect you (what's your stake in it?). You may
 discuss compromises and workarounds. Registration will be open for 1
 week until 9th of May. Please speak up!
 
 As for the mingw-w64 developers, you need only show your SF user IDs
 when voting. As long as you have write access and have made at least 1
 commit with that ID, you get a vote.
 
 Voting will start once registration is closed and will last until the 16th.
 

I'd like to definitely vote for Git.

I recently became a mingw-w64 developer and i want to attack ARMv7 support and 
Wine related things.

I prefer Git on all platforms over SVN, while i think hg is also OK.
At work i convinced most of my colleagues to use TortoiseGit when on Windows 
and they love it and see the benefits now
(and they also were convinced of TortoiseSVN before, but i guess you can't get 
them back...)
(And yes, coming from Wine, which uses Git, i might sound a bit biased)

PS: Offending mails like from Rodney are really wrong and are not constructive

--
Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.  Get 
unparalleled scalability from the best Selenium testing platform available.
Simple to use. Nothing to install. Get started now for free.
http://p.sf.net/sfu/SauceLabs
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] [PATCH] Add basic ARM context definitions

2014-04-22 Thread André Hentschel
Hi,
I should introduce myself a bit for those who don't know me already,
I'm mostly known as a Wine developer and i did quite some ARM work for it.
Now Kai invited me to also do some ARM work for mingw-w64, so i start trying :)
For what i want a arm*-w64-mingw gcc? For Wine :) I'd really like to compile 
wine-gecko for Wine on ARM...
My IRC nick is Andre_H, feel free to ask questions.
Index: mingw-w64-headers/include/winnt.h
===
--- mingw-w64-headers/include/winnt.h   (Revision 6596)
+++ mingw-w64-headers/include/winnt.h   (Arbeitskopie)
@@ -32,6 +32,13 @@
 #endif
 #endif /* _AMD64_ */
 
+#if defined(__arm__)  \
+  !(defined(_X86_) || defined(__x86_64) || defined(_AMD64_) || defined 
(__ia64__))
+#if !defined(_ARM_)
+#define _ARM_
+#endif
+#endif /* _ARM_ */
+
 #if defined(__ia64__)  \
   !(defined(_X86_) || defined(__x86_64) || defined(_AMD64_) || defined 
(__arm__))
 #if !defined(_IA64_)
@@ -1728,6 +1735,172 @@
 #endif /* end of _AMD64_ */
 
 
+#ifdef _ARM_
+
+#if defined(__arm__)  !defined(RC_INVOKED)
+
+#ifdef __cplusplus
+  extern C {
+#endif
+
+#define BitTest _bittest
+#define BitTestAndComplement _bittestandcomplement
+#define BitTestAndSet _bittestandset
+#define BitTestAndReset _bittestandreset
+
+#define BitScanForward _BitScanForward
+#define BitScanReverse _BitScanReverse
+
+#define InterlockedIncrement16 _InterlockedIncrement16
+#define InterlockedDecrement16 _InterlockedDecrement16
+#define InterlockedCompareExchange16 _InterlockedCompareExchange16
+
+#define InterlockedAnd _InterlockedAnd
+#define InterlockedOr _InterlockedOr
+#define InterlockedXor _InterlockedXor
+#define InterlockedIncrement _InterlockedIncrement
+#define InterlockedIncrementAcquire InterlockedIncrement
+#define InterlockedIncrementRelease InterlockedIncrement
+#define InterlockedDecrement _InterlockedDecrement
+#define InterlockedDecrementAcquire InterlockedDecrement
+#define InterlockedDecrementRelease InterlockedDecrement
+#define InterlockedAdd _InterlockedAdd
+#define InterlockedExchange _InterlockedExchange
+#define InterlockedExchangeAdd _InterlockedExchangeAdd
+#define InterlockedCompareExchange _InterlockedCompareExchange
+#define InterlockedCompareExchangeAcquire InterlockedCompareExchange
+#define InterlockedCompareExchangeRelease InterlockedCompareExchange
+
+#define InterlockedAnd64 _InterlockedAnd64
+#define InterlockedAndAffinity InterlockedAnd64
+#define InterlockedOr64 _InterlockedOr64
+#define InterlockedOrAffinity InterlockedOr64
+#define InterlockedXor64 _InterlockedXor64
+#define InterlockedIncrement64 _InterlockedIncrement64
+#define InterlockedDecrement64 _InterlockedDecrement64
+#define InterlockedAdd64 _InterlockedAdd64
+#define InterlockedExchange64 _InterlockedExchange64
+#define InterlockedExchangeAcquire64 InterlockedExchange64
+#define InterlockedExchangeAdd64 _InterlockedExchangeAdd64
+#define InterlockedCompareExchange64 _InterlockedCompareExchange64
+#define InterlockedCompareExchangeAcquire64 InterlockedCompareExchange64
+#define InterlockedCompareExchangeRelease64 InterlockedCompareExchange64
+
+#define InterlockedExchangePointer _InterlockedExchangePointer
+#define InterlockedCompareExchangePointer _InterlockedCompareExchangePointer
+#define InterlockedCompareExchangePointerAcquire 
_InterlockedCompareExchangePointer
+#define InterlockedCompareExchangePointerRelease 
_InterlockedCompareExchangePointer
+
+#ifdef __cplusplus
+  }
+#endif
+#endif /* defined(__arm__)  !defined(RC_INVOKED) */
+
+#define EXCEPTION_READ_FAULT0
+#define EXCEPTION_WRITE_FAULT   1
+#define EXCEPTION_EXECUTE_FAULT 8
+
+#if !defined(RC_INVOKED)
+
+#define CONTEXT_ARM0x020
+
+#define CONTEXT_CONTROL (CONTEXT_ARM | 0x0001)
+#define CONTEXT_INTEGER (CONTEXT_ARM | 0x0002)
+#define CONTEXT_FLOATING_POINT  (CONTEXT_ARM | 0x0004)
+#define CONTEXT_DEBUG_REGISTERS (CONTEXT_ARM | 0x0008)
+
+#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | 
CONTEXT_FLOATING_POINT)
+
+#define CONTEXT_ALL  (CONTEXT_CONTROL | CONTEXT_INTEGER | 
CONTEXT_FLOATING_POINT | CONTEXT_DEBUG_REGISTERS)
+
+#define CONTEXT_EXCEPTION_ACTIVE0x0800
+#define CONTEXT_SERVICE_ACTIVE  0x1000
+#define CONTEXT_EXCEPTION_REQUEST   0x4000
+#define CONTEXT_EXCEPTION_REPORTING 0x8000
+
+#define CONTEXT_UNWOUND_TO_CALL 0x2000
+
+#endif /* !defined(RC_INVOKED) */
+
+#define INITIAL_CPSR  0x10
+#define INITIAL_FPSCR 0x00
+
+#define ARM_MAX_BREAKPOINTS 8
+#define ARM_MAX_WATCHPOINTS 1
+
+
+  typedef struct _NEON128 {
+ULONGLONG Low;
+LONGLONG High;
+  } NEON128, *PNEON128;
+
+  typedef struct DECLSPEC_ALIGN(8) _CONTEXT {
+DWORD ContextFlags;
+
+DWORD R0;
+DWORD R1;
+DWORD R2;
+DWORD R3;
+DWORD R4;
+DWORD R5;
+DWORD R6;
+DWORD R7;
+DWORD R8;
+DWORD R9;
+DWORD R10;
+DWORD R11;
+DWORD R12;
+
+DWORD Sp;
+DWORD Lr;
+DWORD Pc;
+DWORD Cpsr;
+
+DWORD