| author | |
| committer | |
| log | fbfda7f00edbbf4eb623898d53c3faf43ab874ce |
| tree | bdd246991e850d9304a6af7834123fd495a4a68a |
| parent | c86589a738e5053a26b2be7d156bcfee1565f00b |
| signature |
tests use older sub-arch that works in the older qemu5 files changed, 35 insertions(+), 33 deletions(-)
lib/std/target.zig+8-14| ... | ... | @@ -123,12 +123,12 @@ pub const Target = union(enum) { |
| 123 | 123 | v8_3a, |
| 124 | 124 | v8_2a, |
| 125 | 125 | v8_1a, |
| 126 | v8, | |
| 126 | v8a, | |
| 127 | 127 | v8r, |
| 128 | 128 | v8m_baseline, |
| 129 | 129 | v8m_mainline, |
| 130 | 130 | v8_1m_mainline, |
| 131 | v7, | |
| 131 | v7a, | |
| 132 | 132 | v7em, |
| 133 | 133 | v7m, |
| 134 | 134 | v7s, |
| ... | ... | @@ -144,8 +144,8 @@ pub const Target = union(enum) { |
| 144 | 144 | |
| 145 | 145 | pub fn version(version: Arm32) comptime_int { |
| 146 | 146 | return switch (version) { |
| 147 | .v8_5a, .v8_4a, .v8_3a, .v8_2a, .v8_1a, .v8, .v8r, .v8m_baseline, .v8m_mainline, .v8_1m_mainline => 8, | |
| 148 | .v7, .v7em, .v7m, .v7s, .v7k, .v7ve => 7, | |
| 147 | .v8_5a, .v8_4a, .v8_3a, .v8_2a, .v8_1a, .v8a, .v8r, .v8m_baseline, .v8m_mainline, .v8_1m_mainline => 8, | |
| 148 | .v7a, .v7em, .v7m, .v7s, .v7k, .v7ve => 7, | |
| 149 | 149 | .v6, .v6m, .v6k, .v6t2 => 6, |
| 150 | 150 | .v5, .v5te => 5, |
| 151 | 151 | .v4t => 4, |
| ... | ... | @@ -158,10 +158,7 @@ pub const Target = union(enum) { |
| 158 | 158 | v8_3a, |
| 159 | 159 | v8_2a, |
| 160 | 160 | v8_1a, |
| 161 | v8, | |
| 162 | v8r, | |
| 163 | v8m_baseline, | |
| 164 | v8m_mainline, | |
| 161 | v8a, | |
| 165 | 162 | }; |
| 166 | 163 | pub const Kalimba = enum { |
| 167 | 164 | v5, |
| ... | ... | @@ -189,12 +186,12 @@ pub const Target = union(enum) { |
| 189 | 186 | .v8_3a => @enumToInt(arm.Feature.armv8_3_a), |
| 190 | 187 | .v8_2a => @enumToInt(arm.Feature.armv8_2_a), |
| 191 | 188 | .v8_1a => @enumToInt(arm.Feature.armv8_1_a), |
| 192 | .v8 => @enumToInt(arm.Feature.armv8_a), | |
| 189 | .v8a => @enumToInt(arm.Feature.armv8_a), | |
| 193 | 190 | .v8r => @enumToInt(arm.Feature.armv8_r), |
| 194 | 191 | .v8m_baseline => @enumToInt(arm.Feature.armv8_m_base), |
| 195 | 192 | .v8m_mainline => @enumToInt(arm.Feature.armv8_m_main), |
| 196 | 193 | .v8_1m_mainline => @enumToInt(arm.Feature.armv8_1_m_main), |
| 197 | .v7 => @enumToInt(arm.Feature.armv7_a), | |
| 194 | .v7a => @enumToInt(arm.Feature.armv7_a), | |
| 198 | 195 | .v7em => @enumToInt(arm.Feature.armv7e_m), |
| 199 | 196 | .v7m => @enumToInt(arm.Feature.armv7_m), |
| 200 | 197 | .v7s => @enumToInt(arm.Feature.armv7s), |
| ... | ... | @@ -214,10 +211,7 @@ pub const Target = union(enum) { |
| 214 | 211 | .v8_3a => @enumToInt(aarch64.Feature.v8_3a), |
| 215 | 212 | .v8_2a => @enumToInt(aarch64.Feature.v8_2a), |
| 216 | 213 | .v8_1a => @enumToInt(aarch64.Feature.v8_1a), |
| 217 | .v8 => @enumToInt(aarch64.Feature.v8_1a), | |
| 218 | .v8r => @enumToInt(aarch64.Feature.v8_1a), | |
| 219 | .v8m_baseline => @enumToInt(aarch64.Feature.v8_1a), | |
| 220 | .v8m_mainline => @enumToInt(aarch64.Feature.v8_1a), | |
| 214 | .v8a => @enumToInt(aarch64.Feature.v8a), | |
| 221 | 215 | }, |
| 222 | 216 | else => return null, |
| 223 | 217 | }; |
lib/std/target/aarch64.zig+11| ... | ... | @@ -137,6 +137,7 @@ pub const Feature = enum { |
| 137 | 137 | use_aa, |
| 138 | 138 | use_postra_scheduler, |
| 139 | 139 | use_reciprocal_square_root, |
| 140 | v8a, | |
| 140 | 141 | v8_1a, |
| 141 | 142 | v8_2a, |
| 142 | 143 | v8_3a, |
| ... | ... | @@ -153,6 +154,7 @@ pub const Feature = enum { |
| 153 | 154 | pub usingnamespace Cpu.Feature.feature_set_fns(Feature); |
| 154 | 155 | |
| 155 | 156 | pub const all_features = blk: { |
| 157 | @setEvalBranchQuota(2000); | |
| 156 | 158 | const len = @typeInfo(Feature).Enum.fields.len; |
| 157 | 159 | std.debug.assert(len <= Cpu.Feature.Set.needed_bit_count); |
| 158 | 160 | var result: [len]Cpu.Feature = undefined; |
| ... | ... | @@ -1108,6 +1110,14 @@ pub const all_features = blk: { |
| 1108 | 1110 | .description = "Use the reciprocal square root approximation", |
| 1109 | 1111 | .dependencies = featureSet(&[_]Feature{}), |
| 1110 | 1112 | }; |
| 1113 | result[@enumToInt(Feature.v8a)] = .{ | |
| 1114 | .llvm_name = null, | |
| 1115 | .description = "Support ARM v8a instructions", | |
| 1116 | .dependencies = featureSet(&[_]Feature{ | |
| 1117 | .fp_armv8, | |
| 1118 | .neon, | |
| 1119 | }), | |
| 1120 | }; | |
| 1111 | 1121 | result[@enumToInt(Feature.v8_1a)] = .{ |
| 1112 | 1122 | .llvm_name = "v8.1a", |
| 1113 | 1123 | .description = "Support ARM v8.1a instructions", |
| ... | ... | @@ -1118,6 +1128,7 @@ pub const all_features = blk: { |
| 1118 | 1128 | .pan, |
| 1119 | 1129 | .rdm, |
| 1120 | 1130 | .vh, |
| 1131 | .v8a, | |
| 1121 | 1132 | }), |
| 1122 | 1133 | }; |
| 1123 | 1134 | result[@enumToInt(Feature.v8_2a)] = .{ |
src/target.cpp+2-5| ... | ... | @@ -57,9 +57,6 @@ static const ZigLLVM_SubArchType subarch_list_arm64[] = { |
| 57 | 57 | ZigLLVM_ARMSubArch_v8_2a, |
| 58 | 58 | ZigLLVM_ARMSubArch_v8_1a, |
| 59 | 59 | ZigLLVM_ARMSubArch_v8, |
| 60 | ZigLLVM_ARMSubArch_v8r, | |
| 61 | ZigLLVM_ARMSubArch_v8m_baseline, | |
| 62 | ZigLLVM_ARMSubArch_v8m_mainline, | |
| 63 | 60 | }; |
| 64 | 61 | |
| 65 | 62 | static const ZigLLVM_SubArchType subarch_list_kalimba[] = { |
| ... | ... | @@ -683,7 +680,7 @@ const char *target_subarch_name(ZigLLVM_SubArchType subarch) { |
| 683 | 680 | case ZigLLVM_ARMSubArch_v8_1a: |
| 684 | 681 | return "v8_1a"; |
| 685 | 682 | case ZigLLVM_ARMSubArch_v8: |
| 686 | return "v8"; | |
| 683 | return "v8a"; | |
| 687 | 684 | case ZigLLVM_ARMSubArch_v8r: |
| 688 | 685 | return "v8r"; |
| 689 | 686 | case ZigLLVM_ARMSubArch_v8m_baseline: |
| ... | ... | @@ -693,7 +690,7 @@ const char *target_subarch_name(ZigLLVM_SubArchType subarch) { |
| 693 | 690 | case ZigLLVM_ARMSubArch_v8_1m_mainline: |
| 694 | 691 | return "v8_1m_mainline"; |
| 695 | 692 | case ZigLLVM_ARMSubArch_v7: |
| 696 | return "v7"; | |
| 693 | return "v7a"; | |
| 697 | 694 | case ZigLLVM_ARMSubArch_v7em: |
| 698 | 695 | return "v7em"; |
| 699 | 696 | case ZigLLVM_ARMSubArch_v7m: |
src/zig_llvm.cpp+2-2| ... | ... | @@ -821,7 +821,7 @@ const char *ZigLLVMGetSubArchTypeName(ZigLLVM_SubArchType sub_arch) { |
| 821 | 821 | case ZigLLVM_ARMSubArch_v8_1a: |
| 822 | 822 | return "v8.1a"; |
| 823 | 823 | case ZigLLVM_ARMSubArch_v8: |
| 824 | return "v8"; | |
| 824 | return "v8a"; | |
| 825 | 825 | case ZigLLVM_ARMSubArch_v8r: |
| 826 | 826 | return "v8r"; |
| 827 | 827 | case ZigLLVM_ARMSubArch_v8m_baseline: |
| ... | ... | @@ -831,7 +831,7 @@ const char *ZigLLVMGetSubArchTypeName(ZigLLVM_SubArchType sub_arch) { |
| 831 | 831 | case ZigLLVM_ARMSubArch_v8_1m_mainline: |
| 832 | 832 | return "v8.1m.main"; |
| 833 | 833 | case ZigLLVM_ARMSubArch_v7: |
| 834 | return "v7"; | |
| 834 | return "v7a"; | |
| 835 | 835 | case ZigLLVM_ARMSubArch_v7em: |
| 836 | 836 | return "v7em"; |
| 837 | 837 | case ZigLLVM_ARMSubArch_v7m: |
test/tests.zig+12-12| ... | ... | @@ -111,8 +111,8 @@ const test_targets = blk: { |
| 111 | 111 | .target = Target{ |
| 112 | 112 | .Cross = CrossTarget{ |
| 113 | 113 | .os = .linux, |
| 114 | .arch = Target.Arch{ .aarch64 = .v8_1a }, | |
| 115 | .cpu_features = (Target.Arch{ .aarch64 = .v8_1a }).getBaselineCpuFeatures(), | |
| 114 | .arch = Target.Arch{ .aarch64 = .v8a }, | |
| 115 | .cpu_features = (Target.Arch{ .aarch64 = .v8a }).getBaselineCpuFeatures(), | |
| 116 | 116 | .abi = .none, |
| 117 | 117 | }, |
| 118 | 118 | }, |
| ... | ... | @@ -121,8 +121,8 @@ const test_targets = blk: { |
| 121 | 121 | .target = Target{ |
| 122 | 122 | .Cross = CrossTarget{ |
| 123 | 123 | .os = .linux, |
| 124 | .arch = Target.Arch{ .aarch64 = .v8_1a }, | |
| 125 | .cpu_features = (Target.Arch{ .aarch64 = .v8_1a }).getBaselineCpuFeatures(), | |
| 124 | .arch = Target.Arch{ .aarch64 = .v8a }, | |
| 125 | .cpu_features = (Target.Arch{ .aarch64 = .v8a }).getBaselineCpuFeatures(), | |
| 126 | 126 | .abi = .musl, |
| 127 | 127 | }, |
| 128 | 128 | }, |
| ... | ... | @@ -132,8 +132,8 @@ const test_targets = blk: { |
| 132 | 132 | .target = Target{ |
| 133 | 133 | .Cross = CrossTarget{ |
| 134 | 134 | .os = .linux, |
| 135 | .arch = Target.Arch{ .aarch64 = .v8_1a }, | |
| 136 | .cpu_features = (Target.Arch{ .aarch64 = .v8_1a }).getBaselineCpuFeatures(), | |
| 135 | .arch = Target.Arch{ .aarch64 = .v8a }, | |
| 136 | .cpu_features = (Target.Arch{ .aarch64 = .v8a }).getBaselineCpuFeatures(), | |
| 137 | 137 | .abi = .gnu, |
| 138 | 138 | }, |
| 139 | 139 | }, |
| ... | ... | @@ -144,8 +144,8 @@ const test_targets = blk: { |
| 144 | 144 | .target = Target{ |
| 145 | 145 | .Cross = CrossTarget{ |
| 146 | 146 | .os = .linux, |
| 147 | .arch = Target.Arch{ .arm = .v8_1a }, | |
| 148 | .cpu_features = (Target.Arch{ .arm = .v8_1a }).getBaselineCpuFeatures(), | |
| 147 | .arch = Target.Arch{ .arm = .v8a }, | |
| 148 | .cpu_features = (Target.Arch{ .arm = .v8a }).getBaselineCpuFeatures(), | |
| 149 | 149 | .abi = .none, |
| 150 | 150 | }, |
| 151 | 151 | }, |
| ... | ... | @@ -154,8 +154,8 @@ const test_targets = blk: { |
| 154 | 154 | .target = Target{ |
| 155 | 155 | .Cross = CrossTarget{ |
| 156 | 156 | .os = .linux, |
| 157 | .arch = Target.Arch{ .arm = .v8_1a }, | |
| 158 | .cpu_features = (Target.Arch{ .arm = .v8_1a }).getBaselineCpuFeatures(), | |
| 157 | .arch = Target.Arch{ .arm = .v8a }, | |
| 158 | .cpu_features = (Target.Arch{ .arm = .v8a }).getBaselineCpuFeatures(), | |
| 159 | 159 | .abi = .musleabihf, |
| 160 | 160 | }, |
| 161 | 161 | }, |
| ... | ... | @@ -166,8 +166,8 @@ const test_targets = blk: { |
| 166 | 166 | // .target = Target{ |
| 167 | 167 | // .Cross = CrossTarget{ |
| 168 | 168 | // .os = .linux, |
| 169 | // .arch = Target.Arch{ .arm = .v8_1a }, | |
| 170 | // .cpu_features = (Target.Arch{ .arm = .v8_1a }).getBaselineCpuFeatures(), | |
| 169 | // .arch = Target.Arch{ .arm = .v8a }, | |
| 170 | // .cpu_features = (Target.Arch{ .arm = .v8a }).getBaselineCpuFeatures(), | |
| 171 | 171 | // .abi = .gnueabihf, |
| 172 | 172 | // }, |
| 173 | 173 | // }, |