mirror of
https://codeberg.org/ziglang/zig.git
synced 2026-04-26 13:01:34 +03:00
llvm: wire up the xtensa backend
As of LLVM 22, it can produce assembly and object files. No LLD support, however, so using it is still a bit of a pain.
This commit is contained in:
@@ -4818,7 +4818,7 @@ pub fn initializeLLVMTarget(arch: std.Target.Cpu.Arch) void {
|
||||
bindings.LLVMInitializeXtensaTarget();
|
||||
bindings.LLVMInitializeXtensaTargetInfo();
|
||||
bindings.LLVMInitializeXtensaTargetMC();
|
||||
// There is no LLVMInitializeXtensaAsmPrinter function.
|
||||
bindings.LLVMInitializeXtensaAsmPrinter();
|
||||
bindings.LLVMInitializeXtensaAsmParser();
|
||||
}
|
||||
},
|
||||
|
||||
@@ -279,6 +279,7 @@ pub extern fn LLVMInitializeSystemZAsmPrinter() void;
|
||||
pub extern fn LLVMInitializeWebAssemblyAsmPrinter() void;
|
||||
pub extern fn LLVMInitializeX86AsmPrinter() void;
|
||||
pub extern fn LLVMInitializeXCoreAsmPrinter() void;
|
||||
pub extern fn LLVMInitializeXtensaAsmPrinter() void;
|
||||
pub extern fn LLVMInitializeM68kAsmPrinter() void;
|
||||
pub extern fn LLVMInitializeVEAsmPrinter() void;
|
||||
pub extern fn LLVMInitializeARCAsmPrinter() void;
|
||||
|
||||
+2
-1
@@ -812,7 +812,8 @@ fn elfLink(lld: *Lld, arena: Allocator) !void {
|
||||
target.cpu.arch == .m68k or
|
||||
target.cpu.arch.isSPARC() or
|
||||
target.cpu.arch == .ve or
|
||||
target.cpu.arch == .xcore))
|
||||
target.cpu.arch == .xcore or
|
||||
target.cpu.arch == .xtensa))
|
||||
{
|
||||
// In this case we must do a simple file copy
|
||||
// here. TODO: think carefully about how we can avoid this redundant operation when doing
|
||||
|
||||
+1
-1
@@ -227,11 +227,11 @@ pub fn hasLlvmSupport(target: *const std.Target, ofmt: std.Target.ObjectFormat)
|
||||
.wasm32,
|
||||
.wasm64,
|
||||
.ve,
|
||||
.xtensa,
|
||||
=> true,
|
||||
|
||||
// LLVM backend exists but can produce neither assembly nor object files.
|
||||
.csky,
|
||||
.xtensa,
|
||||
=> false,
|
||||
|
||||
// Third-party LLVM backend exists.
|
||||
|
||||
@@ -344,8 +344,8 @@ const targets = [_]std.Target.Query{
|
||||
|
||||
.{ .cpu_arch = .xcore, .os_tag = .freestanding, .abi = .none },
|
||||
|
||||
// .{ .cpu_arch = .xtensa, .os_tag = .freestanding, .abi = .none },
|
||||
// .{ .cpu_arch = .xtensa, .os_tag = .linux, .abi = .none },
|
||||
.{ .cpu_arch = .xtensa, .os_tag = .freestanding, .abi = .none },
|
||||
.{ .cpu_arch = .xtensa, .os_tag = .linux, .abi = .none },
|
||||
};
|
||||
|
||||
pub fn addCases(
|
||||
|
||||
Reference in New Issue
Block a user