-tree (*lang_type_promotes_to) PROTO((tree));
-
-static int get_pointer_alignment PROTO((tree, unsigned));
-static tree c_strlen PROTO((tree));
-static rtx get_memory_rtx PROTO((tree));
-static int apply_args_size PROTO((void));
-static int apply_result_size PROTO((void));
-static rtx result_vector PROTO((int, rtx));
-static rtx expand_builtin_apply_args PROTO((void));
-static rtx expand_builtin_apply_args_1 PROTO((void));
-static rtx expand_builtin_apply PROTO((rtx, rtx, rtx));
-static void expand_builtin_return PROTO((rtx));
-static rtx expand_builtin_classify_type PROTO((tree));
-static rtx expand_builtin_mathfn PROTO((tree, rtx, rtx));
-static rtx expand_builtin_constant_p PROTO((tree));
-static rtx expand_builtin_args_info PROTO((tree));
-static rtx expand_builtin_next_arg PROTO((tree));
-static rtx expand_builtin_va_start PROTO((int, tree));
-static rtx expand_builtin_va_end PROTO((tree));
-static rtx expand_builtin_va_copy PROTO((tree));
+#ifndef PAD_VARARGS_DOWN
+#define PAD_VARARGS_DOWN BYTES_BIG_ENDIAN
+#endif
+
+/* Define the names of the builtin function types and codes. */
+const char *const built_in_class_names[4]
+ = {"NOT_BUILT_IN", "BUILT_IN_FRONTEND", "BUILT_IN_MD", "BUILT_IN_NORMAL"};
+
+#define DEF_BUILTIN(x) STRINGIFY(x),
+const char *const built_in_names[(int) END_BUILTINS] =
+{
+#include "builtins.def"
+};
+#undef DEF_BUILTIN
+
+tree (*lang_type_promotes_to) PARAMS ((tree));
+
+static int get_pointer_alignment PARAMS ((tree, unsigned));
+static tree c_strlen PARAMS ((tree));
+static rtx get_memory_rtx PARAMS ((tree));
+static int apply_args_size PARAMS ((void));
+static int apply_result_size PARAMS ((void));
+#if defined (HAVE_untyped_call) || defined (HAVE_untyped_return)
+static rtx result_vector PARAMS ((int, rtx));
+#endif
+static rtx expand_builtin_apply_args PARAMS ((void));
+static rtx expand_builtin_apply_args_1 PARAMS ((void));
+static rtx expand_builtin_apply PARAMS ((rtx, rtx, rtx));
+static void expand_builtin_return PARAMS ((rtx));
+static rtx expand_builtin_classify_type PARAMS ((tree));
+static rtx expand_builtin_mathfn PARAMS ((tree, rtx, rtx));
+static rtx expand_builtin_constant_p PARAMS ((tree));
+static rtx expand_builtin_args_info PARAMS ((tree));
+static rtx expand_builtin_next_arg PARAMS ((tree));
+static rtx expand_builtin_va_start PARAMS ((int, tree));
+static rtx expand_builtin_va_end PARAMS ((tree));
+static rtx expand_builtin_va_copy PARAMS ((tree));