version 1.1.1.3, 2018/04/14 15:36:41 |
version 1.1.1.4, 2020/04/03 17:41:29 |
|
|
/* tc-i386.h -- Header file for tc-i386.c |
/* tc-i386.h -- Header file for tc-i386.c |
Copyright (C) 1989-2016 Free Software Foundation, Inc. |
Copyright (C) 1989-2018 Free Software Foundation, Inc. |
|
|
This file is part of GAS, the GNU Assembler. |
This file is part of GAS, the GNU Assembler. |
|
|
Line 171 extern int tc_i386_fix_adjustable (struc |
|
Line 171 extern int tc_i386_fix_adjustable (struc |
|
they are not pcrel. .*/ |
they are not pcrel. .*/ |
|
|
#define TC_FORCE_RELOCATION_LOCAL(FIX) \ |
#define TC_FORCE_RELOCATION_LOCAL(FIX) \ |
(!(FIX)->fx_pcrel \ |
(GENERIC_FORCE_RELOCATION_LOCAL (FIX) \ |
|| (FIX)->fx_r_type == BFD_RELOC_386_PLT32 \ |
|| (FIX)->fx_r_type == BFD_RELOC_386_PLT32 \ |
|| (FIX)->fx_r_type == BFD_RELOC_386_GOTPC \ |
|| (FIX)->fx_r_type == BFD_RELOC_386_GOTPC \ |
|| (FIX)->fx_r_type == BFD_RELOC_X86_64_GOTPCRELX \ |
|| (FIX)->fx_r_type == BFD_RELOC_X86_64_GOTPCRELX \ |
|| (FIX)->fx_r_type == BFD_RELOC_X86_64_REX_GOTPCRELX \ |
|| (FIX)->fx_r_type == BFD_RELOC_X86_64_REX_GOTPCRELX) |
|| TC_FORCE_RELOCATION (FIX)) |
|
|
|
extern int i386_parse_name (char *, expressionS *, char *); |
extern int i386_parse_name (char *, expressionS *, char *); |
#define md_parse_name(s, e, m, c) i386_parse_name (s, e, c) |
#define md_parse_name(s, e, m, c) i386_parse_name (s, e, c) |
|
|
goto around; \ |
goto around; \ |
} |
} |
|
|
#define MAX_MEM_FOR_RS_ALIGN_CODE 31 |
#define MAX_MEM_FOR_RS_ALIGN_CODE 4095 |
|
|
extern void i386_align_code (fragS *, int); |
|
|
|
#define HANDLE_ALIGN(fragP) \ |
|
if (fragP->fr_type == rs_align_code) \ |
|
i386_align_code (fragP, (fragP->fr_next->fr_address \ |
|
- fragP->fr_address \ |
|
- fragP->fr_fix)); |
|
|
|
void i386_print_statistics (FILE *); |
void i386_print_statistics (FILE *); |
#define tc_print_statistics i386_print_statistics |
#define tc_print_statistics i386_print_statistics |
Line 275 struct i386_tc_frag_data |
|
Line 266 struct i386_tc_frag_data |
|
} \ |
} \ |
while (0) |
while (0) |
|
|
#ifdef SCO_ELF |
|
#define tc_init_after_args() sco_id () |
|
extern void sco_id (void); |
|
#endif |
|
|
|
#define WORKING_DOT_WORD 1 |
#define WORKING_DOT_WORD 1 |
|
|
|
/* How to generate NOPs for .nop direct directive. */ |
|
extern void i386_generate_nops (fragS *, char *, offsetT, int); |
|
#define md_generate_nops(frag, where, amount, control) \ |
|
i386_generate_nops ((frag), (where), (amount), (control)) |
|
|
|
#define HANDLE_ALIGN(fragP) \ |
|
if (fragP->fr_type == rs_align_code) \ |
|
{ \ |
|
offsetT __count = (fragP->fr_next->fr_address \ |
|
- fragP->fr_address \ |
|
- fragP->fr_fix); \ |
|
if (__count > 0 && __count <= MAX_MEM_FOR_RS_ALIGN_CODE) \ |
|
md_generate_nops (fragP, fragP->fr_literal + fragP->fr_fix, \ |
|
__count, 0); \ |
|
} |
|
|
/* We want .cfi_* pseudo-ops for generating unwind info. */ |
/* We want .cfi_* pseudo-ops for generating unwind info. */ |
#define TARGET_USE_CFIPOP 1 |
#define TARGET_USE_CFIPOP 1 |
|
|