mirror of
https://github.com/ZDoom/gzdoom-gles.git
synced 2024-11-10 14:51:46 +00:00
- Hard code gdtoa constants for OS X since the programs can’t always be run on the target. (The values are the same for GCC and Clang.)
This commit is contained in:
parent
49edd7c60c
commit
1e50a0af9e
3 changed files with 52 additions and 4 deletions
|
@ -15,7 +15,7 @@ endif( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" S
|
||||||
include_directories( ${CMAKE_CURRENT_BINARY_DIR} )
|
include_directories( ${CMAKE_CURRENT_BINARY_DIR} )
|
||||||
add_definitions( -DINFNAN_CHECK -DMULTIPLE_THREADS )
|
add_definitions( -DINFNAN_CHECK -DMULTIPLE_THREADS )
|
||||||
|
|
||||||
if( NOT MSVC )
|
if( NOT MSVC AND NOT APPLE )
|
||||||
if( NOT CMAKE_CROSSCOMPILING )
|
if( NOT CMAKE_CROSSCOMPILING )
|
||||||
add_executable( arithchk arithchk.c )
|
add_executable( arithchk arithchk.c )
|
||||||
endif( NOT CMAKE_CROSSCOMPILING )
|
endif( NOT CMAKE_CROSSCOMPILING )
|
||||||
|
@ -35,7 +35,7 @@ if( NOT MSVC )
|
||||||
|
|
||||||
set( GEN_FP_FILES arith.h gd_qnan.h )
|
set( GEN_FP_FILES arith.h gd_qnan.h )
|
||||||
set( GEN_FP_DEPS ${CMAKE_CURRENT_BINARY_DIR}/arith.h ${CMAKE_CURRENTY_BINARY_DIR}/gd_qnan.h )
|
set( GEN_FP_DEPS ${CMAKE_CURRENT_BINARY_DIR}/arith.h ${CMAKE_CURRENTY_BINARY_DIR}/gd_qnan.h )
|
||||||
endif( NOT MSVC )
|
endif( NOT MSVC AND NOT APPLE )
|
||||||
|
|
||||||
add_library( gdtoa
|
add_library( gdtoa
|
||||||
${GEN_FP_FILES}
|
${GEN_FP_FILES}
|
||||||
|
|
|
@ -32,7 +32,7 @@ THIS SOFTWARE.
|
||||||
#ifndef GDTOA_H_INCLUDED
|
#ifndef GDTOA_H_INCLUDED
|
||||||
#define GDTOA_H_INCLUDED
|
#define GDTOA_H_INCLUDED
|
||||||
|
|
||||||
#ifdef _MSC_VER
|
#if defined(_MSC_VER)
|
||||||
/* [RH] Generating arith.h strikes me as too cumbersome under Visual
|
/* [RH] Generating arith.h strikes me as too cumbersome under Visual
|
||||||
* Studio, so here's the equivalent, given the limited number of
|
* Studio, so here's the equivalent, given the limited number of
|
||||||
* architectures that MSC can target. (Itanium? Who cares about that?)
|
* architectures that MSC can target. (Itanium? Who cares about that?)
|
||||||
|
@ -43,6 +43,26 @@ THIS SOFTWARE.
|
||||||
#ifdef _M_X64
|
#ifdef _M_X64
|
||||||
#define X64_bit_pointers
|
#define X64_bit_pointers
|
||||||
#endif
|
#endif
|
||||||
|
#elif defined(__APPLE__)
|
||||||
|
/* [BL] While generating the files may be easy, on OS X we have cross
|
||||||
|
* compiling to deal with, which means we can't run the generation
|
||||||
|
* program on the target.
|
||||||
|
*/
|
||||||
|
#if defined(__x86_64__)
|
||||||
|
#define IEEE_8087
|
||||||
|
#define Arith_Kind_ASL 1
|
||||||
|
#define Long int
|
||||||
|
#define Intcast (int)(long)
|
||||||
|
#define Double_Align
|
||||||
|
#define X64_bit_pointers
|
||||||
|
#elif defined(__i386__)
|
||||||
|
#define IEEE_8087
|
||||||
|
#define Arith_Kind_ASL 1
|
||||||
|
#else
|
||||||
|
#define IEEE_MC68k
|
||||||
|
#define Arith_Kind_ASL 2
|
||||||
|
#define Double_Align
|
||||||
|
#endif
|
||||||
#else
|
#else
|
||||||
#include "arith.h"
|
#include "arith.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -167,7 +167,7 @@ THIS SOFTWARE.
|
||||||
#define GDTOAIMP_H_INCLUDED
|
#define GDTOAIMP_H_INCLUDED
|
||||||
#include "gdtoa.h"
|
#include "gdtoa.h"
|
||||||
|
|
||||||
#ifdef _MSC_VER
|
#if defined(_MSC_VER)
|
||||||
/* [RH] Generating gd_qnan.h strikes me as too cumbersome under Visual
|
/* [RH] Generating gd_qnan.h strikes me as too cumbersome under Visual
|
||||||
* Studio, so here's the equivalent, given the limited number of
|
* Studio, so here's the equivalent, given the limited number of
|
||||||
* architectures that MSC can target. (Itanium? Who cares about that?)
|
* architectures that MSC can target. (Itanium? Who cares about that?)
|
||||||
|
@ -188,6 +188,34 @@ THIS SOFTWARE.
|
||||||
* it turns out that it has a true long double type. I thought that
|
* it turns out that it has a true long double type. I thought that
|
||||||
* all ia32 compilers had phased out extended precision.
|
* all ia32 compilers had phased out extended precision.
|
||||||
*/
|
*/
|
||||||
|
#elif defined(__APPLE__)
|
||||||
|
#if defined(__x86_64__) || defined(__i386__)
|
||||||
|
#define f_QNAN 0xffc00000
|
||||||
|
#define d_QNAN0 0x0
|
||||||
|
#define d_QNAN1 0xfff80000
|
||||||
|
#define ld_QNAN0 0x0
|
||||||
|
#define ld_QNAN1 0xc0000000
|
||||||
|
#define ld_QNAN2 0xffff
|
||||||
|
#define ld_QNAN3 0x0
|
||||||
|
#define ldus_QNAN0 0x0
|
||||||
|
#define ldus_QNAN1 0x0
|
||||||
|
#define ldus_QNAN2 0x0
|
||||||
|
#define ldus_QNAN3 0xc000
|
||||||
|
#define ldus_QNAN4 0xffff
|
||||||
|
#else
|
||||||
|
#define f_QNAN 0xffc00000
|
||||||
|
#define d_QNAN0 0xfff80000
|
||||||
|
#define d_QNAN1 0x0
|
||||||
|
#define ld_QNAN0 0xfff80000
|
||||||
|
#define ld_QNAN1 0x0
|
||||||
|
#define ld_QNAN2 0x0
|
||||||
|
#define ld_QNAN3 0x0
|
||||||
|
#define ldus_QNAN0 0xfff8
|
||||||
|
#define ldus_QNAN1 0x0
|
||||||
|
#define ldus_QNAN2 0x0
|
||||||
|
#define ldus_QNAN3 0x0
|
||||||
|
#define ldus_QNAN4 0x0
|
||||||
|
#endif
|
||||||
#else
|
#else
|
||||||
#include "gd_qnan.h"
|
#include "gd_qnan.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue