File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -50,16 +50,7 @@ module Make(Cfg:Config) : XXXCompile_gen.S =
5050 (* Reserve SME's slice index register *)
5151 let x12 = Ireg R12
5252
53- let next_reg x =
54- if do_sme then
55- begin
56- let r,x = A64. alloc_reg x in
57- match r with
58- | Ireg R12 -> A64. alloc_reg x
59- | _ -> r,x
60- end
61- else
62- A64. alloc_reg x
53+ let next_reg x = A64. alloc_reg x
6354
6455 let next_reg2 x =
6556 let r1,x = next_reg x in
Original file line number Diff line number Diff line change @@ -1109,6 +1109,13 @@ let is_valid_rmw rmw_list =
11091109 List. length atomic_st_list = List. length (Util.List. uniq ~eq: atomic_op_equal atomic_st_list)
11101110end
11111111
1112+ let free_registers =
1113+ if do_sme then
1114+ (* Reserve SME's slice index register *)
1115+ List. filter ( fun r -> r != Ireg R12 ) allowed_for_symb
1116+ else
1117+ allowed_for_symb
1118+
11121119include
11131120 ArchExtra_gen. Make
11141121 (struct
@@ -1119,7 +1126,7 @@ include
11191126 | _ -> false
11201127
11211128 let pp_reg = pp_reg
1122- let free_registers = allowed_for_symb
1129+ let free_registers = free_registers
11231130
11241131 type special = reg
11251132 type special2 = reg
You can’t perform that action at this time.
0 commit comments