From 2d97273c8ba5e396bb646ae26a2fdb8164f3436b Mon Sep 17 00:00:00 2001 From: "K. Richard Pixley" Date: Fri, 21 Feb 1992 14:21:54 +0000 Subject: [PATCH] be more cautious with tranle's patches --- gas/ChangeLog | 4 +++ gas/config/a.out.gnu.h | 57 +++++++++++++++++++++++++++++++++++++++++- gas/config/tc-a29k.h | 2 ++ gas/config/tc-sparc.h | 7 ++++-- 4 files changed, 67 insertions(+), 3 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index ea4941ffe3f..958193404fd 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,7 @@ +Fri Feb 21 06:21:07 1992 K. Richard Pixley (rich@rtl.cygnus.com) + + * read.c, write.c subsegs.c: back out the .bss changes. + Fri Feb 21 01:08:48 1992 Minh Tran-Le (TRANLE@INTELLICORP.COM) * symbols.c (local_label_name): symbols now start with ^A. diff --git a/gas/config/a.out.gnu.h b/gas/config/a.out.gnu.h index fe777f9acba..29edcdb0b1f 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 023a4ff1340..fee1ca2b67d 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 bc93fbfb3f2..7f450afb325 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 " /* -- 2.30.2