| ... | ... | @@ -1,171 +1,24 @@ |
| 1 | 1 | const std = @import("std"); |
| 2 | | const builtin = std.builtin; |
| 2 | const builtin = @import("builtin"); |
| 3 | 3 | const is_test = builtin.is_test; |
| 4 | 4 | const os_tag = std.Target.current.os.tag; |
| 5 | | const arch = std.Target.current.cpu.arch; |
| 5 | const arch = builtin.stage2_arch; |
| 6 | 6 | const abi = std.Target.current.abi; |
| 7 | 7 | |
| 8 | 8 | const is_gnu = abi.isGnu(); |
| 9 | 9 | const is_mingw = os_tag == .windows and is_gnu; |
| 10 | 10 | |
| 11 | | comptime { |
| 12 | | const linkage = if (is_test) builtin.GlobalLinkage.Internal else builtin.GlobalLinkage.Weak; |
| 13 | | const strong_linkage = if (is_test) builtin.GlobalLinkage.Internal else builtin.GlobalLinkage.Strong; |
| 14 | | |
| 15 | | switch (arch) { |
| 16 | | .i386, |
| 17 | | .x86_64, |
| 18 | | => { |
| 19 | | const zig_probe_stack = @import("compiler_rt/stack_probe.zig").zig_probe_stack; |
| 20 | | @export(zig_probe_stack, .{ |
| 21 | | .name = "__zig_probe_stack", |
| 22 | | .linkage = linkage, |
| 23 | | }); |
| 24 | | }, |
| 25 | | |
| 26 | | else => {}, |
| 27 | | } |
| 11 | const linkage = if (is_test) |
| 12 | std.builtin.GlobalLinkage.Internal |
| 13 | else |
| 14 | std.builtin.GlobalLinkage.Weak; |
| 28 | 15 | |
| 29 | | // __clear_cache manages its own logic about whether to be exported or not. |
| 30 | | _ = @import("compiler_rt/clear_cache.zig").clear_cache; |
| 31 | | |
| 32 | | const __lesf2 = @import("compiler_rt/compareXf2.zig").__lesf2; |
| 33 | | @export(__lesf2, .{ .name = "__lesf2", .linkage = linkage }); |
| 34 | | const __ledf2 = @import("compiler_rt/compareXf2.zig").__ledf2; |
| 35 | | @export(__ledf2, .{ .name = "__ledf2", .linkage = linkage }); |
| 36 | | const __letf2 = @import("compiler_rt/compareXf2.zig").__letf2; |
| 37 | | @export(__letf2, .{ .name = "__letf2", .linkage = linkage }); |
| 38 | | |
| 39 | | const __gesf2 = @import("compiler_rt/compareXf2.zig").__gesf2; |
| 40 | | @export(__gesf2, .{ .name = "__gesf2", .linkage = linkage }); |
| 41 | | const __gedf2 = @import("compiler_rt/compareXf2.zig").__gedf2; |
| 42 | | @export(__gedf2, .{ .name = "__gedf2", .linkage = linkage }); |
| 43 | | const __getf2 = @import("compiler_rt/compareXf2.zig").__getf2; |
| 44 | | @export(__getf2, .{ .name = "__getf2", .linkage = linkage }); |
| 45 | | |
| 46 | | if (!is_test) { |
| 47 | | @export(__lesf2, .{ .name = "__cmpsf2", .linkage = linkage }); |
| 48 | | @export(__ledf2, .{ .name = "__cmpdf2", .linkage = linkage }); |
| 49 | | @export(__letf2, .{ .name = "__cmptf2", .linkage = linkage }); |
| 50 | | |
| 51 | | const __eqsf2 = @import("compiler_rt/compareXf2.zig").__eqsf2; |
| 52 | | @export(__eqsf2, .{ .name = "__eqsf2", .linkage = linkage }); |
| 53 | | const __eqdf2 = @import("compiler_rt/compareXf2.zig").__eqdf2; |
| 54 | | @export(__eqdf2, .{ .name = "__eqdf2", .linkage = linkage }); |
| 55 | | @export(__letf2, .{ .name = "__eqtf2", .linkage = linkage }); |
| 56 | | |
| 57 | | const __ltsf2 = @import("compiler_rt/compareXf2.zig").__ltsf2; |
| 58 | | @export(__ltsf2, .{ .name = "__ltsf2", .linkage = linkage }); |
| 59 | | const __ltdf2 = @import("compiler_rt/compareXf2.zig").__ltdf2; |
| 60 | | @export(__ltdf2, .{ .name = "__ltdf2", .linkage = linkage }); |
| 61 | | @export(__letf2, .{ .name = "__lttf2", .linkage = linkage }); |
| 62 | | |
| 63 | | const __nesf2 = @import("compiler_rt/compareXf2.zig").__nesf2; |
| 64 | | @export(__nesf2, .{ .name = "__nesf2", .linkage = linkage }); |
| 65 | | const __nedf2 = @import("compiler_rt/compareXf2.zig").__nedf2; |
| 66 | | @export(__nedf2, .{ .name = "__nedf2", .linkage = linkage }); |
| 67 | | @export(__letf2, .{ .name = "__netf2", .linkage = linkage }); |
| 68 | | |
| 69 | | const __gtsf2 = @import("compiler_rt/compareXf2.zig").__gtsf2; |
| 70 | | @export(__gtsf2, .{ .name = "__gtsf2", .linkage = linkage }); |
| 71 | | const __gtdf2 = @import("compiler_rt/compareXf2.zig").__gtdf2; |
| 72 | | @export(__gtdf2, .{ .name = "__gtdf2", .linkage = linkage }); |
| 73 | | @export(__getf2, .{ .name = "__gttf2", .linkage = linkage }); |
| 74 | | |
| 75 | | const __extendhfsf2 = @import("compiler_rt/extendXfYf2.zig").__extendhfsf2; |
| 76 | | @export(__extendhfsf2, .{ .name = "__gnu_h2f_ieee", .linkage = linkage }); |
| 77 | | const __truncsfhf2 = @import("compiler_rt/truncXfYf2.zig").__truncsfhf2; |
| 78 | | @export(__truncsfhf2, .{ .name = "__gnu_f2h_ieee", .linkage = linkage }); |
| 79 | | } |
| 80 | | |
| 81 | | const __unordsf2 = @import("compiler_rt/compareXf2.zig").__unordsf2; |
| 82 | | @export(__unordsf2, .{ .name = "__unordsf2", .linkage = linkage }); |
| 83 | | const __unorddf2 = @import("compiler_rt/compareXf2.zig").__unorddf2; |
| 84 | | @export(__unorddf2, .{ .name = "__unorddf2", .linkage = linkage }); |
| 85 | | const __unordtf2 = @import("compiler_rt/compareXf2.zig").__unordtf2; |
| 86 | | @export(__unordtf2, .{ .name = "__unordtf2", .linkage = linkage }); |
| 87 | | |
| 88 | | const __addsf3 = @import("compiler_rt/addXf3.zig").__addsf3; |
| 89 | | @export(__addsf3, .{ .name = "__addsf3", .linkage = linkage }); |
| 90 | | const __adddf3 = @import("compiler_rt/addXf3.zig").__adddf3; |
| 91 | | @export(__adddf3, .{ .name = "__adddf3", .linkage = linkage }); |
| 92 | | const __addtf3 = @import("compiler_rt/addXf3.zig").__addtf3; |
| 93 | | @export(__addtf3, .{ .name = "__addtf3", .linkage = linkage }); |
| 94 | | const __subsf3 = @import("compiler_rt/addXf3.zig").__subsf3; |
| 95 | | @export(__subsf3, .{ .name = "__subsf3", .linkage = linkage }); |
| 96 | | const __subdf3 = @import("compiler_rt/addXf3.zig").__subdf3; |
| 97 | | @export(__subdf3, .{ .name = "__subdf3", .linkage = linkage }); |
| 98 | | const __subtf3 = @import("compiler_rt/addXf3.zig").__subtf3; |
| 99 | | @export(__subtf3, .{ .name = "__subtf3", .linkage = linkage }); |
| 100 | | |
| 101 | | const __mulsf3 = @import("compiler_rt/mulXf3.zig").__mulsf3; |
| 102 | | @export(__mulsf3, .{ .name = "__mulsf3", .linkage = linkage }); |
| 103 | | const __muldf3 = @import("compiler_rt/mulXf3.zig").__muldf3; |
| 104 | | @export(__muldf3, .{ .name = "__muldf3", .linkage = linkage }); |
| 105 | | const __multf3 = @import("compiler_rt/mulXf3.zig").__multf3; |
| 106 | | @export(__multf3, .{ .name = "__multf3", .linkage = linkage }); |
| 107 | | |
| 108 | | const __divsf3 = @import("compiler_rt/divsf3.zig").__divsf3; |
| 109 | | @export(__divsf3, .{ .name = "__divsf3", .linkage = linkage }); |
| 110 | | const __divdf3 = @import("compiler_rt/divdf3.zig").__divdf3; |
| 111 | | @export(__divdf3, .{ .name = "__divdf3", .linkage = linkage }); |
| 112 | | const __divtf3 = @import("compiler_rt/divtf3.zig").__divtf3; |
| 113 | | @export(__divtf3, .{ .name = "__divtf3", .linkage = linkage }); |
| 114 | | |
| 115 | | const __ashldi3 = @import("compiler_rt/shift.zig").__ashldi3; |
| 116 | | @export(__ashldi3, .{ .name = "__ashldi3", .linkage = linkage }); |
| 117 | | const __ashlti3 = @import("compiler_rt/shift.zig").__ashlti3; |
| 118 | | @export(__ashlti3, .{ .name = "__ashlti3", .linkage = linkage }); |
| 119 | | const __ashrdi3 = @import("compiler_rt/shift.zig").__ashrdi3; |
| 120 | | @export(__ashrdi3, .{ .name = "__ashrdi3", .linkage = linkage }); |
| 121 | | const __ashrti3 = @import("compiler_rt/shift.zig").__ashrti3; |
| 122 | | @export(__ashrti3, .{ .name = "__ashrti3", .linkage = linkage }); |
| 123 | | const __lshrdi3 = @import("compiler_rt/shift.zig").__lshrdi3; |
| 124 | | @export(__lshrdi3, .{ .name = "__lshrdi3", .linkage = linkage }); |
| 125 | | const __lshrti3 = @import("compiler_rt/shift.zig").__lshrti3; |
| 126 | | @export(__lshrti3, .{ .name = "__lshrti3", .linkage = linkage }); |
| 127 | | |
| 128 | | const __floatsidf = @import("compiler_rt/floatsiXf.zig").__floatsidf; |
| 129 | | @export(__floatsidf, .{ .name = "__floatsidf", .linkage = linkage }); |
| 130 | | const __floatsisf = @import("compiler_rt/floatsiXf.zig").__floatsisf; |
| 131 | | @export(__floatsisf, .{ .name = "__floatsisf", .linkage = linkage }); |
| 132 | | const __floatdidf = @import("compiler_rt/floatdidf.zig").__floatdidf; |
| 133 | | @export(__floatdidf, .{ .name = "__floatdidf", .linkage = linkage }); |
| 134 | | const __floatsitf = @import("compiler_rt/floatsiXf.zig").__floatsitf; |
| 135 | | @export(__floatsitf, .{ .name = "__floatsitf", .linkage = linkage }); |
| 136 | | |
| 137 | | const __floatunsisf = @import("compiler_rt/floatunsisf.zig").__floatunsisf; |
| 138 | | @export(__floatunsisf, .{ .name = "__floatunsisf", .linkage = linkage }); |
| 139 | | const __floatundisf = @import("compiler_rt/floatundisf.zig").__floatundisf; |
| 140 | | @export(__floatundisf, .{ .name = "__floatundisf", .linkage = linkage }); |
| 141 | | const __floatunsidf = @import("compiler_rt/floatunsidf.zig").__floatunsidf; |
| 142 | | @export(__floatunsidf, .{ .name = "__floatunsidf", .linkage = linkage }); |
| 143 | | const __floatundidf = @import("compiler_rt/floatundidf.zig").__floatundidf; |
| 144 | | @export(__floatundidf, .{ .name = "__floatundidf", .linkage = linkage }); |
| 145 | | |
| 146 | | const __floatditf = @import("compiler_rt/floatditf.zig").__floatditf; |
| 147 | | @export(__floatditf, .{ .name = "__floatditf", .linkage = linkage }); |
| 148 | | const __floattitf = @import("compiler_rt/floattitf.zig").__floattitf; |
| 149 | | @export(__floattitf, .{ .name = "__floattitf", .linkage = linkage }); |
| 150 | | const __floattidf = @import("compiler_rt/floattidf.zig").__floattidf; |
| 151 | | @export(__floattidf, .{ .name = "__floattidf", .linkage = linkage }); |
| 152 | | const __floattisf = @import("compiler_rt/floatXisf.zig").__floattisf; |
| 153 | | @export(__floattisf, .{ .name = "__floattisf", .linkage = linkage }); |
| 154 | | const __floatdisf = @import("compiler_rt/floatXisf.zig").__floatdisf; |
| 155 | | @export(__floatdisf, .{ .name = "__floatdisf", .linkage = linkage }); |
| 156 | | |
| 157 | | const __floatunditf = @import("compiler_rt/floatunditf.zig").__floatunditf; |
| 158 | | @export(__floatunditf, .{ .name = "__floatunditf", .linkage = linkage }); |
| 159 | | const __floatunsitf = @import("compiler_rt/floatunsitf.zig").__floatunsitf; |
| 160 | | @export(__floatunsitf, .{ .name = "__floatunsitf", .linkage = linkage }); |
| 161 | | |
| 162 | | const __floatuntitf = @import("compiler_rt/floatuntitf.zig").__floatuntitf; |
| 163 | | @export(__floatuntitf, .{ .name = "__floatuntitf", .linkage = linkage }); |
| 164 | | const __floatuntidf = @import("compiler_rt/floatuntidf.zig").__floatuntidf; |
| 165 | | @export(__floatuntidf, .{ .name = "__floatuntidf", .linkage = linkage }); |
| 166 | | const __floatuntisf = @import("compiler_rt/floatuntisf.zig").__floatuntisf; |
| 167 | | @export(__floatuntisf, .{ .name = "__floatuntisf", .linkage = linkage }); |
| 16 | const strong_linkage = if (is_test) |
| 17 | std.builtin.GlobalLinkage.Internal |
| 18 | else |
| 19 | std.builtin.GlobalLinkage.Strong; |
| 168 | 20 | |
| 21 | comptime { |
| 169 | 22 | const __extenddftf2 = @import("compiler_rt/extendXfYf2.zig").__extenddftf2; |
| 170 | 23 | @export(__extenddftf2, .{ .name = "__extenddftf2", .linkage = linkage }); |
| 171 | 24 | const __extendsftf2 = @import("compiler_rt/extendXfYf2.zig").__extendsftf2; |
| ... | ... | @@ -175,446 +28,611 @@ comptime { |
| 175 | 28 | const __extendhftf2 = @import("compiler_rt/extendXfYf2.zig").__extendhftf2; |
| 176 | 29 | @export(__extendhftf2, .{ .name = "__extendhftf2", .linkage = linkage }); |
| 177 | 30 | |
| 178 | | const __truncsfhf2 = @import("compiler_rt/truncXfYf2.zig").__truncsfhf2; |
| 179 | | @export(__truncsfhf2, .{ .name = "__truncsfhf2", .linkage = linkage }); |
| 180 | | const __truncdfhf2 = @import("compiler_rt/truncXfYf2.zig").__truncdfhf2; |
| 181 | | @export(__truncdfhf2, .{ .name = "__truncdfhf2", .linkage = linkage }); |
| 182 | | const __trunctfhf2 = @import("compiler_rt/truncXfYf2.zig").__trunctfhf2; |
| 183 | | @export(__trunctfhf2, .{ .name = "__trunctfhf2", .linkage = linkage }); |
| 184 | | const __trunctfdf2 = @import("compiler_rt/truncXfYf2.zig").__trunctfdf2; |
| 185 | | @export(__trunctfdf2, .{ .name = "__trunctfdf2", .linkage = linkage }); |
| 186 | | const __trunctfsf2 = @import("compiler_rt/truncXfYf2.zig").__trunctfsf2; |
| 187 | | @export(__trunctfsf2, .{ .name = "__trunctfsf2", .linkage = linkage }); |
| 188 | | |
| 189 | | const __truncdfsf2 = @import("compiler_rt/truncXfYf2.zig").__truncdfsf2; |
| 190 | | @export(__truncdfsf2, .{ .name = "__truncdfsf2", .linkage = linkage }); |
| 191 | | |
| 192 | | const __extendsfdf2 = @import("compiler_rt/extendXfYf2.zig").__extendsfdf2; |
| 193 | | @export(__extendsfdf2, .{ .name = "__extendsfdf2", .linkage = linkage }); |
| 194 | | |
| 195 | | const __fixunssfsi = @import("compiler_rt/fixunssfsi.zig").__fixunssfsi; |
| 196 | | @export(__fixunssfsi, .{ .name = "__fixunssfsi", .linkage = linkage }); |
| 197 | | const __fixunssfdi = @import("compiler_rt/fixunssfdi.zig").__fixunssfdi; |
| 198 | | @export(__fixunssfdi, .{ .name = "__fixunssfdi", .linkage = linkage }); |
| 199 | | const __fixunssfti = @import("compiler_rt/fixunssfti.zig").__fixunssfti; |
| 200 | | @export(__fixunssfti, .{ .name = "__fixunssfti", .linkage = linkage }); |
| 201 | | |
| 202 | | const __fixunsdfsi = @import("compiler_rt/fixunsdfsi.zig").__fixunsdfsi; |
| 203 | | @export(__fixunsdfsi, .{ .name = "__fixunsdfsi", .linkage = linkage }); |
| 204 | | const __fixunsdfdi = @import("compiler_rt/fixunsdfdi.zig").__fixunsdfdi; |
| 205 | | @export(__fixunsdfdi, .{ .name = "__fixunsdfdi", .linkage = linkage }); |
| 206 | | const __fixunsdfti = @import("compiler_rt/fixunsdfti.zig").__fixunsdfti; |
| 207 | | @export(__fixunsdfti, .{ .name = "__fixunsdfti", .linkage = linkage }); |
| 208 | | |
| 209 | | const __fixunstfsi = @import("compiler_rt/fixunstfsi.zig").__fixunstfsi; |
| 210 | | @export(__fixunstfsi, .{ .name = "__fixunstfsi", .linkage = linkage }); |
| 211 | | const __fixunstfdi = @import("compiler_rt/fixunstfdi.zig").__fixunstfdi; |
| 212 | | @export(__fixunstfdi, .{ .name = "__fixunstfdi", .linkage = linkage }); |
| 213 | | const __fixunstfti = @import("compiler_rt/fixunstfti.zig").__fixunstfti; |
| 214 | | @export(__fixunstfti, .{ .name = "__fixunstfti", .linkage = linkage }); |
| 215 | | |
| 216 | | const __fixdfdi = @import("compiler_rt/fixdfdi.zig").__fixdfdi; |
| 217 | | @export(__fixdfdi, .{ .name = "__fixdfdi", .linkage = linkage }); |
| 218 | | const __fixdfsi = @import("compiler_rt/fixdfsi.zig").__fixdfsi; |
| 219 | | @export(__fixdfsi, .{ .name = "__fixdfsi", .linkage = linkage }); |
| 220 | | const __fixdfti = @import("compiler_rt/fixdfti.zig").__fixdfti; |
| 221 | | @export(__fixdfti, .{ .name = "__fixdfti", .linkage = linkage }); |
| 222 | | const __fixsfdi = @import("compiler_rt/fixsfdi.zig").__fixsfdi; |
| 223 | | @export(__fixsfdi, .{ .name = "__fixsfdi", .linkage = linkage }); |
| 224 | | const __fixsfsi = @import("compiler_rt/fixsfsi.zig").__fixsfsi; |
| 225 | | @export(__fixsfsi, .{ .name = "__fixsfsi", .linkage = linkage }); |
| 226 | | const __fixsfti = @import("compiler_rt/fixsfti.zig").__fixsfti; |
| 227 | | @export(__fixsfti, .{ .name = "__fixsfti", .linkage = linkage }); |
| 228 | | const __fixtfdi = @import("compiler_rt/fixtfdi.zig").__fixtfdi; |
| 229 | | @export(__fixtfdi, .{ .name = "__fixtfdi", .linkage = linkage }); |
| 230 | | const __fixtfsi = @import("compiler_rt/fixtfsi.zig").__fixtfsi; |
| 231 | | @export(__fixtfsi, .{ .name = "__fixtfsi", .linkage = linkage }); |
| 232 | | const __fixtfti = @import("compiler_rt/fixtfti.zig").__fixtfti; |
| 233 | | @export(__fixtfti, .{ .name = "__fixtfti", .linkage = linkage }); |
| 234 | | |
| 235 | | const __udivmoddi4 = @import("compiler_rt/int.zig").__udivmoddi4; |
| 236 | | @export(__udivmoddi4, .{ .name = "__udivmoddi4", .linkage = linkage }); |
| 237 | | const __popcountdi2 = @import("compiler_rt/popcountdi2.zig").__popcountdi2; |
| 238 | | @export(__popcountdi2, .{ .name = "__popcountdi2", .linkage = linkage }); |
| 239 | | |
| 240 | | const __mulsi3 = @import("compiler_rt/int.zig").__mulsi3; |
| 241 | | @export(__mulsi3, .{ .name = "__mulsi3", .linkage = linkage }); |
| 242 | | const __muldi3 = @import("compiler_rt/muldi3.zig").__muldi3; |
| 243 | | @export(__muldi3, .{ .name = "__muldi3", .linkage = linkage }); |
| 244 | | const __divmoddi4 = @import("compiler_rt/int.zig").__divmoddi4; |
| 245 | | @export(__divmoddi4, .{ .name = "__divmoddi4", .linkage = linkage }); |
| 246 | | const __divsi3 = @import("compiler_rt/int.zig").__divsi3; |
| 247 | | @export(__divsi3, .{ .name = "__divsi3", .linkage = linkage }); |
| 248 | | const __divdi3 = @import("compiler_rt/int.zig").__divdi3; |
| 249 | | @export(__divdi3, .{ .name = "__divdi3", .linkage = linkage }); |
| 250 | | const __udivsi3 = @import("compiler_rt/int.zig").__udivsi3; |
| 251 | | @export(__udivsi3, .{ .name = "__udivsi3", .linkage = linkage }); |
| 252 | | const __udivdi3 = @import("compiler_rt/int.zig").__udivdi3; |
| 253 | | @export(__udivdi3, .{ .name = "__udivdi3", .linkage = linkage }); |
| 254 | | const __modsi3 = @import("compiler_rt/int.zig").__modsi3; |
| 255 | | @export(__modsi3, .{ .name = "__modsi3", .linkage = linkage }); |
| 256 | | const __moddi3 = @import("compiler_rt/int.zig").__moddi3; |
| 257 | | @export(__moddi3, .{ .name = "__moddi3", .linkage = linkage }); |
| 258 | | const __umodsi3 = @import("compiler_rt/int.zig").__umodsi3; |
| 259 | | @export(__umodsi3, .{ .name = "__umodsi3", .linkage = linkage }); |
| 260 | | const __umoddi3 = @import("compiler_rt/int.zig").__umoddi3; |
| 261 | | @export(__umoddi3, .{ .name = "__umoddi3", .linkage = linkage }); |
| 262 | | const __divmodsi4 = @import("compiler_rt/int.zig").__divmodsi4; |
| 263 | | @export(__divmodsi4, .{ .name = "__divmodsi4", .linkage = linkage }); |
| 264 | | const __udivmodsi4 = @import("compiler_rt/int.zig").__udivmodsi4; |
| 265 | | @export(__udivmodsi4, .{ .name = "__udivmodsi4", .linkage = linkage }); |
| 266 | | |
| 267 | | const __negsf2 = @import("compiler_rt/negXf2.zig").__negsf2; |
| 268 | | @export(__negsf2, .{ .name = "__negsf2", .linkage = linkage }); |
| 269 | | const __negdf2 = @import("compiler_rt/negXf2.zig").__negdf2; |
| 270 | | @export(__negdf2, .{ .name = "__negdf2", .linkage = linkage }); |
| 271 | | |
| 272 | | const __clzsi2 = @import("compiler_rt/count0bits.zig").__clzsi2; |
| 273 | | @export(__clzsi2, .{ .name = "__clzsi2", .linkage = linkage }); |
| 274 | | const __clzdi2 = @import("compiler_rt/count0bits.zig").__clzdi2; |
| 275 | | @export(__clzdi2, .{ .name = "__clzdi2", .linkage = linkage }); |
| 276 | | const __clzti2 = @import("compiler_rt/count0bits.zig").__clzti2; |
| 277 | | @export(__clzti2, .{ .name = "__clzti2", .linkage = linkage }); |
| 278 | | |
| 279 | | if (builtin.link_libc and os_tag == .openbsd) { |
| 280 | | const __emutls_get_address = @import("compiler_rt/emutls.zig").__emutls_get_address; |
| 281 | | @export(__emutls_get_address, .{ .name = "__emutls_get_address", .linkage = linkage }); |
| 282 | | } |
| 31 | if (!builtin.zig_is_stage2) { |
| 32 | switch (arch) { |
| 33 | .i386, |
| 34 | .x86_64, |
| 35 | => { |
| 36 | const zig_probe_stack = @import("compiler_rt/stack_probe.zig").zig_probe_stack; |
| 37 | @export(zig_probe_stack, .{ |
| 38 | .name = "__zig_probe_stack", |
| 39 | .linkage = linkage, |
| 40 | }); |
| 41 | }, |
| 283 | 42 | |
| 284 | | if ((arch.isARM() or arch.isThumb()) and !is_test) { |
| 285 | | const __aeabi_unwind_cpp_pr0 = @import("compiler_rt/arm.zig").__aeabi_unwind_cpp_pr0; |
| 286 | | @export(__aeabi_unwind_cpp_pr0, .{ .name = "__aeabi_unwind_cpp_pr0", .linkage = linkage }); |
| 287 | | const __aeabi_unwind_cpp_pr1 = @import("compiler_rt/arm.zig").__aeabi_unwind_cpp_pr1; |
| 288 | | @export(__aeabi_unwind_cpp_pr1, .{ .name = "__aeabi_unwind_cpp_pr1", .linkage = linkage }); |
| 289 | | const __aeabi_unwind_cpp_pr2 = @import("compiler_rt/arm.zig").__aeabi_unwind_cpp_pr2; |
| 290 | | @export(__aeabi_unwind_cpp_pr2, .{ .name = "__aeabi_unwind_cpp_pr2", .linkage = linkage }); |
| 291 | | |
| 292 | | @export(__muldi3, .{ .name = "__aeabi_lmul", .linkage = linkage }); |
| 293 | | |
| 294 | | const __aeabi_ldivmod = @import("compiler_rt/arm.zig").__aeabi_ldivmod; |
| 295 | | @export(__aeabi_ldivmod, .{ .name = "__aeabi_ldivmod", .linkage = linkage }); |
| 296 | | const __aeabi_uldivmod = @import("compiler_rt/arm.zig").__aeabi_uldivmod; |
| 297 | | @export(__aeabi_uldivmod, .{ .name = "__aeabi_uldivmod", .linkage = linkage }); |
| 298 | | |
| 299 | | @export(__divsi3, .{ .name = "__aeabi_idiv", .linkage = linkage }); |
| 300 | | const __aeabi_idivmod = @import("compiler_rt/arm.zig").__aeabi_idivmod; |
| 301 | | @export(__aeabi_idivmod, .{ .name = "__aeabi_idivmod", .linkage = linkage }); |
| 302 | | @export(__udivsi3, .{ .name = "__aeabi_uidiv", .linkage = linkage }); |
| 303 | | const __aeabi_uidivmod = @import("compiler_rt/arm.zig").__aeabi_uidivmod; |
| 304 | | @export(__aeabi_uidivmod, .{ .name = "__aeabi_uidivmod", .linkage = linkage }); |
| 305 | | |
| 306 | | const __aeabi_memcpy = @import("compiler_rt/arm.zig").__aeabi_memcpy; |
| 307 | | @export(__aeabi_memcpy, .{ .name = "__aeabi_memcpy", .linkage = linkage }); |
| 308 | | @export(__aeabi_memcpy, .{ .name = "__aeabi_memcpy4", .linkage = linkage }); |
| 309 | | @export(__aeabi_memcpy, .{ .name = "__aeabi_memcpy8", .linkage = linkage }); |
| 310 | | |
| 311 | | const __aeabi_memmove = @import("compiler_rt/arm.zig").__aeabi_memmove; |
| 312 | | @export(__aeabi_memmove, .{ .name = "__aeabi_memmove", .linkage = linkage }); |
| 313 | | @export(__aeabi_memmove, .{ .name = "__aeabi_memmove4", .linkage = linkage }); |
| 314 | | @export(__aeabi_memmove, .{ .name = "__aeabi_memmove8", .linkage = linkage }); |
| 315 | | |
| 316 | | const __aeabi_memset = @import("compiler_rt/arm.zig").__aeabi_memset; |
| 317 | | @export(__aeabi_memset, .{ .name = "__aeabi_memset", .linkage = linkage }); |
| 318 | | @export(__aeabi_memset, .{ .name = "__aeabi_memset4", .linkage = linkage }); |
| 319 | | @export(__aeabi_memset, .{ .name = "__aeabi_memset8", .linkage = linkage }); |
| 320 | | |
| 321 | | const __aeabi_memclr = @import("compiler_rt/arm.zig").__aeabi_memclr; |
| 322 | | @export(__aeabi_memclr, .{ .name = "__aeabi_memclr", .linkage = linkage }); |
| 323 | | @export(__aeabi_memclr, .{ .name = "__aeabi_memclr4", .linkage = linkage }); |
| 324 | | @export(__aeabi_memclr, .{ .name = "__aeabi_memclr8", .linkage = linkage }); |
| 325 | | |
| 326 | | if (os_tag == .linux) { |
| 327 | | const __aeabi_read_tp = @import("compiler_rt/arm.zig").__aeabi_read_tp; |
| 328 | | @export(__aeabi_read_tp, .{ .name = "__aeabi_read_tp", .linkage = linkage }); |
| 43 | else => {}, |
| 329 | 44 | } |
| 330 | 45 | |
| 331 | | const __aeabi_f2d = @import("compiler_rt/extendXfYf2.zig").__aeabi_f2d; |
| 332 | | @export(__aeabi_f2d, .{ .name = "__aeabi_f2d", .linkage = linkage }); |
| 333 | | const __aeabi_i2d = @import("compiler_rt/floatsiXf.zig").__aeabi_i2d; |
| 334 | | @export(__aeabi_i2d, .{ .name = "__aeabi_i2d", .linkage = linkage }); |
| 335 | | const __aeabi_l2d = @import("compiler_rt/floatdidf.zig").__aeabi_l2d; |
| 336 | | @export(__aeabi_l2d, .{ .name = "__aeabi_l2d", .linkage = linkage }); |
| 337 | | const __aeabi_l2f = @import("compiler_rt/floatXisf.zig").__aeabi_l2f; |
| 338 | | @export(__aeabi_l2f, .{ .name = "__aeabi_l2f", .linkage = linkage }); |
| 339 | | const __aeabi_ui2d = @import("compiler_rt/floatunsidf.zig").__aeabi_ui2d; |
| 340 | | @export(__aeabi_ui2d, .{ .name = "__aeabi_ui2d", .linkage = linkage }); |
| 341 | | const __aeabi_ul2d = @import("compiler_rt/floatundidf.zig").__aeabi_ul2d; |
| 342 | | @export(__aeabi_ul2d, .{ .name = "__aeabi_ul2d", .linkage = linkage }); |
| 343 | | const __aeabi_ui2f = @import("compiler_rt/floatunsisf.zig").__aeabi_ui2f; |
| 344 | | @export(__aeabi_ui2f, .{ .name = "__aeabi_ui2f", .linkage = linkage }); |
| 345 | | const __aeabi_ul2f = @import("compiler_rt/floatundisf.zig").__aeabi_ul2f; |
| 346 | | @export(__aeabi_ul2f, .{ .name = "__aeabi_ul2f", .linkage = linkage }); |
| 347 | | |
| 348 | | const __aeabi_fneg = @import("compiler_rt/negXf2.zig").__aeabi_fneg; |
| 349 | | @export(__aeabi_fneg, .{ .name = "__aeabi_fneg", .linkage = linkage }); |
| 350 | | const __aeabi_dneg = @import("compiler_rt/negXf2.zig").__aeabi_dneg; |
| 351 | | @export(__aeabi_dneg, .{ .name = "__aeabi_dneg", .linkage = linkage }); |
| 352 | | |
| 353 | | const __aeabi_fmul = @import("compiler_rt/mulXf3.zig").__aeabi_fmul; |
| 354 | | @export(__aeabi_fmul, .{ .name = "__aeabi_fmul", .linkage = linkage }); |
| 355 | | const __aeabi_dmul = @import("compiler_rt/mulXf3.zig").__aeabi_dmul; |
| 356 | | @export(__aeabi_dmul, .{ .name = "__aeabi_dmul", .linkage = linkage }); |
| 357 | | |
| 358 | | const __aeabi_d2h = @import("compiler_rt/truncXfYf2.zig").__aeabi_d2h; |
| 359 | | @export(__aeabi_d2h, .{ .name = "__aeabi_d2h", .linkage = linkage }); |
| 360 | | |
| 361 | | const __aeabi_f2ulz = @import("compiler_rt/fixunssfdi.zig").__aeabi_f2ulz; |
| 362 | | @export(__aeabi_f2ulz, .{ .name = "__aeabi_f2ulz", .linkage = linkage }); |
| 363 | | const __aeabi_d2ulz = @import("compiler_rt/fixunsdfdi.zig").__aeabi_d2ulz; |
| 364 | | @export(__aeabi_d2ulz, .{ .name = "__aeabi_d2ulz", .linkage = linkage }); |
| 365 | | |
| 366 | | const __aeabi_f2lz = @import("compiler_rt/fixsfdi.zig").__aeabi_f2lz; |
| 367 | | @export(__aeabi_f2lz, .{ .name = "__aeabi_f2lz", .linkage = linkage }); |
| 368 | | const __aeabi_d2lz = @import("compiler_rt/fixdfdi.zig").__aeabi_d2lz; |
| 369 | | @export(__aeabi_d2lz, .{ .name = "__aeabi_d2lz", .linkage = linkage }); |
| 370 | | |
| 371 | | const __aeabi_d2uiz = @import("compiler_rt/fixunsdfsi.zig").__aeabi_d2uiz; |
| 372 | | @export(__aeabi_d2uiz, .{ .name = "__aeabi_d2uiz", .linkage = linkage }); |
| 373 | | |
| 374 | | const __aeabi_h2f = @import("compiler_rt/extendXfYf2.zig").__aeabi_h2f; |
| 375 | | @export(__aeabi_h2f, .{ .name = "__aeabi_h2f", .linkage = linkage }); |
| 376 | | const __aeabi_f2h = @import("compiler_rt/truncXfYf2.zig").__aeabi_f2h; |
| 377 | | @export(__aeabi_f2h, .{ .name = "__aeabi_f2h", .linkage = linkage }); |
| 378 | | |
| 379 | | const __aeabi_i2f = @import("compiler_rt/floatsiXf.zig").__aeabi_i2f; |
| 380 | | @export(__aeabi_i2f, .{ .name = "__aeabi_i2f", .linkage = linkage }); |
| 381 | | const __aeabi_d2f = @import("compiler_rt/truncXfYf2.zig").__aeabi_d2f; |
| 382 | | @export(__aeabi_d2f, .{ .name = "__aeabi_d2f", .linkage = linkage }); |
| 383 | | |
| 384 | | const __aeabi_fadd = @import("compiler_rt/addXf3.zig").__aeabi_fadd; |
| 385 | | @export(__aeabi_fadd, .{ .name = "__aeabi_fadd", .linkage = linkage }); |
| 386 | | const __aeabi_dadd = @import("compiler_rt/addXf3.zig").__aeabi_dadd; |
| 387 | | @export(__aeabi_dadd, .{ .name = "__aeabi_dadd", .linkage = linkage }); |
| 388 | | const __aeabi_fsub = @import("compiler_rt/addXf3.zig").__aeabi_fsub; |
| 389 | | @export(__aeabi_fsub, .{ .name = "__aeabi_fsub", .linkage = linkage }); |
| 390 | | const __aeabi_dsub = @import("compiler_rt/addXf3.zig").__aeabi_dsub; |
| 391 | | @export(__aeabi_dsub, .{ .name = "__aeabi_dsub", .linkage = linkage }); |
| 392 | | |
| 393 | | const __aeabi_f2uiz = @import("compiler_rt/fixunssfsi.zig").__aeabi_f2uiz; |
| 394 | | @export(__aeabi_f2uiz, .{ .name = "__aeabi_f2uiz", .linkage = linkage }); |
| 395 | | |
| 396 | | const __aeabi_f2iz = @import("compiler_rt/fixsfsi.zig").__aeabi_f2iz; |
| 397 | | @export(__aeabi_f2iz, .{ .name = "__aeabi_f2iz", .linkage = linkage }); |
| 398 | | const __aeabi_d2iz = @import("compiler_rt/fixdfsi.zig").__aeabi_d2iz; |
| 399 | | @export(__aeabi_d2iz, .{ .name = "__aeabi_d2iz", .linkage = linkage }); |
| 400 | | |
| 401 | | const __aeabi_fdiv = @import("compiler_rt/divsf3.zig").__aeabi_fdiv; |
| 402 | | @export(__aeabi_fdiv, .{ .name = "__aeabi_fdiv", .linkage = linkage }); |
| 403 | | const __aeabi_ddiv = @import("compiler_rt/divdf3.zig").__aeabi_ddiv; |
| 404 | | @export(__aeabi_ddiv, .{ .name = "__aeabi_ddiv", .linkage = linkage }); |
| 405 | | |
| 406 | | const __aeabi_llsl = @import("compiler_rt/shift.zig").__aeabi_llsl; |
| 407 | | @export(__aeabi_llsl, .{ .name = "__aeabi_llsl", .linkage = linkage }); |
| 408 | | const __aeabi_lasr = @import("compiler_rt/shift.zig").__aeabi_lasr; |
| 409 | | @export(__aeabi_lasr, .{ .name = "__aeabi_lasr", .linkage = linkage }); |
| 410 | | const __aeabi_llsr = @import("compiler_rt/shift.zig").__aeabi_llsr; |
| 411 | | @export(__aeabi_llsr, .{ .name = "__aeabi_llsr", .linkage = linkage }); |
| 412 | | |
| 413 | | const __aeabi_fcmpeq = @import("compiler_rt/compareXf2.zig").__aeabi_fcmpeq; |
| 414 | | @export(__aeabi_fcmpeq, .{ .name = "__aeabi_fcmpeq", .linkage = linkage }); |
| 415 | | const __aeabi_fcmplt = @import("compiler_rt/compareXf2.zig").__aeabi_fcmplt; |
| 416 | | @export(__aeabi_fcmplt, .{ .name = "__aeabi_fcmplt", .linkage = linkage }); |
| 417 | | const __aeabi_fcmple = @import("compiler_rt/compareXf2.zig").__aeabi_fcmple; |
| 418 | | @export(__aeabi_fcmple, .{ .name = "__aeabi_fcmple", .linkage = linkage }); |
| 419 | | const __aeabi_fcmpge = @import("compiler_rt/compareXf2.zig").__aeabi_fcmpge; |
| 420 | | @export(__aeabi_fcmpge, .{ .name = "__aeabi_fcmpge", .linkage = linkage }); |
| 421 | | const __aeabi_fcmpgt = @import("compiler_rt/compareXf2.zig").__aeabi_fcmpgt; |
| 422 | | @export(__aeabi_fcmpgt, .{ .name = "__aeabi_fcmpgt", .linkage = linkage }); |
| 423 | | const __aeabi_fcmpun = @import("compiler_rt/compareXf2.zig").__aeabi_fcmpun; |
| 424 | | @export(__aeabi_fcmpun, .{ .name = "__aeabi_fcmpun", .linkage = linkage }); |
| 425 | | |
| 426 | | const __aeabi_dcmpeq = @import("compiler_rt/compareXf2.zig").__aeabi_dcmpeq; |
| 427 | | @export(__aeabi_dcmpeq, .{ .name = "__aeabi_dcmpeq", .linkage = linkage }); |
| 428 | | const __aeabi_dcmplt = @import("compiler_rt/compareXf2.zig").__aeabi_dcmplt; |
| 429 | | @export(__aeabi_dcmplt, .{ .name = "__aeabi_dcmplt", .linkage = linkage }); |
| 430 | | const __aeabi_dcmple = @import("compiler_rt/compareXf2.zig").__aeabi_dcmple; |
| 431 | | @export(__aeabi_dcmple, .{ .name = "__aeabi_dcmple", .linkage = linkage }); |
| 432 | | const __aeabi_dcmpge = @import("compiler_rt/compareXf2.zig").__aeabi_dcmpge; |
| 433 | | @export(__aeabi_dcmpge, .{ .name = "__aeabi_dcmpge", .linkage = linkage }); |
| 434 | | const __aeabi_dcmpgt = @import("compiler_rt/compareXf2.zig").__aeabi_dcmpgt; |
| 435 | | @export(__aeabi_dcmpgt, .{ .name = "__aeabi_dcmpgt", .linkage = linkage }); |
| 436 | | const __aeabi_dcmpun = @import("compiler_rt/compareXf2.zig").__aeabi_dcmpun; |
| 437 | | @export(__aeabi_dcmpun, .{ .name = "__aeabi_dcmpun", .linkage = linkage }); |
| 438 | | } |
| 46 | // __clear_cache manages its own logic about whether to be exported or not. |
| 47 | _ = @import("compiler_rt/clear_cache.zig").clear_cache; |
| 48 | |
| 49 | const __lesf2 = @import("compiler_rt/compareXf2.zig").__lesf2; |
| 50 | @export(__lesf2, .{ .name = "__lesf2", .linkage = linkage }); |
| 51 | const __ledf2 = @import("compiler_rt/compareXf2.zig").__ledf2; |
| 52 | @export(__ledf2, .{ .name = "__ledf2", .linkage = linkage }); |
| 53 | const __letf2 = @import("compiler_rt/compareXf2.zig").__letf2; |
| 54 | @export(__letf2, .{ .name = "__letf2", .linkage = linkage }); |
| 55 | |
| 56 | const __gesf2 = @import("compiler_rt/compareXf2.zig").__gesf2; |
| 57 | @export(__gesf2, .{ .name = "__gesf2", .linkage = linkage }); |
| 58 | const __gedf2 = @import("compiler_rt/compareXf2.zig").__gedf2; |
| 59 | @export(__gedf2, .{ .name = "__gedf2", .linkage = linkage }); |
| 60 | const __getf2 = @import("compiler_rt/compareXf2.zig").__getf2; |
| 61 | @export(__getf2, .{ .name = "__getf2", .linkage = linkage }); |
| 62 | |
| 63 | if (!is_test) { |
| 64 | @export(__lesf2, .{ .name = "__cmpsf2", .linkage = linkage }); |
| 65 | @export(__ledf2, .{ .name = "__cmpdf2", .linkage = linkage }); |
| 66 | @export(__letf2, .{ .name = "__cmptf2", .linkage = linkage }); |
| 67 | |
| 68 | const __eqsf2 = @import("compiler_rt/compareXf2.zig").__eqsf2; |
| 69 | @export(__eqsf2, .{ .name = "__eqsf2", .linkage = linkage }); |
| 70 | const __eqdf2 = @import("compiler_rt/compareXf2.zig").__eqdf2; |
| 71 | @export(__eqdf2, .{ .name = "__eqdf2", .linkage = linkage }); |
| 72 | @export(__letf2, .{ .name = "__eqtf2", .linkage = linkage }); |
| 73 | |
| 74 | const __ltsf2 = @import("compiler_rt/compareXf2.zig").__ltsf2; |
| 75 | @export(__ltsf2, .{ .name = "__ltsf2", .linkage = linkage }); |
| 76 | const __ltdf2 = @import("compiler_rt/compareXf2.zig").__ltdf2; |
| 77 | @export(__ltdf2, .{ .name = "__ltdf2", .linkage = linkage }); |
| 78 | @export(__letf2, .{ .name = "__lttf2", .linkage = linkage }); |
| 79 | |
| 80 | const __nesf2 = @import("compiler_rt/compareXf2.zig").__nesf2; |
| 81 | @export(__nesf2, .{ .name = "__nesf2", .linkage = linkage }); |
| 82 | const __nedf2 = @import("compiler_rt/compareXf2.zig").__nedf2; |
| 83 | @export(__nedf2, .{ .name = "__nedf2", .linkage = linkage }); |
| 84 | @export(__letf2, .{ .name = "__netf2", .linkage = linkage }); |
| 85 | |
| 86 | const __gtsf2 = @import("compiler_rt/compareXf2.zig").__gtsf2; |
| 87 | @export(__gtsf2, .{ .name = "__gtsf2", .linkage = linkage }); |
| 88 | const __gtdf2 = @import("compiler_rt/compareXf2.zig").__gtdf2; |
| 89 | @export(__gtdf2, .{ .name = "__gtdf2", .linkage = linkage }); |
| 90 | @export(__getf2, .{ .name = "__gttf2", .linkage = linkage }); |
| 91 | |
| 92 | @export(@import("compiler_rt/extendXfYf2.zig").__extendhfsf2, .{ |
| 93 | .name = "__gnu_h2f_ieee", |
| 94 | .linkage = linkage, |
| 95 | }); |
| 96 | @export(@import("compiler_rt/truncXfYf2.zig").__truncsfhf2, .{ |
| 97 | .name = "__gnu_f2h_ieee", |
| 98 | .linkage = linkage, |
| 99 | }); |
| 100 | } |
| 439 | 101 | |
| 440 | | if (arch == .i386 and abi == .msvc) { |
| 441 | | // Don't let LLVM apply the stdcall name mangling on those MSVC builtins |
| 442 | | const _alldiv = @import("compiler_rt/aulldiv.zig")._alldiv; |
| 443 | | @export(_alldiv, .{ .name = "\x01__alldiv", .linkage = strong_linkage }); |
| 444 | | const _aulldiv = @import("compiler_rt/aulldiv.zig")._aulldiv; |
| 445 | | @export(_aulldiv, .{ .name = "\x01__aulldiv", .linkage = strong_linkage }); |
| 446 | | const _allrem = @import("compiler_rt/aullrem.zig")._allrem; |
| 447 | | @export(_allrem, .{ .name = "\x01__allrem", .linkage = strong_linkage }); |
| 448 | | const _aullrem = @import("compiler_rt/aullrem.zig")._aullrem; |
| 449 | | @export(_aullrem, .{ .name = "\x01__aullrem", .linkage = strong_linkage }); |
| 450 | | } |
| 102 | const __unordsf2 = @import("compiler_rt/compareXf2.zig").__unordsf2; |
| 103 | @export(__unordsf2, .{ .name = "__unordsf2", .linkage = linkage }); |
| 104 | const __unorddf2 = @import("compiler_rt/compareXf2.zig").__unorddf2; |
| 105 | @export(__unorddf2, .{ .name = "__unorddf2", .linkage = linkage }); |
| 106 | const __unordtf2 = @import("compiler_rt/compareXf2.zig").__unordtf2; |
| 107 | @export(__unordtf2, .{ .name = "__unordtf2", .linkage = linkage }); |
| 108 | |
| 109 | const __addsf3 = @import("compiler_rt/addXf3.zig").__addsf3; |
| 110 | @export(__addsf3, .{ .name = "__addsf3", .linkage = linkage }); |
| 111 | const __adddf3 = @import("compiler_rt/addXf3.zig").__adddf3; |
| 112 | @export(__adddf3, .{ .name = "__adddf3", .linkage = linkage }); |
| 113 | const __addtf3 = @import("compiler_rt/addXf3.zig").__addtf3; |
| 114 | @export(__addtf3, .{ .name = "__addtf3", .linkage = linkage }); |
| 115 | const __subsf3 = @import("compiler_rt/addXf3.zig").__subsf3; |
| 116 | @export(__subsf3, .{ .name = "__subsf3", .linkage = linkage }); |
| 117 | const __subdf3 = @import("compiler_rt/addXf3.zig").__subdf3; |
| 118 | @export(__subdf3, .{ .name = "__subdf3", .linkage = linkage }); |
| 119 | const __subtf3 = @import("compiler_rt/addXf3.zig").__subtf3; |
| 120 | @export(__subtf3, .{ .name = "__subtf3", .linkage = linkage }); |
| 121 | |
| 122 | const __mulsf3 = @import("compiler_rt/mulXf3.zig").__mulsf3; |
| 123 | @export(__mulsf3, .{ .name = "__mulsf3", .linkage = linkage }); |
| 124 | const __muldf3 = @import("compiler_rt/mulXf3.zig").__muldf3; |
| 125 | @export(__muldf3, .{ .name = "__muldf3", .linkage = linkage }); |
| 126 | const __multf3 = @import("compiler_rt/mulXf3.zig").__multf3; |
| 127 | @export(__multf3, .{ .name = "__multf3", .linkage = linkage }); |
| 128 | |
| 129 | const __divsf3 = @import("compiler_rt/divsf3.zig").__divsf3; |
| 130 | @export(__divsf3, .{ .name = "__divsf3", .linkage = linkage }); |
| 131 | const __divdf3 = @import("compiler_rt/divdf3.zig").__divdf3; |
| 132 | @export(__divdf3, .{ .name = "__divdf3", .linkage = linkage }); |
| 133 | const __divtf3 = @import("compiler_rt/divtf3.zig").__divtf3; |
| 134 | @export(__divtf3, .{ .name = "__divtf3", .linkage = linkage }); |
| 135 | |
| 136 | const __ashldi3 = @import("compiler_rt/shift.zig").__ashldi3; |
| 137 | @export(__ashldi3, .{ .name = "__ashldi3", .linkage = linkage }); |
| 138 | const __ashlti3 = @import("compiler_rt/shift.zig").__ashlti3; |
| 139 | @export(__ashlti3, .{ .name = "__ashlti3", .linkage = linkage }); |
| 140 | const __ashrdi3 = @import("compiler_rt/shift.zig").__ashrdi3; |
| 141 | @export(__ashrdi3, .{ .name = "__ashrdi3", .linkage = linkage }); |
| 142 | const __ashrti3 = @import("compiler_rt/shift.zig").__ashrti3; |
| 143 | @export(__ashrti3, .{ .name = "__ashrti3", .linkage = linkage }); |
| 144 | const __lshrdi3 = @import("compiler_rt/shift.zig").__lshrdi3; |
| 145 | @export(__lshrdi3, .{ .name = "__lshrdi3", .linkage = linkage }); |
| 146 | const __lshrti3 = @import("compiler_rt/shift.zig").__lshrti3; |
| 147 | @export(__lshrti3, .{ .name = "__lshrti3", .linkage = linkage }); |
| 148 | |
| 149 | const __floatsidf = @import("compiler_rt/floatsiXf.zig").__floatsidf; |
| 150 | @export(__floatsidf, .{ .name = "__floatsidf", .linkage = linkage }); |
| 151 | const __floatsisf = @import("compiler_rt/floatsiXf.zig").__floatsisf; |
| 152 | @export(__floatsisf, .{ .name = "__floatsisf", .linkage = linkage }); |
| 153 | const __floatdidf = @import("compiler_rt/floatdidf.zig").__floatdidf; |
| 154 | @export(__floatdidf, .{ .name = "__floatdidf", .linkage = linkage }); |
| 155 | const __floatsitf = @import("compiler_rt/floatsiXf.zig").__floatsitf; |
| 156 | @export(__floatsitf, .{ .name = "__floatsitf", .linkage = linkage }); |
| 157 | |
| 158 | const __floatunsisf = @import("compiler_rt/floatunsisf.zig").__floatunsisf; |
| 159 | @export(__floatunsisf, .{ .name = "__floatunsisf", .linkage = linkage }); |
| 160 | const __floatundisf = @import("compiler_rt/floatundisf.zig").__floatundisf; |
| 161 | @export(__floatundisf, .{ .name = "__floatundisf", .linkage = linkage }); |
| 162 | const __floatunsidf = @import("compiler_rt/floatunsidf.zig").__floatunsidf; |
| 163 | @export(__floatunsidf, .{ .name = "__floatunsidf", .linkage = linkage }); |
| 164 | const __floatundidf = @import("compiler_rt/floatundidf.zig").__floatundidf; |
| 165 | @export(__floatundidf, .{ .name = "__floatundidf", .linkage = linkage }); |
| 166 | |
| 167 | const __floatditf = @import("compiler_rt/floatditf.zig").__floatditf; |
| 168 | @export(__floatditf, .{ .name = "__floatditf", .linkage = linkage }); |
| 169 | const __floattitf = @import("compiler_rt/floattitf.zig").__floattitf; |
| 170 | @export(__floattitf, .{ .name = "__floattitf", .linkage = linkage }); |
| 171 | const __floattidf = @import("compiler_rt/floattidf.zig").__floattidf; |
| 172 | @export(__floattidf, .{ .name = "__floattidf", .linkage = linkage }); |
| 173 | const __floattisf = @import("compiler_rt/floatXisf.zig").__floattisf; |
| 174 | @export(__floattisf, .{ .name = "__floattisf", .linkage = linkage }); |
| 175 | const __floatdisf = @import("compiler_rt/floatXisf.zig").__floatdisf; |
| 176 | @export(__floatdisf, .{ .name = "__floatdisf", .linkage = linkage }); |
| 177 | |
| 178 | const __floatunditf = @import("compiler_rt/floatunditf.zig").__floatunditf; |
| 179 | @export(__floatunditf, .{ .name = "__floatunditf", .linkage = linkage }); |
| 180 | const __floatunsitf = @import("compiler_rt/floatunsitf.zig").__floatunsitf; |
| 181 | @export(__floatunsitf, .{ .name = "__floatunsitf", .linkage = linkage }); |
| 182 | |
| 183 | const __floatuntitf = @import("compiler_rt/floatuntitf.zig").__floatuntitf; |
| 184 | @export(__floatuntitf, .{ .name = "__floatuntitf", .linkage = linkage }); |
| 185 | const __floatuntidf = @import("compiler_rt/floatuntidf.zig").__floatuntidf; |
| 186 | @export(__floatuntidf, .{ .name = "__floatuntidf", .linkage = linkage }); |
| 187 | const __floatuntisf = @import("compiler_rt/floatuntisf.zig").__floatuntisf; |
| 188 | @export(__floatuntisf, .{ .name = "__floatuntisf", .linkage = linkage }); |
| 451 | 189 | |
| 452 | | if (arch.isSPARC()) { |
| 453 | | // SPARC systems use a different naming scheme |
| 454 | | const _Qp_add = @import("compiler_rt/sparc.zig")._Qp_add; |
| 455 | | @export(_Qp_add, .{ .name = "_Qp_add", .linkage = linkage }); |
| 456 | | const _Qp_div = @import("compiler_rt/sparc.zig")._Qp_div; |
| 457 | | @export(_Qp_div, .{ .name = "_Qp_div", .linkage = linkage }); |
| 458 | | const _Qp_mul = @import("compiler_rt/sparc.zig")._Qp_mul; |
| 459 | | @export(_Qp_mul, .{ .name = "_Qp_mul", .linkage = linkage }); |
| 460 | | const _Qp_sub = @import("compiler_rt/sparc.zig")._Qp_sub; |
| 461 | | @export(_Qp_sub, .{ .name = "_Qp_sub", .linkage = linkage }); |
| 462 | | |
| 463 | | const _Qp_cmp = @import("compiler_rt/sparc.zig")._Qp_cmp; |
| 464 | | @export(_Qp_cmp, .{ .name = "_Qp_cmp", .linkage = linkage }); |
| 465 | | const _Qp_feq = @import("compiler_rt/sparc.zig")._Qp_feq; |
| 466 | | @export(_Qp_feq, .{ .name = "_Qp_feq", .linkage = linkage }); |
| 467 | | const _Qp_fne = @import("compiler_rt/sparc.zig")._Qp_fne; |
| 468 | | @export(_Qp_fne, .{ .name = "_Qp_fne", .linkage = linkage }); |
| 469 | | const _Qp_flt = @import("compiler_rt/sparc.zig")._Qp_flt; |
| 470 | | @export(_Qp_flt, .{ .name = "_Qp_flt", .linkage = linkage }); |
| 471 | | const _Qp_fle = @import("compiler_rt/sparc.zig")._Qp_fle; |
| 472 | | @export(_Qp_fle, .{ .name = "_Qp_fle", .linkage = linkage }); |
| 473 | | const _Qp_fgt = @import("compiler_rt/sparc.zig")._Qp_fgt; |
| 474 | | @export(_Qp_fgt, .{ .name = "_Qp_fgt", .linkage = linkage }); |
| 475 | | const _Qp_fge = @import("compiler_rt/sparc.zig")._Qp_fge; |
| 476 | | @export(_Qp_fge, .{ .name = "_Qp_fge", .linkage = linkage }); |
| 477 | | |
| 478 | | const _Qp_itoq = @import("compiler_rt/sparc.zig")._Qp_itoq; |
| 479 | | @export(_Qp_itoq, .{ .name = "_Qp_itoq", .linkage = linkage }); |
| 480 | | const _Qp_uitoq = @import("compiler_rt/sparc.zig")._Qp_uitoq; |
| 481 | | @export(_Qp_uitoq, .{ .name = "_Qp_uitoq", .linkage = linkage }); |
| 482 | | const _Qp_xtoq = @import("compiler_rt/sparc.zig")._Qp_xtoq; |
| 483 | | @export(_Qp_xtoq, .{ .name = "_Qp_xtoq", .linkage = linkage }); |
| 484 | | const _Qp_uxtoq = @import("compiler_rt/sparc.zig")._Qp_uxtoq; |
| 485 | | @export(_Qp_uxtoq, .{ .name = "_Qp_uxtoq", .linkage = linkage }); |
| 486 | | const _Qp_stoq = @import("compiler_rt/sparc.zig")._Qp_stoq; |
| 487 | | @export(_Qp_stoq, .{ .name = "_Qp_stoq", .linkage = linkage }); |
| 488 | | const _Qp_dtoq = @import("compiler_rt/sparc.zig")._Qp_dtoq; |
| 489 | | @export(_Qp_dtoq, .{ .name = "_Qp_dtoq", .linkage = linkage }); |
| 490 | | const _Qp_qtoi = @import("compiler_rt/sparc.zig")._Qp_qtoi; |
| 491 | | @export(_Qp_qtoi, .{ .name = "_Qp_qtoi", .linkage = linkage }); |
| 492 | | const _Qp_qtoui = @import("compiler_rt/sparc.zig")._Qp_qtoui; |
| 493 | | @export(_Qp_qtoui, .{ .name = "_Qp_qtoui", .linkage = linkage }); |
| 494 | | const _Qp_qtox = @import("compiler_rt/sparc.zig")._Qp_qtox; |
| 495 | | @export(_Qp_qtox, .{ .name = "_Qp_qtox", .linkage = linkage }); |
| 496 | | const _Qp_qtoux = @import("compiler_rt/sparc.zig")._Qp_qtoux; |
| 497 | | @export(_Qp_qtoux, .{ .name = "_Qp_qtoux", .linkage = linkage }); |
| 498 | | const _Qp_qtos = @import("compiler_rt/sparc.zig")._Qp_qtos; |
| 499 | | @export(_Qp_qtos, .{ .name = "_Qp_qtos", .linkage = linkage }); |
| 500 | | const _Qp_qtod = @import("compiler_rt/sparc.zig")._Qp_qtod; |
| 501 | | @export(_Qp_qtod, .{ .name = "_Qp_qtod", .linkage = linkage }); |
| 502 | | } |
| 190 | const __truncsfhf2 = @import("compiler_rt/truncXfYf2.zig").__truncsfhf2; |
| 191 | @export(__truncsfhf2, .{ .name = "__truncsfhf2", .linkage = linkage }); |
| 192 | const __truncdfhf2 = @import("compiler_rt/truncXfYf2.zig").__truncdfhf2; |
| 193 | @export(__truncdfhf2, .{ .name = "__truncdfhf2", .linkage = linkage }); |
| 194 | const __trunctfhf2 = @import("compiler_rt/truncXfYf2.zig").__trunctfhf2; |
| 195 | @export(__trunctfhf2, .{ .name = "__trunctfhf2", .linkage = linkage }); |
| 196 | const __trunctfdf2 = @import("compiler_rt/truncXfYf2.zig").__trunctfdf2; |
| 197 | @export(__trunctfdf2, .{ .name = "__trunctfdf2", .linkage = linkage }); |
| 198 | const __trunctfsf2 = @import("compiler_rt/truncXfYf2.zig").__trunctfsf2; |
| 199 | @export(__trunctfsf2, .{ .name = "__trunctfsf2", .linkage = linkage }); |
| 200 | |
| 201 | const __truncdfsf2 = @import("compiler_rt/truncXfYf2.zig").__truncdfsf2; |
| 202 | @export(__truncdfsf2, .{ .name = "__truncdfsf2", .linkage = linkage }); |
| 203 | |
| 204 | const __extendsfdf2 = @import("compiler_rt/extendXfYf2.zig").__extendsfdf2; |
| 205 | @export(__extendsfdf2, .{ .name = "__extendsfdf2", .linkage = linkage }); |
| 206 | |
| 207 | const __fixunssfsi = @import("compiler_rt/fixunssfsi.zig").__fixunssfsi; |
| 208 | @export(__fixunssfsi, .{ .name = "__fixunssfsi", .linkage = linkage }); |
| 209 | const __fixunssfdi = @import("compiler_rt/fixunssfdi.zig").__fixunssfdi; |
| 210 | @export(__fixunssfdi, .{ .name = "__fixunssfdi", .linkage = linkage }); |
| 211 | const __fixunssfti = @import("compiler_rt/fixunssfti.zig").__fixunssfti; |
| 212 | @export(__fixunssfti, .{ .name = "__fixunssfti", .linkage = linkage }); |
| 213 | |
| 214 | const __fixunsdfsi = @import("compiler_rt/fixunsdfsi.zig").__fixunsdfsi; |
| 215 | @export(__fixunsdfsi, .{ .name = "__fixunsdfsi", .linkage = linkage }); |
| 216 | const __fixunsdfdi = @import("compiler_rt/fixunsdfdi.zig").__fixunsdfdi; |
| 217 | @export(__fixunsdfdi, .{ .name = "__fixunsdfdi", .linkage = linkage }); |
| 218 | const __fixunsdfti = @import("compiler_rt/fixunsdfti.zig").__fixunsdfti; |
| 219 | @export(__fixunsdfti, .{ .name = "__fixunsdfti", .linkage = linkage }); |
| 220 | |
| 221 | const __fixunstfsi = @import("compiler_rt/fixunstfsi.zig").__fixunstfsi; |
| 222 | @export(__fixunstfsi, .{ .name = "__fixunstfsi", .linkage = linkage }); |
| 223 | const __fixunstfdi = @import("compiler_rt/fixunstfdi.zig").__fixunstfdi; |
| 224 | @export(__fixunstfdi, .{ .name = "__fixunstfdi", .linkage = linkage }); |
| 225 | const __fixunstfti = @import("compiler_rt/fixunstfti.zig").__fixunstfti; |
| 226 | @export(__fixunstfti, .{ .name = "__fixunstfti", .linkage = linkage }); |
| 227 | |
| 228 | const __fixdfdi = @import("compiler_rt/fixdfdi.zig").__fixdfdi; |
| 229 | @export(__fixdfdi, .{ .name = "__fixdfdi", .linkage = linkage }); |
| 230 | const __fixdfsi = @import("compiler_rt/fixdfsi.zig").__fixdfsi; |
| 231 | @export(__fixdfsi, .{ .name = "__fixdfsi", .linkage = linkage }); |
| 232 | const __fixdfti = @import("compiler_rt/fixdfti.zig").__fixdfti; |
| 233 | @export(__fixdfti, .{ .name = "__fixdfti", .linkage = linkage }); |
| 234 | const __fixsfdi = @import("compiler_rt/fixsfdi.zig").__fixsfdi; |
| 235 | @export(__fixsfdi, .{ .name = "__fixsfdi", .linkage = linkage }); |
| 236 | const __fixsfsi = @import("compiler_rt/fixsfsi.zig").__fixsfsi; |
| 237 | @export(__fixsfsi, .{ .name = "__fixsfsi", .linkage = linkage }); |
| 238 | const __fixsfti = @import("compiler_rt/fixsfti.zig").__fixsfti; |
| 239 | @export(__fixsfti, .{ .name = "__fixsfti", .linkage = linkage }); |
| 240 | const __fixtfdi = @import("compiler_rt/fixtfdi.zig").__fixtfdi; |
| 241 | @export(__fixtfdi, .{ .name = "__fixtfdi", .linkage = linkage }); |
| 242 | const __fixtfsi = @import("compiler_rt/fixtfsi.zig").__fixtfsi; |
| 243 | @export(__fixtfsi, .{ .name = "__fixtfsi", .linkage = linkage }); |
| 244 | const __fixtfti = @import("compiler_rt/fixtfti.zig").__fixtfti; |
| 245 | @export(__fixtfti, .{ .name = "__fixtfti", .linkage = linkage }); |
| 246 | |
| 247 | const __udivmoddi4 = @import("compiler_rt/int.zig").__udivmoddi4; |
| 248 | @export(__udivmoddi4, .{ .name = "__udivmoddi4", .linkage = linkage }); |
| 249 | const __popcountdi2 = @import("compiler_rt/popcountdi2.zig").__popcountdi2; |
| 250 | @export(__popcountdi2, .{ .name = "__popcountdi2", .linkage = linkage }); |
| 251 | |
| 252 | const __mulsi3 = @import("compiler_rt/int.zig").__mulsi3; |
| 253 | @export(__mulsi3, .{ .name = "__mulsi3", .linkage = linkage }); |
| 254 | const __muldi3 = @import("compiler_rt/muldi3.zig").__muldi3; |
| 255 | @export(__muldi3, .{ .name = "__muldi3", .linkage = linkage }); |
| 256 | const __divmoddi4 = @import("compiler_rt/int.zig").__divmoddi4; |
| 257 | @export(__divmoddi4, .{ .name = "__divmoddi4", .linkage = linkage }); |
| 258 | const __divsi3 = @import("compiler_rt/int.zig").__divsi3; |
| 259 | @export(__divsi3, .{ .name = "__divsi3", .linkage = linkage }); |
| 260 | const __divdi3 = @import("compiler_rt/int.zig").__divdi3; |
| 261 | @export(__divdi3, .{ .name = "__divdi3", .linkage = linkage }); |
| 262 | const __udivsi3 = @import("compiler_rt/int.zig").__udivsi3; |
| 263 | @export(__udivsi3, .{ .name = "__udivsi3", .linkage = linkage }); |
| 264 | const __udivdi3 = @import("compiler_rt/int.zig").__udivdi3; |
| 265 | @export(__udivdi3, .{ .name = "__udivdi3", .linkage = linkage }); |
| 266 | const __modsi3 = @import("compiler_rt/int.zig").__modsi3; |
| 267 | @export(__modsi3, .{ .name = "__modsi3", .linkage = linkage }); |
| 268 | const __moddi3 = @import("compiler_rt/int.zig").__moddi3; |
| 269 | @export(__moddi3, .{ .name = "__moddi3", .linkage = linkage }); |
| 270 | const __umodsi3 = @import("compiler_rt/int.zig").__umodsi3; |
| 271 | @export(__umodsi3, .{ .name = "__umodsi3", .linkage = linkage }); |
| 272 | const __umoddi3 = @import("compiler_rt/int.zig").__umoddi3; |
| 273 | @export(__umoddi3, .{ .name = "__umoddi3", .linkage = linkage }); |
| 274 | const __divmodsi4 = @import("compiler_rt/int.zig").__divmodsi4; |
| 275 | @export(__divmodsi4, .{ .name = "__divmodsi4", .linkage = linkage }); |
| 276 | const __udivmodsi4 = @import("compiler_rt/int.zig").__udivmodsi4; |
| 277 | @export(__udivmodsi4, .{ .name = "__udivmodsi4", .linkage = linkage }); |
| 278 | |
| 279 | const __negsf2 = @import("compiler_rt/negXf2.zig").__negsf2; |
| 280 | @export(__negsf2, .{ .name = "__negsf2", .linkage = linkage }); |
| 281 | const __negdf2 = @import("compiler_rt/negXf2.zig").__negdf2; |
| 282 | @export(__negdf2, .{ .name = "__negdf2", .linkage = linkage }); |
| 283 | |
| 284 | const __clzsi2 = @import("compiler_rt/count0bits.zig").__clzsi2; |
| 285 | @export(__clzsi2, .{ .name = "__clzsi2", .linkage = linkage }); |
| 286 | const __clzdi2 = @import("compiler_rt/count0bits.zig").__clzdi2; |
| 287 | @export(__clzdi2, .{ .name = "__clzdi2", .linkage = linkage }); |
| 288 | const __clzti2 = @import("compiler_rt/count0bits.zig").__clzti2; |
| 289 | @export(__clzti2, .{ .name = "__clzti2", .linkage = linkage }); |
| 290 | |
| 291 | if (builtin.link_libc and os_tag == .openbsd) { |
| 292 | const __emutls_get_address = @import("compiler_rt/emutls.zig").__emutls_get_address; |
| 293 | @export(__emutls_get_address, .{ .name = "__emutls_get_address", .linkage = linkage }); |
| 294 | } |
| 503 | 295 | |
| 504 | | if ((arch == .powerpc or arch.isPPC64()) and !is_test) { |
| 505 | | @export(__addtf3, .{ .name = "__addkf3", .linkage = linkage }); |
| 506 | | @export(__subtf3, .{ .name = "__subkf3", .linkage = linkage }); |
| 507 | | @export(__multf3, .{ .name = "__mulkf3", .linkage = linkage }); |
| 508 | | @export(__divtf3, .{ .name = "__divkf3", .linkage = linkage }); |
| 509 | | @export(__extendsftf2, .{ .name = "__extendsfkf2", .linkage = linkage }); |
| 510 | | @export(__extenddftf2, .{ .name = "__extenddfkf2", .linkage = linkage }); |
| 511 | | @export(__trunctfsf2, .{ .name = "__trunckfsf2", .linkage = linkage }); |
| 512 | | @export(__trunctfdf2, .{ .name = "__trunckfdf2", .linkage = linkage }); |
| 513 | | @export(__fixtfdi, .{ .name = "__fixkfdi", .linkage = linkage }); |
| 514 | | @export(__fixtfsi, .{ .name = "__fixkfsi", .linkage = linkage }); |
| 515 | | @export(__fixunstfsi, .{ .name = "__fixunskfsi", .linkage = linkage }); |
| 516 | | @export(__fixunstfdi, .{ .name = "__fixunskfdi", .linkage = linkage }); |
| 517 | | @export(__floatsitf, .{ .name = "__floatsikf", .linkage = linkage }); |
| 518 | | @export(__floatditf, .{ .name = "__floatdikf", .linkage = linkage }); |
| 519 | | @export(__floatunditf, .{ .name = "__floatundikf", .linkage = linkage }); |
| 520 | | @export(__floatunsitf, .{ .name = "__floatunsikf", .linkage = linkage }); |
| 521 | | |
| 522 | | @export(__letf2, .{ .name = "__eqkf2", .linkage = linkage }); |
| 523 | | @export(__letf2, .{ .name = "__nekf2", .linkage = linkage }); |
| 524 | | @export(__getf2, .{ .name = "__gekf2", .linkage = linkage }); |
| 525 | | @export(__letf2, .{ .name = "__ltkf2", .linkage = linkage }); |
| 526 | | @export(__letf2, .{ .name = "__lekf2", .linkage = linkage }); |
| 527 | | @export(__getf2, .{ .name = "__gtkf2", .linkage = linkage }); |
| 528 | | @export(__unordtf2, .{ .name = "__unordkf2", .linkage = linkage }); |
| 529 | | } |
| 296 | if ((arch.isARM() or arch.isThumb()) and !is_test) { |
| 297 | const __aeabi_unwind_cpp_pr0 = @import("compiler_rt/arm.zig").__aeabi_unwind_cpp_pr0; |
| 298 | @export(__aeabi_unwind_cpp_pr0, .{ .name = "__aeabi_unwind_cpp_pr0", .linkage = linkage }); |
| 299 | const __aeabi_unwind_cpp_pr1 = @import("compiler_rt/arm.zig").__aeabi_unwind_cpp_pr1; |
| 300 | @export(__aeabi_unwind_cpp_pr1, .{ .name = "__aeabi_unwind_cpp_pr1", .linkage = linkage }); |
| 301 | const __aeabi_unwind_cpp_pr2 = @import("compiler_rt/arm.zig").__aeabi_unwind_cpp_pr2; |
| 302 | @export(__aeabi_unwind_cpp_pr2, .{ .name = "__aeabi_unwind_cpp_pr2", .linkage = linkage }); |
| 303 | |
| 304 | @export(__muldi3, .{ .name = "__aeabi_lmul", .linkage = linkage }); |
| 305 | |
| 306 | const __aeabi_ldivmod = @import("compiler_rt/arm.zig").__aeabi_ldivmod; |
| 307 | @export(__aeabi_ldivmod, .{ .name = "__aeabi_ldivmod", .linkage = linkage }); |
| 308 | const __aeabi_uldivmod = @import("compiler_rt/arm.zig").__aeabi_uldivmod; |
| 309 | @export(__aeabi_uldivmod, .{ .name = "__aeabi_uldivmod", .linkage = linkage }); |
| 310 | |
| 311 | @export(__divsi3, .{ .name = "__aeabi_idiv", .linkage = linkage }); |
| 312 | const __aeabi_idivmod = @import("compiler_rt/arm.zig").__aeabi_idivmod; |
| 313 | @export(__aeabi_idivmod, .{ .name = "__aeabi_idivmod", .linkage = linkage }); |
| 314 | @export(__udivsi3, .{ .name = "__aeabi_uidiv", .linkage = linkage }); |
| 315 | const __aeabi_uidivmod = @import("compiler_rt/arm.zig").__aeabi_uidivmod; |
| 316 | @export(__aeabi_uidivmod, .{ .name = "__aeabi_uidivmod", .linkage = linkage }); |
| 317 | |
| 318 | const __aeabi_memcpy = @import("compiler_rt/arm.zig").__aeabi_memcpy; |
| 319 | @export(__aeabi_memcpy, .{ .name = "__aeabi_memcpy", .linkage = linkage }); |
| 320 | @export(__aeabi_memcpy, .{ .name = "__aeabi_memcpy4", .linkage = linkage }); |
| 321 | @export(__aeabi_memcpy, .{ .name = "__aeabi_memcpy8", .linkage = linkage }); |
| 322 | |
| 323 | const __aeabi_memmove = @import("compiler_rt/arm.zig").__aeabi_memmove; |
| 324 | @export(__aeabi_memmove, .{ .name = "__aeabi_memmove", .linkage = linkage }); |
| 325 | @export(__aeabi_memmove, .{ .name = "__aeabi_memmove4", .linkage = linkage }); |
| 326 | @export(__aeabi_memmove, .{ .name = "__aeabi_memmove8", .linkage = linkage }); |
| 327 | |
| 328 | const __aeabi_memset = @import("compiler_rt/arm.zig").__aeabi_memset; |
| 329 | @export(__aeabi_memset, .{ .name = "__aeabi_memset", .linkage = linkage }); |
| 330 | @export(__aeabi_memset, .{ .name = "__aeabi_memset4", .linkage = linkage }); |
| 331 | @export(__aeabi_memset, .{ .name = "__aeabi_memset8", .linkage = linkage }); |
| 332 | |
| 333 | const __aeabi_memclr = @import("compiler_rt/arm.zig").__aeabi_memclr; |
| 334 | @export(__aeabi_memclr, .{ .name = "__aeabi_memclr", .linkage = linkage }); |
| 335 | @export(__aeabi_memclr, .{ .name = "__aeabi_memclr4", .linkage = linkage }); |
| 336 | @export(__aeabi_memclr, .{ .name = "__aeabi_memclr8", .linkage = linkage }); |
| 337 | |
| 338 | if (os_tag == .linux) { |
| 339 | const __aeabi_read_tp = @import("compiler_rt/arm.zig").__aeabi_read_tp; |
| 340 | @export(__aeabi_read_tp, .{ .name = "__aeabi_read_tp", .linkage = linkage }); |
| 341 | } |
| 342 | |
| 343 | const __aeabi_f2d = @import("compiler_rt/extendXfYf2.zig").__aeabi_f2d; |
| 344 | @export(__aeabi_f2d, .{ .name = "__aeabi_f2d", .linkage = linkage }); |
| 345 | const __aeabi_i2d = @import("compiler_rt/floatsiXf.zig").__aeabi_i2d; |
| 346 | @export(__aeabi_i2d, .{ .name = "__aeabi_i2d", .linkage = linkage }); |
| 347 | const __aeabi_l2d = @import("compiler_rt/floatdidf.zig").__aeabi_l2d; |
| 348 | @export(__aeabi_l2d, .{ .name = "__aeabi_l2d", .linkage = linkage }); |
| 349 | const __aeabi_l2f = @import("compiler_rt/floatXisf.zig").__aeabi_l2f; |
| 350 | @export(__aeabi_l2f, .{ .name = "__aeabi_l2f", .linkage = linkage }); |
| 351 | const __aeabi_ui2d = @import("compiler_rt/floatunsidf.zig").__aeabi_ui2d; |
| 352 | @export(__aeabi_ui2d, .{ .name = "__aeabi_ui2d", .linkage = linkage }); |
| 353 | const __aeabi_ul2d = @import("compiler_rt/floatundidf.zig").__aeabi_ul2d; |
| 354 | @export(__aeabi_ul2d, .{ .name = "__aeabi_ul2d", .linkage = linkage }); |
| 355 | const __aeabi_ui2f = @import("compiler_rt/floatunsisf.zig").__aeabi_ui2f; |
| 356 | @export(__aeabi_ui2f, .{ .name = "__aeabi_ui2f", .linkage = linkage }); |
| 357 | const __aeabi_ul2f = @import("compiler_rt/floatundisf.zig").__aeabi_ul2f; |
| 358 | @export(__aeabi_ul2f, .{ .name = "__aeabi_ul2f", .linkage = linkage }); |
| 359 | |
| 360 | const __aeabi_fneg = @import("compiler_rt/negXf2.zig").__aeabi_fneg; |
| 361 | @export(__aeabi_fneg, .{ .name = "__aeabi_fneg", .linkage = linkage }); |
| 362 | const __aeabi_dneg = @import("compiler_rt/negXf2.zig").__aeabi_dneg; |
| 363 | @export(__aeabi_dneg, .{ .name = "__aeabi_dneg", .linkage = linkage }); |
| 364 | |
| 365 | const __aeabi_fmul = @import("compiler_rt/mulXf3.zig").__aeabi_fmul; |
| 366 | @export(__aeabi_fmul, .{ .name = "__aeabi_fmul", .linkage = linkage }); |
| 367 | const __aeabi_dmul = @import("compiler_rt/mulXf3.zig").__aeabi_dmul; |
| 368 | @export(__aeabi_dmul, .{ .name = "__aeabi_dmul", .linkage = linkage }); |
| 369 | |
| 370 | const __aeabi_d2h = @import("compiler_rt/truncXfYf2.zig").__aeabi_d2h; |
| 371 | @export(__aeabi_d2h, .{ .name = "__aeabi_d2h", .linkage = linkage }); |
| 372 | |
| 373 | const __aeabi_f2ulz = @import("compiler_rt/fixunssfdi.zig").__aeabi_f2ulz; |
| 374 | @export(__aeabi_f2ulz, .{ .name = "__aeabi_f2ulz", .linkage = linkage }); |
| 375 | const __aeabi_d2ulz = @import("compiler_rt/fixunsdfdi.zig").__aeabi_d2ulz; |
| 376 | @export(__aeabi_d2ulz, .{ .name = "__aeabi_d2ulz", .linkage = linkage }); |
| 377 | |
| 378 | const __aeabi_f2lz = @import("compiler_rt/fixsfdi.zig").__aeabi_f2lz; |
| 379 | @export(__aeabi_f2lz, .{ .name = "__aeabi_f2lz", .linkage = linkage }); |
| 380 | const __aeabi_d2lz = @import("compiler_rt/fixdfdi.zig").__aeabi_d2lz; |
| 381 | @export(__aeabi_d2lz, .{ .name = "__aeabi_d2lz", .linkage = linkage }); |
| 382 | |
| 383 | const __aeabi_d2uiz = @import("compiler_rt/fixunsdfsi.zig").__aeabi_d2uiz; |
| 384 | @export(__aeabi_d2uiz, .{ .name = "__aeabi_d2uiz", .linkage = linkage }); |
| 385 | |
| 386 | const __aeabi_h2f = @import("compiler_rt/extendXfYf2.zig").__aeabi_h2f; |
| 387 | @export(__aeabi_h2f, .{ .name = "__aeabi_h2f", .linkage = linkage }); |
| 388 | const __aeabi_f2h = @import("compiler_rt/truncXfYf2.zig").__aeabi_f2h; |
| 389 | @export(__aeabi_f2h, .{ .name = "__aeabi_f2h", .linkage = linkage }); |
| 390 | |
| 391 | const __aeabi_i2f = @import("compiler_rt/floatsiXf.zig").__aeabi_i2f; |
| 392 | @export(__aeabi_i2f, .{ .name = "__aeabi_i2f", .linkage = linkage }); |
| 393 | const __aeabi_d2f = @import("compiler_rt/truncXfYf2.zig").__aeabi_d2f; |
| 394 | @export(__aeabi_d2f, .{ .name = "__aeabi_d2f", .linkage = linkage }); |
| 395 | |
| 396 | const __aeabi_fadd = @import("compiler_rt/addXf3.zig").__aeabi_fadd; |
| 397 | @export(__aeabi_fadd, .{ .name = "__aeabi_fadd", .linkage = linkage }); |
| 398 | const __aeabi_dadd = @import("compiler_rt/addXf3.zig").__aeabi_dadd; |
| 399 | @export(__aeabi_dadd, .{ .name = "__aeabi_dadd", .linkage = linkage }); |
| 400 | const __aeabi_fsub = @import("compiler_rt/addXf3.zig").__aeabi_fsub; |
| 401 | @export(__aeabi_fsub, .{ .name = "__aeabi_fsub", .linkage = linkage }); |
| 402 | const __aeabi_dsub = @import("compiler_rt/addXf3.zig").__aeabi_dsub; |
| 403 | @export(__aeabi_dsub, .{ .name = "__aeabi_dsub", .linkage = linkage }); |
| 404 | |
| 405 | const __aeabi_f2uiz = @import("compiler_rt/fixunssfsi.zig").__aeabi_f2uiz; |
| 406 | @export(__aeabi_f2uiz, .{ .name = "__aeabi_f2uiz", .linkage = linkage }); |
| 407 | |
| 408 | const __aeabi_f2iz = @import("compiler_rt/fixsfsi.zig").__aeabi_f2iz; |
| 409 | @export(__aeabi_f2iz, .{ .name = "__aeabi_f2iz", .linkage = linkage }); |
| 410 | const __aeabi_d2iz = @import("compiler_rt/fixdfsi.zig").__aeabi_d2iz; |
| 411 | @export(__aeabi_d2iz, .{ .name = "__aeabi_d2iz", .linkage = linkage }); |
| 412 | |
| 413 | const __aeabi_fdiv = @import("compiler_rt/divsf3.zig").__aeabi_fdiv; |
| 414 | @export(__aeabi_fdiv, .{ .name = "__aeabi_fdiv", .linkage = linkage }); |
| 415 | const __aeabi_ddiv = @import("compiler_rt/divdf3.zig").__aeabi_ddiv; |
| 416 | @export(__aeabi_ddiv, .{ .name = "__aeabi_ddiv", .linkage = linkage }); |
| 417 | |
| 418 | const __aeabi_llsl = @import("compiler_rt/shift.zig").__aeabi_llsl; |
| 419 | @export(__aeabi_llsl, .{ .name = "__aeabi_llsl", .linkage = linkage }); |
| 420 | const __aeabi_lasr = @import("compiler_rt/shift.zig").__aeabi_lasr; |
| 421 | @export(__aeabi_lasr, .{ .name = "__aeabi_lasr", .linkage = linkage }); |
| 422 | const __aeabi_llsr = @import("compiler_rt/shift.zig").__aeabi_llsr; |
| 423 | @export(__aeabi_llsr, .{ .name = "__aeabi_llsr", .linkage = linkage }); |
| 424 | |
| 425 | const __aeabi_fcmpeq = @import("compiler_rt/compareXf2.zig").__aeabi_fcmpeq; |
| 426 | @export(__aeabi_fcmpeq, .{ .name = "__aeabi_fcmpeq", .linkage = linkage }); |
| 427 | const __aeabi_fcmplt = @import("compiler_rt/compareXf2.zig").__aeabi_fcmplt; |
| 428 | @export(__aeabi_fcmplt, .{ .name = "__aeabi_fcmplt", .linkage = linkage }); |
| 429 | const __aeabi_fcmple = @import("compiler_rt/compareXf2.zig").__aeabi_fcmple; |
| 430 | @export(__aeabi_fcmple, .{ .name = "__aeabi_fcmple", .linkage = linkage }); |
| 431 | const __aeabi_fcmpge = @import("compiler_rt/compareXf2.zig").__aeabi_fcmpge; |
| 432 | @export(__aeabi_fcmpge, .{ .name = "__aeabi_fcmpge", .linkage = linkage }); |
| 433 | const __aeabi_fcmpgt = @import("compiler_rt/compareXf2.zig").__aeabi_fcmpgt; |
| 434 | @export(__aeabi_fcmpgt, .{ .name = "__aeabi_fcmpgt", .linkage = linkage }); |
| 435 | const __aeabi_fcmpun = @import("compiler_rt/compareXf2.zig").__aeabi_fcmpun; |
| 436 | @export(__aeabi_fcmpun, .{ .name = "__aeabi_fcmpun", .linkage = linkage }); |
| 437 | |
| 438 | const __aeabi_dcmpeq = @import("compiler_rt/compareXf2.zig").__aeabi_dcmpeq; |
| 439 | @export(__aeabi_dcmpeq, .{ .name = "__aeabi_dcmpeq", .linkage = linkage }); |
| 440 | const __aeabi_dcmplt = @import("compiler_rt/compareXf2.zig").__aeabi_dcmplt; |
| 441 | @export(__aeabi_dcmplt, .{ .name = "__aeabi_dcmplt", .linkage = linkage }); |
| 442 | const __aeabi_dcmple = @import("compiler_rt/compareXf2.zig").__aeabi_dcmple; |
| 443 | @export(__aeabi_dcmple, .{ .name = "__aeabi_dcmple", .linkage = linkage }); |
| 444 | const __aeabi_dcmpge = @import("compiler_rt/compareXf2.zig").__aeabi_dcmpge; |
| 445 | @export(__aeabi_dcmpge, .{ .name = "__aeabi_dcmpge", .linkage = linkage }); |
| 446 | const __aeabi_dcmpgt = @import("compiler_rt/compareXf2.zig").__aeabi_dcmpgt; |
| 447 | @export(__aeabi_dcmpgt, .{ .name = "__aeabi_dcmpgt", .linkage = linkage }); |
| 448 | const __aeabi_dcmpun = @import("compiler_rt/compareXf2.zig").__aeabi_dcmpun; |
| 449 | @export(__aeabi_dcmpun, .{ .name = "__aeabi_dcmpun", .linkage = linkage }); |
| 450 | } |
| 530 | 451 | |
| 531 | | if (builtin.os.tag == .windows) { |
| 532 | | // Default stack-probe functions emitted by LLVM |
| 533 | | if (is_mingw) { |
| 534 | | const _chkstk = @import("compiler_rt/stack_probe.zig")._chkstk; |
| 535 | | @export(_chkstk, .{ .name = "_alloca", .linkage = strong_linkage }); |
| 536 | | const ___chkstk_ms = @import("compiler_rt/stack_probe.zig").___chkstk_ms; |
| 537 | | @export(___chkstk_ms, .{ .name = "___chkstk_ms", .linkage = strong_linkage }); |
| 538 | | } else if (!builtin.link_libc) { |
| 539 | | // This symbols are otherwise exported by MSVCRT.lib |
| 540 | | const _chkstk = @import("compiler_rt/stack_probe.zig")._chkstk; |
| 541 | | @export(_chkstk, .{ .name = "_chkstk", .linkage = strong_linkage }); |
| 542 | | const __chkstk = @import("compiler_rt/stack_probe.zig").__chkstk; |
| 543 | | @export(__chkstk, .{ .name = "__chkstk", .linkage = strong_linkage }); |
| 452 | if (arch == .i386 and abi == .msvc) { |
| 453 | // Don't let LLVM apply the stdcall name mangling on those MSVC builtins |
| 454 | const _alldiv = @import("compiler_rt/aulldiv.zig")._alldiv; |
| 455 | @export(_alldiv, .{ .name = "\x01__alldiv", .linkage = strong_linkage }); |
| 456 | const _aulldiv = @import("compiler_rt/aulldiv.zig")._aulldiv; |
| 457 | @export(_aulldiv, .{ .name = "\x01__aulldiv", .linkage = strong_linkage }); |
| 458 | const _allrem = @import("compiler_rt/aullrem.zig")._allrem; |
| 459 | @export(_allrem, .{ .name = "\x01__allrem", .linkage = strong_linkage }); |
| 460 | const _aullrem = @import("compiler_rt/aullrem.zig")._aullrem; |
| 461 | @export(_aullrem, .{ .name = "\x01__aullrem", .linkage = strong_linkage }); |
| 544 | 462 | } |
| 545 | 463 | |
| 546 | | switch (arch) { |
| 547 | | .i386 => { |
| 548 | | const __divti3 = @import("compiler_rt/divti3.zig").__divti3; |
| 549 | | @export(__divti3, .{ .name = "__divti3", .linkage = linkage }); |
| 464 | if (arch.isSPARC()) { |
| 465 | // SPARC systems use a different naming scheme |
| 466 | const _Qp_add = @import("compiler_rt/sparc.zig")._Qp_add; |
| 467 | @export(_Qp_add, .{ .name = "_Qp_add", .linkage = linkage }); |
| 468 | const _Qp_div = @import("compiler_rt/sparc.zig")._Qp_div; |
| 469 | @export(_Qp_div, .{ .name = "_Qp_div", .linkage = linkage }); |
| 470 | const _Qp_mul = @import("compiler_rt/sparc.zig")._Qp_mul; |
| 471 | @export(_Qp_mul, .{ .name = "_Qp_mul", .linkage = linkage }); |
| 472 | const _Qp_sub = @import("compiler_rt/sparc.zig")._Qp_sub; |
| 473 | @export(_Qp_sub, .{ .name = "_Qp_sub", .linkage = linkage }); |
| 474 | |
| 475 | const _Qp_cmp = @import("compiler_rt/sparc.zig")._Qp_cmp; |
| 476 | @export(_Qp_cmp, .{ .name = "_Qp_cmp", .linkage = linkage }); |
| 477 | const _Qp_feq = @import("compiler_rt/sparc.zig")._Qp_feq; |
| 478 | @export(_Qp_feq, .{ .name = "_Qp_feq", .linkage = linkage }); |
| 479 | const _Qp_fne = @import("compiler_rt/sparc.zig")._Qp_fne; |
| 480 | @export(_Qp_fne, .{ .name = "_Qp_fne", .linkage = linkage }); |
| 481 | const _Qp_flt = @import("compiler_rt/sparc.zig")._Qp_flt; |
| 482 | @export(_Qp_flt, .{ .name = "_Qp_flt", .linkage = linkage }); |
| 483 | const _Qp_fle = @import("compiler_rt/sparc.zig")._Qp_fle; |
| 484 | @export(_Qp_fle, .{ .name = "_Qp_fle", .linkage = linkage }); |
| 485 | const _Qp_fgt = @import("compiler_rt/sparc.zig")._Qp_fgt; |
| 486 | @export(_Qp_fgt, .{ .name = "_Qp_fgt", .linkage = linkage }); |
| 487 | const _Qp_fge = @import("compiler_rt/sparc.zig")._Qp_fge; |
| 488 | @export(_Qp_fge, .{ .name = "_Qp_fge", .linkage = linkage }); |
| 489 | |
| 490 | const _Qp_itoq = @import("compiler_rt/sparc.zig")._Qp_itoq; |
| 491 | @export(_Qp_itoq, .{ .name = "_Qp_itoq", .linkage = linkage }); |
| 492 | const _Qp_uitoq = @import("compiler_rt/sparc.zig")._Qp_uitoq; |
| 493 | @export(_Qp_uitoq, .{ .name = "_Qp_uitoq", .linkage = linkage }); |
| 494 | const _Qp_xtoq = @import("compiler_rt/sparc.zig")._Qp_xtoq; |
| 495 | @export(_Qp_xtoq, .{ .name = "_Qp_xtoq", .linkage = linkage }); |
| 496 | const _Qp_uxtoq = @import("compiler_rt/sparc.zig")._Qp_uxtoq; |
| 497 | @export(_Qp_uxtoq, .{ .name = "_Qp_uxtoq", .linkage = linkage }); |
| 498 | const _Qp_stoq = @import("compiler_rt/sparc.zig")._Qp_stoq; |
| 499 | @export(_Qp_stoq, .{ .name = "_Qp_stoq", .linkage = linkage }); |
| 500 | const _Qp_dtoq = @import("compiler_rt/sparc.zig")._Qp_dtoq; |
| 501 | @export(_Qp_dtoq, .{ .name = "_Qp_dtoq", .linkage = linkage }); |
| 502 | const _Qp_qtoi = @import("compiler_rt/sparc.zig")._Qp_qtoi; |
| 503 | @export(_Qp_qtoi, .{ .name = "_Qp_qtoi", .linkage = linkage }); |
| 504 | const _Qp_qtoui = @import("compiler_rt/sparc.zig")._Qp_qtoui; |
| 505 | @export(_Qp_qtoui, .{ .name = "_Qp_qtoui", .linkage = linkage }); |
| 506 | const _Qp_qtox = @import("compiler_rt/sparc.zig")._Qp_qtox; |
| 507 | @export(_Qp_qtox, .{ .name = "_Qp_qtox", .linkage = linkage }); |
| 508 | const _Qp_qtoux = @import("compiler_rt/sparc.zig")._Qp_qtoux; |
| 509 | @export(_Qp_qtoux, .{ .name = "_Qp_qtoux", .linkage = linkage }); |
| 510 | const _Qp_qtos = @import("compiler_rt/sparc.zig")._Qp_qtos; |
| 511 | @export(_Qp_qtos, .{ .name = "_Qp_qtos", .linkage = linkage }); |
| 512 | const _Qp_qtod = @import("compiler_rt/sparc.zig")._Qp_qtod; |
| 513 | @export(_Qp_qtod, .{ .name = "_Qp_qtod", .linkage = linkage }); |
| 514 | } |
| 515 | |
| 516 | if ((arch == .powerpc or arch.isPPC64()) and !is_test) { |
| 517 | @export(__addtf3, .{ .name = "__addkf3", .linkage = linkage }); |
| 518 | @export(__subtf3, .{ .name = "__subkf3", .linkage = linkage }); |
| 519 | @export(__multf3, .{ .name = "__mulkf3", .linkage = linkage }); |
| 520 | @export(__divtf3, .{ .name = "__divkf3", .linkage = linkage }); |
| 521 | @export(__extendsftf2, .{ .name = "__extendsfkf2", .linkage = linkage }); |
| 522 | @export(__extenddftf2, .{ .name = "__extenddfkf2", .linkage = linkage }); |
| 523 | @export(__trunctfsf2, .{ .name = "__trunckfsf2", .linkage = linkage }); |
| 524 | @export(__trunctfdf2, .{ .name = "__trunckfdf2", .linkage = linkage }); |
| 525 | @export(__fixtfdi, .{ .name = "__fixkfdi", .linkage = linkage }); |
| 526 | @export(__fixtfsi, .{ .name = "__fixkfsi", .linkage = linkage }); |
| 527 | @export(__fixunstfsi, .{ .name = "__fixunskfsi", .linkage = linkage }); |
| 528 | @export(__fixunstfdi, .{ .name = "__fixunskfdi", .linkage = linkage }); |
| 529 | @export(__floatsitf, .{ .name = "__floatsikf", .linkage = linkage }); |
| 530 | @export(__floatditf, .{ .name = "__floatdikf", .linkage = linkage }); |
| 531 | @export(__floatunditf, .{ .name = "__floatundikf", .linkage = linkage }); |
| 532 | @export(__floatunsitf, .{ .name = "__floatunsikf", .linkage = linkage }); |
| 533 | |
| 534 | @export(__letf2, .{ .name = "__eqkf2", .linkage = linkage }); |
| 535 | @export(__letf2, .{ .name = "__nekf2", .linkage = linkage }); |
| 536 | @export(__getf2, .{ .name = "__gekf2", .linkage = linkage }); |
| 537 | @export(__letf2, .{ .name = "__ltkf2", .linkage = linkage }); |
| 538 | @export(__letf2, .{ .name = "__lekf2", .linkage = linkage }); |
| 539 | @export(__getf2, .{ .name = "__gtkf2", .linkage = linkage }); |
| 540 | @export(__unordtf2, .{ .name = "__unordkf2", .linkage = linkage }); |
| 541 | } |
| 542 | |
| 543 | if (builtin.os.tag == .windows) { |
| 544 | // Default stack-probe functions emitted by LLVM |
| 545 | if (is_mingw) { |
| 546 | const _chkstk = @import("compiler_rt/stack_probe.zig")._chkstk; |
| 547 | @export(_chkstk, .{ .name = "_alloca", .linkage = strong_linkage }); |
| 548 | const ___chkstk_ms = @import("compiler_rt/stack_probe.zig").___chkstk_ms; |
| 549 | @export(___chkstk_ms, .{ .name = "___chkstk_ms", .linkage = strong_linkage }); |
| 550 | } else if (!builtin.link_libc) { |
| 551 | // This symbols are otherwise exported by MSVCRT.lib |
| 552 | const _chkstk = @import("compiler_rt/stack_probe.zig")._chkstk; |
| 553 | @export(_chkstk, .{ .name = "_chkstk", .linkage = strong_linkage }); |
| 554 | const __chkstk = @import("compiler_rt/stack_probe.zig").__chkstk; |
| 555 | @export(__chkstk, .{ .name = "__chkstk", .linkage = strong_linkage }); |
| 556 | } |
| 557 | |
| 558 | switch (arch) { |
| 559 | .i386 => { |
| 560 | const __divti3 = @import("compiler_rt/divti3.zig").__divti3; |
| 561 | @export(__divti3, .{ .name = "__divti3", .linkage = linkage }); |
| 562 | const __modti3 = @import("compiler_rt/modti3.zig").__modti3; |
| 563 | @export(__modti3, .{ .name = "__modti3", .linkage = linkage }); |
| 564 | const __multi3 = @import("compiler_rt/multi3.zig").__multi3; |
| 565 | @export(__multi3, .{ .name = "__multi3", .linkage = linkage }); |
| 566 | const __udivti3 = @import("compiler_rt/udivti3.zig").__udivti3; |
| 567 | @export(__udivti3, .{ .name = "__udivti3", .linkage = linkage }); |
| 568 | const __udivmodti4 = @import("compiler_rt/udivmodti4.zig").__udivmodti4; |
| 569 | @export(__udivmodti4, .{ .name = "__udivmodti4", .linkage = linkage }); |
| 570 | const __umodti3 = @import("compiler_rt/umodti3.zig").__umodti3; |
| 571 | @export(__umodti3, .{ .name = "__umodti3", .linkage = linkage }); |
| 572 | }, |
| 573 | .x86_64 => { |
| 574 | // The "ti" functions must use Vector(2, u64) parameter types to adhere to the ABI |
| 575 | // that LLVM expects compiler-rt to have. |
| 576 | const __divti3_windows_x86_64 = @import("compiler_rt/divti3.zig").__divti3_windows_x86_64; |
| 577 | @export(__divti3_windows_x86_64, .{ .name = "__divti3", .linkage = linkage }); |
| 578 | const __modti3_windows_x86_64 = @import("compiler_rt/modti3.zig").__modti3_windows_x86_64; |
| 579 | @export(__modti3_windows_x86_64, .{ .name = "__modti3", .linkage = linkage }); |
| 580 | const __multi3_windows_x86_64 = @import("compiler_rt/multi3.zig").__multi3_windows_x86_64; |
| 581 | @export(__multi3_windows_x86_64, .{ .name = "__multi3", .linkage = linkage }); |
| 582 | const __udivti3_windows_x86_64 = @import("compiler_rt/udivti3.zig").__udivti3_windows_x86_64; |
| 583 | @export(__udivti3_windows_x86_64, .{ .name = "__udivti3", .linkage = linkage }); |
| 584 | const __udivmodti4_windows_x86_64 = @import("compiler_rt/udivmodti4.zig").__udivmodti4_windows_x86_64; |
| 585 | @export(__udivmodti4_windows_x86_64, .{ .name = "__udivmodti4", .linkage = linkage }); |
| 586 | const __umodti3_windows_x86_64 = @import("compiler_rt/umodti3.zig").__umodti3_windows_x86_64; |
| 587 | @export(__umodti3_windows_x86_64, .{ .name = "__umodti3", .linkage = linkage }); |
| 588 | }, |
| 589 | else => {}, |
| 590 | } |
| 591 | if (arch.isAARCH64()) { |
| 592 | const __chkstk = @import("compiler_rt/stack_probe.zig").__chkstk; |
| 593 | @export(__chkstk, .{ .name = "__chkstk", .linkage = strong_linkage }); |
| 594 | const __divti3_windows = @import("compiler_rt/divti3.zig").__divti3; |
| 595 | @export(__divti3_windows, .{ .name = "__divti3", .linkage = linkage }); |
| 550 | 596 | const __modti3 = @import("compiler_rt/modti3.zig").__modti3; |
| 551 | 597 | @export(__modti3, .{ .name = "__modti3", .linkage = linkage }); |
| 552 | | const __multi3 = @import("compiler_rt/multi3.zig").__multi3; |
| 553 | | @export(__multi3, .{ .name = "__multi3", .linkage = linkage }); |
| 554 | | const __udivti3 = @import("compiler_rt/udivti3.zig").__udivti3; |
| 555 | | @export(__udivti3, .{ .name = "__udivti3", .linkage = linkage }); |
| 556 | | const __udivmodti4 = @import("compiler_rt/udivmodti4.zig").__udivmodti4; |
| 557 | | @export(__udivmodti4, .{ .name = "__udivmodti4", .linkage = linkage }); |
| 598 | const __udivti3_windows = @import("compiler_rt/udivti3.zig").__udivti3; |
| 599 | @export(__udivti3_windows, .{ .name = "__udivti3", .linkage = linkage }); |
| 558 | 600 | const __umodti3 = @import("compiler_rt/umodti3.zig").__umodti3; |
| 559 | 601 | @export(__umodti3, .{ .name = "__umodti3", .linkage = linkage }); |
| 560 | | }, |
| 561 | | .x86_64 => { |
| 562 | | // The "ti" functions must use Vector(2, u64) parameter types to adhere to the ABI |
| 563 | | // that LLVM expects compiler-rt to have. |
| 564 | | const __divti3_windows_x86_64 = @import("compiler_rt/divti3.zig").__divti3_windows_x86_64; |
| 565 | | @export(__divti3_windows_x86_64, .{ .name = "__divti3", .linkage = linkage }); |
| 566 | | const __modti3_windows_x86_64 = @import("compiler_rt/modti3.zig").__modti3_windows_x86_64; |
| 567 | | @export(__modti3_windows_x86_64, .{ .name = "__modti3", .linkage = linkage }); |
| 568 | | const __multi3_windows_x86_64 = @import("compiler_rt/multi3.zig").__multi3_windows_x86_64; |
| 569 | | @export(__multi3_windows_x86_64, .{ .name = "__multi3", .linkage = linkage }); |
| 570 | | const __udivti3_windows_x86_64 = @import("compiler_rt/udivti3.zig").__udivti3_windows_x86_64; |
| 571 | | @export(__udivti3_windows_x86_64, .{ .name = "__udivti3", .linkage = linkage }); |
| 572 | | const __udivmodti4_windows_x86_64 = @import("compiler_rt/udivmodti4.zig").__udivmodti4_windows_x86_64; |
| 573 | | @export(__udivmodti4_windows_x86_64, .{ .name = "__udivmodti4", .linkage = linkage }); |
| 574 | | const __umodti3_windows_x86_64 = @import("compiler_rt/umodti3.zig").__umodti3_windows_x86_64; |
| 575 | | @export(__umodti3_windows_x86_64, .{ .name = "__umodti3", .linkage = linkage }); |
| 576 | | }, |
| 577 | | else => {}, |
| 578 | | } |
| 579 | | if (arch.isAARCH64()) { |
| 580 | | const __chkstk = @import("compiler_rt/stack_probe.zig").__chkstk; |
| 581 | | @export(__chkstk, .{ .name = "__chkstk", .linkage = strong_linkage }); |
| 582 | | const __divti3_windows = @import("compiler_rt/divti3.zig").__divti3; |
| 583 | | @export(__divti3_windows, .{ .name = "__divti3", .linkage = linkage }); |
| 602 | } |
| 603 | } else { |
| 604 | const __divti3 = @import("compiler_rt/divti3.zig").__divti3; |
| 605 | @export(__divti3, .{ .name = "__divti3", .linkage = linkage }); |
| 584 | 606 | const __modti3 = @import("compiler_rt/modti3.zig").__modti3; |
| 585 | 607 | @export(__modti3, .{ .name = "__modti3", .linkage = linkage }); |
| 586 | | const __udivti3_windows = @import("compiler_rt/udivti3.zig").__udivti3; |
| 587 | | @export(__udivti3_windows, .{ .name = "__udivti3", .linkage = linkage }); |
| 608 | const __multi3 = @import("compiler_rt/multi3.zig").__multi3; |
| 609 | @export(__multi3, .{ .name = "__multi3", .linkage = linkage }); |
| 610 | const __udivti3 = @import("compiler_rt/udivti3.zig").__udivti3; |
| 611 | @export(__udivti3, .{ .name = "__udivti3", .linkage = linkage }); |
| 612 | const __udivmodti4 = @import("compiler_rt/udivmodti4.zig").__udivmodti4; |
| 613 | @export(__udivmodti4, .{ .name = "__udivmodti4", .linkage = linkage }); |
| 588 | 614 | const __umodti3 = @import("compiler_rt/umodti3.zig").__umodti3; |
| 589 | 615 | @export(__umodti3, .{ .name = "__umodti3", .linkage = linkage }); |
| 590 | 616 | } |
| 591 | | } else { |
| 592 | | const __divti3 = @import("compiler_rt/divti3.zig").__divti3; |
| 593 | | @export(__divti3, .{ .name = "__divti3", .linkage = linkage }); |
| 594 | | const __modti3 = @import("compiler_rt/modti3.zig").__modti3; |
| 595 | | @export(__modti3, .{ .name = "__modti3", .linkage = linkage }); |
| 596 | | const __multi3 = @import("compiler_rt/multi3.zig").__multi3; |
| 597 | | @export(__multi3, .{ .name = "__multi3", .linkage = linkage }); |
| 598 | | const __udivti3 = @import("compiler_rt/udivti3.zig").__udivti3; |
| 599 | | @export(__udivti3, .{ .name = "__udivti3", .linkage = linkage }); |
| 600 | | const __udivmodti4 = @import("compiler_rt/udivmodti4.zig").__udivmodti4; |
| 601 | | @export(__udivmodti4, .{ .name = "__udivmodti4", .linkage = linkage }); |
| 602 | | const __umodti3 = @import("compiler_rt/umodti3.zig").__umodti3; |
| 603 | | @export(__umodti3, .{ .name = "__umodti3", .linkage = linkage }); |
| 604 | | } |
| 605 | | const __muloti4 = @import("compiler_rt/muloti4.zig").__muloti4; |
| 606 | | @export(__muloti4, .{ .name = "__muloti4", .linkage = linkage }); |
| 607 | | const __mulodi4 = @import("compiler_rt/mulodi4.zig").__mulodi4; |
| 608 | | @export(__mulodi4, .{ .name = "__mulodi4", .linkage = linkage }); |
| 617 | const __muloti4 = @import("compiler_rt/muloti4.zig").__muloti4; |
| 618 | @export(__muloti4, .{ .name = "__muloti4", .linkage = linkage }); |
| 619 | const __mulodi4 = @import("compiler_rt/mulodi4.zig").__mulodi4; |
| 620 | @export(__mulodi4, .{ .name = "__mulodi4", .linkage = linkage }); |
| 609 | 621 | |
| 610 | | _ = @import("compiler_rt/atomics.zig"); |
| 622 | _ = @import("compiler_rt/atomics.zig"); |
| 623 | } |
| 611 | 624 | } |
| 612 | 625 | |
| 613 | 626 | // Avoid dragging in the runtime safety mechanisms into this .o file, |
| 614 | 627 | // unless we're trying to test this file. |
| 615 | | pub fn panic(msg: []const u8, error_return_trace: ?*builtin.StackTrace) noreturn { |
| 628 | pub fn panic(msg: []const u8, error_return_trace: ?*std.builtin.StackTrace) noreturn { |
| 616 | 629 | _ = error_return_trace; |
| 617 | 630 | @setCold(true); |
| 631 | if (builtin.zig_is_stage2) { |
| 632 | while (true) { |
| 633 | @breakpoint(); |
| 634 | } |
| 635 | } |
| 618 | 636 | if (is_test) { |
| 619 | 637 | std.debug.panic("{s}", .{msg}); |
| 620 | 638 | } else { |