Merge pull request #21599 from alexrp/thumb-porting

This commit is contained in:
Alex Rønne Petersen
2024-11-03 14:25:30 +01:00
committed by GitHub
33 changed files with 175 additions and 104 deletions

View File

@@ -5190,7 +5190,7 @@ fn asmInputNeedsLocal(f: *Function, constraint: []const u8, value: CValue) bool
return switch (constraint[0]) {
'{' => true,
'i', 'r' => false,
'I' => !target.cpu.arch.isArmOrThumb(),
'I' => !target.cpu.arch.isArm(),
else => switch (value) {
.constant => |val| switch (dg.pt.zcu.intern_pool.indexToKey(val.toIntern())) {
.ptr => |ptr| if (ptr.byte_offset == 0) switch (ptr.base_addr) {

View File

@@ -496,7 +496,7 @@ const DataLayoutBuilder = struct {
if (idx != size) try writer.print(":{d}", .{idx});
}
}
if (self.target.cpu.arch.isArmOrThumb())
if (self.target.cpu.arch.isArm())
try writer.writeAll("-Fi8") // for thumb interwork
else if (self.target.cpu.arch == .powerpc64 and
self.target.os.tag != .freebsd and
@@ -763,7 +763,7 @@ const DataLayoutBuilder = struct {
else => {},
}
},
.vector => if (self.target.cpu.arch.isArmOrThumb()) {
.vector => if (self.target.cpu.arch.isArm()) {
switch (size) {
128 => abi = 64,
else => {},
@@ -829,7 +829,7 @@ const DataLayoutBuilder = struct {
else => {},
},
.aggregate => if (self.target.os.tag == .uefi or self.target.os.tag == .windows or
self.target.cpu.arch.isArmOrThumb())
self.target.cpu.arch.isArm())
{
pref = @min(pref, self.target.ptrBitWidth());
} else switch (self.target.cpu.arch) {

View File

@@ -9831,9 +9831,9 @@ pub fn printUnbuffered(
});
switch (extra.weights) {
.none => {},
.unpredictable => try writer.writeAll(", !unpredictable !{}"),
.unpredictable => try writer.writeAll("!unpredictable !{}"),
_ => try writer.print("{}", .{
try metadata_formatter.fmt(", !prof ", @as(Metadata, @enumFromInt(@intFromEnum(extra.weights)))),
try metadata_formatter.fmt("!prof ", @as(Metadata, @enumFromInt(@intFromEnum(extra.weights)))),
}),
}
},
@@ -10112,9 +10112,9 @@ pub fn printUnbuffered(
try writer.writeAll(" ]");
switch (extra.data.weights) {
.none => {},
.unpredictable => try writer.writeAll(", !unpredictable !{}"),
.unpredictable => try writer.writeAll("!unpredictable !{}"),
_ => try writer.print("{}", .{
try metadata_formatter.fmt(", !prof ", @as(Metadata, @enumFromInt(@intFromEnum(extra.data.weights)))),
try metadata_formatter.fmt("!prof ", @as(Metadata, @enumFromInt(@intFromEnum(extra.data.weights)))),
}),
}
},