|
93 | 93 |
|
94 | 94 | #else /* !__ASSEMBLER__ */ |
95 | 95 |
|
| 96 | +#ifndef C_LABEL |
| 97 | +/* Define a macro we can use to construct the asm name for a C symbol. */ |
| 98 | +#define C_LABEL(name) C_SYMBOL_NAME(name): |
| 99 | +#endif |
| 100 | + |
| 101 | +#define ENTRY(name) \ |
| 102 | + .globl C_SYMBOL_NAME(name); \ |
| 103 | + C_LABEL(name) |
| 104 | + |
| 105 | +/* Mark the end of function named SYM. This is used on some platforms |
| 106 | + to generate correct debugging information. */ |
| 107 | +#ifndef END |
| 108 | +#define END(sym) |
| 109 | +#endif |
| 110 | + |
| 111 | +#undef PSEUDO_END |
| 112 | +#define PSEUDO_END(name) \ |
| 113 | + END (name) |
| 114 | + |
96 | 115 | # ifdef HAVE_WEAK_SYMBOLS |
97 | 116 | # define weak_alias(original, alias) \ |
98 | 117 | .weak C_SYMBOL_NAME (alias); \ |
|
111 | 130 |
|
112 | 131 | # endif /* !HAVE_WEAK_SYMBOLS */ |
113 | 132 |
|
| 133 | +/* Makros to generate eh_frame unwind information. */ |
| 134 | +#ifdef __ELF__ |
| 135 | +# define cfi_startproc .cfi_startproc |
| 136 | +# define cfi_endproc .cfi_endproc |
| 137 | +# define cfi_def_cfa(reg, off) .cfi_def_cfa reg, off |
| 138 | +# define cfi_def_cfa_register(reg) .cfi_def_cfa_register reg |
| 139 | +# define cfi_def_cfa_offset(off) .cfi_def_cfa_offset off |
| 140 | +# define cfi_adjust_cfa_offset(off) .cfi_adjust_cfa_offset off |
| 141 | +# define cfi_offset(reg, off) .cfi_offset reg, off |
| 142 | +# define cfi_rel_offset(reg, off) .cfi_rel_offset reg, off |
| 143 | +# define cfi_register(r1, r2) .cfi_register r1, r2 |
| 144 | +# define cfi_return_column(reg) .cfi_return_column reg |
| 145 | +# define cfi_restore(reg) .cfi_restore reg |
| 146 | +# define cfi_same_value(reg) .cfi_same_value reg |
| 147 | +# define cfi_undefined(reg) .cfi_undefined reg |
| 148 | +# define cfi_remember_state .cfi_remember_state |
| 149 | +# define cfi_restore_state .cfi_restore_state |
| 150 | +# define cfi_window_save .cfi_window_save |
| 151 | +# define cfi_personality(enc, exp) .cfi_personality enc, exp |
| 152 | +# define cfi_lsda(enc, exp) .cfi_lsda enc, exp |
| 153 | +#else |
| 154 | +# define cfi_startproc |
| 155 | +# define cfi_endproc |
| 156 | +# define cfi_def_cfa(reg, off) |
| 157 | +# define cfi_def_cfa_register(reg) |
| 158 | +# define cfi_def_cfa_offset(off) |
| 159 | +# define cfi_adjust_cfa_offset(off) |
| 160 | +# define cfi_offset(reg, off) |
| 161 | +# define cfi_rel_offset(reg, off) |
| 162 | +# define cfi_register(r1, r2) |
| 163 | +# define cfi_return_column(reg) |
| 164 | +# define cfi_restore(reg) |
| 165 | +# define cfi_same_value(reg) |
| 166 | +# define cfi_undefined(reg) |
| 167 | +# define cfi_remember_state |
| 168 | +# define cfi_restore_state |
| 169 | +# define cfi_window_save |
| 170 | +# define cfi_personality(enc, exp) |
| 171 | +# define cfi_lsda(enc, exp) |
| 172 | +#endif |
| 173 | + |
114 | 174 | #endif /* !__ASSEMBLER__ */ |
115 | 175 |
|
116 | 176 | /* Currently disabled since not supported by gcc for MiNT. FIXME!!! */ |
|
0 commit comments