| ... | @@ -157,6 +157,17 @@ static void get_native_target(ZigTarget *target) { | ... | @@ -157,6 +157,17 @@ static void get_native_target(ZigTarget *target) { |
| 157 | } | 157 | } |
| 158 | } | 158 | } |
| 159 | | 159 | |
| | 160 | static const char* get_baseline_llvm_cpu_name(ZigLLVM_ArchType arch) { |
| | 161 | return ""; |
| | 162 | } |
| | 163 | |
| | 164 | static const char* get_baseline_llvm_cpu_features(ZigLLVM_ArchType arch) { |
| | 165 | switch (arch) { |
| | 166 | case ZigLLVM_riscv64: return "+a,+c,+d,+m"; |
| | 167 | default: return ""; |
| | 168 | } |
| | 169 | } |
| | 170 | |
| 160 | static Error target_parse_triple(struct ZigTarget *target, const char *zig_triple, const char *mcpu, | 171 | static Error target_parse_triple(struct ZigTarget *target, const char *zig_triple, const char *mcpu, |
| 161 | const char *dynamic_linker) | 172 | const char *dynamic_linker) |
| 162 | { | 173 | { |
| ... | @@ -175,8 +186,8 @@ static Error target_parse_triple(struct ZigTarget *target, const char *zig_tripl | ... | @@ -175,8 +186,8 @@ static Error target_parse_triple(struct ZigTarget *target, const char *zig_tripl |
| 175 | } else if (strcmp(mcpu, "baseline") == 0) { | 186 | } else if (strcmp(mcpu, "baseline") == 0) { |
| 176 | target->is_native_os = false; | 187 | target->is_native_os = false; |
| 177 | target->is_native_cpu = false; | 188 | target->is_native_cpu = false; |
| 178 | target->llvm_cpu_name = ""; | 189 | target->llvm_cpu_name = get_baseline_llvm_cpu_name(target->arch); |
| 179 | target->llvm_cpu_features = ""; | 190 | target->llvm_cpu_features = get_baseline_llvm_cpu_features(target->arch); |
| 180 | } else { | 191 | } else { |
| 181 | const char *msg = "stage0 can't handle CPU/features in the target"; | 192 | const char *msg = "stage0 can't handle CPU/features in the target"; |
| 182 | stage2_panic(msg, strlen(msg)); | 193 | stage2_panic(msg, strlen(msg)); |
| ... | @@ -217,6 +228,9 @@ static Error target_parse_triple(struct ZigTarget *target, const char *zig_tripl | ... | @@ -217,6 +228,9 @@ static Error target_parse_triple(struct ZigTarget *target, const char *zig_tripl |
| 217 | const char *msg = "stage0 can't handle CPU/features in the target"; | 228 | const char *msg = "stage0 can't handle CPU/features in the target"; |
| 218 | stage2_panic(msg, strlen(msg)); | 229 | stage2_panic(msg, strlen(msg)); |
| 219 | } | 230 | } |
| | 231 | |
| | 232 | target->llvm_cpu_name = get_baseline_llvm_cpu_name(target->arch); |
| | 233 | target->llvm_cpu_features = get_baseline_llvm_cpu_features(target->arch); |
| 220 | } | 234 | } |
| 221 | | 235 | |
| 222 | return ErrorNone; | 236 | return ErrorNone; |