aboutsummaryrefslogtreecommitdiff
path: root/src/lj_asm.c
diff options
context:
space:
mode:
authorMike Pall <mike>2023-09-09 16:30:14 +0200
committerMike Pall <mike>2023-09-09 16:30:14 +0200
commit5149b0a3a2809fef155ff2b2f01c667d920db3c2 (patch)
tree9e35cab02b970a44715e8168a6530e0b468fb9a2 /src/lj_asm.c
parentdfc122e45ce0dd76a47794789b413aeaa4cc3773 (diff)
downloadluajit-5149b0a3a2809fef155ff2b2f01c667d920db3c2.tar.gz
luajit-5149b0a3a2809fef155ff2b2f01c667d920db3c2.tar.bz2
luajit-5149b0a3a2809fef155ff2b2f01c667d920db3c2.zip
ARM64: Consolidate 32/64-bit constant handling in assembler.
Thanks to Peter Cawley. #1065
Diffstat (limited to 'src/lj_asm.c')
-rw-r--r--src/lj_asm.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/lj_asm.c b/src/lj_asm.c
index c02a1b9e..844910ad 100644
--- a/src/lj_asm.c
+++ b/src/lj_asm.c
@@ -606,7 +606,11 @@ static Reg ra_allock(ASMState *as, intptr_t k, RegSet allow)
606 IRIns *ir = IR(ref); 606 IRIns *ir = IR(ref);
607 if ((ir->o == IR_KINT64 && k == (int64_t)ir_kint64(ir)->u64) || 607 if ((ir->o == IR_KINT64 && k == (int64_t)ir_kint64(ir)->u64) ||
608#if LJ_GC64 608#if LJ_GC64
609#if LJ_TARGET_ARM64
610 (ir->o == IR_KINT && (uint64_t)k == (uint32_t)ir->i) ||
611#else
609 (ir->o == IR_KINT && k == ir->i) || 612 (ir->o == IR_KINT && k == ir->i) ||
613#endif
610 (ir->o == IR_KGC && k == (intptr_t)ir_kgc(ir)) || 614 (ir->o == IR_KGC && k == (intptr_t)ir_kgc(ir)) ||
611 ((ir->o == IR_KPTR || ir->o == IR_KKPTR) && 615 ((ir->o == IR_KPTR || ir->o == IR_KKPTR) &&
612 k == (intptr_t)ir_kptr(ir)) 616 k == (intptr_t)ir_kptr(ir))