aboutsummaryrefslogtreecommitdiff
path: root/src/lj_asm_arm64.h
diff options
context:
space:
mode:
authorMike Pall <mike>2023-07-12 22:34:46 +0200
committerMike Pall <mike>2023-07-12 22:34:46 +0200
commit8635cbabf3094c4d8bd00578c7d812bea87bb2d3 (patch)
tree79b0a06dba15ef8871baec091d0e51b162bc3f94 /src/lj_asm_arm64.h
parent8fbd576fb9414a5fa70dfa6069733d3416a78269 (diff)
parentaa2db7ebd1267836af5221336ccb4e9b4aa8372d (diff)
downloadluajit-8635cbabf3094c4d8bd00578c7d812bea87bb2d3.tar.gz
luajit-8635cbabf3094c4d8bd00578c7d812bea87bb2d3.tar.bz2
luajit-8635cbabf3094c4d8bd00578c7d812bea87bb2d3.zip
Merge branch 'master' into v2.1
Diffstat (limited to 'src/lj_asm_arm64.h')
-rw-r--r--src/lj_asm_arm64.h7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/lj_asm_arm64.h b/src/lj_asm_arm64.h
index 95138fe9..d3e4bb63 100644
--- a/src/lj_asm_arm64.h
+++ b/src/lj_asm_arm64.h
@@ -1915,7 +1915,7 @@ static void asm_head_root_base(ASMState *as)
1915} 1915}
1916 1916
1917/* Coalesce BASE register for a side trace. */ 1917/* Coalesce BASE register for a side trace. */
1918static RegSet asm_head_side_base(ASMState *as, IRIns *irp, RegSet allow) 1918static Reg asm_head_side_base(ASMState *as, IRIns *irp)
1919{ 1919{
1920 IRIns *ir; 1920 IRIns *ir;
1921 asm_head_lreg(as); 1921 asm_head_lreg(as);
@@ -1923,16 +1923,15 @@ static RegSet asm_head_side_base(ASMState *as, IRIns *irp, RegSet allow)
1923 if (ra_hasreg(ir->r) && (rset_test(as->modset, ir->r) || irt_ismarked(ir->t))) 1923 if (ra_hasreg(ir->r) && (rset_test(as->modset, ir->r) || irt_ismarked(ir->t)))
1924 ra_spill(as, ir); 1924 ra_spill(as, ir);
1925 if (ra_hasspill(irp->s)) { 1925 if (ra_hasspill(irp->s)) {
1926 rset_clear(allow, ra_dest(as, ir, allow)); 1926 return ra_dest(as, ir, RSET_GPR);
1927 } else { 1927 } else {
1928 Reg r = irp->r; 1928 Reg r = irp->r;
1929 lj_assertA(ra_hasreg(r), "base reg lost"); 1929 lj_assertA(ra_hasreg(r), "base reg lost");
1930 rset_clear(allow, r);
1931 if (r != ir->r && !rset_test(as->freeset, r)) 1930 if (r != ir->r && !rset_test(as->freeset, r))
1932 ra_restore(as, regcost_ref(as->cost[r])); 1931 ra_restore(as, regcost_ref(as->cost[r]));
1933 ra_destreg(as, ir, r); 1932 ra_destreg(as, ir, r);
1933 return r;
1934 } 1934 }
1935 return allow;
1936} 1935}
1937 1936
1938/* -- Tail of trace ------------------------------------------------------- */ 1937/* -- Tail of trace ------------------------------------------------------- */