update zig_llvm.h and zig_llvm.cpp to llvm 10
This commit is contained in:
@@ -100,6 +100,7 @@ pub const Target = union(enum) {
|
||||
wasm64,
|
||||
renderscript32,
|
||||
renderscript64,
|
||||
ve,
|
||||
|
||||
pub const Arm32 = enum {
|
||||
v8_5a,
|
||||
@@ -155,6 +156,9 @@ pub const Target = union(enum) {
|
||||
pub const Mips = enum {
|
||||
r6,
|
||||
};
|
||||
pub const PPC = enum {
|
||||
spe,
|
||||
};
|
||||
|
||||
pub fn isARM(arch: Arch) bool {
|
||||
return switch (arch) {
|
||||
@@ -309,8 +313,6 @@ pub const Target = union(enum) {
|
||||
code16,
|
||||
eabi,
|
||||
eabihf,
|
||||
elfv1,
|
||||
elfv2,
|
||||
android,
|
||||
musl,
|
||||
musleabi,
|
||||
|
||||
@@ -21,6 +21,7 @@ static const SubArchList subarch_list_list[] = {
|
||||
SubArchListArm64,
|
||||
SubArchListKalimba,
|
||||
SubArchListMips,
|
||||
SubArchListPPC,
|
||||
};
|
||||
|
||||
static const ZigLLVM_SubArchType subarch_list_arm32[] = {
|
||||
@@ -72,6 +73,10 @@ static const ZigLLVM_SubArchType subarch_list_mips[] = {
|
||||
ZigLLVM_MipsSubArch_r6,
|
||||
};
|
||||
|
||||
static const ZigLLVM_SubArchType subarch_list_ppc[] = {
|
||||
ZigLLVM_PPCSubArch_spe,
|
||||
};
|
||||
|
||||
static const ZigLLVM_ArchType arch_list[] = {
|
||||
ZigLLVM_arm, // ARM (little endian): arm, armv.*, xscale
|
||||
ZigLLVM_armeb, // ARM (big endian): armeb
|
||||
@@ -123,6 +128,7 @@ static const ZigLLVM_ArchType arch_list[] = {
|
||||
ZigLLVM_wasm64, // WebAssembly with 64-bit pointers
|
||||
ZigLLVM_renderscript32, // 32-bit RenderScript
|
||||
ZigLLVM_renderscript64, // 64-bit RenderScript
|
||||
ZigLLVM_ve, // NEC SX-Aurora Vector Engine
|
||||
};
|
||||
|
||||
static const ZigLLVM_VendorType vendor_list[] = {
|
||||
@@ -627,6 +633,7 @@ SubArchList target_subarch_list(ZigLLVM_ArchType arch) {
|
||||
case ZigLLVM_wasm64:
|
||||
case ZigLLVM_renderscript32:
|
||||
case ZigLLVM_renderscript64:
|
||||
case ZigLLVM_ve:
|
||||
return SubArchListNone;
|
||||
}
|
||||
zig_unreachable();
|
||||
@@ -644,6 +651,8 @@ size_t target_subarch_count(SubArchList sub_arch_list) {
|
||||
return array_length(subarch_list_kalimba);
|
||||
case SubArchListMips:
|
||||
return array_length(subarch_list_mips);
|
||||
case SubArchListPPC:
|
||||
return array_length(subarch_list_ppc);
|
||||
}
|
||||
zig_unreachable();
|
||||
}
|
||||
@@ -664,6 +673,9 @@ ZigLLVM_SubArchType target_subarch_enum(SubArchList sub_arch_list, size_t i) {
|
||||
case SubArchListMips:
|
||||
assert(i < array_length(subarch_list_mips));
|
||||
return subarch_list_mips[i];
|
||||
case SubArchListPPC:
|
||||
assert(i < array_length(subarch_list_ppc));
|
||||
return subarch_list_ppc[i];
|
||||
}
|
||||
zig_unreachable();
|
||||
}
|
||||
@@ -726,6 +738,8 @@ const char *target_subarch_name(ZigLLVM_SubArchType subarch) {
|
||||
return "v5";
|
||||
case ZigLLVM_MipsSubArch_r6:
|
||||
return "r6";
|
||||
case ZigLLVM_PPCSubArch_spe:
|
||||
return "spe";
|
||||
}
|
||||
zig_unreachable();
|
||||
}
|
||||
@@ -935,6 +949,7 @@ uint32_t target_arch_pointer_bit_width(ZigLLVM_ArchType arch) {
|
||||
case ZigLLVM_spir64:
|
||||
case ZigLLVM_wasm64:
|
||||
case ZigLLVM_renderscript64:
|
||||
case ZigLLVM_ve:
|
||||
return 64;
|
||||
}
|
||||
zig_unreachable();
|
||||
@@ -998,6 +1013,7 @@ uint32_t target_arch_largest_atomic_bits(ZigLLVM_ArchType arch) {
|
||||
case ZigLLVM_spir64:
|
||||
case ZigLLVM_wasm64:
|
||||
case ZigLLVM_renderscript64:
|
||||
case ZigLLVM_ve:
|
||||
return 64;
|
||||
|
||||
case ZigLLVM_x86_64:
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
#include <llvm/Object/COFFImportFile.h>
|
||||
#include <llvm/Object/COFFModuleDefinition.h>
|
||||
#include <llvm/PassRegistry.h>
|
||||
#include <llvm/Support/CommandLine.h>
|
||||
#include <llvm/Support/FileSystem.h>
|
||||
#include <llvm/Support/TargetParser.h>
|
||||
#include <llvm/Support/Timer.h>
|
||||
@@ -299,14 +300,16 @@ LLVMValueRef ZigLLVMBuildCall(LLVMBuilderRef B, LLVMValueRef Fn, LLVMValueRef *A
|
||||
LLVMValueRef ZigLLVMBuildMemCpy(LLVMBuilderRef B, LLVMValueRef Dst, unsigned DstAlign,
|
||||
LLVMValueRef Src, unsigned SrcAlign, LLVMValueRef Size, bool isVolatile)
|
||||
{
|
||||
CallInst *call_inst = unwrap(B)->CreateMemCpy(unwrap(Dst), DstAlign, unwrap(Src), SrcAlign, unwrap(Size), isVolatile);
|
||||
CallInst *call_inst = unwrap(B)->CreateMemCpy(unwrap(Dst),
|
||||
MaybeAlign(DstAlign), unwrap(Src), MaybeAlign(SrcAlign), unwrap(Size), isVolatile);
|
||||
return wrap(call_inst);
|
||||
}
|
||||
|
||||
LLVMValueRef ZigLLVMBuildMemSet(LLVMBuilderRef B, LLVMValueRef Ptr, LLVMValueRef Val, LLVMValueRef Size,
|
||||
unsigned Align, bool isVolatile)
|
||||
{
|
||||
CallInst *call_inst = unwrap(B)->CreateMemSet(unwrap(Ptr), unwrap(Val), unwrap(Size), Align, isVolatile);
|
||||
CallInst *call_inst = unwrap(B)->CreateMemSet(unwrap(Ptr), unwrap(Val), unwrap(Size),
|
||||
MaybeAlign(Align), isVolatile);
|
||||
return wrap(call_inst);
|
||||
}
|
||||
|
||||
@@ -770,7 +773,7 @@ void ZigLLVMAddFunctionAttrCold(LLVMValueRef fn_ref) {
|
||||
}
|
||||
|
||||
void ZigLLVMParseCommandLineOptions(size_t argc, const char *const *argv) {
|
||||
llvm::cl::ParseCommandLineOptions(argc, argv);
|
||||
cl::ParseCommandLineOptions(argc, argv);
|
||||
}
|
||||
|
||||
const char *ZigLLVMGetArchTypeName(ZigLLVM_ArchType arch) {
|
||||
@@ -864,6 +867,8 @@ const char *ZigLLVMGetSubArchTypeName(ZigLLVM_SubArchType sub_arch) {
|
||||
return "v5";
|
||||
case ZigLLVM_MipsSubArch_r6:
|
||||
return "r6";
|
||||
case ZigLLVM_PPCSubArch_spe:
|
||||
return "spe";
|
||||
}
|
||||
abort();
|
||||
}
|
||||
@@ -1072,11 +1077,14 @@ bool ZigLLVMWriteArchive(const char *archive_name, const char **file_names, size
|
||||
|
||||
|
||||
bool ZigLLDLink(ZigLLVM_ObjectFormatType oformat, const char **args, size_t arg_count,
|
||||
void (*append_diagnostic)(void *, const char *, size_t), void *context)
|
||||
void (*append_diagnostic_stdout)(void *, const char *, size_t),
|
||||
void (*append_diagnostic_stderr)(void *, const char *, size_t),
|
||||
void *context)
|
||||
{
|
||||
ArrayRef<const char *> array_ref_args(args, arg_count);
|
||||
|
||||
MyOStream diag(append_diagnostic, context);
|
||||
MyOStream diag_stdout(append_diagnostic_stdout, context);
|
||||
MyOStream diag_stderr(append_diagnostic_stderr, context);
|
||||
|
||||
switch (oformat) {
|
||||
case ZigLLVM_UnknownObjectFormat:
|
||||
@@ -1084,16 +1092,16 @@ bool ZigLLDLink(ZigLLVM_ObjectFormatType oformat, const char **args, size_t arg_
|
||||
assert(false); // unreachable
|
||||
|
||||
case ZigLLVM_COFF:
|
||||
return lld::coff::link(array_ref_args, false, diag);
|
||||
return lld::coff::link(array_ref_args, false, diag_stdout, diag_stderr);
|
||||
|
||||
case ZigLLVM_ELF:
|
||||
return lld::elf::link(array_ref_args, false, diag);
|
||||
return lld::elf::link(array_ref_args, false, diag_stdout, diag_stderr);
|
||||
|
||||
case ZigLLVM_MachO:
|
||||
return lld::mach_o::link(array_ref_args, false, diag);
|
||||
return lld::mach_o::link(array_ref_args, false, diag_stdout, diag_stderr);
|
||||
|
||||
case ZigLLVM_Wasm:
|
||||
return lld::wasm::link(array_ref_args, false, diag);
|
||||
return lld::wasm::link(array_ref_args, false, diag_stdout, diag_stderr);
|
||||
}
|
||||
assert(false); // unreachable
|
||||
abort();
|
||||
@@ -1154,6 +1162,7 @@ static_assert((Triple::ArchType)ZigLLVM_arm == Triple::arm, "");
|
||||
static_assert((Triple::ArchType)ZigLLVM_armeb == Triple::armeb, "");
|
||||
static_assert((Triple::ArchType)ZigLLVM_aarch64 == Triple::aarch64, "");
|
||||
static_assert((Triple::ArchType)ZigLLVM_aarch64_be == Triple::aarch64_be, "");
|
||||
static_assert((Triple::ArchType)ZigLLVM_aarch64_32 == Triple::aarch64_32, "");
|
||||
static_assert((Triple::ArchType)ZigLLVM_arc == Triple::arc, "");
|
||||
static_assert((Triple::ArchType)ZigLLVM_avr == Triple::avr, "");
|
||||
static_assert((Triple::ArchType)ZigLLVM_bpfel == Triple::bpfel, "");
|
||||
@@ -1199,6 +1208,7 @@ static_assert((Triple::ArchType)ZigLLVM_wasm32 == Triple::wasm32, "");
|
||||
static_assert((Triple::ArchType)ZigLLVM_wasm64 == Triple::wasm64, "");
|
||||
static_assert((Triple::ArchType)ZigLLVM_renderscript32 == Triple::renderscript32, "");
|
||||
static_assert((Triple::ArchType)ZigLLVM_renderscript64 == Triple::renderscript64, "");
|
||||
static_assert((Triple::ArchType)ZigLLVM_ve == Triple::ve, "");
|
||||
static_assert((Triple::ArchType)ZigLLVM_LastArchType == Triple::LastArchType, "");
|
||||
|
||||
static_assert((Triple::SubArchType)ZigLLVM_NoSubArch == Triple::NoSubArch, "");
|
||||
@@ -1229,6 +1239,7 @@ static_assert((Triple::SubArchType)ZigLLVM_KalimbaSubArch_v4 == Triple::KalimbaS
|
||||
static_assert((Triple::SubArchType)ZigLLVM_KalimbaSubArch_v5 == Triple::KalimbaSubArch_v5, "");
|
||||
static_assert((Triple::SubArchType)ZigLLVM_KalimbaSubArch_v5 == Triple::KalimbaSubArch_v5, "");
|
||||
static_assert((Triple::SubArchType)ZigLLVM_MipsSubArch_r6 == Triple::MipsSubArch_r6, "");
|
||||
static_assert((Triple::SubArchType)ZigLLVM_PPCSubArch_spe == Triple::PPCSubArch_spe, "");
|
||||
|
||||
static_assert((Triple::VendorType)ZigLLVM_UnknownVendor == Triple::UnknownVendor, "");
|
||||
static_assert((Triple::VendorType)ZigLLVM_Apple == Triple::Apple, "");
|
||||
@@ -1299,8 +1310,6 @@ static_assert((Triple::EnvironmentType)ZigLLVM_GNUX32 == Triple::GNUX32, "");
|
||||
static_assert((Triple::EnvironmentType)ZigLLVM_CODE16 == Triple::CODE16, "");
|
||||
static_assert((Triple::EnvironmentType)ZigLLVM_EABI == Triple::EABI, "");
|
||||
static_assert((Triple::EnvironmentType)ZigLLVM_EABIHF == Triple::EABIHF, "");
|
||||
static_assert((Triple::EnvironmentType)ZigLLVM_ELFv1 == Triple::ELFv1, "");
|
||||
static_assert((Triple::EnvironmentType)ZigLLVM_ELFv2 == Triple::ELFv2, "");
|
||||
static_assert((Triple::EnvironmentType)ZigLLVM_Android == Triple::Android, "");
|
||||
static_assert((Triple::EnvironmentType)ZigLLVM_Musl == Triple::Musl, "");
|
||||
static_assert((Triple::EnvironmentType)ZigLLVM_MuslEABI == Triple::MuslEABI, "");
|
||||
@@ -1310,6 +1319,7 @@ static_assert((Triple::EnvironmentType)ZigLLVM_Itanium == Triple::Itanium, "");
|
||||
static_assert((Triple::EnvironmentType)ZigLLVM_Cygnus == Triple::Cygnus, "");
|
||||
static_assert((Triple::EnvironmentType)ZigLLVM_CoreCLR == Triple::CoreCLR, "");
|
||||
static_assert((Triple::EnvironmentType)ZigLLVM_Simulator == Triple::Simulator, "");
|
||||
static_assert((Triple::EnvironmentType)ZigLLVM_MacABI == Triple::MacABI, "");
|
||||
static_assert((Triple::EnvironmentType)ZigLLVM_LastEnvironmentType == Triple::LastEnvironmentType, "");
|
||||
|
||||
static_assert((Triple::ObjectFormatType)ZigLLVM_UnknownObjectFormat == Triple::UnknownObjectFormat, "");
|
||||
|
||||
@@ -327,8 +327,9 @@ enum ZigLLVM_ArchType {
|
||||
ZigLLVM_wasm64, // WebAssembly with 64-bit pointers
|
||||
ZigLLVM_renderscript32, // 32-bit RenderScript
|
||||
ZigLLVM_renderscript64, // 64-bit RenderScript
|
||||
ZigLLVM_ve, // NEC SX-Aurora Vector Engine
|
||||
|
||||
ZigLLVM_LastArchType = ZigLLVM_renderscript64
|
||||
ZigLLVM_LastArchType = ZigLLVM_ve
|
||||
};
|
||||
|
||||
// synchronize with lists in target.cpp
|
||||
@@ -364,6 +365,8 @@ enum ZigLLVM_SubArchType {
|
||||
ZigLLVM_KalimbaSubArch_v5,
|
||||
|
||||
ZigLLVM_MipsSubArch_r6,
|
||||
|
||||
ZigLLVM_PPCSubArch_spe,
|
||||
};
|
||||
|
||||
enum ZigLLVM_VendorType {
|
||||
@@ -444,8 +447,6 @@ enum ZigLLVM_EnvironmentType {
|
||||
ZigLLVM_CODE16,
|
||||
ZigLLVM_EABI,
|
||||
ZigLLVM_EABIHF,
|
||||
ZigLLVM_ELFv1,
|
||||
ZigLLVM_ELFv2,
|
||||
ZigLLVM_Android,
|
||||
ZigLLVM_Musl,
|
||||
ZigLLVM_MuslEABI,
|
||||
@@ -531,7 +532,9 @@ ZIG_EXTERN_C const char *ZigLLVMGetOSTypeName(enum ZigLLVM_OSType os);
|
||||
ZIG_EXTERN_C const char *ZigLLVMGetEnvironmentTypeName(enum ZigLLVM_EnvironmentType abi);
|
||||
|
||||
ZIG_EXTERN_C bool ZigLLDLink(enum ZigLLVM_ObjectFormatType oformat, const char **args, size_t arg_count,
|
||||
void (*append_diagnostic)(void *, const char *, size_t), void *context);
|
||||
void (*append_diagnostic_stdout)(void *, const char *, size_t),
|
||||
void (*append_diagnostic_stderr)(void *, const char *, size_t),
|
||||
void *context);
|
||||
|
||||
ZIG_EXTERN_C bool ZigLLVMWriteArchive(const char *archive_name, const char **file_names, size_t file_name_count,
|
||||
enum ZigLLVM_OSType os_type);
|
||||
|
||||
Reference in New Issue
Block a user