mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-07 15:14:08 +00:00
parent
9daf9f9003
commit
4651ff2fbc
@ -831,10 +831,13 @@ static void asm_href(ASMState *as, IRIns *ir, IROp merge)
|
|||||||
/* Key not found in chain: jump to exit (if merged) or load niltv. */
|
/* Key not found in chain: jump to exit (if merged) or load niltv. */
|
||||||
l_end = emit_label(as);
|
l_end = emit_label(as);
|
||||||
as->invmcp = NULL;
|
as->invmcp = NULL;
|
||||||
if (merge == IR_NE)
|
if (merge == IR_NE) {
|
||||||
asm_guardcc(as, CC_AL);
|
asm_guardcc(as, CC_AL);
|
||||||
else if (destused)
|
} else if (destused) {
|
||||||
emit_loada(as, dest, niltvg(J2G(as->J)));
|
uint32_t k12 = emit_isk12(offsetof(global_State, nilnode.val));
|
||||||
|
lj_assertA(k12 != 0, "Cannot k12 encode niltv(L)");
|
||||||
|
emit_dn(as, A64I_ADDx^k12, dest, RID_GL);
|
||||||
|
}
|
||||||
|
|
||||||
/* Follow hash chain until the end. */
|
/* Follow hash chain until the end. */
|
||||||
l_loop = --as->mcp;
|
l_loop = --as->mcp;
|
||||||
|
@ -230,8 +230,6 @@ static void emit_loadk(ASMState *as, Reg rd, uint64_t u64, int is64)
|
|||||||
/* Load a 64 bit constant into a GPR. */
|
/* Load a 64 bit constant into a GPR. */
|
||||||
#define emit_loadu64(as, rd, i) emit_loadk(as, rd, i, A64I_X)
|
#define emit_loadu64(as, rd, i) emit_loadk(as, rd, i, A64I_X)
|
||||||
|
|
||||||
#define emit_loada(as, r, addr) emit_loadu64(as, (r), (uintptr_t)(addr))
|
|
||||||
|
|
||||||
#define glofs(as, k) \
|
#define glofs(as, k) \
|
||||||
((intptr_t)((uintptr_t)(k) - (uintptr_t)&J2GG(as->J)->g))
|
((intptr_t)((uintptr_t)(k) - (uintptr_t)&J2GG(as->J)->g))
|
||||||
#define mcpofs(as, k) \
|
#define mcpofs(as, k) \
|
||||||
|
Loading…
Reference in New Issue
Block a user