diff options
author | Mike Pall <mike> | 2023-09-09 14:15:18 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2023-09-09 14:15:18 +0200 |
commit | 4651ff2fbc30a8326bcfc8e9d719fbf30856f5e2 (patch) | |
tree | 354463b823dec57a607766e7b24d5316ceb21d42 /src/lj_asm_arm64.h | |
parent | 9daf9f9003ff29551ef3b6fe19f4abf868bfd414 (diff) | |
download | luajit-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.h | 9 |
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; |