]>
Commit | Line | Data |
---|---|---|
d9063947 | 1 | /* Definitions of target machine for Intel MCU psABI. |
83ffe9cd | 2 | Copyright (C) 2015-2023 Free Software Foundation, Inc. |
d9063947 L |
3 | |
4 | This file is part of GCC. | |
5 | ||
6 | GCC is free software; you can redistribute it and/or modify | |
7 | it under the terms of the GNU General Public License as published by | |
8 | the Free Software Foundation; either version 3, or (at your option) | |
9 | any later version. | |
10 | ||
11 | GCC is distributed in the hope that it will be useful, | |
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | GNU General Public License for more details. | |
15 | ||
16 | Under Section 7 of GPL version 3, you are granted additional | |
17 | permissions described in the GCC Runtime Library Exception, version | |
18 | 3.1, as published by the Free Software Foundation. | |
19 | ||
20 | You should have received a copy of the GNU General Public License and | |
21 | a copy of the GCC Runtime Library Exception along with this program; | |
22 | see the files COPYING3 and COPYING.RUNTIME respectively. If not, see | |
23 | <http://www.gnu.org/licenses/>. */ | |
24 | ||
25 | /* Intel MCU has no 80387. Default to Intel MCU psABI. */ | |
26 | #undef TARGET_SUBTARGET_DEFAULT | |
27 | #define TARGET_SUBTARGET_DEFAULT MASK_IAMCU | |
28 | ||
fd180988 L |
29 | /* Output at beginning of assembler file. */ |
30 | /* The .file command should always begin the output. */ | |
31 | #define TARGET_ASM_FILE_START_FILE_DIRECTIVE true | |
32 | ||
33 | #undef ASM_COMMENT_START | |
34 | #define ASM_COMMENT_START "#" | |
35 | ||
ca60bd93 ML |
36 | #undef DEBUGGER_REGNO |
37 | #define DEBUGGER_REGNO(n) \ | |
38 | (TARGET_64BIT ? debugger64_register_map[n] : svr4_debugger_register_map[n]) | |
fd180988 | 39 | |
d9063947 L |
40 | #undef ASM_SPEC |
41 | #define ASM_SPEC "--32 -march=iamcu" | |
42 | ||
43 | #undef LINK_SPEC | |
44 | #define LINK_SPEC "-m elf_iamcu" | |
45 | ||
46 | #undef ENDFILE_SPEC | |
47 | #define ENDFILE_SPEC "" | |
48 | ||
49 | #undef STARTFILE_SPEC | |
50 | #define STARTFILE_SPEC "crt0.o%s" | |
51 | ||
52 | #undef LIB_SPEC | |
53 | #define LIB_SPEC "--start-group -lc -lgloss --end-group" | |
d48ca705 L |
54 | |
55 | /* A C statement (sans semicolon) to output to the stdio stream | |
56 | FILE the assembler definition of uninitialized global DECL named | |
57 | NAME whose size is SIZE bytes and alignment is ALIGN bytes. | |
58 | Try to use asm_output_aligned_bss to implement this macro. */ | |
59 | ||
60 | #define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \ | |
61 | asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN) | |
62 | ||
63 | /* A C statement to output to the stdio stream FILE an assembler | |
64 | command to advance the location counter to a multiple of 1<<LOG | |
dd047c67 | 65 | bytes if it is within MAX_SKIP bytes. */ |
d48ca705 | 66 | |
dd047c67 | 67 | #define SUBALIGN_LOG 3 |
d48ca705 | 68 | |
d48ca705 L |
69 | /* Handle special EH pointer encodings. Absolute, pc-relative, and |
70 | indirect are handled automatically. */ | |
71 | #define ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX(FILE, ENCODING, SIZE, ADDR, DONE) \ | |
72 | do { \ | |
73 | if ((SIZE) == 4 && ((ENCODING) & 0x70) == DW_EH_PE_datarel) \ | |
74 | { \ | |
75 | fputs (ASM_LONG, FILE); \ | |
76 | assemble_name (FILE, XSTR (ADDR, 0)); \ | |
77 | fputs (((ENCODING) & DW_EH_PE_indirect ? "@GOT" : "@GOTOFF"), FILE); \ | |
78 | goto DONE; \ | |
79 | } \ | |
80 | } while (0) | |
5cc2af59 L |
81 | |
82 | #undef SIZE_TYPE | |
83 | #define SIZE_TYPE "unsigned int" | |
84 | ||
85 | #undef PTRDIFF_TYPE | |
86 | #define PTRDIFF_TYPE "int" | |
87 | ||
88 | #undef WCHAR_TYPE | |
89 | #define WCHAR_TYPE "long int" | |
90 | ||
91 | #undef WCHAR_TYPE_SIZE | |
92 | #define WCHAR_TYPE_SIZE BITS_PER_WORD | |
93 | ||
94 | /* Use int, instead of long int, for int32_t and uint32_t. */ | |
95 | #undef STDINT_LONG32 | |
96 | #define STDINT_LONG32 0 |