Use new hex-value code in libiberty:
* Makefile.in (VMS_OTHER_OBJS): Add ../libiberty/hex.o. (OBJS): Delete hex-value.o. (REAL_SOURCES): Delete hex-value.c. (hex-value.o): Delete dependencies. * hex-value.c: Deleted. * as.c (main): Call hex_init. * expr.c, config/tc-mips.c: Include libiberty.h. Replace hex_value array references with hex_* macros.
This commit is contained in:
parent
5e815a37fa
commit
3a762a0bfd
|
@ -1,5 +1,26 @@
|
||||||
|
Thu Jan 12 17:56:24 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
|
||||||
|
|
||||||
|
* Makefile.in (VMS_OTHER_OBJS): Add ../libiberty/hex.o.
|
||||||
|
(OBJS): Delete hex-value.o.
|
||||||
|
(REAL_SOURCES): Delete hex-value.c.
|
||||||
|
(hex-value.o): Delete dependencies.
|
||||||
|
* hex-value.c: Deleted.
|
||||||
|
* as.c (main): Call hex_init.
|
||||||
|
* expr.c, config/tc-mips.c: Include libiberty.h. Replace
|
||||||
|
hex_value array references with hex_* macros.
|
||||||
|
|
||||||
Wed Jan 11 17:51:38 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
|
Wed Jan 11 17:51:38 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
|
||||||
|
|
||||||
|
* config/tc-h8300.h (COFF_FLAGS): Don't define.
|
||||||
|
* config/tc-h8500.h (COFF_FLAGS), config/tc-sh.h (COFF_FLAGS),
|
||||||
|
config/tc-z8k.h (COFF_FLAGS): Ditto.
|
||||||
|
start-sanitize-rce
|
||||||
|
* config/tc-rce.h (COFF_FLAGS): Ditto.
|
||||||
|
end-sanitize-rce
|
||||||
|
|
||||||
|
* config/obj-coff.c (KEEP_RELOC_INFO): Make sure it's always
|
||||||
|
defined.
|
||||||
|
|
||||||
* config/tc-m68k.c (m68k_ip, cases AOFF and AINDEX): Don't
|
* config/tc-m68k.c (m68k_ip, cases AOFF and AINDEX): Don't
|
||||||
generate 68020 addressing modes for a 68000 processor.
|
generate 68020 addressing modes for a 68000 processor.
|
||||||
(md_estimate_size_before_relax, cases PCREL and PCLEA): Ditto.
|
(md_estimate_size_before_relax, cases PCREL and PCLEA): Ditto.
|
||||||
|
|
|
@ -6598,8 +6598,6 @@ md_obj_end ()
|
||||||
as_warn ("missing `.end' at end of assembly");
|
as_warn ("missing `.end' at end of assembly");
|
||||||
}
|
}
|
||||||
|
|
||||||
extern char hex_value[];
|
|
||||||
|
|
||||||
static long
|
static long
|
||||||
get_number ()
|
get_number ()
|
||||||
{
|
{
|
||||||
|
@ -6621,7 +6619,7 @@ get_number ()
|
||||||
while (isxdigit (*input_line_pointer))
|
while (isxdigit (*input_line_pointer))
|
||||||
{
|
{
|
||||||
val <<= 4;
|
val <<= 4;
|
||||||
val |= hex_value[(int) *input_line_pointer++];
|
val |= hex_value (*input_line_pointer++);
|
||||||
}
|
}
|
||||||
return negative ? -val : val;
|
return negative ? -val : val;
|
||||||
}
|
}
|
||||||
|
|
24
gas/expr.c
24
gas/expr.c
|
@ -28,13 +28,12 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include "as.h"
|
#include "as.h"
|
||||||
|
#include "libiberty.h"
|
||||||
#include "obstack.h"
|
#include "obstack.h"
|
||||||
|
|
||||||
static void floating_constant PARAMS ((expressionS * expressionP));
|
static void floating_constant PARAMS ((expressionS * expressionP));
|
||||||
static void integer_constant PARAMS ((int radix, expressionS * expressionP));
|
static void integer_constant PARAMS ((int radix, expressionS * expressionP));
|
||||||
static void clean_up_expression PARAMS ((expressionS * expressionP));
|
static void clean_up_expression PARAMS ((expressionS * expressionP));
|
||||||
static symbolS *make_expr_symbol PARAMS ((expressionS * expressionP));
|
|
||||||
|
|
||||||
extern const char EXP_CHARS[], FLT_CHARS[];
|
extern const char EXP_CHARS[], FLT_CHARS[];
|
||||||
|
|
||||||
|
@ -42,7 +41,7 @@ extern const char EXP_CHARS[], FLT_CHARS[];
|
||||||
build expressions up out of other expressions. The symbol is put
|
build expressions up out of other expressions. The symbol is put
|
||||||
into the fake section expr_section. */
|
into the fake section expr_section. */
|
||||||
|
|
||||||
static symbolS *
|
symbolS *
|
||||||
make_expr_symbol (expressionP)
|
make_expr_symbol (expressionP)
|
||||||
expressionS *expressionP;
|
expressionS *expressionP;
|
||||||
{
|
{
|
||||||
|
@ -61,11 +60,11 @@ make_expr_symbol (expressionP)
|
||||||
expr_section is convenient for the old a.out code, for which
|
expr_section is convenient for the old a.out code, for which
|
||||||
S_GET_SEGMENT does not always retrieve the value put in by
|
S_GET_SEGMENT does not always retrieve the value put in by
|
||||||
S_SET_SEGMENT. */
|
S_SET_SEGMENT. */
|
||||||
symbolP = symbol_new (fake,
|
symbolP = symbol_create (fake,
|
||||||
(expressionP->X_op == O_constant
|
(expressionP->X_op == O_constant
|
||||||
? absolute_section
|
? absolute_section
|
||||||
: expr_section),
|
: expr_section),
|
||||||
0, &zero_address_frag);
|
0, &zero_address_frag);
|
||||||
symbolP->sy_value = *expressionP;
|
symbolP->sy_value = *expressionP;
|
||||||
|
|
||||||
if (expressionP->X_op == O_constant)
|
if (expressionP->X_op == O_constant)
|
||||||
|
@ -140,7 +139,6 @@ integer_constant (radix, expressionP)
|
||||||
symbolS *symbolP; /* points to symbol */
|
symbolS *symbolP; /* points to symbol */
|
||||||
|
|
||||||
int small; /* true if fits in 32 bits. */
|
int small; /* true if fits in 32 bits. */
|
||||||
extern const char hex_value[]; /* in hex_value.c */
|
|
||||||
|
|
||||||
/* May be bignum, or may fit in 32 bits. */
|
/* May be bignum, or may fit in 32 bits. */
|
||||||
/* Most numbers fit into 32 bits, and we want this case to be fast.
|
/* Most numbers fit into 32 bits, and we want this case to be fast.
|
||||||
|
@ -188,7 +186,7 @@ integer_constant (radix, expressionP)
|
||||||
start = input_line_pointer;
|
start = input_line_pointer;
|
||||||
c = *input_line_pointer++;
|
c = *input_line_pointer++;
|
||||||
for (number = 0;
|
for (number = 0;
|
||||||
(digit = hex_value[(unsigned char) c]) < maxdig;
|
(digit = hex_value (c)) < maxdig;
|
||||||
c = *input_line_pointer++)
|
c = *input_line_pointer++)
|
||||||
{
|
{
|
||||||
number = number * radix + digit;
|
number = number * radix + digit;
|
||||||
|
@ -211,7 +209,7 @@ integer_constant (radix, expressionP)
|
||||||
input_line_pointer = start; /*->1st digit. */
|
input_line_pointer = start; /*->1st digit. */
|
||||||
c = *input_line_pointer++;
|
c = *input_line_pointer++;
|
||||||
for (;
|
for (;
|
||||||
(carry = hex_value[(unsigned char) c]) < maxdig;
|
(carry = hex_value (c)) < maxdig;
|
||||||
c = *input_line_pointer++)
|
c = *input_line_pointer++)
|
||||||
{
|
{
|
||||||
for (pointer = generic_bignum;
|
for (pointer = generic_bignum;
|
||||||
|
@ -776,8 +774,8 @@ clean_up_expression (expressionP)
|
||||||
&& (S_GET_VALUE (expressionP->X_op_symbol)
|
&& (S_GET_VALUE (expressionP->X_op_symbol)
|
||||||
== S_GET_VALUE (expressionP->X_add_symbol))))
|
== S_GET_VALUE (expressionP->X_add_symbol))))
|
||||||
{
|
{
|
||||||
bfd_vma diff = (S_GET_VALUE (expressionP->X_add_symbol)
|
addressT diff = (S_GET_VALUE (expressionP->X_add_symbol)
|
||||||
- S_GET_VALUE (expressionP->X_op_symbol));
|
- S_GET_VALUE (expressionP->X_op_symbol));
|
||||||
|
|
||||||
expressionP->X_op = O_constant;
|
expressionP->X_op = O_constant;
|
||||||
expressionP->X_add_symbol = NULL;
|
expressionP->X_add_symbol = NULL;
|
||||||
|
|
|
@ -1,62 +0,0 @@
|
||||||
/* hex_value.c - char=>radix-value -
|
|
||||||
Copyright (C) 1987, 1990, 1991, 1992, 1994 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, 675 Mass Ave, Cambridge, MA 02139, USA. */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Export: Hex_value[]. Converts digits to their radix-values.
|
|
||||||
* As distributed assumes 8 bits per char (256 entries) and ASCII.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define __ (42) /* blatently illegal digit value */
|
|
||||||
/* exceeds any normal radix */
|
|
||||||
|
|
||||||
#if (__STDC__ != 1)
|
|
||||||
#ifndef const
|
|
||||||
#define const /* empty */
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
const char
|
|
||||||
hex_value[256] =
|
|
||||||
{ /* for fast ASCII -> binary */
|
|
||||||
__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __,
|
|
||||||
__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __,
|
|
||||||
__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __,
|
|
||||||
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, __, __, __, __, __, __,
|
|
||||||
__, 10, 11, 12, 13, 14, 15, __, __, __, __, __, __, __, __, __,
|
|
||||||
__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __,
|
|
||||||
__, 10, 11, 12, 13, 14, 15, __, __, __, __, __, __, __, __, __,
|
|
||||||
__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __,
|
|
||||||
__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __,
|
|
||||||
__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __,
|
|
||||||
__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __,
|
|
||||||
__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __,
|
|
||||||
__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __,
|
|
||||||
__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __,
|
|
||||||
__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __,
|
|
||||||
__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __
|
|
||||||
};
|
|
||||||
|
|
||||||
#ifdef VMS
|
|
||||||
dummy2 ()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* end of hex_value.c */
|
|
Loading…
Reference in New Issue