authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2018-11-05 11:26:56-05:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2018-11-05 11:32:02-05:00
logc19bc7ecb40d90e413f82879457c25e1a61c4df2
treeedb439ddbb9acf36ac550747d9677451d9785d74
parent5b96cc236c4139c0b8db383ff440366f5276aec8

update self-hosted compiler for new targets


1 files changed, 33 insertions(+), 8 deletions(-)

src-self-hosted/target.zig+33-8
...@@ -93,6 +93,8 @@ pub const Target = union(enum).{...@@ -93,6 +93,8 @@ pub const Target = union(enum).{
93 /// TODO expose the arch and subarch separately93 /// TODO expose the arch and subarch separately
94 pub fn isArmOrThumb(self: Target) bool {94 pub fn isArmOrThumb(self: Target) bool {
95 return switch (self.getArch()) {95 return switch (self.getArch()) {
96 builtin.Arch.armv8_5a,
97 builtin.Arch.armv8_4a,
96 builtin.Arch.armv8_3a,98 builtin.Arch.armv8_3a,
97 builtin.Arch.armv8_2a,99 builtin.Arch.armv8_2a,
98 builtin.Arch.armv8_1a,100 builtin.Arch.armv8_1a,
...@@ -113,6 +115,8 @@ pub const Target = union(enum).{...@@ -113,6 +115,8 @@ pub const Target = union(enum).{
113 builtin.Arch.armv5,115 builtin.Arch.armv5,
114 builtin.Arch.armv5te,116 builtin.Arch.armv5te,
115 builtin.Arch.armv4t,117 builtin.Arch.armv4t,
118 builtin.Arch.armebv8_5a,
119 builtin.Arch.armebv8_4a,
116 builtin.Arch.armebv8_3a,120 builtin.Arch.armebv8_3a,
117 builtin.Arch.armebv8_2a,121 builtin.Arch.armebv8_2a,
118 builtin.Arch.armebv8_1a,122 builtin.Arch.armebv8_1a,
...@@ -181,6 +185,8 @@ pub const Target = union(enum).{...@@ -181,6 +185,8 @@ pub const Target = union(enum).{
181 => return 16,185 => return 16,
182186
183 builtin.Arch.arc,187 builtin.Arch.arc,
188 builtin.Arch.armv8_5a,
189 builtin.Arch.armv8_4a,
184 builtin.Arch.armv8_3a,190 builtin.Arch.armv8_3a,
185 builtin.Arch.armv8_2a,191 builtin.Arch.armv8_2a,
186 builtin.Arch.armv8_1a,192 builtin.Arch.armv8_1a,
...@@ -201,6 +207,8 @@ pub const Target = union(enum).{...@@ -201,6 +207,8 @@ pub const Target = union(enum).{
201 builtin.Arch.armv5,207 builtin.Arch.armv5,
202 builtin.Arch.armv5te,208 builtin.Arch.armv5te,
203 builtin.Arch.armv4t,209 builtin.Arch.armv4t,
210 builtin.Arch.armebv8_5a,
211 builtin.Arch.armebv8_4a,
204 builtin.Arch.armebv8_3a,212 builtin.Arch.armebv8_3a,
205 builtin.Arch.armebv8_2a,213 builtin.Arch.armebv8_2a,
206 builtin.Arch.armebv8_1a,214 builtin.Arch.armebv8_1a,
...@@ -223,8 +231,8 @@ pub const Target = union(enum).{...@@ -223,8 +231,8 @@ pub const Target = union(enum).{
223 builtin.Arch.armebv4t,231 builtin.Arch.armebv4t,
224 builtin.Arch.hexagon,232 builtin.Arch.hexagon,
225 builtin.Arch.le32,233 builtin.Arch.le32,
226 builtin.Arch.mips,234 builtin.Arch.mipsr6,
227 builtin.Arch.mipsel,235 builtin.Arch.mipselr6,
228 builtin.Arch.nios2,236 builtin.Arch.nios2,
229 builtin.Arch.powerpc,237 builtin.Arch.powerpc,
230 builtin.Arch.r600,238 builtin.Arch.r600,
...@@ -250,6 +258,8 @@ pub const Target = union(enum).{...@@ -250,6 +258,8 @@ pub const Target = union(enum).{
250 builtin.Arch.renderscript32,258 builtin.Arch.renderscript32,
251 => return 32,259 => return 32,
252260
261 builtin.Arch.aarch64v8_5a,
262 builtin.Arch.aarch64v8_4a,
253 builtin.Arch.aarch64v8_3a,263 builtin.Arch.aarch64v8_3a,
254 builtin.Arch.aarch64v8_2a,264 builtin.Arch.aarch64v8_2a,
255 builtin.Arch.aarch64v8_1a,265 builtin.Arch.aarch64v8_1a,
...@@ -257,6 +267,8 @@ pub const Target = union(enum).{...@@ -257,6 +267,8 @@ pub const Target = union(enum).{
257 builtin.Arch.aarch64v8r,267 builtin.Arch.aarch64v8r,
258 builtin.Arch.aarch64v8m_baseline,268 builtin.Arch.aarch64v8m_baseline,
259 builtin.Arch.aarch64v8m_mainline,269 builtin.Arch.aarch64v8m_mainline,
270 builtin.Arch.aarch64_bev8_5a,
271 builtin.Arch.aarch64_bev8_4a,
260 builtin.Arch.aarch64_bev8_3a,272 builtin.Arch.aarch64_bev8_3a,
261 builtin.Arch.aarch64_bev8_2a,273 builtin.Arch.aarch64_bev8_2a,
262 builtin.Arch.aarch64_bev8_1a,274 builtin.Arch.aarch64_bev8_1a,
...@@ -264,8 +276,8 @@ pub const Target = union(enum).{...@@ -264,8 +276,8 @@ pub const Target = union(enum).{
264 builtin.Arch.aarch64_bev8r,276 builtin.Arch.aarch64_bev8r,
265 builtin.Arch.aarch64_bev8m_baseline,277 builtin.Arch.aarch64_bev8m_baseline,
266 builtin.Arch.aarch64_bev8m_mainline,278 builtin.Arch.aarch64_bev8m_mainline,
267 builtin.Arch.mips64,279 builtin.Arch.mips64r6,
268 builtin.Arch.mips64el,280 builtin.Arch.mips64elr6,
269 builtin.Arch.powerpc64,281 builtin.Arch.powerpc64,
270 builtin.Arch.powerpc64le,282 builtin.Arch.powerpc64le,
271 builtin.Arch.riscv64,283 builtin.Arch.riscv64,
...@@ -328,6 +340,8 @@ pub const Target = union(enum).{...@@ -328,6 +340,8 @@ pub const Target = union(enum).{
328 builtin.Arch.sparcel,340 builtin.Arch.sparcel,
329 => return "/lib/ld-linux.so.2",341 => return "/lib/ld-linux.so.2",
330342
343 builtin.Arch.aarch64v8_5a,
344 builtin.Arch.aarch64v8_4a,
331 builtin.Arch.aarch64v8_3a,345 builtin.Arch.aarch64v8_3a,
332 builtin.Arch.aarch64v8_2a,346 builtin.Arch.aarch64v8_2a,
333 builtin.Arch.aarch64v8_1a,347 builtin.Arch.aarch64v8_1a,
...@@ -337,6 +351,8 @@ pub const Target = union(enum).{...@@ -337,6 +351,8 @@ pub const Target = union(enum).{
337 builtin.Arch.aarch64v8m_mainline,351 builtin.Arch.aarch64v8m_mainline,
338 => return "/lib/ld-linux-aarch64.so.1",352 => return "/lib/ld-linux-aarch64.so.1",
339353
354 builtin.Arch.aarch64_bev8_5a,
355 builtin.Arch.aarch64_bev8_4a,
340 builtin.Arch.aarch64_bev8_3a,356 builtin.Arch.aarch64_bev8_3a,
341 builtin.Arch.aarch64_bev8_2a,357 builtin.Arch.aarch64_bev8_2a,
342 builtin.Arch.aarch64_bev8_1a,358 builtin.Arch.aarch64_bev8_1a,
...@@ -346,6 +362,8 @@ pub const Target = union(enum).{...@@ -346,6 +362,8 @@ pub const Target = union(enum).{
346 builtin.Arch.aarch64_bev8m_mainline,362 builtin.Arch.aarch64_bev8m_mainline,
347 => return "/lib/ld-linux-aarch64_be.so.1",363 => return "/lib/ld-linux-aarch64_be.so.1",
348364
365 builtin.Arch.armv8_5a,
366 builtin.Arch.armv8_4a,
349 builtin.Arch.armv8_3a,367 builtin.Arch.armv8_3a,
350 builtin.Arch.armv8_2a,368 builtin.Arch.armv8_2a,
351 builtin.Arch.armv8_1a,369 builtin.Arch.armv8_1a,
...@@ -372,6 +390,8 @@ pub const Target = union(enum).{...@@ -372,6 +390,8 @@ pub const Target = union(enum).{
372 else => return "/lib/ld-linux.so.3",390 else => return "/lib/ld-linux.so.3",
373 },391 },
374392
393 builtin.Arch.armebv8_5a,
394 builtin.Arch.armebv8_4a,
375 builtin.Arch.armebv8_3a,395 builtin.Arch.armebv8_3a,
376 builtin.Arch.armebv8_2a,396 builtin.Arch.armebv8_2a,
377 builtin.Arch.armebv8_1a,397 builtin.Arch.armebv8_1a,
...@@ -398,10 +418,10 @@ pub const Target = union(enum).{...@@ -398,10 +418,10 @@ pub const Target = union(enum).{
398 else => return "/lib/ld-linux.so.3",418 else => return "/lib/ld-linux.so.3",
399 },419 },
400420
401 builtin.Arch.mips,421 builtin.Arch.mipsr6,
402 builtin.Arch.mipsel,422 builtin.Arch.mipselr6,
403 builtin.Arch.mips64,423 builtin.Arch.mips64r6,
404 builtin.Arch.mips64el,424 builtin.Arch.mips64elr6,
405 => return null,425 => return null,
406426
407 builtin.Arch.powerpc => return "/lib/ld.so.1",427 builtin.Arch.powerpc => return "/lib/ld.so.1",
...@@ -550,6 +570,7 @@ pub const Target = union(enum).{...@@ -550,6 +570,7 @@ pub const Target = union(enum).{
550 builtin.Os.mesa3d,570 builtin.Os.mesa3d,
551 builtin.Os.contiki,571 builtin.Os.contiki,
552 builtin.Os.amdpal,572 builtin.Os.amdpal,
573 builtin.Os.hermit,
553 => @panic("TODO specify the C integer type sizes for this OS"),574 => @panic("TODO specify the C integer type sizes for this OS"),
554 }575 }
555 }576 }
...@@ -557,6 +578,8 @@ pub const Target = union(enum).{...@@ -557,6 +578,8 @@ pub const Target = union(enum).{
557 pub fn getDarwinArchString(self: Target) []const u8 {578 pub fn getDarwinArchString(self: Target) []const u8 {
558 const arch = self.getArch();579 const arch = self.getArch();
559 switch (arch) {580 switch (arch) {
581 builtin.Arch.aarch64v8_5a,
582 builtin.Arch.aarch64v8_4a,
560 builtin.Arch.aarch64v8_3a,583 builtin.Arch.aarch64v8_3a,
561 builtin.Arch.aarch64v8_2a,584 builtin.Arch.aarch64v8_2a,
562 builtin.Arch.aarch64v8_1a,585 builtin.Arch.aarch64v8_1a,
...@@ -566,6 +589,8 @@ pub const Target = union(enum).{...@@ -566,6 +589,8 @@ pub const Target = union(enum).{
566 builtin.Arch.aarch64v8m_mainline,589 builtin.Arch.aarch64v8m_mainline,
567 => return "arm64",590 => return "arm64",
568 builtin.Arch.thumb,591 builtin.Arch.thumb,
592 builtin.Arch.armv8_5a,
593 builtin.Arch.armv8_4a,
569 builtin.Arch.armv8_3a,594 builtin.Arch.armv8_3a,
570 builtin.Arch.armv8_2a,595 builtin.Arch.armv8_2a,
571 builtin.Arch.armv8_1a,596 builtin.Arch.armv8_1a,