Fixes for Windows ARM64 (#251)
* aarch64_fpmath.h: deal with LLP64 (Windows ARM64) use uint64_t instead of unsigned long, as unsigned long is only 32 bits on Windows * Make.inc: WINNT aarch64 long double is double Add to list along with Darwin
This commit is contained in:
parent
a9568fbd22
commit
3d4a902f31
2
Make.inc
2
Make.inc
@ -151,7 +151,7 @@ ifneq ($(filter $(ARCH),i387 amd64),)
|
||||
# `long double` is the same as `double`.
|
||||
LONG_DOUBLE_NOT_DOUBLE := 1
|
||||
else ifeq ($(ARCH), aarch64)
|
||||
ifneq ($(OS),Darwin)
|
||||
ifeq ($(filter $(OS),Darwin WINNT),)
|
||||
LONG_DOUBLE_NOT_DOUBLE := 1
|
||||
endif
|
||||
endif
|
||||
|
@ -30,15 +30,15 @@
|
||||
union IEEEl2bits {
|
||||
long double e;
|
||||
struct {
|
||||
unsigned long manl :64;
|
||||
unsigned long manh :48;
|
||||
uint64_t manl :64;
|
||||
uint64_t manh :48;
|
||||
unsigned int exp :15;
|
||||
unsigned int sign :1;
|
||||
} bits;
|
||||
/* TODO andrew: Check the packing here */
|
||||
struct {
|
||||
unsigned long manl :64;
|
||||
unsigned long manh :48;
|
||||
uint64_t manl :64;
|
||||
uint64_t manh :48;
|
||||
unsigned int expsign :16;
|
||||
} xbits;
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user