[patch] (z80,comitted): remove redundant code
Arnold Metselaar
arnold.metselaar@planet.nl
Mon Apr 10 00:49:00 GMT 2006
Hi,
There was a fix for PR997 in config/tc-z80.c. Alan Modra has now put a very
similar fix in frags.c and expr.c. Since the problem and the fix are machine independent
I have removed the fix from config/tc-z80.c.
Arnold
gas/Changelog:
* config/tc-z80.c (z80_optimize_expr): Removed; redundant since 2006-04-04.
* config/tc-z80.h (z80_optimize_expr, md_optimize_expr): Removed.
Index: config/tc-z80.c
===================================================================
RCS file: /cvs/src/src/gas/config/tc-z80.c,v
retrieving revision 1.4
diff -u -p -r1.4 tc-z80.c
--- config/tc-z80.c 5 Feb 2006 11:57:35 -0000 1.4
+++ config/tc-z80.c 9 Apr 2006 17:52:40 -0000
@@ -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)
Index: config/tc-z80.h
===================================================================
RCS file: /cvs/src/src/gas/config/tc-z80.h,v
retrieving revision 1.3
diff -u -p -r1.3 tc-z80.h
--- config/tc-z80.h 5 Feb 2006 11:57:35 -0000 1.3
+++ config/tc-z80.h 9 Apr 2006 17:52:40 -0000
@@ -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
More information about the Binutils
mailing list