diff options
Diffstat (limited to '')
-rw-r--r-- | src/lj_arch.h | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/src/lj_arch.h b/src/lj_arch.h index b7705642..0145a7c0 100644 --- a/src/lj_arch.h +++ b/src/lj_arch.h | |||
@@ -254,6 +254,29 @@ | |||
254 | #else | 254 | #else |
255 | #define LJ_ARCH_BITS 32 | 255 | #define LJ_ARCH_BITS 32 |
256 | #define LJ_ARCH_NAME "ppc" | 256 | #define LJ_ARCH_NAME "ppc" |
257 | |||
258 | #if !defined(LJ_ARCH_HASFPU) | ||
259 | #if defined(_SOFT_FLOAT) || defined(_SOFT_DOUBLE) | ||
260 | #define LJ_ARCH_HASFPU 0 | ||
261 | #else | ||
262 | #define LJ_ARCH_HASFPU 1 | ||
263 | #endif | ||
264 | #endif | ||
265 | |||
266 | #if !defined(LJ_ABI_SOFTFP) | ||
267 | #if defined(_SOFT_FLOAT) || defined(_SOFT_DOUBLE) | ||
268 | #define LJ_ABI_SOFTFP 1 | ||
269 | #else | ||
270 | #define LJ_ABI_SOFTFP 0 | ||
271 | #endif | ||
272 | #endif | ||
273 | #endif | ||
274 | |||
275 | #if LJ_ABI_SOFTFP | ||
276 | #define LJ_ARCH_NOJIT 1 /* NYI */ | ||
277 | #define LJ_ARCH_NUMMODE LJ_NUMMODE_DUAL | ||
278 | #else | ||
279 | #define LJ_ARCH_NUMMODE LJ_NUMMODE_DUAL_SINGLE | ||
257 | #endif | 280 | #endif |
258 | 281 | ||
259 | #define LJ_TARGET_PPC 1 | 282 | #define LJ_TARGET_PPC 1 |
@@ -262,7 +285,6 @@ | |||
262 | #define LJ_TARGET_MASKSHIFT 0 | 285 | #define LJ_TARGET_MASKSHIFT 0 |
263 | #define LJ_TARGET_MASKROT 1 | 286 | #define LJ_TARGET_MASKROT 1 |
264 | #define LJ_TARGET_UNIFYROT 1 /* Want only IR_BROL. */ | 287 | #define LJ_TARGET_UNIFYROT 1 /* Want only IR_BROL. */ |
265 | #define LJ_ARCH_NUMMODE LJ_NUMMODE_DUAL_SINGLE | ||
266 | 288 | ||
267 | #if LJ_TARGET_CONSOLE | 289 | #if LJ_TARGET_CONSOLE |
268 | #define LJ_ARCH_PPC32ON64 1 | 290 | #define LJ_ARCH_PPC32ON64 1 |
@@ -415,16 +437,13 @@ | |||
415 | #error "No support for ILP32 model on ARM64" | 437 | #error "No support for ILP32 model on ARM64" |
416 | #endif | 438 | #endif |
417 | #elif LJ_TARGET_PPC | 439 | #elif LJ_TARGET_PPC |
418 | #if defined(_SOFT_FLOAT) || defined(_SOFT_DOUBLE) | ||
419 | #error "No support for PowerPC CPUs without double-precision FPU" | ||
420 | #endif | ||
421 | #if !LJ_ARCH_PPC64 && LJ_ARCH_ENDIAN == LUAJIT_LE | 440 | #if !LJ_ARCH_PPC64 && LJ_ARCH_ENDIAN == LUAJIT_LE |
422 | #error "No support for little-endian PPC32" | 441 | #error "No support for little-endian PPC32" |
423 | #endif | 442 | #endif |
424 | #if LJ_ARCH_PPC64 | 443 | #if LJ_ARCH_PPC64 |
425 | #error "No support for PowerPC 64 bit mode (yet)" | 444 | #error "No support for PowerPC 64 bit mode (yet)" |
426 | #endif | 445 | #endif |
427 | #ifdef __NO_FPRS__ | 446 | #if defined(__NO_FPRS__) && !defined(_SOFT_FLOAT) |
428 | #error "No support for PPC/e500 anymore (use LuaJIT 2.0)" | 447 | #error "No support for PPC/e500 anymore (use LuaJIT 2.0)" |
429 | #endif | 448 | #endif |
430 | #elif LJ_TARGET_MIPS32 | 449 | #elif LJ_TARGET_MIPS32 |