@@ -192,8 +192,8 @@ let memcpy_small_arg sz arg tmp =
192192 assert false
193193
194194let expand_builtin_memcpy_small sz al src dst =
195- let tsrc = if dst <> BA (IR X17 ) then X17 else X29 in
196- let tdst = if src <> BA (IR X29 ) then X29 else X17 in
195+ let tsrc = if dst <> BA (IR X17 ) then X17 else X15 in
196+ let tdst = if src <> BA (IR X15 ) then X15 else X17 in
197197 let (rsrc, osrc) = memcpy_small_arg sz src tsrc in
198198 let (rdst, odst) = memcpy_small_arg sz dst tdst in
199199 let rec copy osrc odst sz =
@@ -233,29 +233,29 @@ let memcpy_big_arg arg tmp =
233233let expand_builtin_memcpy_big sz al src dst =
234234 assert (sz > = 16 );
235235 memcpy_big_arg src X30 ;
236- memcpy_big_arg dst X29 ;
236+ memcpy_big_arg dst X14 ;
237237 let lbl = new_label () in
238238 expand_loadimm32 X15 (Z. of_uint (sz / 16 ));
239239 emit (Plabel lbl);
240240 emit (Pldp (X16 , X17 , ADpostincr (RR1 X30 , _16)));
241- emit (Pstp (X16 , X17 , ADpostincr (RR1 X29 , _16)));
241+ emit (Pstp (X16 , X17 , ADpostincr (RR1 X14 , _16)));
242242 emit (Psubimm (W , RR1 X15 , RR1 X15 , _1));
243243 emit (Pcbnz (W , X15 , lbl));
244244 if sz mod 16 > = 8 then begin
245245 emit (Pldrx (X16 , ADpostincr (RR1 X30 , _8)));
246- emit (Pstrx (X16 , ADpostincr (RR1 X29 , _8)))
246+ emit (Pstrx (X16 , ADpostincr (RR1 X14 , _8)))
247247 end ;
248248 if sz mod 8 > = 4 then begin
249249 emit (Pldrw (X16 , ADpostincr (RR1 X30 , _4)));
250- emit (Pstrw (X16 , ADpostincr (RR1 X29 , _4)))
250+ emit (Pstrw (X16 , ADpostincr (RR1 X14 , _4)))
251251 end ;
252252 if sz mod 4 > = 2 then begin
253253 emit (Pldrh (W , X16 , ADpostincr (RR1 X30 , _2)));
254- emit (Pstrh (X16 , ADpostincr (RR1 X29 , _2)))
254+ emit (Pstrh (X16 , ADpostincr (RR1 X14 , _2)))
255255 end ;
256256 if sz mod 2 > = 1 then begin
257257 emit (Pldrb (W , X16 , ADpostincr (RR1 X30 , _1)));
258- emit (Pstrb (X16 , ADpostincr (RR1 X29 , _1)))
258+ emit (Pstrb (X16 , ADpostincr (RR1 X14 , _1)))
259259 end
260260
261261let expand_builtin_memcpy sz al args =
@@ -412,7 +412,7 @@ let expand_builtin_inline name args res =
412412let expand_instruction instr =
413413 match instr with
414414 | Pallocframe (sz , ofs ) ->
415- emit (Pmov (RR1 X29 , XSP ));
415+ emit (Pmov (RR1 X15 , XSP ));
416416 if is_current_function_variadic() && Archi. abi = Archi. AAPCS64 then begin
417417 let (ir, fr, _) =
418418 next_arg_locations 0 0 0 (get_current_function_args () ) in
@@ -423,7 +423,7 @@ let expand_instruction instr =
423423 current_function_stacksize := Z. to_int64 sz
424424 end ;
425425 expand_addimm64 XSP XSP (Ptrofs. repr (Z. neg sz));
426- expand_storeptr X29 XSP ofs
426+ expand_storeptr X15 XSP ofs
427427 | Pfreeframe (sz , ofs ) ->
428428 expand_addimm64 XSP XSP (coqint_of_camlint64 ! current_function_stacksize)
429429 | Pcvtx2w rd ->
0 commit comments