From: Arnold Metselaar Date: Sun, 9 Apr 2006 18:08:08 +0000 (+0000) Subject: removed z80_optimize_expr; redundant since 2006-04-04 X-Git-Url: http://git.efficios.com/?a=commitdiff_plain;h=9e75b3faadc24e170d87a6017a31a389274c7f22;p=deliverable%2Fbinutils-gdb.git removed z80_optimize_expr; redundant since 2006-04-04 --- diff --git a/gas/ChangeLog b/gas/ChangeLog index 925d033ca8..6fcec6b200 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2006-04-09 Arnold Metselaar + + * config/tc-z80.c (z80_optimize_expr): Removed; redundant since 2006-04-04. + * config/tc-z80.h (z80_optimize_expr, md_optimize_expr): Removed. + 2006-04-07 Joerg Wunsch * gas/config/tc-avr.c (mcu_types): Add support for attiny261, diff --git a/gas/config/tc-z80.c b/gas/config/tc-z80.c index 76d46f5549..413e336a2c 100644 --- a/gas/config/tc-z80.c +++ b/gas/config/tc-z80.c @@ -460,70 +460,6 @@ check_mach (int ins_type) ins_used |= ins_type; } -/* This function tries to subtract two symbols, the generic code does - that too, but this function tries harder. - The behaviour of this function is not altered by extra - fragmentations caused by the code to produce listings. */ -int -z80_optimize_expr (expressionS *resultP, operatorT left_op, - expressionS *right) -{ - int res, swap, som; - fragS *lfrag, *rfrag, *cur; - - res = 0; - if (left_op == O_subtract - && right->X_op == O_symbol - && resultP->X_op == O_symbol) - { - lfrag = symbol_get_frag (resultP->X_add_symbol); - rfrag = symbol_get_frag (right->X_add_symbol); - - if (S_GET_SEGMENT (right->X_add_symbol) != undefined_section - && (S_GET_SEGMENT (right->X_add_symbol) - == S_GET_SEGMENT (resultP->X_add_symbol))) - { - for (swap = 0; (res == 0) && (swap < 2); ++swap) - { - if (swap) - { - cur = lfrag; - lfrag = rfrag; - rfrag = cur; - } - else - cur = rfrag; - - /* Now som == cur->fr_address - rfrag->address, except - the latter may not have been computed yet. */ - for (som = 0; cur && cur != lfrag; cur = cur->fr_next) - { - if (cur->fr_type == rs_fill) /* Is the size fized? */ - som += cur->fr_fix+cur->fr_offset*cur->fr_var; - else - break; - } - - if (cur == lfrag) - { - resultP->X_add_number -= right->X_add_number; - resultP->X_add_number - += (S_GET_VALUE (resultP->X_add_symbol) - - S_GET_VALUE (right->X_add_symbol)); - som -= lfrag->fr_address - rfrag->fr_address; - /* Correct the result if the fr_address - fields are not computed yet. */ - resultP->X_add_number += (swap ? -som : som); - resultP->X_op = O_constant; - resultP->X_add_symbol = 0; - res = 1; - } - } - } - } - return res; -} - /* Check whether an expression is indirect. */ static int is_indir (const char *s) diff --git a/gas/config/tc-z80.h b/gas/config/tc-z80.h index 0ae318af57..0021fb3943 100644 --- a/gas/config/tc-z80.h +++ b/gas/config/tc-z80.h @@ -55,12 +55,10 @@ /* Define some functions to be called by generic code. */ #define md_end z80_md_end #define md_start_line_hook() { if (z80_start_line_hook ()) continue; } -#define md_optimize_expr z80_optimize_expr #define TC_CONS_FIX_NEW z80_cons_fix_new extern void z80_md_end (void); extern int z80_start_line_hook (void); -extern int z80_optimize_expr (expressionS *, operatorT, expressionS *); extern void z80_cons_fix_new (fragS *, int, int, expressionS *); #define WORKING_DOT_WORD