rs6000: Darwin builtin support

2021-03-04  Bill Schmidt  <wschmidt@linux.ibm.com>

gcc/
	* config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Use the new
	decl when new_builtins_are_live.
	* config/rs6000/rs6000-builtin-new.def (__builtin_cfstring): New
	built-in.
This commit is contained in:
Bill Schmidt 2021-03-04 19:54:00 -06:00
parent a6fe949d57
commit b5bc39317b
2 changed files with 12 additions and 2 deletions

View file

@ -504,8 +504,12 @@
#define SUBTARGET_INIT_BUILTINS \
do { \
darwin_patch_builtins (); \
rs6000_builtin_decls[(unsigned) (RS6000_BUILTIN_CFSTRING)] \
= darwin_init_cfstring_builtins ((unsigned) (RS6000_BUILTIN_CFSTRING)); \
if (new_builtins_are_live) \
rs6000_builtin_decls_x[(unsigned) (RS6000_BIF_CFSTRING)] \
= darwin_init_cfstring_builtins ((unsigned) (RS6000_BIF_CFSTRING)); \
else \
rs6000_builtin_decls[(unsigned) (RS6000_BUILTIN_CFSTRING)] \
= darwin_init_cfstring_builtins ((unsigned) (RS6000_BUILTIN_CFSTRING)); \
} while(0)
/* So far, there is no rs6000_fold_builtin, if one is introduced, then

View file

@ -187,6 +187,12 @@
; Builtins that have been around since time immemorial or are just
; considered available everywhere.
[always]
; __builtin_cfstring is for Darwin, which will replace the decl we
; create here with another one during subtarget processing. We just
; need to ensure it has a slot in the builtin enumeration.
void __builtin_cfstring ();
CFSTRING nothing {}
void __builtin_cpu_init ();
CPU_INIT nothing {cpu}