1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
/* SPDX-License-Identifier: GPL-2.0-only */

#include <asm/asmmacro.h>
#include <linux/export.h>
#include <linux/linkage.h>

SYM_FUNC_START(__ashlti3)
	srli.d	t2, a0, 1
	nor	t3, zero, a2
	sll.d	t1, a1, a2
	srl.d	t2, t2, t3
	andi	t0, a2, 64
	sll.d	a0, a0, a2
	or	t1, t2, t1
	maskeqz	a1, a0, t0
	masknez	a0, a0, t0
	masknez	t0, t1, t0
	or	a1, t0, a1
	jr	ra
SYM_FUNC_END(__ashlti3)
EXPORT_SYMBOL(__ashlti3)

SYM_FUNC_START(__ashrti3)
	nor	t3, zero, a2
	slli.d	t2, a1, 1
	srl.d	t1, a0, a2
	sll.d	t2, t2, t3
	andi	t0, a2, 64
	or	t1, t2, t1
	sra.d	a2, a1, a2
	srai.d	a1, a1, 63
	maskeqz	a0, a2, t0
	maskeqz	a1, a1, t0
	masknez	a2, a2, t0
	masknez	t0, t1, t0
	or	a1, a1, a2
	or	a0, t0, a0
	jr	ra
SYM_FUNC_END(__ashrti3)
EXPORT_SYMBOL(__ashrti3)

SYM_FUNC_START(__lshrti3)
	slli.d	t2, a1, 1
	nor	t3, zero, a2
	srl.d	t1, a0, a2
	sll.d	t2, t2, t3
	andi	t0, a2, 64
	srl.d	a1, a1, a2
	or	t1, t2, t1
	maskeqz	a0, a1, t0
	masknez	a1, a1, t0
	masknez	t0, t1, t0
	or	a0, t0, a0
	jr	ra
SYM_FUNC_END(__lshrti3)
EXPORT_SYMBOL(__lshrti3)
你和我 十指緊扣 默寫前奏 可是那然後呢