Skip to content

Commit d7a5243

Browse files
committed
libgccjit: Add the function attributes for setting the ABI
1 parent e8ce1fd commit d7a5243

File tree

3 files changed

+78
-0
lines changed

3 files changed

+78
-0
lines changed

gcc/jit/jit-playback.cc

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -583,6 +583,38 @@ 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_CMSE_NONSECURE_CALL:
587+
return "cmse_nonsecure_call";
588+
case GCC_JIT_FN_ATTRIBUTE_ARM_CMSE_NONSECURE_ENTRY:
589+
return "cmse_nonsecure_entry";
590+
case GCC_JIT_FN_ATTRIBUTE_ARM_PCS:
591+
return "pcs";
592+
case GCC_JIT_FN_ATTRIBUTE_AVR_INTERRUPT:
593+
return "interrupt";
594+
case GCC_JIT_FN_ATTRIBUTE_AVR_NOBLOCK:
595+
return "noblock";
596+
case GCC_JIT_FN_ATTRIBUTE_AVR_SIGNAL:
597+
return " signal";
598+
case GCC_JIT_FN_ATTRIBUTE_GCN_AMDGPU_HSA_KERNEL:
599+
return "amdgpu_hsa_kernel";
600+
case GCC_JIT_FN_ATTRIBUTE_MSP430_INTERRUPT:
601+
return "interrupt";
602+
case GCC_JIT_FN_ATTRIBUTE_NVPTX_KERNEL:
603+
return "kernel";
604+
case GCC_JIT_FN_ATTRIBUTE_RISCV_INTERRUPT:
605+
return "interrupt";
606+
case GCC_JIT_FN_ATTRIBUTE_X86_FAST_CALL:
607+
return "fastcall";
608+
case GCC_JIT_FN_ATTRIBUTE_X86_INTERRUPT:
609+
return "interrupt";
610+
case GCC_JIT_FN_ATTRIBUTE_X86_MS_ABI:
611+
return "ms_abi";
612+
case GCC_JIT_FN_ATTRIBUTE_X86_STDCALL:
613+
return "stdcall";
614+
case GCC_JIT_FN_ATTRIBUTE_X86_SYSV_ABI:
615+
return "sysv_abi";
616+
case GCC_JIT_FN_ATTRIBUTE_X86_THIS_CALL:
617+
return "thiscall";
586618
case GCC_JIT_FN_ATTRIBUTE_MAX:
587619
return NULL;
588620
}

gcc/jit/jit-recording.cc

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4954,6 +4954,22 @@ 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_CMSE_NONSECURE_CALL",
4958+
"GCC_JIT_FN_ATTRIBUTE_ARM_CMSE_NONSECURE_ENTRY",
4959+
"GCC_JIT_FN_ATTRIBUTE_ARM_PCS",
4960+
"GCC_JIT_FN_ATTRIBUTE_AVR_INTERRUPT",
4961+
"GCC_JIT_FN_ATTRIBUTE_AVR_NOBLOCK",
4962+
"GCC_JIT_FN_ATTRIBUTE_AVR_SIGNAL",
4963+
"GCC_JIT_FN_ATTRIBUTE_GCN_AMDGPU_HSA_KERNEL",
4964+
"GCC_JIT_FN_ATTRIBUTE_MSP430_INTERRUPT",
4965+
"GCC_JIT_FN_ATTRIBUTE_NVPTX_KERNEL",
4966+
"GCC_JIT_FN_ATTRIBUTE_RISCV_INTERRUPT",
4967+
"GCC_JIT_FN_ATTRIBUTE_X86_FAST_CALL",
4968+
"GCC_JIT_FN_ATTRIBUTE_X86_INTERRUPT",
4969+
"GCC_JIT_FN_ATTRIBUTE_X86_MS_ABI",
4970+
"GCC_JIT_FN_ATTRIBUTE_X86_STDCALL",
4971+
"GCC_JIT_FN_ATTRIBUTE_X86_SYSV_ABI",
4972+
"GCC_JIT_FN_ATTRIBUTE_X86_THIS_CALL",
49574973
};
49584974

49594975
std::string

gcc/jit/libgccjit.h

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2169,6 +2169,36 @@ 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_CMSE_NONSECURE_CALL,
2174+
GCC_JIT_FN_ATTRIBUTE_ARM_CMSE_NONSECURE_ENTRY,
2175+
GCC_JIT_FN_ATTRIBUTE_ARM_PCS,
2176+
2177+
// AVR attributes.
2178+
GCC_JIT_FN_ATTRIBUTE_AVR_INTERRUPT,
2179+
GCC_JIT_FN_ATTRIBUTE_AVR_NOBLOCK,
2180+
GCC_JIT_FN_ATTRIBUTE_AVR_SIGNAL,
2181+
2182+
// AMD GCN attributes.
2183+
GCC_JIT_FN_ATTRIBUTE_GCN_AMDGPU_HSA_KERNEL,
2184+
2185+
// MSP430 attributes.
2186+
GCC_JIT_FN_ATTRIBUTE_MSP430_INTERRUPT,
2187+
2188+
// Nvidia PTX attributes.
2189+
GCC_JIT_FN_ATTRIBUTE_NVPTX_KERNEL,
2190+
2191+
// RISC-V attributes.
2192+
GCC_JIT_FN_ATTRIBUTE_RISCV_INTERRUPT,
2193+
2194+
// x86 attributes.
2195+
GCC_JIT_FN_ATTRIBUTE_X86_FAST_CALL,
2196+
GCC_JIT_FN_ATTRIBUTE_X86_INTERRUPT,
2197+
GCC_JIT_FN_ATTRIBUTE_X86_MS_ABI,
2198+
GCC_JIT_FN_ATTRIBUTE_X86_STDCALL,
2199+
GCC_JIT_FN_ATTRIBUTE_X86_SYSV_ABI,
2200+
GCC_JIT_FN_ATTRIBUTE_X86_THIS_CALL,
2201+
21722202
/* Maximum value of this enum, should always be last. */
21732203
GCC_JIT_FN_ATTRIBUTE_MAX,
21742204
};

0 commit comments

Comments
 (0)