1*5a02ffc3SAndrew Turner/* 2*5a02ffc3SAndrew Turner * memmove using MOPS extension. 3*5a02ffc3SAndrew Turner * 4*5a02ffc3SAndrew Turner * Copyright (c) 2023, Arm Limited. 5*5a02ffc3SAndrew Turner * SPDX-License-Identifier: MIT OR Apache-2.0 WITH LLVM-exception 6*5a02ffc3SAndrew Turner */ 7*5a02ffc3SAndrew Turner 8*5a02ffc3SAndrew Turner#include "asmdefs.h" 9*5a02ffc3SAndrew Turner 10*5a02ffc3SAndrew TurnerENTRY (__memmove_aarch64_mops) 11*5a02ffc3SAndrew Turner PTR_ARG (0) 12*5a02ffc3SAndrew Turner PTR_ARG (1) 13*5a02ffc3SAndrew Turner SIZE_ARG (2) 14*5a02ffc3SAndrew Turner 15*5a02ffc3SAndrew Turner mov x3, x0 16*5a02ffc3SAndrew Turner .inst 0x1d010443 /* cpyp [x3]!, [x1]!, x2! */ 17*5a02ffc3SAndrew Turner .inst 0x1d410443 /* cpym [x3]!, [x1]!, x2! */ 18*5a02ffc3SAndrew Turner .inst 0x1d810443 /* cpye [x3]!, [x1]!, x2! */ 19*5a02ffc3SAndrew Turner ret 20*5a02ffc3SAndrew Turner 21*5a02ffc3SAndrew TurnerEND (__memmove_aarch64_mops) 22