aboutsummaryrefslogtreecommitdiff
path: root/src/stage1/target.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/stage1/target.cpp')
-rw-r--r--src/stage1/target.cpp57
1 files changed, 55 insertions, 2 deletions
diff --git a/src/stage1/target.cpp b/src/stage1/target.cpp
index 7c4587cdaa..3031b7e588 100644
--- a/src/stage1/target.cpp
+++ b/src/stage1/target.cpp
@@ -24,7 +24,10 @@ static const ZigLLVM_ArchType arch_list[] = {
ZigLLVM_bpfel, // eBPF or extended BPF or 64-bit BPF (little endian)
ZigLLVM_bpfeb, // eBPF or extended BPF or 64-bit BPF (big endian)
ZigLLVM_csky, // CSKY: csky
+ ZigLLVM_dxil, // DXIL 32-bit DirectX bytecode
ZigLLVM_hexagon, // Hexagon: hexagon
+ ZigLLVM_loongarch32, // LoongArch (32-bit): loongarch32
+ ZigLLVM_loongarch64, // LoongArch (64-bit): loongarch64
ZigLLVM_m68k, // M68k: Motorola 680x0 family
ZigLLVM_mips, // MIPS: mips, mipsallegrex, mipsr6
ZigLLVM_mipsel, // MIPSEL: mipsel, mipsallegrexe, mipsr6el
@@ -114,9 +117,11 @@ static const Os os_list[] = {
OsNVCL, // NVIDIA OpenCL
OsAMDHSA, // AMD HSA Runtime
OsPS4,
+ OsPS5,
OsELFIAMCU,
OsTvOS, // Apple tvOS
OsWatchOS, // Apple watchOS
+ OsDriverKit, // Apple DriverKit
OsMesa3D,
OsContiki,
OsAMDPAL,
@@ -124,6 +129,7 @@ static const Os os_list[] = {
OsHurd,
OsWASI,
OsEmscripten,
+ OsShaderModel, // DirectX ShaderModel
OsUefi,
OsOpenCL,
OsGLSL450,
@@ -156,16 +162,34 @@ static const ZigLLVM_EnvironmentType abi_list[] = {
ZigLLVM_Itanium,
ZigLLVM_Cygnus,
ZigLLVM_CoreCLR,
- ZigLLVM_Simulator,
- ZigLLVM_MacABI,
+ ZigLLVM_Simulator, // Simulator variants of other systems, e.g., Apple's iOS
+ ZigLLVM_MacABI, // Mac Catalyst variant of Apple's iOS deployment target.
+
+ ZigLLVM_Pixel,
+ ZigLLVM_Vertex,
+ ZigLLVM_Geometry,
+ ZigLLVM_Hull,
+ ZigLLVM_Domain,
+ ZigLLVM_Compute,
+ ZigLLVM_Library,
+ ZigLLVM_RayGeneration,
+ ZigLLVM_Intersection,
+ ZigLLVM_AnyHit,
+ ZigLLVM_ClosestHit,
+ ZigLLVM_Miss,
+ ZigLLVM_Callable,
+ ZigLLVM_Mesh,
+ ZigLLVM_Amplification,
};
static const ZigLLVM_ObjectFormatType oformat_list[] = {
ZigLLVM_UnknownObjectFormat,
ZigLLVM_COFF,
+ ZigLLVM_DXContainer,
ZigLLVM_ELF,
ZigLLVM_GOFF,
ZigLLVM_MachO,
+ ZigLLVM_SPIRV,
ZigLLVM_Wasm,
ZigLLVM_XCOFF,
};
@@ -183,9 +207,11 @@ const char *target_oformat_name(ZigLLVM_ObjectFormatType oformat) {
switch (oformat) {
case ZigLLVM_UnknownObjectFormat: return "unknown";
case ZigLLVM_COFF: return "coff";
+ case ZigLLVM_DXContainer: return "dxcontainer";
case ZigLLVM_ELF: return "elf";
case ZigLLVM_GOFF: return "goff";
case ZigLLVM_MachO: return "macho";
+ case ZigLLVM_SPIRV: return "spirv";
case ZigLLVM_Wasm: return "wasm";
case ZigLLVM_XCOFF: return "xcoff";
}
@@ -276,12 +302,16 @@ ZigLLVM_OSType get_llvm_os_type(Os os_type) {
return ZigLLVM_AMDHSA;
case OsPS4:
return ZigLLVM_PS4;
+ case OsPS5:
+ return ZigLLVM_PS5;
case OsELFIAMCU:
return ZigLLVM_ELFIAMCU;
case OsTvOS:
return ZigLLVM_TvOS;
case OsWatchOS:
return ZigLLVM_WatchOS;
+ case OsDriverKit:
+ return ZigLLVM_DriverKit;
case OsMesa3D:
return ZigLLVM_Mesa3D;
case OsContiki:
@@ -296,6 +326,8 @@ ZigLLVM_OSType get_llvm_os_type(Os os_type) {
return ZigLLVM_WASI;
case OsEmscripten:
return ZigLLVM_Emscripten;
+ case OsShaderModel:
+ return ZigLLVM_ShaderModel;
}
zig_unreachable();
}
@@ -334,9 +366,11 @@ const char *target_os_name(Os os_type) {
case OsNVCL: // NVIDIA OpenCL
case OsAMDHSA: // AMD HSA Runtime
case OsPS4:
+ case OsPS5:
case OsELFIAMCU:
case OsTvOS: // Apple tvOS
case OsWatchOS: // Apple watchOS
+ case OsDriverKit:
case OsMesa3D:
case OsContiki:
case OsAMDPAL:
@@ -344,6 +378,7 @@ const char *target_os_name(Os os_type) {
case OsHurd:
case OsWASI:
case OsEmscripten:
+ case OsShaderModel:
case OsOpenCL:
case OsGLSL450:
case OsVulkan:
@@ -532,6 +567,8 @@ uint32_t target_arch_pointer_bit_width(ZigLLVM_ArchType arch) {
case ZigLLVM_aarch64_32:
case ZigLLVM_csky:
case ZigLLVM_spirv32:
+ case ZigLLVM_loongarch32:
+ case ZigLLVM_dxil:
return 32;
case ZigLLVM_aarch64:
@@ -556,6 +593,7 @@ uint32_t target_arch_pointer_bit_width(ZigLLVM_ArchType arch) {
case ZigLLVM_renderscript64:
case ZigLLVM_ve:
case ZigLLVM_spirv64:
+ case ZigLLVM_loongarch64:
return 64;
}
zig_unreachable();
@@ -601,6 +639,8 @@ uint32_t target_arch_largest_atomic_bits(ZigLLVM_ArchType arch) {
case ZigLLVM_renderscript32:
case ZigLLVM_csky:
case ZigLLVM_spirv32:
+ case ZigLLVM_loongarch32:
+ case ZigLLVM_dxil:
return 32;
case ZigLLVM_aarch64:
@@ -625,6 +665,7 @@ uint32_t target_arch_largest_atomic_bits(ZigLLVM_ArchType arch) {
case ZigLLVM_renderscript64:
case ZigLLVM_ve:
case ZigLLVM_spirv64:
+ case ZigLLVM_loongarch64:
return 64;
case ZigLLVM_x86_64:
@@ -751,6 +792,7 @@ uint32_t target_c_type_size_in_bits(const ZigTarget *target, CIntType id) {
case OsAIX:
case OsAMDHSA:
case OsPS4:
+ case OsPS5:
case OsELFIAMCU:
case OsTvOS:
case OsWatchOS:
@@ -763,6 +805,8 @@ uint32_t target_c_type_size_in_bits(const ZigTarget *target, CIntType id) {
case OsOpenCL:
case OsGLSL450:
case OsVulkan:
+ case OsDriverKit:
+ case OsShaderModel:
zig_panic("TODO c type size in bits for this target");
}
zig_unreachable();
@@ -860,6 +904,9 @@ const char *arch_stack_pointer_register_name(ZigLLVM_ArchType arch) {
case ZigLLVM_tcele:
case ZigLLVM_xcore:
case ZigLLVM_ve:
+ case ZigLLVM_dxil:
+ case ZigLLVM_loongarch32:
+ case ZigLLVM_loongarch64:
zig_panic("TODO populate this table with stack pointer register name for this CPU architecture");
}
zig_unreachable();
@@ -927,6 +974,9 @@ bool target_is_arm(const ZigTarget *target) {
case ZigLLVM_ve:
case ZigLLVM_spirv32:
case ZigLLVM_spirv64:
+ case ZigLLVM_dxil:
+ case ZigLLVM_loongarch32:
+ case ZigLLVM_loongarch64:
return false;
}
zig_unreachable();
@@ -973,6 +1023,7 @@ ZigLLVM_EnvironmentType target_default_abi(ZigLLVM_ArchType arch, Os os) {
case OsNVCL:
case OsAMDHSA:
case OsPS4:
+ case OsPS5:
case OsELFIAMCU:
case OsMesa3D:
case OsContiki:
@@ -1004,6 +1055,8 @@ ZigLLVM_EnvironmentType target_default_abi(ZigLLVM_ArchType arch, Os os) {
case OsIOS:
case OsTvOS:
case OsWatchOS:
+ case OsDriverKit:
+ case OsShaderModel:
return ZigLLVM_UnknownEnvironment;
}
zig_unreachable();