Function fromCallingConvention [src]

Returns the array of Arch to which a specific std.builtin.CallingConvention applies. Asserts that cc is not .auto, .@"async", .naked, or .@"inline".

Prototype

pub fn fromCallingConvention(cc: std.builtin.CallingConvention.Tag) []const Arch

Parameters

cc: std.builtin.CallingConvention.Tag

Source

pub fn fromCallingConvention(cc: std.builtin.CallingConvention.Tag) []const Arch { return switch (cc) { .auto, .@"async", .naked, .@"inline", => unreachable, .x86_64_sysv, .x86_64_win, .x86_64_regcall_v3_sysv, .x86_64_regcall_v4_win, .x86_64_vectorcall, .x86_64_interrupt, => &.{.x86_64}, .x86_sysv, .x86_win, .x86_stdcall, .x86_fastcall, .x86_thiscall, .x86_thiscall_mingw, .x86_regcall_v3, .x86_regcall_v4_win, .x86_vectorcall, .x86_interrupt, => &.{.x86}, .aarch64_aapcs, .aarch64_aapcs_darwin, .aarch64_aapcs_win, .aarch64_vfabi, .aarch64_vfabi_sve, => &.{ .aarch64, .aarch64_be }, .arm_aapcs, .arm_aapcs_vfp, .arm_interrupt, => &.{ .arm, .armeb, .thumb, .thumbeb }, .mips64_n64, .mips64_n32, .mips64_interrupt, => &.{ .mips64, .mips64el }, .mips_o32, .mips_interrupt, => &.{ .mips, .mipsel }, .riscv64_lp64, .riscv64_lp64_v, .riscv64_interrupt, => &.{.riscv64}, .riscv32_ilp32, .riscv32_ilp32_v, .riscv32_interrupt, => &.{.riscv32}, .sparc64_sysv, => &.{.sparc64}, .sparc_sysv, => &.{.sparc}, .powerpc64_elf, .powerpc64_elf_altivec, .powerpc64_elf_v2, => &.{ .powerpc64, .powerpc64le }, .powerpc_sysv, .powerpc_sysv_altivec, .powerpc_aix, .powerpc_aix_altivec, => &.{ .powerpc, .powerpcle }, .wasm_mvp, => &.{ .wasm64, .wasm32 }, .arc_sysv, => &.{.arc}, .avr_gnu, .avr_builtin, .avr_signal, .avr_interrupt, => &.{.avr}, .bpf_std, => &.{ .bpfel, .bpfeb }, .csky_sysv, .csky_interrupt, => &.{.csky}, .hexagon_sysv, .hexagon_sysv_hvx, => &.{.hexagon}, .lanai_sysv, => &.{.lanai}, .loongarch64_lp64, => &.{.loongarch64}, .loongarch32_ilp32, => &.{.loongarch32}, .m68k_sysv, .m68k_gnu, .m68k_rtd, .m68k_interrupt, => &.{.m68k}, .msp430_eabi, => &.{.msp430}, .propeller_sysv, => &.{.propeller}, .s390x_sysv, .s390x_sysv_vx, => &.{.s390x}, .ve_sysv, => &.{.ve}, .xcore_xs1, .xcore_xs2, => &.{.xcore}, .xtensa_call0, .xtensa_windowed, => &.{.xtensa}, .amdgcn_device, .amdgcn_kernel, .amdgcn_cs, => &.{.amdgcn}, .nvptx_device, .nvptx_kernel, => &.{ .nvptx, .nvptx64 }, .spirv_device, .spirv_kernel, .spirv_fragment, .spirv_vertex, => &.{ .spirv, .spirv32, .spirv64 }, }; }