| ... | @@ -2,19 +2,10 @@ const std = @import("../std.zig"); | ... | @@ -2,19 +2,10 @@ const std = @import("../std.zig"); |
| 2 | const builtin = @import("builtin"); | 2 | const builtin = @import("builtin"); |
| 3 | const testing = std.testing; | 3 | const testing = std.testing; |
| 4 | | 4 | |
| 5 | fn isComptime() bool { | | |
| 6 | var a: u8 = 0; | | |
| 7 | return @typeInfo(@TypeOf(.{a})).Struct.fields[0].is_comptime; | | |
| 8 | } | | |
| 9 | | | |
| 10 | const has_aesni = std.Target.x86.featureSetHas(builtin.cpu.features, .aes); | 5 | const has_aesni = std.Target.x86.featureSetHas(builtin.cpu.features, .aes); |
| 11 | const has_avx = std.Target.x86.featureSetHas(builtin.cpu.features, .avx); | 6 | const has_avx = std.Target.x86.featureSetHas(builtin.cpu.features, .avx); |
| 12 | const has_armaes = std.Target.aarch64.featureSetHas(builtin.cpu.features, .aes); | 7 | const has_armaes = std.Target.aarch64.featureSetHas(builtin.cpu.features, .aes); |
| 13 | const impl = if (isComptime()) | 8 | const impl = if (builtin.cpu.arch == .x86_64 and has_aesni and has_avx) impl: { |
| 14 | impl: { | | |
| 15 | break :impl @import("aes/soft.zig"); | | |
| 16 | } else if (builtin.cpu.arch == .x86_64 and has_aesni and has_avx) | | |
| 17 | impl: { | | |
| 18 | break :impl @import("aes/aesni.zig"); | 9 | break :impl @import("aes/aesni.zig"); |
| 19 | } else if (builtin.cpu.arch == .aarch64 and has_armaes) | 10 | } else if (builtin.cpu.arch == .aarch64 and has_armaes) |
| 20 | impl: { | 11 | impl: { |