mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-25 13:31:37 +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} )
|
||||
add_definitions( -DINFNAN_CHECK -DMULTIPLE_THREADS )
|
||||
|
||||
if( NOT MSVC )
|
||||
if( NOT MSVC AND NOT APPLE )
|
||||
if( NOT CMAKE_CROSSCOMPILING )
|
||||
add_executable( arithchk arithchk.c )
|
||||
endif( NOT CMAKE_CROSSCOMPILING )
|
||||
|
@ -35,7 +35,7 @@ if( NOT MSVC )
|
|||
|
||||
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 )
|
||||
endif( NOT MSVC )
|
||||
endif( NOT MSVC AND NOT APPLE )
|
||||
|
||||
add_library( gdtoa
|
||||
${GEN_FP_FILES}
|
||||
|
|
|
@ -32,7 +32,7 @@ THIS SOFTWARE.
|
|||
#ifndef 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
|
||||
* Studio, so here's the equivalent, given the limited number of
|
||||
* architectures that MSC can target. (Itanium? Who cares about that?)
|
||||
|
@ -43,6 +43,26 @@ THIS SOFTWARE.
|
|||
#ifdef _M_X64
|
||||
#define X64_bit_pointers
|
||||
#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
|
||||
#include "arith.h"
|
||||
#endif
|
||||
|
|
|
@ -167,7 +167,7 @@ THIS SOFTWARE.
|
|||
#define GDTOAIMP_H_INCLUDED
|
||||
#include "gdtoa.h"
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#if defined(_MSC_VER)
|
||||
/* [RH] Generating gd_qnan.h strikes me as too cumbersome under Visual
|
||||
* Studio, so here's the equivalent, given the limited number of
|
||||
* 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
|
||||
* 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
|
||||
#include "gd_qnan.h"
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue