comparison gcc/config/epiphany/epiphany.c @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children 1830386684a0
comparison
equal deleted inserted replaced
111:04ced10e8804 131:84e7813d76e9
1 /* Subroutines used for code generation on the EPIPHANY cpu. 1 /* Subroutines used for code generation on the EPIPHANY cpu.
2 Copyright (C) 1994-2017 Free Software Foundation, Inc. 2 Copyright (C) 1994-2018 Free Software Foundation, Inc.
3 Contributed by Embecosm on behalf of Adapteva, Inc. 3 Contributed by Embecosm on behalf of Adapteva, Inc.
4 4
5 This file is part of GCC. 5 This file is part of GCC.
6 6
7 GCC is free software; you can redistribute it and/or modify 7 GCC is free software; you can redistribute it and/or modify
15 GNU General Public License for more details. 15 GNU General Public License for more details.
16 16
17 You should have received a copy of the GNU General Public License 17 You should have received a copy of the GNU General Public License
18 along with GCC; see the file COPYING3. If not see 18 along with GCC; see the file COPYING3. If not see
19 <http://www.gnu.org/licenses/>. */ 19 <http://www.gnu.org/licenses/>. */
20
21 #define IN_TARGET_CODE 1
20 22
21 #include "config.h" 23 #include "config.h"
22 #include "system.h" 24 #include "system.h"
23 #include "coretypes.h" 25 #include "coretypes.h"
24 #include "backend.h" 26 #include "backend.h"
458 They unmask them while calling an interruptible 460 They unmask them while calling an interruptible
459 function, though. */ 461 function, though. */
460 462
461 static const struct attribute_spec epiphany_attribute_table[] = 463 static const struct attribute_spec epiphany_attribute_table[] =
462 { 464 {
463 /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler } */ 465 /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
464 { "interrupt", 0, 9, true, false, false, epiphany_handle_interrupt_attribute, true }, 466 affects_type_identity, handler, exclude } */
465 { "forwarder_section", 1, 1, true, false, false, epiphany_handle_forwarder_attribute, false }, 467 { "interrupt", 0, 9, true, false, false, true,
466 { "long_call", 0, 0, false, true, true, NULL, false }, 468 epiphany_handle_interrupt_attribute, NULL },
467 { "short_call", 0, 0, false, true, true, NULL, false }, 469 { "forwarder_section", 1, 1, true, false, false, false,
468 { "disinterrupt", 0, 0, false, true, true, NULL, true }, 470 epiphany_handle_forwarder_attribute, NULL },
469 { NULL, 0, 0, false, false, false, NULL, false } 471 { "long_call", 0, 0, false, true, true, false, NULL, NULL },
472 { "short_call", 0, 0, false, true, true, false, NULL, NULL },
473 { "disinterrupt", 0, 0, false, true, true, true, NULL, NULL },
474 { NULL, 0, 0, false, false, false, false, NULL, NULL }
470 }; 475 };
471 476
472 /* Handle an "interrupt" attribute; arguments as in 477 /* Handle an "interrupt" attribute; arguments as in
473 struct attribute_spec.handler. */ 478 struct attribute_spec.handler. */
474 static tree 479 static tree