Skip to content

Commit

Permalink
gas/
Browse files Browse the repository at this point in the history
	* hash.c (hash_new_sized): Make it global.
	* hash.h: Declare it.
	* macro.c (define_macro): Use hash_new_sized instead of hash_new,
	pass a small size.
  • Loading branch information
Roland McGrath committed Jan 10, 2013
1 parent 861ea9c commit 4c665b7
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 16 deletions.
7 changes: 7 additions & 0 deletions gas/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
2013-01-10 Roland McGrath <[email protected]>

* hash.c (hash_new_sized): Make it global.
* hash.h: Declare it.
* macro.c (define_macro): Use hash_new_sized instead of hash_new,
pass a small size.

2013-01-10 Will Newton <[email protected]>

* Makefile.am: Add Meta.
Expand Down
4 changes: 2 additions & 2 deletions gas/hash.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/* hash.c -- gas hash table code
Copyright 1987, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999,
2000, 2001, 2002, 2003, 2005, 2007, 2008, 2009, 2011
2000, 2001, 2002, 2003, 2005, 2007, 2008, 2009, 2011, 2013
Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler.
Expand Down Expand Up @@ -83,7 +83,7 @@ set_gas_hash_table_size (unsigned long size)

/* Create a hash table. This return a control block. */

static struct hash_control *
struct hash_control *
hash_new_sized (unsigned long size)
{
unsigned long alloc;
Expand Down
3 changes: 2 additions & 1 deletion gas/hash.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* hash.h -- header file for gas hash table routines
Copyright 1987, 1992, 1993, 1995, 1999, 2003, 2005, 2007, 2008
Copyright 1987, 1992, 1993, 1995, 1999, 2003, 2005, 2007, 2008, 2013
Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler.
Expand Down Expand Up @@ -31,6 +31,7 @@ void set_gas_hash_table_size (unsigned long);
/* Create a hash table. This return a control block. */

extern struct hash_control *hash_new (void);
extern struct hash_control *hash_new_sized (unsigned long);

/* Delete a hash table, freeing all allocated memory. */

Expand Down
26 changes: 13 additions & 13 deletions gas/macro.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/* macro.c - macro support for gas
Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
2004, 2005, 2006, 2007, 2008, 2011, 2012 Free Software Foundation, Inc.
2004, 2005, 2006, 2007, 2008, 2011, 2012, 2013 Free Software Foundation, Inc.
Written by Steve and Judy Chamberlain of Cygnus Support,
[email protected]
Expand Down Expand Up @@ -574,9 +574,9 @@ do_formals (macro_entry *macro, size_t idx, sb *in)
formal_entry *formal = new_formal ();

/* Add a special NARG formal, which macro_expand will set to the
number of arguments. */
number of arguments. */
/* The same MRI assemblers which treat '@' characters also use
the name $NARG. At least until we find an exception. */
the name $NARG. At least until we find an exception. */
if (macro_strip_at)
name = "$NARG";
else
Expand Down Expand Up @@ -642,7 +642,7 @@ define_macro (size_t idx, sb *in, sb *label,

macro->formal_count = 0;
macro->formals = 0;
macro->formal_hash = hash_new ();
macro->formal_hash = hash_new_sized (7);

idx = sb_skip_white (idx, in);
if (! buffer_and_nest ("MACRO", "ENDM", &macro->sub, get_line))
Expand Down Expand Up @@ -950,13 +950,13 @@ macro_expand_body (sb *in, sb *out, formal_entry *formals,
if (ptr == NULL)
{
/* FIXME: We should really return a warning string here,
but we can't, because the == might be in the MRI
comment field, and, since the nature of the MRI
comment field depends upon the exact instruction
being used, we don't have enough information here to
figure out whether it is or not. Instead, we leave
the == in place, which should cause a syntax error if
it is not in a comment. */
but we can't, because the == might be in the MRI
comment field, and, since the nature of the MRI
comment field depends upon the exact instruction
being used, we don't have enough information here to
figure out whether it is or not. Instead, we leave
the == in place, which should cause a syntax error if
it is not in a comment. */
sb_add_char (out, '=');
sb_add_char (out, '=');
sb_add_sb (out, &t);
Expand Down Expand Up @@ -1023,7 +1023,7 @@ macro_expand (size_t idx, sb *in, macro_entry *m, sb *out)
if (macro_mri)
{
/* The macro may be called with an optional qualifier, which may
be referred to in the macro body as \0. */
be referred to in the macro body as \0. */
if (idx < in->len && in->ptr[idx] == '.')
{
/* The Microtec assembler ignores this if followed by a white space.
Expand Down Expand Up @@ -1349,7 +1349,7 @@ expand_irp (int irpc, size_t idx, sb *in, sb *out, size_t (*get_line) (sb *))

if (irpc)
in_quotes = ! in_quotes;

nxt = sb_skip_white (idx + 1, in);
if (nxt >= in->len)
{
Expand Down

0 comments on commit 4c665b7

Please sign in to comment.