projects
/
deliverable
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
commit ChangeLog for previous commit
[deliverable/binutils-gdb.git]
/
gas
/
config
/
tc-i386.h
diff --git
a/gas/config/tc-i386.h
b/gas/config/tc-i386.h
index f7f829c48d6bb4644f70351da0cf91cb02cc97df..7a987d8f76d1597464191e2f4b716e690a69089e 100644
(file)
--- a/
gas/config/tc-i386.h
+++ b/
gas/config/tc-i386.h
@@
-1,7
+1,5
@@
/* tc-i386.h -- Header file for tc-i386.c
/* tc-i386.h -- Header file for tc-i386.c
- Copyright 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
- 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
- Free Software Foundation, Inc.
+ Copyright (C) 1989-2016 Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler.
This file is part of GAS, the GNU Assembler.
@@
-29,8
+27,9
@@
struct fix;
#define TARGET_BYTES_BIG_ENDIAN 0
#define TARGET_BYTES_BIG_ENDIAN 0
-#define TARGET_ARCH
bfd_arch_i386
+#define TARGET_ARCH
(i386_arch ())
#define TARGET_MACH (i386_mach ())
#define TARGET_MACH (i386_mach ())
+extern enum bfd_architecture i386_arch (void);
extern unsigned long i386_mach (void);
#ifdef TE_FreeBSD
extern unsigned long i386_mach (void);
#ifdef TE_FreeBSD
@@
-60,6
+59,15
@@
extern unsigned long i386_mach (void);
#define ELF_TARGET_FORMAT64 "elf64-x86-64-freebsd"
#elif defined (TE_VXWORKS)
#define ELF_TARGET_FORMAT "elf32-i386-vxworks"
#define ELF_TARGET_FORMAT64 "elf64-x86-64-freebsd"
#elif defined (TE_VXWORKS)
#define ELF_TARGET_FORMAT "elf32-i386-vxworks"
+#elif defined (TE_NACL)
+#define ELF_TARGET_FORMAT "elf32-i386-nacl"
+#define ELF_TARGET_FORMAT32 "elf32-x86-64-nacl"
+#define ELF_TARGET_FORMAT64 "elf64-x86-64-nacl"
+#endif
+
+#ifdef TE_SOLARIS
+#define ELF_TARGET_FORMAT "elf32-i386-sol2"
+#define ELF_TARGET_FORMAT64 "elf64-x86-64-sol2"
#endif
#ifndef ELF_TARGET_FORMAT
#endif
#ifndef ELF_TARGET_FORMAT
@@
-70,26
+78,42
@@
extern unsigned long i386_mach (void);
#define ELF_TARGET_FORMAT64 "elf64-x86-64"
#endif
#define ELF_TARGET_FORMAT64 "elf64-x86-64"
#endif
+#ifndef ELF_TARGET_FORMAT32
+#define ELF_TARGET_FORMAT32 "elf32-x86-64"
+#endif
+
+#ifndef ELF_TARGET_L1OM_FORMAT
+#define ELF_TARGET_L1OM_FORMAT "elf64-l1om"
+#endif
+
+#ifndef ELF_TARGET_K1OM_FORMAT
+#define ELF_TARGET_K1OM_FORMAT "elf64-k1om"
+#endif
+
+#ifndef ELF_TARGET_IAMCU_FORMAT
+#define ELF_TARGET_IAMCU_FORMAT "elf32-iamcu"
+#endif
+
#if ((defined (OBJ_MAYBE_COFF) && defined (OBJ_MAYBE_AOUT)) \
#if ((defined (OBJ_MAYBE_COFF) && defined (OBJ_MAYBE_AOUT)) \
- || defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF))
+ || defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF) \
+ || defined (TE_PE) || defined (TE_PEP) || defined (OBJ_MACH_O))
extern const char *i386_target_format (void);
#define TARGET_FORMAT i386_target_format ()
#else
extern const char *i386_target_format (void);
#define TARGET_FORMAT i386_target_format ()
#else
-#ifdef
OBJ_ELF
-#define TARGET_FORMAT
ELF_TARGET_FORMAT
+#ifdef
TE_GO32
+#define TARGET_FORMAT
"coff-go32"
#endif
#ifdef OBJ_AOUT
#define TARGET_FORMAT AOUT_TARGET_FORMAT
#endif
#endif
#endif
#ifdef OBJ_AOUT
#define TARGET_FORMAT AOUT_TARGET_FORMAT
#endif
#endif
-#if (defined (OBJ_MAYBE_ELF) || defined (OBJ_ELF))
-#define md_end i386_elf_emit_arch_note
-extern void i386_elf_emit_arch_note (void);
-#endif
-
#define SUB_SEGMENT_ALIGN(SEG, FRCHAIN) 0
#define SUB_SEGMENT_ALIGN(SEG, FRCHAIN) 0
+/* '$' may be used as immediate prefix. */
+#undef LOCAL_LABELS_DOLLAR
+#define LOCAL_LABELS_DOLLAR 0
+#undef LOCAL_LABELS_FB
#define LOCAL_LABELS_FB 1
extern const char extra_symbol_chars[];
#define LOCAL_LABELS_FB 1
extern const char extra_symbol_chars[];
@@
-106,12
+130,16
@@
extern const char *i386_comment_chars;
#if (defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)) && !defined (LEX_AT)
#define TC_PARSE_CONS_EXPRESSION(EXP, NBYTES) x86_cons (EXP, NBYTES)
#if (defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)) && !defined (LEX_AT)
#define TC_PARSE_CONS_EXPRESSION(EXP, NBYTES) x86_cons (EXP, NBYTES)
-extern void x86_cons (expressionS *, int);
#endif
#endif
+extern bfd_reloc_code_real_type x86_cons (expressionS *, int);
-#define TC_CONS_FIX_NEW(FRAG,OFF,LEN,EXP) x86_cons_fix_new(FRAG, OFF, LEN, EXP)
+#define TC_CONS_FIX_NEW(FRAG, OFF, LEN, EXP, RELOC) \
+ x86_cons_fix_new(FRAG, OFF, LEN, EXP, RELOC)
extern void x86_cons_fix_new
extern void x86_cons_fix_new
- (fragS *, unsigned int, unsigned int, expressionS *);
+(fragS *, unsigned int, unsigned int, expressionS *, bfd_reloc_code_real_type);
+
+#define TC_ADDRESS_BYTES x86_address_bytes
+extern int x86_address_bytes (void);
#define DIFF_EXPR_OK /* foo-. gets turned into PC relative relocs */
#define DIFF_EXPR_OK /* foo-. gets turned into PC relative relocs */
@@
-139,20
+167,26
@@
extern int tc_i386_fix_adjustable (struct fix *);
/* This expression evaluates to true if the relocation is for a local
object for which we still want to do the relocation at runtime.
False if we are willing to perform this relocation while building
/* This expression evaluates to true if the relocation is for a local
object for which we still want to do the relocation at runtime.
False if we are willing to perform this relocation while building
- the .o file. GOTOFF
does not need to be checked here because it is
- not pcrel. I am not sure if some of the others are ever used with
- pcrel, but it is easier to be safe than sorry. */
-
-
#define TC_FORCE_RELOCATION_LOCAL(FIX)
\
-
(!(FIX)->fx_pcrel
\
- || (FIX)->fx_r_type == BFD_RELOC_386_
PLT32
\
- || (FIX)->fx_r_type == BFD_RELOC_
386_GOT32
\
- || (FIX)->fx_r_type == BFD_RELOC_
386_GOTPC
\
+ the .o file. GOTOFF
and GOT32 do not need to be checked here because
+ they are not pcrel. .*/
+
+#define TC_FORCE_RELOCATION_LOCAL(FIX) \
+
(!(FIX)->fx_pcrel
\
+
|| (FIX)->fx_r_type == BFD_RELOC_386_PLT32
\
+ || (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_REX_GOTPCRELX
\
|| TC_FORCE_RELOCATION (FIX))
extern int i386_parse_name (char *, expressionS *, char *);
#define md_parse_name(s, e, m, c) i386_parse_name (s, e, c)
|| TC_FORCE_RELOCATION (FIX))
extern int i386_parse_name (char *, expressionS *, char *);
#define md_parse_name(s, e, m, c) i386_parse_name (s, e, c)
+extern operatorT i386_operator (const char *name, unsigned int operands, char *);
+#define md_operator i386_operator
+
+extern int i386_need_index_operator (void);
+#define md_need_index_operator i386_need_index_operator
+
#define md_register_arithmetic 0
extern const struct relax_type md_relax_table[];
#define md_register_arithmetic 0
extern const struct relax_type md_relax_table[];
@@
-185,6
+219,9
@@
if (fragP->fr_type == rs_align_code) \
void i386_print_statistics (FILE *);
#define tc_print_statistics i386_print_statistics
void i386_print_statistics (FILE *);
#define tc_print_statistics i386_print_statistics
+extern unsigned int i386_frag_max_var (fragS *);
+#define md_frag_max_var i386_frag_max_var
+
#define md_number_to_chars number_to_chars_littleendian
enum processor_type
#define md_number_to_chars number_to_chars_littleendian
enum processor_type
@@
-198,12
+235,19
@@
enum processor_type
PROCESSOR_NOCONA,
PROCESSOR_CORE,
PROCESSOR_CORE2,
PROCESSOR_NOCONA,
PROCESSOR_CORE,
PROCESSOR_CORE2,
+ PROCESSOR_COREI7,
+ PROCESSOR_L1OM,
+ PROCESSOR_K1OM,
+ PROCESSOR_IAMCU,
PROCESSOR_K6,
PROCESSOR_ATHLON,
PROCESSOR_K8,
PROCESSOR_GENERIC32,
PROCESSOR_GENERIC64,
PROCESSOR_K6,
PROCESSOR_ATHLON,
PROCESSOR_K8,
PROCESSOR_GENERIC32,
PROCESSOR_GENERIC64,
- PROCESSOR_AMDFAM10
+ PROCESSOR_AMDFAM10,
+ PROCESSOR_BD,
+ PROCESSOR_ZNVER,
+ PROCESSOR_BT
};
extern enum processor_type cpu_arch_tune;
};
extern enum processor_type cpu_arch_tune;
@@
-247,6
+291,9
@@
extern unsigned int x86_dwarf2_return_column;
extern int x86_cie_data_alignment;
#define DWARF2_CIE_DATA_ALIGNMENT x86_cie_data_alignment
extern int x86_cie_data_alignment;
#define DWARF2_CIE_DATA_ALIGNMENT x86_cie_data_alignment
+extern int x86_dwarf2_addr_size (void);
+#define DWARF2_ADDR_SIZE(bfd) x86_dwarf2_addr_size ()
+
#define tc_parse_to_dw2regnum tc_x86_parse_to_dw2regnum
extern void tc_x86_parse_to_dw2regnum (expressionS *);
#define tc_parse_to_dw2regnum tc_x86_parse_to_dw2regnum
extern void tc_x86_parse_to_dw2regnum (expressionS *);
@@
-262,8
+309,8
@@
extern void i386_solaris_fix_up_eh_frame (segT);
#endif
/* Support for SHF_X86_64_LARGE */
#endif
/* Support for SHF_X86_64_LARGE */
-extern
int
x86_64_section_word (char *, size_t);
-extern
int x86_64_section_letter (int,
char **);
+extern
bfd_vma
x86_64_section_word (char *, size_t);
+extern
bfd_vma x86_64_section_letter (int, const
char **);
#define md_elf_section_letter(LETTER, PTR_MSG) x86_64_section_letter (LETTER, PTR_MSG)
#define md_elf_section_word(STR, LEN) x86_64_section_word (STR, LEN)
#define md_elf_section_letter(LETTER, PTR_MSG) x86_64_section_letter (LETTER, PTR_MSG)
#define md_elf_section_word(STR, LEN) x86_64_section_word (STR, LEN)
@@
-276,4
+323,21
@@
void tc_pe_dwarf2_emit_offset (symbolS *, unsigned int);
#endif /* TE_PE */
#endif /* TE_PE */
+/* X_add_symbol:X_op_symbol (Intel mode only) */
+#define O_full_ptr O_md2
+
+#ifdef OBJ_MACH_O
+
+#define TC_FORCE_RELOCATION(FIX) (obj_mach_o_force_reloc (FIX))
+
+#define TC_FORCE_RELOCATION_SUB_SAME(FIX,SEG) \
+ (obj_mach_o_force_reloc_sub_same (FIX, SEG))
+
+#define TC_FORCE_RELOCATION_SUB_LOCAL(FIX,SEG) \
+ (obj_mach_o_force_reloc_sub_local (FIX, SEG))
+
+#define TC_VALIDATE_FIX_SUB(FIX, SEG) 1
+
+#endif /* OBJ_MACH_O */
+
#endif /* TC_I386 */
#endif /* TC_I386 */
This page took
0.046391 seconds
and
4
git commands to generate.