Skip to content

Commit 46734a9

Browse files
committed
libgccjit: Add the function attributes for setting the ABI
1 parent 24fb235 commit 46734a9

File tree

3 files changed

+70
-0
lines changed

3 files changed

+70
-0
lines changed

gcc/jit/jit-playback.cc

+28
Original file line numberDiff line numberDiff line change
@@ -583,6 +583,34 @@ const char* fn_attribute_to_string (gcc_jit_fn_attribute attr)
583583
return "weak";
584584
case GCC_JIT_FN_ATTRIBUTE_NONNULL:
585585
return "nonnull";
586+
case GCC_JIT_FN_ATTRIBUTE_ARM_PCS:
587+
return "pcs";
588+
case GCC_JIT_FN_ATTRIBUTE_AVR_INTERRUPT:
589+
return "interrupt";
590+
case GCC_JIT_FN_ATTRIBUTE_AVR_NOBLOCK:
591+
return "noblock";
592+
case GCC_JIT_FN_ATTRIBUTE_AVR_SIGNAL:
593+
return " signal";
594+
case GCC_JIT_FN_ATTRIBUTE_GCN_AMDGPU_HSA_KERNEL:
595+
return "amdgpu_hsa_kernel";
596+
case GCC_JIT_FN_ATTRIBUTE_MSP430_INTERRUPT:
597+
return "interrupt";
598+
case GCC_JIT_FN_ATTRIBUTE_NVPTX_KERNEL:
599+
return "kernel";
600+
case GCC_JIT_FN_ATTRIBUTE_RISCV_INTERRUPT:
601+
return "interrupt";
602+
case GCC_JIT_FN_ATTRIBUTE_X86_FAST_CALL:
603+
return "fastcall";
604+
case GCC_JIT_FN_ATTRIBUTE_X86_INTERRUPT:
605+
return "interrupt";
606+
case GCC_JIT_FN_ATTRIBUTE_X86_MS_ABI:
607+
return "ms_abi";
608+
case GCC_JIT_FN_ATTRIBUTE_X86_STDCALL:
609+
return "stdcall";
610+
case GCC_JIT_FN_ATTRIBUTE_X86_SYSV_ABI:
611+
return "sysv_abi";
612+
case GCC_JIT_FN_ATTRIBUTE_X86_THIS_CALL:
613+
return "thiscall";
586614
case GCC_JIT_FN_ATTRIBUTE_MAX:
587615
return NULL;
588616
}

gcc/jit/jit-recording.cc

+14
Original file line numberDiff line numberDiff line change
@@ -4954,6 +4954,20 @@ static const char * const fn_attribute_reproducer_strings[] =
49544954
"GCC_JIT_FN_ATTRIBUTE_CONST",
49554955
"GCC_JIT_FN_ATTRIBUTE_WEAK",
49564956
"GCC_JIT_FN_ATTRIBUTE_NONNULL",
4957+
"GCC_JIT_FN_ATTRIBUTE_ARM_PCS",
4958+
"GCC_JIT_FN_ATTRIBUTE_AVR_INTERRUPT",
4959+
"GCC_JIT_FN_ATTRIBUTE_AVR_NOBLOCK",
4960+
"GCC_JIT_FN_ATTRIBUTE_AVR_SIGNAL",
4961+
"GCC_JIT_FN_ATTRIBUTE_GCN_AMDGPU_HSA_KERNEL",
4962+
"GCC_JIT_FN_ATTRIBUTE_MSP430_INTERRUPT",
4963+
"GCC_JIT_FN_ATTRIBUTE_NVPTX_KERNEL",
4964+
"GCC_JIT_FN_ATTRIBUTE_RISCV_INTERRUPT",
4965+
"GCC_JIT_FN_ATTRIBUTE_X86_FAST_CALL",
4966+
"GCC_JIT_FN_ATTRIBUTE_X86_INTERRUPT",
4967+
"GCC_JIT_FN_ATTRIBUTE_X86_MS_ABI",
4968+
"GCC_JIT_FN_ATTRIBUTE_X86_STDCALL",
4969+
"GCC_JIT_FN_ATTRIBUTE_X86_SYSV_ABI",
4970+
"GCC_JIT_FN_ATTRIBUTE_X86_THIS_CALL",
49574971
};
49584972

49594973
std::string

gcc/jit/libgccjit.h

+28
Original file line numberDiff line numberDiff line change
@@ -2169,6 +2169,34 @@ enum gcc_jit_fn_attribute
21692169
GCC_JIT_FN_ATTRIBUTE_WEAK,
21702170
GCC_JIT_FN_ATTRIBUTE_NONNULL,
21712171

2172+
// ARM attributes.
2173+
GCC_JIT_FN_ATTRIBUTE_ARM_PCS,
2174+
2175+
// AVR attributes.
2176+
GCC_JIT_FN_ATTRIBUTE_AVR_INTERRUPT,
2177+
GCC_JIT_FN_ATTRIBUTE_AVR_NOBLOCK,
2178+
GCC_JIT_FN_ATTRIBUTE_AVR_SIGNAL,
2179+
2180+
// AMD GCN attributes.
2181+
GCC_JIT_FN_ATTRIBUTE_GCN_AMDGPU_HSA_KERNEL,
2182+
2183+
// MSP430 attributes.
2184+
GCC_JIT_FN_ATTRIBUTE_MSP430_INTERRUPT,
2185+
2186+
// Nvidia PTX attributes.
2187+
GCC_JIT_FN_ATTRIBUTE_NVPTX_KERNEL,
2188+
2189+
// RISC-V attributes.
2190+
GCC_JIT_FN_ATTRIBUTE_RISCV_INTERRUPT,
2191+
2192+
// x86 attributes.
2193+
GCC_JIT_FN_ATTRIBUTE_X86_FAST_CALL,
2194+
GCC_JIT_FN_ATTRIBUTE_X86_INTERRUPT,
2195+
GCC_JIT_FN_ATTRIBUTE_X86_MS_ABI,
2196+
GCC_JIT_FN_ATTRIBUTE_X86_STDCALL,
2197+
GCC_JIT_FN_ATTRIBUTE_X86_SYSV_ABI,
2198+
GCC_JIT_FN_ATTRIBUTE_X86_THIS_CALL,
2199+
21722200
/* Maximum value of this enum, should always be last. */
21732201
GCC_JIT_FN_ATTRIBUTE_MAX,
21742202
};

0 commit comments

Comments
 (0)