| author | |
| committer | |
| log | 78eb3c561746a4dd86a67f927d244a3e8f46ad00 |
| tree | 74030f8599dd7d134935a3cd610e0ebd74a34ff1 |
| parent | 8ae92fd17ee9a3d46e4f441864a8544b440c0b2d |
* `CMakeLists.txt`: support the weird `uname -m` output.
* `CMakeLists.txt`: detect and use the C compiler's default arm mode.
* cbe: support gcc with both `f128` and `u128` emulated.
* std.os.linux.thumb: fix incorrectly passed asm inputs.5 files changed, 33 insertions(+), 45 deletions(-)
CMakeLists.txt+22-11| ... | ... | @@ -689,17 +689,28 @@ target_link_libraries(zigcpp LINK_PUBLIC |
| 689 | 689 | ${CMAKE_THREAD_LIBS_INIT} |
| 690 | 690 | ) |
| 691 | 691 | |
| 692 | string(TOLOWER "${CMAKE_HOST_SYSTEM_PROCESSOR}" HOST_TARGET_ARCH) | |
| 693 | if(HOST_TARGET_ARCH STREQUAL "amd64") | |
| 694 | set(HOST_TARGET_ARCH "x86_64") | |
| 695 | elseif(HOST_TARGET_ARCH STREQUAL "arm64") | |
| 696 | set(HOST_TARGET_ARCH "aarch64") | |
| 692 | string(TOLOWER "${CMAKE_HOST_SYSTEM_PROCESSOR}" ZIG_HOST_TARGET_ARCH) | |
| 693 | if(ZIG_HOST_TARGET_ARCH STREQUAL "amd64") | |
| 694 | set(ZIG_HOST_TARGET_ARCH "x86_64") | |
| 695 | elseif(ZIG_HOST_TARGET_ARCH STREQUAL "arm64") | |
| 696 | set(ZIG_HOST_TARGET_ARCH "aarch64") | |
| 697 | elseif(ZIG_HOST_TARGET_ARCH STREQUAL "armv7l") | |
| 698 | set(ZIG_HOST_TARGET_ARCH "arm") | |
| 699 | elseif(ZIG_HOST_TARGET_ARCH STREQUAL "armv7b") | |
| 700 | set(ZIG_HOST_TARGET_ARCH "armeb") | |
| 697 | 701 | endif() |
| 698 | string(TOLOWER "${CMAKE_HOST_SYSTEM_NAME}" HOST_TARGET_OS) | |
| 699 | if(HOST_TARGET_OS STREQUAL "darwin") | |
| 700 | set(HOST_TARGET_OS "macos") | |
| 702 | if(ZIG_HOST_TARGET_ARCH MATCHES "^arm(eb)?$") | |
| 703 | include(CheckSymbolExists) | |
| 704 | check_symbol_exists(__thumb__ "" ZIG_HOST_TARGET_DEFAULTS_TO_THUMB) | |
| 705 | if(ZIG_HOST_TARGET_DEFAULTS_TO_THUMB) | |
| 706 | string(REGEX REPLACE "^arm" "thumb" ZIG_HOST_TARGET_ARCH "${ZIG_HOST_TARGET_ARCH}") | |
| 707 | endif() | |
| 708 | endif() | |
| 709 | string(TOLOWER "${CMAKE_HOST_SYSTEM_NAME}" ZIG_HOST_TARGET_OS) | |
| 710 | if(ZIG_HOST_TARGET_OS STREQUAL "darwin") | |
| 711 | set(ZIG_HOST_TARGET_OS "macos") | |
| 701 | 712 | endif() |
| 702 | set(HOST_TARGET_TRIPLE "${HOST_TARGET_ARCH}-${HOST_TARGET_OS}") | |
| 713 | set(ZIG_HOST_TARGET_TRIPLE "${ZIG_HOST_TARGET_ARCH}-${ZIG_HOST_TARGET_OS}" CACHE STRING "Host zig target triple.") | |
| 703 | 714 | |
| 704 | 715 | if(MSVC) |
| 705 | 716 | set(ZIG_WASM2C_COMPILE_FLAGS "") |
| ... | ... | @@ -749,7 +760,7 @@ set(BUILD_ZIG2_ARGS |
| 749 | 760 | --name zig2 -femit-bin="${ZIG2_C_SOURCE}" |
| 750 | 761 | --mod "build_options::${ZIG_CONFIG_ZIG_OUT}" |
| 751 | 762 | --deps build_options |
| 752 | -target "${HOST_TARGET_TRIPLE}" | |
| 763 | -target "${ZIG_HOST_TARGET_TRIPLE}" | |
| 753 | 764 | ) |
| 754 | 765 | |
| 755 | 766 | add_custom_command( |
| ... | ... | @@ -767,7 +778,7 @@ set(BUILD_COMPILER_RT_ARGS |
| 767 | 778 | --name compiler_rt -femit-bin="${ZIG_COMPILER_RT_C_SOURCE}" |
| 768 | 779 | --mod "build_options::${ZIG_CONFIG_ZIG_OUT}" |
| 769 | 780 | --deps build_options |
| 770 | -target "${HOST_TARGET_TRIPLE}" | |
| 781 | -target "${ZIG_HOST_TARGET_TRIPLE}" | |
| 771 | 782 | ) |
| 772 | 783 | |
| 773 | 784 | add_custom_command( |
lib/std/os/linux/thumb.zig+7-7| ... | ... | @@ -17,7 +17,7 @@ pub fn syscall0(number: SYS) usize { |
| 17 | 17 | \\ svc #0 |
| 18 | 18 | \\ ldr r7, [%[tmp], #4] |
| 19 | 19 | : [ret] "={r0}" (-> usize), |
| 20 | : [tmp] "{r1}" (buf), | |
| 20 | : [tmp] "{r1}" (&buf), | |
| 21 | 21 | : "memory" |
| 22 | 22 | ); |
| 23 | 23 | } |
| ... | ... | @@ -32,7 +32,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize { |
| 32 | 32 | \\ svc #0 |
| 33 | 33 | \\ ldr r7, [%[tmp], #4] |
| 34 | 34 | : [ret] "={r0}" (-> usize), |
| 35 | : [tmp] "{r1}" (buf), | |
| 35 | : [tmp] "{r1}" (&buf), | |
| 36 | 36 | [arg1] "{r0}" (arg1), |
| 37 | 37 | : "memory" |
| 38 | 38 | ); |
| ... | ... | @@ -48,7 +48,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize { |
| 48 | 48 | \\ svc #0 |
| 49 | 49 | \\ ldr r7, [%[tmp], #4] |
| 50 | 50 | : [ret] "={r0}" (-> usize), |
| 51 | : [tmp] "{r2}" (buf), | |
| 51 | : [tmp] "{r2}" (&buf), | |
| 52 | 52 | [arg1] "{r0}" (arg1), |
| 53 | 53 | [arg2] "{r1}" (arg2), |
| 54 | 54 | : "memory" |
| ... | ... | @@ -65,7 +65,7 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize { |
| 65 | 65 | \\ svc #0 |
| 66 | 66 | \\ ldr r7, [%[tmp], #4] |
| 67 | 67 | : [ret] "={r0}" (-> usize), |
| 68 | : [tmp] "{r3}" (buf), | |
| 68 | : [tmp] "{r3}" (&buf), | |
| 69 | 69 | [arg1] "{r0}" (arg1), |
| 70 | 70 | [arg2] "{r1}" (arg2), |
| 71 | 71 | [arg3] "{r2}" (arg3), |
| ... | ... | @@ -83,7 +83,7 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) |
| 83 | 83 | \\ svc #0 |
| 84 | 84 | \\ ldr r7, [%[tmp], #4] |
| 85 | 85 | : [ret] "={r0}" (-> usize), |
| 86 | : [tmp] "{r4}" (buf), | |
| 86 | : [tmp] "{r4}" (&buf), | |
| 87 | 87 | [arg1] "{r0}" (arg1), |
| 88 | 88 | [arg2] "{r1}" (arg2), |
| 89 | 89 | [arg3] "{r2}" (arg3), |
| ... | ... | @@ -102,7 +102,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, |
| 102 | 102 | \\ svc #0 |
| 103 | 103 | \\ ldr r7, [%[tmp], #4] |
| 104 | 104 | : [ret] "={r0}" (-> usize), |
| 105 | : [tmp] "{r5}" (buf), | |
| 105 | : [tmp] "{r5}" (&buf), | |
| 106 | 106 | [arg1] "{r0}" (arg1), |
| 107 | 107 | [arg2] "{r1}" (arg2), |
| 108 | 108 | [arg3] "{r2}" (arg3), |
| ... | ... | @@ -130,7 +130,7 @@ pub fn syscall6( |
| 130 | 130 | \\ svc #0 |
| 131 | 131 | \\ ldr r7, [%[tmp], #4] |
| 132 | 132 | : [ret] "={r0}" (-> usize), |
| 133 | : [tmp] "{r6}" (buf), | |
| 133 | : [tmp] "{r6}" (&buf), | |
| 134 | 134 | [arg1] "{r0}" (arg1), |
| 135 | 135 | [arg2] "{r1}" (arg2), |
| 136 | 136 | [arg3] "{r2}" (arg3), |
lib/zig.h-12| ... | ... | @@ -3178,18 +3178,6 @@ zig_bitCast_float(f64, uint64_t) |
| 3178 | 3178 | zig_bitCast_float(f80, zig_u128) |
| 3179 | 3179 | zig_bitCast_float(f128, zig_u128) |
| 3180 | 3180 | |
| 3181 | #define zig_cast_f16 (zig_f16) | |
| 3182 | #define zig_cast_f32 (zig_f32) | |
| 3183 | #define zig_cast_f64 (zig_f64) | |
| 3184 | ||
| 3185 | #if _MSC_VER && !zig_has_f128 | |
| 3186 | #define zig_cast_f80 | |
| 3187 | #define zig_cast_f128 | |
| 3188 | #else | |
| 3189 | #define zig_cast_f80 (zig_f80) | |
| 3190 | #define zig_cast_f128 (zig_f128) | |
| 3191 | #endif | |
| 3192 | ||
| 3193 | 3181 | #define zig_convert_builtin(ExternResType, ResType, operation, ExternArgType, ArgType, version) \ |
| 3194 | 3182 | zig_extern ExternResType zig_expand_concat(zig_expand_concat(zig_expand_concat(__##operation, \ |
| 3195 | 3183 | zig_compiler_rt_abbrev_##ArgType), zig_compiler_rt_abbrev_##ResType), version)(ExternArgType); \ |
src/codegen/c.zig+1-6| ... | ... | @@ -732,9 +732,7 @@ pub const DeclGen = struct { |
| 732 | 732 | // All unsigned ints matching float types are pre-allocated. |
| 733 | 733 | const repr_ty = mod.intType(.unsigned, bits) catch unreachable; |
| 734 | 734 | |
| 735 | try writer.writeAll("zig_cast_"); | |
| 736 | try dg.renderTypeForBuiltinFnName(writer, ty); | |
| 737 | try writer.writeAll(" zig_make_"); | |
| 735 | try writer.writeAll("zig_make_"); | |
| 738 | 736 | try dg.renderTypeForBuiltinFnName(writer, ty); |
| 739 | 737 | try writer.writeByte('('); |
| 740 | 738 | switch (bits) { |
| ... | ... | @@ -1049,9 +1047,6 @@ pub const DeclGen = struct { |
| 1049 | 1047 | |
| 1050 | 1048 | const repr_val = try mod.intValue_big(repr_ty, repr_val_big.toConst()); |
| 1051 | 1049 | |
| 1052 | try writer.writeAll("zig_cast_"); | |
| 1053 | try dg.renderTypeForBuiltinFnName(writer, ty); | |
| 1054 | try writer.writeByte(' '); | |
| 1055 | 1050 | var empty = true; |
| 1056 | 1051 | if (std.math.isFinite(f128_val)) { |
| 1057 | 1052 | try writer.writeAll("zig_make_"); |
stage1/zig.h+3-9| ... | ... | @@ -3178,17 +3178,11 @@ zig_bitCast_float(f64, uint64_t) |
| 3178 | 3178 | zig_bitCast_float(f80, zig_u128) |
| 3179 | 3179 | zig_bitCast_float(f128, zig_u128) |
| 3180 | 3180 | |
| 3181 | #define zig_cast_f16 (zig_f16) | |
| 3182 | #define zig_cast_f32 (zig_f32) | |
| 3183 | #define zig_cast_f64 (zig_f64) | |
| 3184 | ||
| 3185 | #if _MSC_VER && !zig_has_f128 | |
| 3181 | #define zig_cast_f16 | |
| 3182 | #define zig_cast_f32 | |
| 3183 | #define zig_cast_f64 | |
| 3186 | 3184 | #define zig_cast_f80 |
| 3187 | 3185 | #define zig_cast_f128 |
| 3188 | #else | |
| 3189 | #define zig_cast_f80 (zig_f80) | |
| 3190 | #define zig_cast_f128 (zig_f128) | |
| 3191 | #endif | |
| 3192 | 3186 | |
| 3193 | 3187 | #define zig_convert_builtin(ExternResType, ResType, operation, ExternArgType, ArgType, version) \ |
| 3194 | 3188 | zig_extern ExternResType zig_expand_concat(zig_expand_concat(zig_expand_concat(__##operation, \ |