]>
Commit | Line | Data |
---|---|---|
b0106b24 | 1 | /* Definitions of target machine for GNU compiler, for the pdp-11 |
7adcbafe | 2 | Copyright (C) 2000-2022 Free Software Foundation, Inc. |
b0106b24 KG |
3 | Contributed by Michael K. Gschwind (mike@vlsivie.tuwien.ac.at). |
4 | ||
7ec022b2 | 5 | This file is part of GCC. |
b0106b24 | 6 | |
7ec022b2 | 7 | GCC is free software; you can redistribute it and/or modify |
b0106b24 | 8 | it under the terms of the GNU General Public License as published by |
2f83c7d6 | 9 | the Free Software Foundation; either version 3, or (at your option) |
b0106b24 KG |
10 | any later version. |
11 | ||
7ec022b2 | 12 | GCC is distributed in the hope that it will be useful, |
b0106b24 KG |
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 | GNU General Public License for more details. | |
16 | ||
17 | You should have received a copy of the GNU General Public License | |
2f83c7d6 NC |
18 | along with GCC; see the file COPYING3. If not see |
19 | <http://www.gnu.org/licenses/>. */ | |
b0106b24 KG |
20 | |
21 | /* declarations */ | |
22 | #ifdef RTX_CODE | |
ef4bddc2 | 23 | extern int simple_memory_operand (rtx, machine_mode); |
b4324a14 | 24 | extern int no_side_effect_operand (rtx, machine_mode); |
e621b588 | 25 | extern int legitimate_const_double_p (rtx); |
f12b3fc8 SB |
26 | extern void notice_update_cc_on_set (rtx, rtx); |
27 | extern void output_addr_const_pdp11 (FILE *, rtx); | |
30442c59 | 28 | extern const char *output_move_multiple (rtx *); |
b4324a14 | 29 | extern const char *output_jump (rtx *, int, int); |
f12b3fc8 | 30 | extern void print_operand_address (FILE *, rtx); |
30442c59 PK |
31 | typedef enum { no_action, dec_before, inc_after } pdp11_action; |
32 | typedef enum { little, either, big } pdp11_partorder; | |
442fcea7 | 33 | extern bool pdp11_expand_operands (rtx *, rtx [][2], int, int, |
30442c59 | 34 | pdp11_action *, pdp11_partorder); |
58dd8e86 PK |
35 | extern int pdp11_initial_elimination_offset (int, int); |
36 | extern enum reg_class pdp11_regno_reg_class (int); | |
b4324a14 PK |
37 | extern bool pdp11_fixed_cc_regs (unsigned int *, unsigned int *); |
38 | extern machine_mode pdp11_cc_mode (enum rtx_code, rtx, rtx); | |
39 | extern bool pdp11_expand_shift (rtx *, rtx (*) (rtx, rtx, rtx), | |
40 | rtx (*) (rtx, rtx, rtx)); | |
41 | extern const char * pdp11_assemble_shift (rtx *, machine_mode, int); | |
9cd1665b | 42 | extern int pdp11_shift_length (rtx *, machine_mode, int, bool); |
442fcea7 PK |
43 | extern int pdp11_cmp_length (rtx *, int); |
44 | extern bool pushpop_regeq (rtx, int); | |
b4324a14 | 45 | extern bool pdp11_small_shift (int); |
a01c666c | 46 | |
b0106b24 KG |
47 | #endif /* RTX_CODE */ |
48 | ||
f12b3fc8 | 49 | extern void output_ascii (FILE *, const char *, int); |
dad6bca9 | 50 | extern void pdp11_asm_output_var (FILE *, const char *, int, int, bool); |
8662b2ba RH |
51 | extern void pdp11_expand_prologue (void); |
52 | extern void pdp11_expand_epilogue (void); | |
7b4df2bf | 53 | extern poly_int64 pdp11_push_rounding (poly_int64); |
4aef57c9 PK |
54 | extern void pdp11_gen_int_label (char *, const char *, int); |
55 | extern void pdp11_output_labelref (FILE *, const char *); | |
56 | extern void pdp11_output_def (FILE *, const char *, const char *); | |
57 | extern void pdp11_output_addr_vec_elt (FILE *, int); |