Skip to content

Commit 387213e

Browse files
committed
Check sub immediate
1 parent cc3e5f8 commit 387213e

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

backend/arm64/emit.mlp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -877,7 +877,7 @@ let assembly_code_for_allocation i ~local ~n ~far ~dbginfo =
877877
let domain_local_top_offset = DS.(idx_of_field Domain_local_top) * 8 in
878878
` ldr {emit_reg reg_tmp1}, [{emit_reg reg_domain_state_ptr}, #{emit_int domain_local_limit_offset}]\n`;
879879
` ldr {emit_reg r}, [{emit_reg reg_domain_state_ptr}, #{emit_int domain_local_sp_offset}]\n`;
880-
` sub {emit_reg r}, {emit_reg r}, #{emit_int n}\n`;
880+
emit_subimm r r n;
881881
` str {emit_reg r}, [{emit_reg reg_domain_state_ptr}, #{emit_int domain_local_sp_offset}]\n`;
882882
` cmp {emit_reg r}, {emit_reg reg_tmp1}\n`;
883883
let lbl_call = Cmm.new_label () in
@@ -904,7 +904,7 @@ let assembly_code_for_allocation i ~local ~n ~far ~dbginfo =
904904
assert (16 <= n && n < 0x1_000 && n land 0x7 = 0);
905905
let offset = Domainstate.(idx_of_field Domain_young_limit) * 8 in
906906
` ldr {emit_reg reg_tmp1}, [{emit_reg reg_domain_state_ptr}, #{emit_int offset}]\n`;
907-
` sub {emit_reg reg_alloc_ptr}, {emit_reg reg_alloc_ptr}, #{emit_int n}\n`;
907+
emit_subimm reg_alloc_ptr reg_alloc_ptr n;
908908
` cmp {emit_reg reg_alloc_ptr}, {emit_reg reg_tmp1}\n`;
909909
if not far then begin
910910
` b.lo {emit_label lbl_call_gc}\n`

0 commit comments

Comments
 (0)