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 mov x3, x0 12*5a02ffc3SAndrew Turner .inst 0x1d010443 /* cpyp [x3]!, [x1]!, x2! */ 13*5a02ffc3SAndrew Turner .inst 0x1d410443 /* cpym [x3]!, [x1]!, x2! */ 14*5a02ffc3SAndrew Turner .inst 0x1d810443 /* cpye [x3]!, [x1]!, x2! */ 15*5a02ffc3SAndrew Turner ret 16*5a02ffc3SAndrew Turner 17*5a02ffc3SAndrew TurnerEND (__memmove_aarch64_mops) 18