diff options
| author | Mike Pall <mike> | 2025-11-27 17:45:17 +0100 |
|---|---|---|
| committer | Mike Pall <mike> | 2025-11-27 17:45:17 +0100 |
| commit | f80b349d5490aa289b2925d297f3f3c618977570 (patch) | |
| tree | 8d8fb0d2beb3e863592139d603ada63e5aa6ce77 /src/lj_trace.c | |
| parent | 3215838aa744d148e79a8ea0bd7c014e984302cb (diff) | |
| download | luajit-f80b349d5490aa289b2925d297f3f3c618977570.tar.gz luajit-f80b349d5490aa289b2925d297f3f3c618977570.tar.bz2 luajit-f80b349d5490aa289b2925d297f3f3c618977570.zip | |
Unify Lua number to FFI integer conversions.
Phew. #1411
Diffstat (limited to 'src/lj_trace.c')
| -rw-r--r-- | src/lj_trace.c | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/src/lj_trace.c b/src/lj_trace.c index 47d7faa5..ad329540 100644 --- a/src/lj_trace.c +++ b/src/lj_trace.c | |||
| @@ -317,32 +317,34 @@ void lj_trace_initstate(global_State *g) | |||
| 317 | tv[1].u64 = U64x(80000000,00000000); | 317 | tv[1].u64 = U64x(80000000,00000000); |
| 318 | 318 | ||
| 319 | /* Initialize 32/64 bit constants. */ | 319 | /* Initialize 32/64 bit constants. */ |
| 320 | #if LJ_TARGET_X64 || LJ_TARGET_MIPS64 | ||
| 321 | J->k64[LJ_K64_M2P64].u64 = U64x(c3f00000,00000000); | ||
| 322 | #endif | ||
| 320 | #if LJ_TARGET_X86ORX64 | 323 | #if LJ_TARGET_X86ORX64 |
| 321 | J->k64[LJ_K64_TOBIT].u64 = U64x(43380000,00000000); | 324 | J->k64[LJ_K64_TOBIT].u64 = U64x(43380000,00000000); |
| 322 | #if LJ_32 | ||
| 323 | J->k64[LJ_K64_M2P64_31].u64 = U64x(c1e00000,00000000); | ||
| 324 | #endif | ||
| 325 | J->k64[LJ_K64_2P64].u64 = U64x(43f00000,00000000); | 325 | J->k64[LJ_K64_2P64].u64 = U64x(43f00000,00000000); |
| 326 | J->k32[LJ_K32_M2P64_31] = LJ_64 ? 0xdf800000 : 0xcf000000; | ||
| 327 | #endif | 326 | #endif |
| 327 | #if LJ_TARGET_MIPS64 | ||
| 328 | J->k64[LJ_K64_2P63].u64 = U64x(43e00000,00000000); | ||
| 329 | #endif | ||
| 330 | #if LJ_TARGET_MIPS | ||
| 331 | J->k64[LJ_K64_2P31].u64 = U64x(41e00000,00000000); | ||
| 332 | #endif | ||
| 333 | |||
| 328 | #if LJ_TARGET_X86ORX64 || LJ_TARGET_MIPS64 | 334 | #if LJ_TARGET_X86ORX64 || LJ_TARGET_MIPS64 |
| 329 | J->k64[LJ_K64_M2P64].u64 = U64x(c3f00000,00000000); | 335 | J->k32[LJ_K32_M2P64] = 0xdf800000; |
| 336 | #endif | ||
| 337 | #if LJ_TARGET_MIPS64 | ||
| 338 | J->k32[LJ_K32_2P63] = 0x5f000000; | ||
| 330 | #endif | 339 | #endif |
| 331 | #if LJ_TARGET_PPC | 340 | #if LJ_TARGET_PPC |
| 332 | J->k32[LJ_K32_2P52_2P31] = 0x59800004; | 341 | J->k32[LJ_K32_2P52_2P31] = 0x59800004; |
| 333 | J->k32[LJ_K32_2P52] = 0x59800000; | 342 | J->k32[LJ_K32_2P52] = 0x59800000; |
| 334 | #endif | 343 | #endif |
| 335 | #if LJ_TARGET_PPC || LJ_TARGET_MIPS | 344 | #if LJ_TARGET_PPC |
| 336 | J->k32[LJ_K32_2P31] = 0x4f000000; | 345 | J->k32[LJ_K32_2P31] = 0x4f000000; |
| 337 | #endif | 346 | #endif |
| 338 | #if LJ_TARGET_MIPS | 347 | |
| 339 | J->k64[LJ_K64_2P31].u64 = U64x(41e00000,00000000); | ||
| 340 | #if LJ_64 | ||
| 341 | J->k64[LJ_K64_2P63].u64 = U64x(43e00000,00000000); | ||
| 342 | J->k32[LJ_K32_2P63] = 0x5f000000; | ||
| 343 | J->k32[LJ_K32_M2P64] = 0xdf800000; | ||
| 344 | #endif | ||
| 345 | #endif | ||
| 346 | #if LJ_TARGET_PPC || LJ_TARGET_MIPS32 | 348 | #if LJ_TARGET_PPC || LJ_TARGET_MIPS32 |
| 347 | J->k32[LJ_K32_VM_EXIT_HANDLER] = (uintptr_t)(void *)lj_vm_exit_handler; | 349 | J->k32[LJ_K32_VM_EXIT_HANDLER] = (uintptr_t)(void *)lj_vm_exit_handler; |
| 348 | J->k32[LJ_K32_VM_EXIT_INTERP] = (uintptr_t)(void *)lj_vm_exit_interp; | 350 | J->k32[LJ_K32_VM_EXIT_INTERP] = (uintptr_t)(void *)lj_vm_exit_interp; |
