1
1
2
- CRTARCH = ${MACHINE_CPUARCH:C/amd64/x86_64/}
2
+ CRTARCH = ${MACHINE_CPUARCH:C/amd64/x86_64/:C/powerpc/ppc/}
3
+ .info DIMDBG : CRTARCH=${CRTARCH}
3
4
4
5
CRTSRC = ${SRCTOP}/contrib/llvm-project/compiler-rt/lib/builtins
5
6
@@ -35,12 +36,9 @@ SRCF+= divmodsi4
35
36
SRCF+ = divmodti4
36
37
SRCF+ = divsc3
37
38
SRCF+ = divsi3
38
- SRCF+ = divtc3
39
39
SRCF+ = divti3
40
- SRCF+ = divxc3
41
40
SRCF+ = enable_execute_stack
42
41
SRCF+ = extendhfsf2
43
- SRCF+ = extendxftf2
44
42
SRCF+ = ffsdi2
45
43
SRCF+ = ffssi2
46
44
SRCF+ = ffsti2
@@ -54,21 +52,12 @@ SRCF+= fixunsdfti
54
52
SRCF+ = fixunssfdi
55
53
SRCF+ = fixunssfsi
56
54
SRCF+ = fixunssfti
57
- SRCF+ = fixunsxfdi
58
- SRCF+ = fixunsxfsi
59
- SRCF+ = fixunsxfti
60
- SRCF+ = fixxfdi
61
- SRCF+ = fixxfti
62
- SRCF+ = floatditf
63
55
SRCF+ = floattidf
64
56
SRCF+ = floattisf
65
- SRCF+ = floattixf
66
- SRCF+ = floatunditf
67
57
SRCF+ = floatunsidf
68
58
SRCF+ = floatunsisf
69
59
SRCF+ = floatuntidf
70
60
SRCF+ = floatuntisf
71
- SRCF+ = floatuntixf
72
61
SRCF+ = int_util
73
62
SRCF+ = lshrdi3
74
63
SRCF+ = lshrti3
@@ -81,12 +70,10 @@ SRCF+= mulodi4
81
70
SRCF+ = mulosi4
82
71
SRCF+ = muloti4
83
72
SRCF+ = mulsc3
84
- SRCF+ = multc3
85
73
SRCF+ = multi3
86
74
SRCF+ = mulvdi3
87
75
SRCF+ = mulvsi3
88
76
SRCF+ = mulvti3
89
- SRCF+ = mulxc3
90
77
SRCF+ = negdf2
91
78
SRCF+ = negdi2
92
79
SRCF+ = negsf2
@@ -102,15 +89,12 @@ SRCF+= popcountsi2
102
89
SRCF+ = popcountti2
103
90
SRCF+ = powidf2
104
91
SRCF+ = powisf2
105
- SRCF+ = powitf2
106
- SRCF+ = powixf2
107
92
SRCF+ = subvdi3
108
93
SRCF+ = subvsi3
109
94
SRCF+ = subvti3
110
95
SRCF+ = trampoline_setup
111
96
SRCF+ = truncdfhf2
112
97
SRCF+ = truncsfhf2
113
- SRCF+ = trunctfxf2
114
98
SRCF+ = ucmpdi2
115
99
SRCF+ = ucmpti2
116
100
SRCF+ = udivdi3
@@ -134,18 +118,44 @@ SRCF+= atomic
134
118
.if ${MACHINE_CPUARCH} == "i386" && empty(MACHINE_CPU :Msse2)
135
119
SRCS+ = floatdidf.c
136
120
SRCS+ = floatdisf.c
137
- SRCS+ = floatdixf.c
138
121
SRCS+ = floatundidf.c
139
122
SRCS+ = floatundisf.c
140
- SRCS+ = floatundixf.c
141
123
.else
142
124
SRCF+ = floatdidf
143
125
SRCF+ = floatdisf
144
- SRCF+ = floatdixf
145
126
SRCF+ = floatundidf
146
127
SRCF+ = floatundisf
128
+ .endif
129
+
130
+ #
131
+ # 80-bit long double functions, only used on x86.
132
+ #
133
+ .if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386"
134
+ .info DIMDBG : Enabling 80-bit long double
135
+ SRCF+ = divxc3
136
+ SRCF+ = extendxftf2
137
+ SRCF+ = fixxfdi
138
+ SRCF+ = fixxfti
139
+ SRCF+ = fixunsxfdi
140
+ SRCF+ = fixunsxfsi
141
+ SRCF+ = fixunsxfti
142
+ SRCF+ = floattixf
143
+ SRCF+ = floatuntixf
144
+ SRCF+ = mulxc3
145
+ SRCF+ = powixf2
146
+ SRCF+ = trunctfxf2
147
+
148
+ # Avoid using SSE2 instructions on i386, if unsupported.
149
+ .if ${MACHINE_CPUARCH} == "i386" && empty(MACHINE_CPU :Msse2)
150
+ SRCS+ = floatdixf.c
151
+ SRCS+ = floatundixf.c
152
+ .else
153
+ SRCF+ = floatdixf
147
154
SRCF+ = floatundixf
148
155
.endif
156
+ .else
157
+ .info DIMDBG : NOT enabling 80-bit long double
158
+ .endif
149
159
150
160
# __cpu_model support, only used on aarch64 and x86
151
161
.if ${MACHINE_CPUARCH} == "aarch64"
@@ -168,8 +178,10 @@ SRCF+= fp_mode
168
178
#
169
179
.if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64" || \
170
180
${MACHINE_CPUARCH} == "riscv"
181
+ .info DIMDBG : Enabling 128-bit quad precision
171
182
SRCF+ = addtf3
172
183
SRCF+ = comparetf2
184
+ SRCF+ = divtc3
173
185
SRCF+ = divtf3
174
186
SRCF+ = extenddftf2
175
187
SRCF+ = extendhftf2
@@ -180,15 +192,21 @@ SRCF+= fixtfti
180
192
SRCF+ = fixunstfdi
181
193
SRCF+ = fixunstfsi
182
194
SRCF+ = fixunstfti
195
+ SRCF+ = floatditf
183
196
SRCF+ = floatsitf
184
197
SRCF+ = floattitf
198
+ SRCF+ = floatunditf
185
199
SRCF+ = floatunsitf
186
200
SRCF+ = floatuntitf
201
+ SRCF+ = multc3
187
202
SRCF+ = multf3
203
+ SRCF+ = powitf2
188
204
SRCF+ = subtf3
189
205
SRCF+ = trunctfdf2
190
206
SRCF+ = trunctfhf2
191
207
SRCF+ = trunctfsf2
208
+ .else
209
+ .info DIMDBG : NOT enabling 128-bit quad precision
192
210
.endif
193
211
194
212
# These are already shipped by libc.a on some architectures.
0 commit comments