mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-07 23:24:09 +00:00
Portability cleanups for assembler backend.
This commit is contained in:
parent
3168d9aa59
commit
3a942d6cea
@ -987,7 +987,7 @@ static void asm_head_root(ASMState *as)
|
||||
{
|
||||
int32_t spadj;
|
||||
asm_head_root_base(as);
|
||||
emit_setgli(as, vmstate, (int32_t)as->T->traceno);
|
||||
emit_setvmstate(as, (int32_t)as->T->traceno);
|
||||
spadj = asm_stack_adjust(as);
|
||||
as->T->spadjust = (uint16_t)spadj;
|
||||
emit_spsub(as, spadj);
|
||||
@ -1082,7 +1082,7 @@ static void asm_head_side(ASMState *as)
|
||||
}
|
||||
|
||||
/* Store trace number and adjust stack frame relative to the parent. */
|
||||
emit_setgli(as, vmstate, (int32_t)as->T->traceno);
|
||||
emit_setvmstate(as, (int32_t)as->T->traceno);
|
||||
emit_spsub(as, spdelta);
|
||||
|
||||
/* Restore target registers from parent spill slots. */
|
||||
@ -1169,7 +1169,7 @@ static void asm_tail_link(ASMState *as)
|
||||
pc = retpc;
|
||||
}
|
||||
emit_loada(as, RID_DISPATCH, J2GG(as->J)->dispatch);
|
||||
emit_loada(as, RID_PC, pc);
|
||||
emit_loada(as, RID_LPC, pc);
|
||||
mres = (int32_t)(snap->nslots - baseslot);
|
||||
switch (bc_op(*pc)) {
|
||||
case BC_CALLM: case BC_CALLMT:
|
||||
|
@ -261,8 +261,9 @@ static void emit_movmroi(ASMState *as, Reg base, int32_t ofs, int32_t i)
|
||||
emit_rma(as, (xo), (r), (void *)&J2G(as->J)->field)
|
||||
#define emit_getgl(as, r, field) emit_opgl(as, XO_MOV, (r), field)
|
||||
#define emit_setgl(as, r, field) emit_opgl(as, XO_MOVto, (r), field)
|
||||
#define emit_setgli(as, field, i) \
|
||||
(emit_i32(as, i), emit_opgl(as, XO_MOVmi, 0, field))
|
||||
|
||||
#define emit_setvmstate(as, i) \
|
||||
(emit_i32(as, i), emit_opgl(as, XO_MOVmi, 0, vmstate))
|
||||
|
||||
/* mov r, i / xor r, r */
|
||||
static void emit_loadi(ASMState *as, Reg r, int32_t i)
|
||||
|
@ -43,10 +43,10 @@ enum {
|
||||
/* These definitions must match with the *.dasc file(s): */
|
||||
RID_BASE = RID_EDX, /* Interpreter BASE. */
|
||||
#if LJ_64 && !LJ_ABI_WIN
|
||||
RID_PC = RID_EBX, /* Interpreter PC. */
|
||||
RID_LPC = RID_EBX, /* Interpreter PC. */
|
||||
RID_DISPATCH = RID_R14D, /* Interpreter DISPATCH table. */
|
||||
#else
|
||||
RID_PC = RID_ESI, /* Interpreter PC. */
|
||||
RID_LPC = RID_ESI, /* Interpreter PC. */
|
||||
RID_DISPATCH = RID_EBX, /* Interpreter DISPATCH table. */
|
||||
#endif
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user