gas/
[deliverable/binutils-gdb.git] / gas / config / tc-i386.h
index e4359fe47943ac43ee503a47d112c3e79f6e9a18..98517041daddb0d4f4c0a4720552e0f3f286ee77 100644 (file)
@@ -1,6 +1,6 @@
 /* tc-i386.h -- Header file for tc-i386.c
    Copyright 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-   2001, 2002, 2003, 2004
+   2001, 2002, 2003, 2004, 2005
    Free Software Foundation, Inc.
 
    This file is part of GAS, the GNU Assembler.
 #ifndef TC_I386
 #define TC_I386 1
 
-#ifndef BFD_ASSEMBLER
-#error So, do you know what you are doing?
-#endif
-
-#ifdef ANSI_PROTOTYPES
 struct fix;
-#endif
 
 #define TARGET_BYTES_BIG_ENDIAN        0
 
@@ -94,6 +88,9 @@ extern void i386_elf_emit_arch_note PARAMS ((void));
 extern const char extra_symbol_chars[];
 #define tc_symbol_chars extra_symbol_chars
 
+extern const char *i386_comment_chars;
+#define tc_comment_chars i386_comment_chars
+
 #define MAX_OPERANDS 3         /* max operands per insn */
 #define MAX_IMMEDIATE_OPERANDS 2/* max immediates per insn (lcall, ljmp) */
 #define MAX_MEMORY_OPERANDS 2  /* max memory refs per insn (string ops) */
@@ -182,9 +179,12 @@ typedef struct
 #define CpuSSE2               0x4000   /* Streaming SIMD extensions 2 required */
 #define Cpu3dnow       0x8000  /* 3dnow! support required */
 #define Cpu3dnowA     0x10000  /* 3dnow!Extensions support required */
-#define CpuPNI       0x20000   /* Prescott New Instructions required */
+#define CpuSSE3              0x20000   /* Streaming SIMD extensions 3 required */
+#define CpuPNI       CpuSSE3   /* Prescott New Instructions required */
 #define CpuPadLock    0x40000  /* VIA PadLock required */
 #define CpuSVME              0x80000   /* AMD Secure Virtual Machine Ext-s required */
+#define CpuVMX      0x100000   /* VMX Instructions required */
+#define CpuMNI      0x200000   /* Merom New Instructions required */
 
   /* These flags are set by gas depending on the flag_code.  */
 #define Cpu64       0x4000000   /* 64bit support required  */
@@ -192,8 +192,8 @@ typedef struct
 
   /* The default value for unknown CPUs - enable all features to avoid problems.  */
 #define CpuUnknownFlags (Cpu086|Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686 \
-       |CpuP4|CpuSledgehammer|CpuMMX|CpuMMX2|CpuSSE|CpuSSE2|CpuPNI \
-       |Cpu3dnow|Cpu3dnowA|CpuK6|CpuAthlon|CpuPadLock|CpuSVME)
+       |CpuP4|CpuSledgehammer|CpuMMX|CpuMMX2|CpuSSE|CpuSSE2|CpuPNI|CpuVMX \
+       |Cpu3dnow|Cpu3dnowA|CpuK6|CpuAthlon|CpuPadLock|CpuSVME|CpuMNI)
 
   /* the bits in opcode_modifier are used to generate the final opcode from
      the base_opcode.  These bits also are used to detect alternate forms of
@@ -391,20 +391,14 @@ arch_entry;
 #define GLOBAL_OFFSET_TABLE_NAME "_GLOBAL_OFFSET_TABLE_"
 #endif
 
-#ifndef LEX_AT
+#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 PARAMS ((expressionS *, int));
+#endif
 
 #define TC_CONS_FIX_NEW(FRAG,OFF,LEN,EXP) x86_cons_fix_new(FRAG, OFF, LEN, EXP)
 extern void x86_cons_fix_new
   PARAMS ((fragS *, unsigned int, unsigned int, expressionS *));
-#endif
-
-#ifdef TE_PE
-#define TC_CONS_FIX_NEW(FRAG,OFF,LEN,EXP) x86_pe_cons_fix_new(FRAG, OFF, LEN, EXP)
-extern void x86_pe_cons_fix_new
-  PARAMS ((fragS *, unsigned int, unsigned int, expressionS *));
-#endif
 
 #define DIFF_EXPR_OK    /* foo-. gets turned into PC relative relocs */
 
@@ -444,7 +438,8 @@ extern int tc_i386_fix_adjustable PARAMS ((struct fix *));
    || (FIX)->fx_r_type == BFD_RELOC_386_GOTPC          \
    || TC_FORCE_RELOCATION (FIX))
 
-#define md_operand(x)
+extern int i386_parse_name (char *, expressionS *, char *);
+#define md_parse_name(s, e, m, c) i386_parse_name (s, e, c)
 
 extern const struct relax_type md_relax_table[];
 #define TC_GENERIC_RELAX_TABLE md_relax_table
@@ -501,6 +496,12 @@ extern void tc_x86_frame_initial_instructions PARAMS ((void));
 #define md_elf_section_type(str,len) i386_elf_section_type (str, len)
 extern int i386_elf_section_type PARAMS ((const char *, size_t len));
 
+/* Support for SHF_X86_64_LARGE */
+extern int x86_64_section_word PARAMS ((char *, size_t));
+extern int x86_64_section_letter PARAMS ((int letter, char **ptr_msg));
+#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)
+
 #ifdef TE_PE
 
 #define O_secrel O_md1
This page took 0.025292 seconds and 4 git commands to generate.