zig/lib/std/target/hexagon.zig

201 lines
4.6 KiB
Zig
Raw Normal View History

2019-12-20 16:27:13 -08:00
const Feature = @import("std").target.Feature;
const Cpu = @import("std").target.Cpu;
pub const feature_duplex = Feature{
.name = "duplex",
2020-01-08 17:27:05 -08:00
.llvm_name = "duplex",
2019-12-20 16:27:13 -08:00
.description = "Enable generation of duplex instruction",
2020-01-07 07:36:06 -08:00
.dependencies = &[_]*const Feature {
2019-12-20 16:27:13 -08:00
},
};
pub const feature_longCalls = Feature{
2020-01-08 18:35:26 -08:00
.name = "longCalls",
2020-01-08 17:27:05 -08:00
.llvm_name = "long-calls",
2019-12-20 16:27:13 -08:00
.description = "Use constant-extended calls",
2020-01-07 07:36:06 -08:00
.dependencies = &[_]*const Feature {
2019-12-20 16:27:13 -08:00
},
};
pub const feature_mem_noshuf = Feature{
.name = "mem_noshuf",
2020-01-08 17:27:05 -08:00
.llvm_name = "mem_noshuf",
2019-12-20 16:27:13 -08:00
.description = "Supports mem_noshuf feature",
2020-01-07 07:36:06 -08:00
.dependencies = &[_]*const Feature {
2019-12-20 16:27:13 -08:00
},
};
pub const feature_memops = Feature{
.name = "memops",
2020-01-08 17:27:05 -08:00
.llvm_name = "memops",
2019-12-20 16:27:13 -08:00
.description = "Use memop instructions",
2020-01-07 07:36:06 -08:00
.dependencies = &[_]*const Feature {
2019-12-20 16:27:13 -08:00
},
};
pub const feature_nvj = Feature{
.name = "nvj",
2020-01-08 17:27:05 -08:00
.llvm_name = "nvj",
2019-12-20 16:27:13 -08:00
.description = "Support for new-value jumps",
2020-01-07 07:36:06 -08:00
.dependencies = &[_]*const Feature {
2019-12-20 16:27:13 -08:00
&feature_packets,
},
};
pub const feature_nvs = Feature{
.name = "nvs",
2020-01-08 17:27:05 -08:00
.llvm_name = "nvs",
2019-12-20 16:27:13 -08:00
.description = "Support for new-value stores",
2020-01-07 07:36:06 -08:00
.dependencies = &[_]*const Feature {
2019-12-20 16:27:13 -08:00
&feature_packets,
},
};
pub const feature_noreturnStackElim = Feature{
2020-01-08 18:35:26 -08:00
.name = "noreturnStackElim",
2020-01-08 17:27:05 -08:00
.llvm_name = "noreturn-stack-elim",
2019-12-20 16:27:13 -08:00
.description = "Eliminate stack allocation in a noreturn function when possible",
2020-01-07 07:36:06 -08:00
.dependencies = &[_]*const Feature {
2019-12-20 16:27:13 -08:00
},
};
pub const feature_packets = Feature{
.name = "packets",
2020-01-08 17:27:05 -08:00
.llvm_name = "packets",
2019-12-20 16:27:13 -08:00
.description = "Support for instruction packets",
2020-01-07 07:36:06 -08:00
.dependencies = &[_]*const Feature {
2019-12-20 16:27:13 -08:00
},
};
pub const feature_reservedR19 = Feature{
2020-01-08 18:35:26 -08:00
.name = "reservedR19",
2020-01-08 17:27:05 -08:00
.llvm_name = "reserved-r19",
2019-12-20 16:27:13 -08:00
.description = "Reserve register R19",
2020-01-07 07:36:06 -08:00
.dependencies = &[_]*const Feature {
2019-12-20 16:27:13 -08:00
},
};
pub const feature_smallData = Feature{
2020-01-08 18:35:26 -08:00
.name = "smallData",
2020-01-08 17:27:05 -08:00
.llvm_name = "small-data",
2019-12-20 16:27:13 -08:00
.description = "Allow GP-relative addressing of global variables",
2020-01-07 07:36:06 -08:00
.dependencies = &[_]*const Feature {
2019-12-20 16:27:13 -08:00
},
};
pub const features = &[_]*const Feature {
&feature_duplex,
&feature_longCalls,
&feature_mem_noshuf,
&feature_memops,
&feature_nvj,
&feature_nvs,
&feature_noreturnStackElim,
&feature_packets,
&feature_reservedR19,
&feature_smallData,
};
pub const cpu_generic = Cpu{
.name = "generic",
.llvm_name = "generic",
2020-01-07 07:36:06 -08:00
.dependencies = &[_]*const Feature {
2019-12-20 16:27:13 -08:00
&feature_duplex,
&feature_memops,
&feature_packets,
&feature_nvj,
&feature_nvs,
&feature_smallData,
},
};
pub const cpu_hexagonv5 = Cpu{
.name = "hexagonv5",
.llvm_name = "hexagonv5",
2020-01-07 07:36:06 -08:00
.dependencies = &[_]*const Feature {
2019-12-20 16:27:13 -08:00
&feature_duplex,
&feature_memops,
&feature_packets,
&feature_nvj,
&feature_nvs,
&feature_smallData,
},
};
pub const cpu_hexagonv55 = Cpu{
.name = "hexagonv55",
.llvm_name = "hexagonv55",
2020-01-07 07:36:06 -08:00
.dependencies = &[_]*const Feature {
2019-12-20 16:27:13 -08:00
&feature_duplex,
&feature_memops,
&feature_packets,
&feature_nvj,
&feature_nvs,
&feature_smallData,
},
};
pub const cpu_hexagonv60 = Cpu{
.name = "hexagonv60",
.llvm_name = "hexagonv60",
2020-01-07 07:36:06 -08:00
.dependencies = &[_]*const Feature {
2019-12-20 16:27:13 -08:00
&feature_duplex,
&feature_memops,
&feature_packets,
&feature_nvj,
&feature_nvs,
&feature_smallData,
},
};
pub const cpu_hexagonv62 = Cpu{
.name = "hexagonv62",
.llvm_name = "hexagonv62",
2020-01-07 07:36:06 -08:00
.dependencies = &[_]*const Feature {
2019-12-20 16:27:13 -08:00
&feature_duplex,
&feature_memops,
&feature_packets,
&feature_nvj,
&feature_nvs,
&feature_smallData,
},
};
pub const cpu_hexagonv65 = Cpu{
.name = "hexagonv65",
.llvm_name = "hexagonv65",
2020-01-07 07:36:06 -08:00
.dependencies = &[_]*const Feature {
2019-12-20 16:27:13 -08:00
&feature_duplex,
&feature_mem_noshuf,
&feature_memops,
&feature_packets,
&feature_nvj,
&feature_nvs,
&feature_smallData,
},
};
pub const cpu_hexagonv66 = Cpu{
.name = "hexagonv66",
.llvm_name = "hexagonv66",
2020-01-07 07:36:06 -08:00
.dependencies = &[_]*const Feature {
2019-12-20 16:27:13 -08:00
&feature_duplex,
&feature_mem_noshuf,
&feature_memops,
&feature_packets,
&feature_nvj,
&feature_nvs,
&feature_smallData,
},
};
pub const cpus = &[_]*const Cpu {
&cpu_generic,
&cpu_hexagonv5,
&cpu_hexagonv55,
&cpu_hexagonv60,
&cpu_hexagonv62,
&cpu_hexagonv65,
&cpu_hexagonv66,
};