~terry.guo/+junk/xbinutils

« back to all changes in this revision

Viewing changes to src/binutils/gas/config/tc-i860.h

  • Committer: Terry Guo
  • Date: 2012-09-05 06:50:40 UTC
  • Revision ID: terry.guo@arm.com-20120905065040-430c6mhm9b11a6r6
Tags: upstream-1.0
ImportĀ upstreamĀ versionĀ 1.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* tc-i860.h -- Header file for the i860.
 
2
   Copyright 1991, 1992, 1995, 1998, 2000, 2001, 2002, 2003, 2005, 2007
 
3
   Free Software Foundation, Inc.
 
4
 
 
5
   Brought back from the dead and completely reworked
 
6
   by Jason Eckhardt <jle@cygnus.com>.
 
7
 
 
8
   This file is part of GAS, the GNU Assembler.
 
9
 
 
10
   GAS is free software; you can redistribute it and/or modify
 
11
   it under the terms of the GNU General Public License as published by
 
12
   the Free Software Foundation; either version 3, or (at your option)
 
13
   any later version.
 
14
 
 
15
   GAS is distributed in the hope that it will be useful,
 
16
   but WITHOUT ANY WARRANTY; without even the implied warranty of
 
17
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
18
   GNU General Public License for more details.
 
19
 
 
20
   You should have received a copy of the GNU General Public License along
 
21
   with GAS; see the file COPYING.  If not, write to the Free Software
 
22
   Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
 
23
 
 
24
#ifndef TC_I860
 
25
#define TC_I860 1
 
26
 
 
27
enum i860_fix_info
 
28
{
 
29
  OP_NONE        = 0x00000,
 
30
  OP_IMM_U5      = 0x00001,
 
31
  OP_IMM_S16     = 0x00002,
 
32
  OP_IMM_U16     = 0x00004,
 
33
  OP_IMM_SPLIT16 = 0x00008,
 
34
  OP_IMM_BR26    = 0x00010,
 
35
  OP_IMM_BR16    = 0x00020,
 
36
  OP_ENCODE1     = 0x00040,
 
37
  OP_ENCODE2     = 0x00080,
 
38
  OP_ENCODE3     = 0x00100,
 
39
  OP_SEL_HA      = 0x00200,
 
40
  OP_SEL_H       = 0x00400,
 
41
  OP_SEL_L       = 0x00800,
 
42
  OP_SEL_GOT     = 0x01000,
 
43
  OP_SEL_GOTOFF  = 0x02000,
 
44
  OP_SEL_PLT     = 0x04000,
 
45
  OP_ALIGN2      = 0x08000,
 
46
  OP_ALIGN4      = 0x10000,
 
47
  OP_ALIGN8      = 0x20000,
 
48
  OP_ALIGN16     = 0x40000
 
49
};
 
50
 
 
51
/* Set the endianness we are using.  Default to little endian.  */
 
52
#ifndef TARGET_BYTES_BIG_ENDIAN
 
53
#define TARGET_BYTES_BIG_ENDIAN 0
 
54
#endif
 
55
 
 
56
/* Whether or not the target is big endian.  */
 
57
extern int target_big_endian;
 
58
 
 
59
/* BFD target architecture.  */
 
60
#define TARGET_ARCH     bfd_arch_i860
 
61
 
 
62
/* The target BFD format.  */
 
63
#ifdef OBJ_ELF
 
64
#define TARGET_FORMAT (target_big_endian ? "elf32-i860" : "elf32-i860-little")
 
65
#else
 
66
#error i860 GAS currently supports only the ELF object format
 
67
#endif
 
68
 
 
69
#define WORKING_DOT_WORD
 
70
#define DIFF_EXPR_OK
 
71
 
 
72
/* Permit temporary numeric labels.  */
 
73
#define LOCAL_LABELS_FB         1
 
74
#define LISTING_HEADER          "GAS for i860"
 
75
 
 
76
#define md_convert_frag(b,s,f)  abort ()
 
77
 
 
78
/* Values passed to md_apply_fix don't include the symbol value.  */
 
79
#define MD_APPLY_SYM_VALUE(FIX) 0
 
80
 
 
81
/* No shared lib support, so we don't need to ensure externally
 
82
   visible symbols can be overridden.  */
 
83
#define EXTERN_FORCE_RELOC 0
 
84
 
 
85
/* Bits for post-processing of a user defined label to check if
 
86
   it has a double colon (Intel syntax only).  */
 
87
extern void i860_check_label (symbolS *labelsym);
 
88
#define tc_check_label(ls)      i860_check_label (ls)
 
89
 
 
90
/* Bits for filling in rs_align_code fragments with NOPs.  */
 
91
extern void i860_handle_align (struct frag *);
 
92
#define HANDLE_ALIGN(fragp) i860_handle_align (fragp)
 
93
 
 
94
#define MAX_MEM_FOR_RS_ALIGN_CODE  (3 + 4 + 4)
 
95
 
 
96
#endif /* TC_I860 */