SOURCES: binutils-gasp.patch - up

arekm arekm at pld-linux.org
Thu Jul 21 20:54:16 CEST 2005


Author: arekm                        Date: Thu Jul 21 18:54:16 2005 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- up

---- Files affected:
SOURCES:
   binutils-gasp.patch (1.8 -> 1.9) 

---- Diffs:

================================================================
Index: SOURCES/binutils-gasp.patch
diff -u SOURCES/binutils-gasp.patch:1.8 SOURCES/binutils-gasp.patch:1.9
--- SOURCES/binutils-gasp.patch:1.8	Mon Jun 27 21:24:52 2005
+++ SOURCES/binutils-gasp.patch	Thu Jul 21 20:54:11 2005
@@ -1,7 +1,7 @@
-diff -Nur binutils-2.13.90.0.18.orig/gas/Makefile.am binutils-2.13.90.0.18/gas/Makefile.am
---- binutils-2.13.90.0.18.orig/gas/Makefile.am	Sun Feb  2 03:21:17 2003
-+++ binutils-2.13.90.0.18/gas/Makefile.am	Sun Feb  2 12:25:10 2003
-@@ -197,7 +197,7 @@
+diff -urNbB binutils-2.16.91.0.2.org/gas/Makefile.am binutils-2.16.91.0.2/gas/Makefile.am
+--- binutils-2.16.91.0.2.org/gas/Makefile.am	2005-07-20 19:27:27.000000000 +0000
++++ binutils-2.16.91.0.2/gas/Makefile.am	2005-07-21 18:35:02.000000000 +0000
+@@ -204,7 +204,7 @@
  	symbols.c \
  	write.c
  
@@ -10,7 +10,7 @@
  
  HFILES = \
  	as.h \
-@@ -452,7 +452,8 @@
+@@ -466,7 +466,8 @@
  
  # Note: GASP is now deprecated and has been removed.  It is still
  # available in the CVS archive or older binutils releases if it is needed.
@@ -20,7 +20,7 @@
  noinst_SCRIPTS = $(GDBINIT)
  EXTRA_SCRIPTS = .gdbinit
  
-@@ -515,6 +516,10 @@
+@@ -530,6 +531,10 @@
  	as.h asintl.h bignum.h bit_fix.h config.h emul.h expr.h flonum.h \
  	frags.h hash.h listing.h obj.h read.h symbols.h tc.h write.h
  
@@ -28,10 +28,10 @@
 +gasp_new_LDADD = ../libiberty/libiberty.a $(INTLLIBS)
 +gasp_new_DEPENDENCIES = ../libiberty/libiberty.a $(INTLDEPS)
 +
- EXPECT = `if [ -f $${rootme}/../expect/expect ] ; then \
-           echo $${rootme}/../expect/expect ; \
-           else echo expect ; fi`
-@@ -2416,6 +2421,8 @@
+ EXPECT = expect
+ RUNTEST = runtest
+ RUNTESTFLAGS=
+@@ -2508,6 +2513,8 @@
    $(INCDIR)/obstack.h subsegs.h struc-symbol.h
  write.o: write.c $(INCDIR)/symcat.h subsegs.h $(INCDIR)/obstack.h \
    output-file.h dwarf2dbg.h
@@ -40,9 +40,9 @@
  itbl-ops.o: itbl-ops.c itbl-ops.h $(INCDIR)/symcat.h
  e-crisaout.o: $(srcdir)/config/e-crisaout.c $(INCDIR)/symcat.h \
    emul-target.h
-diff -Nur binutils-2.13.90.0.18.orig/gas/doc/Makefile.am binutils-2.13.90.0.18/gas/doc/Makefile.am
---- binutils-2.13.90.0.18.orig/gas/doc/Makefile.am	Sun Feb  2 03:21:17 2003
-+++ binutils-2.13.90.0.18/gas/doc/Makefile.am	Sun Feb  2 12:35:43 2003
+diff -urNbB binutils-2.16.91.0.2.org/gas/doc/Makefile.am binutils-2.16.91.0.2/gas/doc/Makefile.am
+--- binutils-2.16.91.0.2.org/gas/doc/Makefile.am	2005-07-20 19:27:27.000000000 +0000
++++ binutils-2.16.91.0.2/gas/doc/Makefile.am	2005-07-21 18:31:04.000000000 +0000
 @@ -15,7 +15,7 @@
  
  man_MANS = as.1
@@ -52,9 +52,9 @@
  
  asconfig.texi: $(CONFIG).texi
  	rm -f asconfig.texi
-diff -Nur binutils-2.14.90.0.7.orig/gas/doc/gasp.texinfo binutils-2.14.90.0.7/gas/doc/gasp.texinfo
---- binutils-2.14.90.0.7.orig/gas/doc/gasp.texinfo	Thu Jan  1 01:00:00 1970
-+++ binutils-2.14.90.0.7/gas/doc/gasp.texinfo	Wed Oct 30 05:09:13 2002
+diff -urNbB binutils-2.16.91.0.2.org/gas/doc/gasp.texinfo binutils-2.16.91.0.2/gas/doc/gasp.texinfo
+--- binutils-2.16.91.0.2.org/gas/doc/gasp.texinfo	1970-01-01 00:00:00.000000000 +0000
++++ binutils-2.16.91.0.2/gas/doc/gasp.texinfo	2005-07-21 18:31:04.000000000 +0000
 @@ -0,0 +1,1456 @@
 +\input texinfo               @c             -*- Texinfo -*-
 + at setfilename gasp.info
@@ -1512,8 +1512,9 @@
 +
 + at contents
 + at bye
---- binutils-2.16.90.0.3/gas/gasp.c.orig	1970-01-01 01:00:00.000000000 +0100
-+++ binutils-2.16.90.0.3/gas/gasp.c	2005-05-12 00:24:19.559668480 +0200
+diff -urNbB binutils-2.16.91.0.2.org/gas/gasp.c binutils-2.16.91.0.2/gas/gasp.c
+--- binutils-2.16.91.0.2.org/gas/gasp.c	1970-01-01 00:00:00.000000000 +0000
++++ binutils-2.16.91.0.2/gas/gasp.c	2005-07-21 18:31:04.000000000 +0000
 @@ -0,0 +1,3983 @@
 +/* gasp.c - Gnu assembler preprocessor main program.
 +   Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
@@ -5498,8 +5499,9 @@
 +
 +/* just a stub to satisfy unused function in sb.o */
 +int do_scrub_chars (int (*get) (char*, int), char *tostart, int tolen) {}
---- binutils-2.16.90.0.3/gas/macro.c.orig	2005-05-11 00:46:44.000000000 +0200
-+++ binutils-2.16.90.0.3/gas/macro.c	2005-05-12 00:09:50.205830352 +0200
+diff -urNbB binutils-2.16.91.0.2.org/gas/macro.c binutils-2.16.91.0.2/gas/macro.c
+--- binutils-2.16.91.0.2.org/gas/macro.c	2005-05-10 22:46:44.000000000 +0000
++++ binutils-2.16.91.0.2/gas/macro.c	2005-07-21 18:31:04.000000000 +0000
 @@ -77,8 +77,8 @@
  static int get_apost_token (int, sb *, sb *, int);
  static int sub_actual (int, sb *, sb *, struct hash_control *, int, sb *, int);
@@ -5655,9 +5657,10 @@
  	  if (err != NULL)
  	    break;
  	  if (!irpc)
---- binutils-2.16.90.0.2/gas/macro.h.orig	2005-04-29 19:50:28.000000000 +0200
-+++ binutils-2.16.90.0.2/gas/macro.h	2005-05-02 11:06:23.979151360 +0200
-@@ -80,8 +80,8 @@
+diff -urNbB binutils-2.16.91.0.2.org/gas/macro.h binutils-2.16.91.0.2/gas/macro.h
+--- binutils-2.16.91.0.2.org/gas/macro.h	2005-05-10 22:46:44.000000000 +0000
++++ binutils-2.16.91.0.2/gas/macro.h	2005-07-21 18:31:04.000000000 +0000
+@@ -90,8 +90,8 @@
  extern void macro_mri_mode (int);
  extern const char *define_macro
    (int, sb *, sb *, int (*) (sb *), char *, unsigned int, const char **);
@@ -5668,9 +5671,111 @@
 +extern const char *expand_irp (int, int, sb *, sb *, int (*) (sb *), int);
  
  #endif
---- binutils-2.16.90.0.2/gas/read.c.orig	2005-04-29 19:50:28.000000000 +0200
-+++ binutils-2.16.90.0.2/gas/read.c	2005-05-02 11:06:53.579651400 +0200
-@@ -550,7 +550,7 @@
+diff -urNbB binutils-2.16.91.0.2.org/gas/macro.h.orig binutils-2.16.91.0.2/gas/macro.h.orig
+--- binutils-2.16.91.0.2.org/gas/macro.h.orig	1970-01-01 00:00:00.000000000 +0000
++++ binutils-2.16.91.0.2/gas/macro.h.orig	2005-05-10 22:46:44.000000000 +0000
+@@ -0,0 +1,97 @@
++/* macro.h - header file for macro support for gas
++   Copyright 1994, 1995, 1996, 1997, 1998, 2000, 2002, 2003, 2004
++   Free Software Foundation, Inc.
++
++   Written by Steve and Judy Chamberlain of Cygnus Support,
++      sac at cygnus.com
++
++   This file is part of GAS, the GNU Assembler.
++
++   GAS is free software; you can redistribute it and/or modify
++   it under the terms of the GNU General Public License as published by
++   the Free Software Foundation; either version 2, or (at your option)
++   any later version.
++
++   GAS is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU General Public License for more details.
++
++   You should have received a copy of the GNU General Public License
++   along with GAS; see the file COPYING.  If not, write to the Free
++   Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
++   02110-1301, USA.  */
++
++#ifndef MACRO_H
++
++#define MACRO_H
++
++#include "ansidecl.h"
++#include "sb.h"
++
++/* Structures used to store macros.
++
++   Each macro knows its name and included text.  It gets built with a
++   list of formal arguments, and also keeps a hash table which points
++   into the list to speed up formal search.  Each formal knows its
++   name and its default value.  Each time the macro is expanded, the
++   formals get the actual values attached to them.  */
++
++/* Describe the formal arguments to a macro.  */
++
++typedef struct formal_struct {
++  struct formal_struct *next;	/* Next formal in list.  */
++  sb name;			/* Name of the formal.  */
++  sb def;			/* The default value.  */
++  sb actual;			/* The actual argument (changed on each expansion).  */
++  int index;			/* The index of the formal 0..formal_count - 1.  */
++  enum formal_type
++    {
++      FORMAL_OPTIONAL,
++      FORMAL_REQUIRED,
++      FORMAL_VARARG
++    } type;			/* The kind of the formal.  */
++} formal_entry;
++
++/* Other values found in the index field of a formal_entry.  */
++#define QUAL_INDEX (-1)
++#define NARG_INDEX (-2)
++#define LOCAL_INDEX (-3)
++
++/* Describe the macro.  */
++
++typedef struct macro_struct
++{
++  sb sub;				/* Substitution text.  */
++  int formal_count;			/* Number of formal args.  */
++  formal_entry *formals;		/* Pointer to list of formal_structs.  */
++  struct hash_control *formal_hash;	/* Hash table of formals.  */
++  const char *name;			/* Macro name.  */
++  char *file;				/* File the macro was defined in.  */
++  unsigned int line;			/* Line number of definition.  */
++} macro_entry;
++
++/* Whether any macros have been defined.  */
++
++extern int macro_defined;
++
++/* The macro nesting level.  */
++
++extern int macro_nest;
++
++/* The macro hash table.  */
++
++extern struct hash_control *macro_hash;
++
++extern int buffer_and_nest (const char *, const char *, sb *, int (*) (sb *));
++extern void macro_init
++  (int, int, int, int (*) (const char *, int, sb *, int *));
++extern void macro_set_alternate (int);
++extern void macro_mri_mode (int);
++extern const char *define_macro
++  (int, sb *, sb *, int (*) (sb *), char *, unsigned int, const char **);
++extern int check_macro (const char *, sb *, const char **, macro_entry **);
++extern void delete_macro (const char *);
++extern const char *expand_irp (int, int, sb *, sb *, int (*) (sb *));
++
++#endif
+diff -urNbB binutils-2.16.91.0.2.org/gas/read.c binutils-2.16.91.0.2/gas/read.c
+--- binutils-2.16.91.0.2.org/gas/read.c	2005-06-22 20:53:34.000000000 +0000
++++ binutils-2.16.91.0.2/gas/read.c	2005-07-21 18:31:04.000000000 +0000
+@@ -555,7 +555,7 @@
    const char *err;
    macro_entry *macro;
  
@@ -5679,7 +5784,7 @@
      {
        if (err != NULL)
  	as_bad ("%s", err);
-@@ -1978,7 +1978,7 @@
+@@ -1958,7 +1958,7 @@
  
    sb_new (&out);
  
@@ -5688,3 +5793,5329 @@
    if (err != NULL)
      as_bad_where (file, line, "%s", err);
  
+diff -urNbB binutils-2.16.91.0.2.org/gas/read.c.orig binutils-2.16.91.0.2/gas/read.c.orig
+--- binutils-2.16.91.0.2.org/gas/read.c.orig	1970-01-01 00:00:00.000000000 +0000
++++ binutils-2.16.91.0.2/gas/read.c.orig	2005-06-22 20:53:34.000000000 +0000
+@@ -0,0 +1,5322 @@
++/* read.c - read a source file -
++   Copyright 1986, 1987, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
++   1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
++   Free Software Foundation, Inc.
++
++This file is part of GAS, the GNU Assembler.
++
++GAS is free software; you can redistribute it and/or modify
++it under the terms of the GNU General Public License as published by
++the Free Software Foundation; either version 2, or (at your option)
++any later version.
++
++GAS is distributed in the hope that it will be useful,
++but WITHOUT ANY WARRANTY; without even the implied warranty of
++MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++GNU General Public License for more details.
++
++You should have received a copy of the GNU General Public License
++along with GAS; see the file COPYING.  If not, write to the Free
++Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
++02110-1301, USA.  */
++
++/* If your chars aren't 8 bits, you will change this a bit (eg. to 0xFF).
++   But then, GNU isn't spozed to run on your machine anyway.
++   (RMS is so shortsighted sometimes.)  */
++#define MASK_CHAR ((int)(unsigned char) -1)
++
++/* This is the largest known floating point format (for now). It will
++   grow when we do 4361 style flonums.  */
++#define MAXIMUM_NUMBER_OF_CHARS_FOR_FLOAT (16)
++
++/* Routines that read assembler source text to build spaghetti in memory.
++   Another group of these functions is in the expr.c module.  */
++
++#include "as.h"
++#include "safe-ctype.h"
++#include "subsegs.h"
++#include "sb.h"
++#include "macro.h"
++#include "obstack.h"
++#include "listing.h"
++#include "ecoff.h"
++#include "dw2gencfi.h"
++
++#ifndef TC_START_LABEL
++#define TC_START_LABEL(x,y) (x == ':')
++#endif
++
++/* Set by the object-format or the target.  */
++#ifndef TC_IMPLICIT_LCOMM_ALIGNMENT
++#define TC_IMPLICIT_LCOMM_ALIGNMENT(SIZE, P2VAR)		\
++  do								\
++    {								\
++      if ((SIZE) >= 8)						\
++	(P2VAR) = 3;						\
++      else if ((SIZE) >= 4)					\
++	(P2VAR) = 2;						\
++      else if ((SIZE) >= 2)					\
++	(P2VAR) = 1;						\
++      else							\
++	(P2VAR) = 0;						\
++    }								\
++  while (0)
++#endif
++
++char *input_line_pointer;	/*->next char of source file to parse.  */
++
++#if BITS_PER_CHAR != 8
++/*  The following table is indexed by[(char)] and will break if
++    a char does not have exactly 256 states (hopefully 0:255!)!  */
++die horribly;
++#endif
++
++#ifndef LEX_AT
++/* The m88k unfortunately uses @ as a label beginner.  */
++#define LEX_AT 0
++#endif
++
++#ifndef LEX_BR
++/* The RS/6000 assembler uses {,},[,] as parts of symbol names.  */
++#define LEX_BR 0
++#endif
++
++#ifndef LEX_PCT
++/* The Delta 68k assembler permits % inside label names.  */
++#define LEX_PCT 0
++#endif
++
++#ifndef LEX_QM
++/* The PowerPC Windows NT assemblers permits ? inside label names.  */
++#define LEX_QM 0
++#endif
++
++#ifndef LEX_HASH
++/* The IA-64 assembler uses # as a suffix designating a symbol.  We include
++   it in the symbol and strip it out in tc_canonicalize_symbol_name.  */
++#define LEX_HASH 0
++#endif
++
++#ifndef LEX_DOLLAR
++/* The a29k assembler does not permits labels to start with $.  */
++#define LEX_DOLLAR 3
++#endif
++
++#ifndef LEX_TILDE
++/* The Delta 68k assembler permits ~ at start of label names.  */
++#define LEX_TILDE 0
++#endif
++
++/* Used by is_... macros. our ctype[].  */
++char lex_type[256] = {
++  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/* @ABCDEFGHIJKLMNO */
++  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/* PQRSTUVWXYZ[\]^_ */
++  0, 0, 0, LEX_HASH, LEX_DOLLAR, LEX_PCT, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, /* _!"#$%&'()*+,-./ */
++  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, LEX_QM,	/* 0123456789:;<=>? */
++  LEX_AT, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,	/* @ABCDEFGHIJKLMNO */
++  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, LEX_BR, 0, LEX_BR, 0, 3, /* PQRSTUVWXYZ[\]^_ */
++  0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,	/* `abcdefghijklmno */
++  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, LEX_BR, 0, LEX_BR, LEX_TILDE, 0, /* pqrstuvwxyz{|}~.  */
++  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
++  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
++  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
++  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
++  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
++  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
++  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
++  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3
++};
++
++/* In: a character.
++   Out: 1 if this character ends a line.  */
++char is_end_of_line[256] = {
++#ifdef CR_EOL
++  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0,	/* @abcdefghijklmno */
++#else
++  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,	/* @abcdefghijklmno */
++#endif
++  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/* */
++  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/* _!"#$%&'()*+,-./ */
++  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/* 0123456789:;<=>? */
++  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/* */
++  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/* */
++  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/* */
++  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/* */
++  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/* */
++  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/* */
++  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/* */
++  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/* */
++  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/* */
++  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/* */
++  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/* */
++  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0	/* */
++};
++
++#ifndef TC_CASE_SENSITIVE
++char original_case_string[128];
++#endif
++
++/* Functions private to this file.  */
++
++static char *buffer;	/* 1st char of each buffer of lines is here.  */
++static char *buffer_limit;	/*->1 + last char in buffer.  */
++
++/* TARGET_BYTES_BIG_ENDIAN is required to be defined to either 0 or 1
++   in the tc-<CPU>.h file.  See the "Porting GAS" section of the
++   internals manual.  */
++int target_big_endian = TARGET_BYTES_BIG_ENDIAN;
++
++/* Variables for handling include file directory table.  */
++
++/* Table of pointers to directories to search for .include's.  */
++char **include_dirs;
++
++/* How many are in the table.  */
++int include_dir_count;
++
++/* Length of longest in table.  */
++int include_dir_maxlen = 1;
++
++#ifndef WORKING_DOT_WORD
++struct broken_word *broken_words;
++int new_broken_words;
++#endif
++
++/* The current offset into the absolute section.  We don't try to
++   build frags in the absolute section, since no data can be stored
++   there.  We just keep track of the current offset.  */
++addressT abs_section_offset;
++
++/* If this line had an MRI style label, it is stored in this variable.
++   This is used by some of the MRI pseudo-ops.  */
++symbolS *line_label;
++
++/* This global variable is used to support MRI common sections.  We
++   translate such sections into a common symbol.  This variable is
++   non-NULL when we are in an MRI common section.  */
++symbolS *mri_common_symbol;
++
++/* In MRI mode, after a dc.b pseudo-op with an odd number of bytes, we
++   need to align to an even byte boundary unless the next pseudo-op is
++   dc.b, ds.b, or dcb.b.  This variable is set to 1 if an alignment
++   may be needed.  */
++static int mri_pending_align;
++
++#ifndef NO_LISTING
++#ifdef OBJ_ELF
++/* This variable is set to be non-zero if the next string we see might
++   be the name of the source file in DWARF debugging information.  See
++   the comment in emit_expr for the format we look for.  */
++static int dwarf_file_string;
++#endif
++#endif
++
++static void do_s_func (int end_p, const char *default_prefix);
++static void do_align (int, char *, int, int);
++static void s_align (int, int);
++static void s_altmacro (int);
++static void s_bad_end (int);
++static int hex_float (int, char *);
++static segT get_known_segmented_expression (expressionS * expP);
++static void pobegin (void);
++static int get_line_sb (sb *);
++static void generate_file_debug (void);
++static char *_find_end_of_line (char *, int, int);
++
++void
++read_begin (void)
++{
++  const char *p;
++
++  pobegin ();
++  obj_read_begin_hook ();
++
++  /* Something close -- but not too close -- to a multiple of 1024.
++     The debugging malloc I'm using has 24 bytes of overhead.  */
++  obstack_begin (&notes, chunksize);
++  obstack_begin (&cond_obstack, chunksize);
++
++  /* Use machine dependent syntax.  */
++  for (p = line_separator_chars; *p; p++)
++    is_end_of_line[(unsigned char) *p] = 1;
++  /* Use more.  FIXME-SOMEDAY.  */
++
++  if (flag_mri)
++    lex_type['?'] = 3;
++}
++
++#ifndef TC_ADDRESS_BYTES
++#ifdef BFD_ASSEMBLER
++#define TC_ADDRESS_BYTES address_bytes
++
++static inline int
++address_bytes (void)
++{
++  /* Choose smallest of 1, 2, 4, 8 bytes that is large enough to
++     contain an address.  */
++  int n = (stdoutput->arch_info->bits_per_address - 1) / 8;
++  n |= n >> 1;
++  n |= n >> 2;
++  n += 1;
++  return n;
++}
++#endif
++#endif
++
++/* Set up pseudo-op tables.  */
++
++static struct hash_control *po_hash;
++
++static const pseudo_typeS potable[] = {
++  {"abort", s_abort, 0},
++  {"align", s_align_ptwo, 0},
++  {"altmacro", s_altmacro, 1},
++  {"ascii", stringer, 0},
++  {"asciz", stringer, 1},
++  {"balign", s_align_bytes, 0},
++  {"balignw", s_align_bytes, -2},
++  {"balignl", s_align_bytes, -4},
++/* block  */
++  {"byte", cons, 1},
++  {"comm", s_comm, 0},
++  {"common", s_mri_common, 0},
++  {"common.s", s_mri_common, 1},
++  {"data", s_data, 0},
++  {"dc", cons, 2},
++#ifdef TC_ADDRESS_BYTES
++  {"dc.a", cons, 0},
++#endif
++  {"dc.b", cons, 1},
++  {"dc.d", float_cons, 'd'},
++  {"dc.l", cons, 4},
++  {"dc.s", float_cons, 'f'},
++  {"dc.w", cons, 2},
++  {"dc.x", float_cons, 'x'},
++  {"dcb", s_space, 2},
++  {"dcb.b", s_space, 1},
++  {"dcb.d", s_float_space, 'd'},
++  {"dcb.l", s_space, 4},
++  {"dcb.s", s_float_space, 'f'},
++  {"dcb.w", s_space, 2},
++  {"dcb.x", s_float_space, 'x'},
++  {"ds", s_space, 2},
++  {"ds.b", s_space, 1},
++  {"ds.d", s_space, 8},
++  {"ds.l", s_space, 4},
++  {"ds.p", s_space, 12},
++  {"ds.s", s_space, 4},
++  {"ds.w", s_space, 2},
++  {"ds.x", s_space, 12},
++  {"debug", s_ignore, 0},
++#ifdef S_SET_DESC
++  {"desc", s_desc, 0},
++#endif
++/* dim  */
++  {"double", float_cons, 'd'},
++/* dsect  */
++  {"eject", listing_eject, 0},	/* Formfeed listing.  */
++  {"else", s_else, 0},
++  {"elsec", s_else, 0},
++  {"elseif", s_elseif, (int) O_ne},
++  {"end", s_end, 0},
++  {"endc", s_endif, 0},
++  {"endfunc", s_func, 1},
++  {"endif", s_endif, 0},
++  {"endm", s_bad_end, 0},
++  {"endr", s_bad_end, 1},
++/* endef  */
++  {"equ", s_set, 0},
++  {"equiv", s_set, 1},
++  {"err", s_err, 0},
++  {"error", s_errwarn, 1},
++  {"exitm", s_mexit, 0},
++/* extend  */
++  {"extern", s_ignore, 0},	/* We treat all undef as ext.  */
++  {"appfile", s_app_file, 1},
++  {"appline", s_app_line, 0},
++  {"fail", s_fail, 0},
++  {"file", s_app_file, 0},
++  {"fill", s_fill, 0},
++  {"float", float_cons, 'f'},
++  {"format", s_ignore, 0},
++  {"func", s_func, 0},
++  {"global", s_globl, 0},
++  {"globl", s_globl, 0},
++  {"hword", cons, 2},
++  {"if", s_if, (int) O_ne},
++  {"ifb", s_ifb, 1},
++  {"ifc", s_ifc, 0},
++  {"ifdef", s_ifdef, 0},
++  {"ifeq", s_if, (int) O_eq},
++  {"ifeqs", s_ifeqs, 0},
<<Diff was trimmed, longer than 597 lines>>

---- CVS-web:
    http://cvs.pld-linux.org/SOURCES/binutils-gasp.patch?r1=1.8&r2=1.9&f=u




More information about the pld-cvs-commit mailing list