1 /* SPDX-License-Identifier: (GPL-2.0 OR BSD-3- 2 * 3 * Copyright (C) 2017-2018 Jason A. Donenfeld < 4 */ 5 6 #include <linux/linkage.h> 7 8 #include <asm/assembler.h> 9 10 SYM_FUNC_START(__ashlti3) 11 cbz x2, 1f 12 mov x3, #64 13 sub x3, x3, x2 14 cmp x3, #0 15 b.le 2f 16 lsl x1, x1, x2 17 lsr x3, x0, x3 18 lsl x2, x0, x2 19 orr x1, x1, x3 20 mov x0, x2 21 1: 22 ret 23 2: 24 neg w1, w3 25 mov x2, #0 26 lsl x1, x0, x1 27 mov x0, x2 28 ret 29 SYM_FUNC_END(__ashlti3) 30 EXPORT_SYMBOL(__ashlti3) 31 32 SYM_FUNC_START(__ashrti3) 33 cbz x2, 1f 34 mov x3, #64 35 sub x3, x3, x2 36 cmp x3, #0 37 b.le 2f 38 lsr x0, x0, x2 39 lsl x3, x1, x3 40 asr x2, x1, x2 41 orr x0, x0, x3 42 mov x1, x2 43 1: 44 ret 45 2: 46 neg w0, w3 47 asr x2, x1, #63 48 asr x0, x1, x0 49 mov x1, x2 50 ret 51 SYM_FUNC_END(__ashrti3) 52 EXPORT_SYMBOL(__ashrti3) 53 54 SYM_FUNC_START(__lshrti3) 55 cbz x2, 1f 56 mov x3, #64 57 sub x3, x3, x2 58 cmp x3, #0 59 b.le 2f 60 lsr x0, x0, x2 61 lsl x3, x1, x3 62 lsr x2, x1, x2 63 orr x0, x0, x3 64 mov x1, x2 65 1: 66 ret 67 2: 68 neg w0, w3 69 mov x2, #0 70 lsr x0, x1, x0 71 mov x1, x2 72 ret 73 SYM_FUNC_END(__lshrti3) 74 EXPORT_SYMBOL(__lshrti3)
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.