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 (¬es, 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