xref: /freebsd-src/contrib/arm-optimized-routines/string/aarch64/memset-mops.S (revision f3087bef11543b42e0d69b708f367097a4118d24)
1*5a02ffc3SAndrew Turner/*
2*5a02ffc3SAndrew Turner * memset 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 (__memset_aarch64_mops)
11*5a02ffc3SAndrew Turner	mov     x3, x0
12*5a02ffc3SAndrew Turner	.inst   0x19c10443	/* setp    [x3]!, x2!, x1  */
13*5a02ffc3SAndrew Turner	.inst   0x19c14443	/* setm    [x3]!, x2!, x1  */
14*5a02ffc3SAndrew Turner	.inst   0x19c18443	/* sete    [x3]!, x2!, x1  */
15*5a02ffc3SAndrew Turner	ret
16*5a02ffc3SAndrew Turner
17*5a02ffc3SAndrew TurnerEND (__memset_aarch64_mops)
18