From 3b9c3a165502b5f44f2ea84940f1347101b32a05 Mon Sep 17 00:00:00 2001 From: rsandifo Date: Mon, 12 Jul 2010 19:03:35 +0000 Subject: gcc/ * Makefile.in (target-globals.o): Depend on builtins.h. * builtins.h: New file. * builtins.c: Include builtins.h. (default_target_builtins): New variable. (this_target_builtins): New conditional variable. (apply_args_mode, apply_result_mode): Redefine as macros. * target-globals.h (this_target_builtins): Declare. (target_globals): Add a builtins field. (restore_target_globals): Copy the builtins field to this_target_builtins. * target-globals.c: Include builtins.h. (default_target_globals): Initialize the builtins field. (save_target_globals): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162105 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/builtins.h | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 gcc/builtins.h (limited to 'gcc/builtins.h') diff --git a/gcc/builtins.h b/gcc/builtins.h new file mode 100644 index 00000000000..a7d14581e99 --- /dev/null +++ b/gcc/builtins.h @@ -0,0 +1,49 @@ +/* Expand builtin functions. + Copyright (C) 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, + 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 + Free Software Foundation, Inc. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 3, or (at your option) any later +version. + +GCC is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with GCC; see the file COPYING3. If not see +. */ + +#ifndef GCC_BUILTINS_H +#define GCC_BUILTINS_H + +/* Target-dependent globals. */ +struct target_builtins { + /* For each register that may be used for calling a function, this + gives a mode used to copy the register's value. VOIDmode indicates + the register is not used for calling a function. If the machine + has register windows, this gives only the outbound registers. + INCOMING_REGNO gives the corresponding inbound register. */ + enum machine_mode x_apply_args_mode[FIRST_PSEUDO_REGISTER]; + + /* For each register that may be used for returning values, this gives + a mode used to copy the register's value. VOIDmode indicates the + register is not used for returning values. If the machine has + register windows, this gives only the outbound registers. + INCOMING_REGNO gives the corresponding inbound register. */ + enum machine_mode x_apply_result_mode[FIRST_PSEUDO_REGISTER]; +}; + +extern GTY(()) struct target_builtins default_target_builtins; +#if SWITCHABLE_TARGET +extern struct target_builtins *this_target_builtins; +#else +#define this_target_builtins (&default_target_builtins) +#endif + +#endif -- cgit v1.2.1