summaryrefslogtreecommitdiff
path: root/vere/ext/gmp/gen/aarch64-macos/mpn/andn_n.s
blob: 6f928f10bc1dd825fba017f46b7825756274091c (plain)
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127


























































  
  










	.text
	.align	3
	.globl	___gmpn_andn_n 
	
___gmpn_andn_n:
	lsr	x17, x3, #2
	tbz	x3, #0, Lbx0

Lbx1:	ldr	x7, [x1]
	ldr	x11, [x2]
	bic	x15, x7, x11
		str	x15, [x0],#8
	tbnz	x3, #1, Lb11

Lb01:	cbz	x17, Lret
	ldp	x4, x5, [x1,#8]
	ldp	x8, x9, [x2,#8]
	sub	x1, x1, #8
	sub	x2, x2, #8
	b	Lmid

Lb11:	ldp	x6, x7, [x1,#8]
	ldp	x10, x11, [x2,#8]
	add	x1, x1, #8
	add	x2, x2, #8
	cbz	x17, Lend
	b	Ltop

Lbx0:	tbnz	x3, #1, Lb10

Lb00:	ldp	x4, x5, [x1],#-16
	ldp	x8, x9, [x2],#-16
	b	Lmid

Lb10:	ldp	x6, x7, [x1]
	ldp	x10, x11, [x2]
	cbz	x17, Lend

	.align	4
Ltop:	ldp	x4, x5, [x1,#16]
	ldp	x8, x9, [x2,#16]
	bic	x12, x6, x10
	bic	x13, x7, x11
			stp	x12, x13, [x0],#16
Lmid:	ldp	x6, x7, [x1,#32]!
	ldp	x10, x11, [x2,#32]!
	bic	x12, x4, x8
	bic	x13, x5, x9
			stp	x12, x13, [x0],#16
	sub	x17, x17, #1
	cbnz	x17, Ltop

Lend:	bic	x12, x6, x10
	bic	x13, x7, x11
			stp	x12, x13, [x0]
Lret:	ret