aboutsummaryrefslogtreecommitdiff
path: root/src/lj_asm_arm64.h
diff options
context:
space:
mode:
authorMike Pall <mike>2023-09-09 14:15:18 +0200
committerMike Pall <mike>2023-09-09 14:15:18 +0200
commit4651ff2fbc30a8326bcfc8e9d719fbf30856f5e2 (patch)
tree354463b823dec57a607766e7b24d5316ceb21d42 /src/lj_asm_arm64.h
parent9daf9f9003ff29551ef3b6fe19f4abf868bfd414 (diff)
downloadluajit-4651ff2fbc30a8326bcfc8e9d719fbf30856f5e2.tar.gz
luajit-4651ff2fbc30a8326bcfc8e9d719fbf30856f5e2.tar.bz2
luajit-4651ff2fbc30a8326bcfc8e9d719fbf30856f5e2.zip
ARM64: Inline only use of emit_loada.
Thanks to Peter Cawley. #1065
Diffstat (limited to 'src/lj_asm_arm64.h')
-rw-r--r--src/lj_asm_arm64.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/lj_asm_arm64.h b/src/lj_asm_arm64.h
index 5e690308..a575269b 100644
--- a/src/lj_asm_arm64.h
+++ b/src/lj_asm_arm64.h
@@ -831,10 +831,13 @@ static void asm_href(ASMState *as, IRIns *ir, IROp merge)
831 /* Key not found in chain: jump to exit (if merged) or load niltv. */ 831 /* Key not found in chain: jump to exit (if merged) or load niltv. */
832 l_end = emit_label(as); 832 l_end = emit_label(as);
833 as->invmcp = NULL; 833 as->invmcp = NULL;
834 if (merge == IR_NE) 834 if (merge == IR_NE) {
835 asm_guardcc(as, CC_AL); 835 asm_guardcc(as, CC_AL);
836 else if (destused) 836 } else if (destused) {
837 emit_loada(as, dest, niltvg(J2G(as->J))); 837 uint32_t k12 = emit_isk12(offsetof(global_State, nilnode.val));
838 lj_assertA(k12 != 0, "Cannot k12 encode niltv(L)");
839 emit_dn(as, A64I_ADDx^k12, dest, RID_GL);
840 }
838 841
839 /* Follow hash chain until the end. */ 842 /* Follow hash chain until the end. */
840 l_loop = --as->mcp; 843 l_loop = --as->mcp;