| ... | @@ -155,6 +155,7 @@ static const char *get_mangled_name(CodeGen *g, const char *original_name) { | ... | @@ -155,6 +155,7 @@ static const char *get_mangled_name(CodeGen *g, const char *original_name) { |
| 155 | } | 155 | } |
| 156 | } | 156 | } |
| 157 | | 157 | |
| | 158 | // Sync this with emit_error_unless_callconv_allowed_for_target in analyze.cpp |
| 158 | static ZigLLVM_CallingConv get_llvm_cc(CodeGen *g, CallingConvention cc) { | 159 | static ZigLLVM_CallingConv get_llvm_cc(CodeGen *g, CallingConvention cc) { |
| 159 | switch (cc) { | 160 | switch (cc) { |
| 160 | case CallingConventionUnspecified: | 161 | case CallingConventionUnspecified: |
| ... | @@ -164,38 +165,32 @@ static ZigLLVM_CallingConv get_llvm_cc(CodeGen *g, CallingConvention cc) { | ... | @@ -164,38 +165,32 @@ static ZigLLVM_CallingConv get_llvm_cc(CodeGen *g, CallingConvention cc) { |
| 164 | case CallingConventionNaked: | 165 | case CallingConventionNaked: |
| 165 | zig_unreachable(); | 166 | zig_unreachable(); |
| 166 | case CallingConventionStdcall: | 167 | case CallingConventionStdcall: |
| 167 | if (g->zig_target->arch == ZigLLVM_x86) | 168 | assert(g->zig_target->arch == ZigLLVM_x86); |
| 168 | return ZigLLVM_X86_StdCall; | 169 | return ZigLLVM_X86_StdCall; |
| 169 | return ZigLLVM_C; | | |
| 170 | case CallingConventionFastcall: | 170 | case CallingConventionFastcall: |
| 171 | if (g->zig_target->arch == ZigLLVM_x86) | 171 | assert(g->zig_target->arch == ZigLLVM_x86); |
| 172 | return ZigLLVM_X86_FastCall; | 172 | return ZigLLVM_X86_FastCall; |
| 173 | return ZigLLVM_C; | | |
| 174 | case CallingConventionVectorcall: | 173 | case CallingConventionVectorcall: |
| 175 | if (g->zig_target->arch == ZigLLVM_x86) | 174 | if (g->zig_target->arch == ZigLLVM_x86) |
| 176 | return ZigLLVM_X86_VectorCall; | 175 | return ZigLLVM_X86_VectorCall; |
| 177 | if (target_is_arm(g->zig_target) && | 176 | if (target_is_arm(g->zig_target) && |
| 178 | target_arch_pointer_bit_width(g->zig_target->arch) == 64) | 177 | target_arch_pointer_bit_width(g->zig_target->arch) == 64) |
| 179 | return ZigLLVM_AArch64_VectorCall; | 178 | return ZigLLVM_AArch64_VectorCall; |
| 180 | return ZigLLVM_C; | 179 | zig_unreachable(); |
| 181 | case CallingConventionThiscall: | 180 | case CallingConventionThiscall: |
| 182 | if (g->zig_target->arch == ZigLLVM_x86) | 181 | assert(g->zig_target->arch == ZigLLVM_x86); |
| 183 | return ZigLLVM_X86_ThisCall; | 182 | return ZigLLVM_X86_ThisCall; |
| 184 | return ZigLLVM_C; | | |
| 185 | case CallingConventionAsync: | 183 | case CallingConventionAsync: |
| 186 | return ZigLLVM_Fast; | 184 | return ZigLLVM_Fast; |
| 187 | case CallingConventionAPCS: | 185 | case CallingConventionAPCS: |
| 188 | if (target_is_arm(g->zig_target)) | 186 | assert(target_is_arm(g->zig_target)); |
| 189 | return ZigLLVM_ARM_APCS; | 187 | return ZigLLVM_ARM_APCS; |
| 190 | return ZigLLVM_C; | | |
| 191 | case CallingConventionAAPCS: | 188 | case CallingConventionAAPCS: |
| 192 | if (target_is_arm(g->zig_target)) | 189 | assert(target_is_arm(g->zig_target)); |
| 193 | return ZigLLVM_ARM_AAPCS; | 190 | return ZigLLVM_ARM_AAPCS; |
| 194 | return ZigLLVM_C; | | |
| 195 | case CallingConventionAAPCSVFP: | 191 | case CallingConventionAAPCSVFP: |
| 196 | if (target_is_arm(g->zig_target)) | 192 | assert(target_is_arm(g->zig_target)); |
| 197 | return ZigLLVM_ARM_AAPCS_VFP; | 193 | return ZigLLVM_ARM_AAPCS_VFP; |
| 198 | return ZigLLVM_C; | | |
| 199 | case CallingConventionInterrupt: | 194 | case CallingConventionInterrupt: |
| 200 | if (g->zig_target->arch == ZigLLVM_x86 || | 195 | if (g->zig_target->arch == ZigLLVM_x86 || |
| 201 | g->zig_target->arch == ZigLLVM_x86_64) | 196 | g->zig_target->arch == ZigLLVM_x86_64) |
| ... | @@ -204,11 +199,10 @@ static ZigLLVM_CallingConv get_llvm_cc(CodeGen *g, CallingConvention cc) { | ... | @@ -204,11 +199,10 @@ static ZigLLVM_CallingConv get_llvm_cc(CodeGen *g, CallingConvention cc) { |
| 204 | return ZigLLVM_AVR_INTR; | 199 | return ZigLLVM_AVR_INTR; |
| 205 | if (g->zig_target->arch == ZigLLVM_msp430) | 200 | if (g->zig_target->arch == ZigLLVM_msp430) |
| 206 | return ZigLLVM_MSP430_INTR; | 201 | return ZigLLVM_MSP430_INTR; |
| 207 | return ZigLLVM_C; | 202 | zig_unreachable(); |
| 208 | case CallingConventionSignal: | 203 | case CallingConventionSignal: |
| 209 | if (g->zig_target->arch == ZigLLVM_avr) | 204 | assert(g->zig_target->arch == ZigLLVM_avr); |
| 210 | return ZigLLVM_AVR_SIGNAL; | 205 | return ZigLLVM_AVR_SIGNAL; |
| 211 | return ZigLLVM_C; | | |
| 212 | } | 206 | } |
| 213 | zig_unreachable(); | 207 | zig_unreachable(); |
| 214 | } | 208 | } |