aboutsummaryrefslogtreecommitdiff
path: root/gas/config
diff options
context:
space:
mode:
authorK. Richard Pixley <rich@cygnus>1992-02-21 14:21:54 +0000
committerK. Richard Pixley <rich@cygnus>1992-02-21 14:21:54 +0000
commit2d97273c8ba5e396bb646ae26a2fdb8164f3436b (patch)
tree55c9c1eaffc56a887df9ffa0e0cadd84efe0f124 /gas/config
parented6bfe6d75e4166937a43f44da4ae3f504a8ca68 (diff)
downloadgdb-2d97273c8ba5e396bb646ae26a2fdb8164f3436b.zip
gdb-2d97273c8ba5e396bb646ae26a2fdb8164f3436b.tar.gz
gdb-2d97273c8ba5e396bb646ae26a2fdb8164f3436b.tar.bz2
be more cautious with tranle's patches
Diffstat (limited to 'gas/config')
-rwxr-xr-xgas/config/a.out.gnu.h57
-rw-r--r--gas/config/tc-a29k.h2
-rw-r--r--gas/config/tc-sparc.h7
3 files changed, 63 insertions, 3 deletions
diff --git a/gas/config/a.out.gnu.h b/gas/config/a.out.gnu.h
index fe777f9..29edcdb 100755
--- a/gas/config/a.out.gnu.h
+++ b/gas/config/a.out.gnu.h
@@ -21,7 +21,45 @@
#ifndef __A_OUT_GNU_H__
#define __A_OUT_GNU_H__
-#include "aout/reloc.h"
+#if defined(TC_SPARC) || defined(TC_A29K)
+enum reloc_type {
+ RELOC_8, RELOC_16, RELOC_32, /* simple relocations */
+ RELOC_DISP8, RELOC_DISP16, RELOC_DISP32, /* pc-rel displacement */
+ RELOC_WDISP30, RELOC_WDISP22,
+ RELOC_HI22, RELOC_22,
+ RELOC_13, RELOC_LO10,
+ RELOC_SFA_BASE, RELOC_SFA_OFF13,
+ RELOC_BASE10, RELOC_BASE13, RELOC_BASE22, /* P.I.C. (base-relative) */
+ RELOC_PC10, RELOC_PC22, /* for some sort of pc-rel P.I.C. (?) */
+ RELOC_JMP_TBL, /* P.I.C. jump table */
+ RELOC_SEGOFF16, /* reputedly for shared libraries somehow */
+ RELOC_GLOB_DAT, RELOC_JMP_SLOT, RELOC_RELATIVE,
+ RELOC_11,
+ RELOC_WDISP2_14,
+ RELOC_WDISP19,
+ RELOC_HHI22,
+ RELOC_HLO10,
+
+ /* 29K relocation types */
+ RELOC_JUMPTARG, RELOC_CONST, RELOC_CONSTH,
+
+ RELOC_WDISP14, RELOC_WDISP21,
+
+ NO_RELOC,
+};
+#endif /* TC_SPARC or TC_A29K */
+
+#ifdef TC_I860
+/* NOTE: three bits max, see struct reloc_info_i860.r_type */
+enum i860_reloc_type {
+ NO_RELOC = 0, BRADDR, LOW0, LOW1, LOW2, LOW3, LOW4, SPLIT0, SPLIT1, SPLIT2, RELOC_32,
+};
+
+ /* NOTE: two bits max, see reloc_info_i860.r_type */
+enum highlow_type {
+ NO_SPEC = 0, PAIR, HIGH, HIGHADJ,
+};
+#endif /* TC_I860 */
#define __GNU_EXEC_MACROS__
@@ -256,6 +294,23 @@ struct reloc_ext_bytes {
unsigned char r_addend[4];
};
+struct reloc_info_i860
+{
+ unsigned long r_address;
+ /*
+ * Using bit fields here is a bad idea because the order is not portable. :-(
+ */
+ unsigned int r_symbolnum: 24;
+ unsigned int r_pcrel : 1;
+ unsigned int r_extern : 1;
+ /* combining the two field simplifies the argument passing in "new_fix()" */
+ /* and is compatible with the existing Sparc #ifdef's */
+ /* r_type: highlow_type - bits 5,4; reloc_type - bits 3-0 */
+ unsigned int r_type : 6;
+ long r_addend;
+};
+
+
#define RELOC_EXT_BITS_EXTERN_BIG 0x80
#define RELOC_EXT_BITS_EXTERN_LITTLE 0x01
diff --git a/gas/config/tc-a29k.h b/gas/config/tc-a29k.h
index 023a4ff..fee1ca2 100644
--- a/gas/config/tc-a29k.h
+++ b/gas/config/tc-a29k.h
@@ -19,6 +19,8 @@
#define TC_A29K
+#define NO_LISTING
+
#define tc_aout_pre_write_hook(x) {;} /* not used */
#define tc_coff_symbol_emit_hook(a) {;} /* not used */
#define tc_crawl_symbol_chain(a) {;} /* not used */
diff --git a/gas/config/tc-sparc.h b/gas/config/tc-sparc.h
index bc93fbf..7f450af 100644
--- a/gas/config/tc-sparc.h
+++ b/gas/config/tc-sparc.h
@@ -1,5 +1,5 @@
/* tc-sparc.h - Macros and type defines for the sparc.
- Copyright (C) 1989, 1990, 1991 Free Software Foundation, Inc.
+ Copyright (C) 1989, 1990, 1991, 1992 Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler.
@@ -19,6 +19,7 @@
#define TC_SPARC 1
+#define NO_LISTING
#define LOCAL_LABELS_FB
#ifdef OBJ_BOUT
@@ -33,7 +34,9 @@
#define tc_headers_hook(a) {;} /* don't need it. */
#define tc_crawl_symbol_chain(a) {;} /* don't need it. */
-
+
+void tc_aout_pre_write_hook();
+
#define LISTING_HEADER "SPARC GAS "
/*