mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-21 01:12:32 +08:00
* read.c (TC_START_LABEL): Add a new argument.
(read_a_source_file): Pass the beginning of the symbol through the new argument of TC_START_LABEL. * config/tc-arm.h (TC_START_LABEL): Add a new argument. * config/tc-bfin.c (bfin_start_label): Only search '(' and '[' from the beginning of the symbol. * config/tc-bfin.h (TC_START_LABEL): Add the new argument. * config/tc-d30v.h (TC_START_LABEL): Likewise. * config/tc-fr30.h (TC_START_LABEL): Likewise. * config/tc-m32c.h (TC_START_LABEL): Likewise. * config/tc-m32r.h (TC_START_LABEL): Likewise. * config/tc-mep.h (TC_START_LABEL): Likewise. testsuite/ * gas/bfin/stack2.s: Add pop multiple instruction with a label on the same line. * gas/bfin/stack2.d: Adjust accordingly.
This commit is contained in:
parent
194ca99d08
commit
5e8c8f8f89
@ -1,3 +1,18 @@
|
||||
2009-09-01 Jie Zhang <jie.zhang@analog.com>
|
||||
|
||||
* read.c (TC_START_LABEL): Add a new argument.
|
||||
(read_a_source_file): Pass the beginning of the symbol through
|
||||
the new argument of TC_START_LABEL.
|
||||
* config/tc-arm.h (TC_START_LABEL): Add a new argument.
|
||||
* config/tc-bfin.c (bfin_start_label): Only search '(' and '['
|
||||
from the beginning of the symbol.
|
||||
* config/tc-bfin.h (TC_START_LABEL): Add the new argument.
|
||||
* config/tc-d30v.h (TC_START_LABEL): Likewise.
|
||||
* config/tc-fr30.h (TC_START_LABEL): Likewise.
|
||||
* config/tc-m32c.h (TC_START_LABEL): Likewise.
|
||||
* config/tc-m32r.h (TC_START_LABEL): Likewise.
|
||||
* config/tc-mep.h (TC_START_LABEL): Likewise.
|
||||
|
||||
2009-08-31 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR gas/10570
|
||||
|
@ -161,7 +161,7 @@ void arm_copy_symbol_attributes (symbolS *, symbolS *);
|
||||
(arm_copy_symbol_attributes (DEST, SRC))
|
||||
#endif
|
||||
|
||||
#define TC_START_LABEL(C,STR) (c == ':' || (c == '/' && arm_data_in_code ()))
|
||||
#define TC_START_LABEL(C,S,STR) (C == ':' || (C == '/' && arm_data_in_code ()))
|
||||
#define tc_canonicalize_symbol_name(str) arm_canonicalize_symbol_name (str);
|
||||
#define obj_adjust_symtab() arm_adjust_symtab ()
|
||||
|
||||
|
@ -2175,15 +2175,14 @@ bfin_eol_in_insn (char *line)
|
||||
}
|
||||
|
||||
bfd_boolean
|
||||
bfin_start_label (char *ptr)
|
||||
bfin_start_label (char *s, char *ptr)
|
||||
{
|
||||
ptr--;
|
||||
while (!ISSPACE (*ptr) && !is_end_of_line[(unsigned char) *ptr])
|
||||
ptr--;
|
||||
|
||||
ptr++;
|
||||
if (*ptr == '(' || *ptr == '[')
|
||||
return FALSE;
|
||||
while (s != ptr)
|
||||
{
|
||||
if (*s == '(' || *s == '[')
|
||||
return FALSE;
|
||||
s++;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -40,7 +40,7 @@
|
||||
#define WORKING_DOT_WORD
|
||||
|
||||
extern void bfin_start_line_hook (void);
|
||||
extern bfd_boolean bfin_start_label (char *);
|
||||
extern bfd_boolean bfin_start_label (char *, char *);
|
||||
|
||||
#define md_start_line_hook() bfin_start_line_hook()
|
||||
#define md_number_to_chars number_to_chars_littleendian
|
||||
@ -61,7 +61,7 @@ extern bfd_boolean bfin_eol_in_insn (char *);
|
||||
|
||||
#define DOUBLESLASH_LINE_COMMENTS
|
||||
|
||||
#define TC_START_LABEL(ch ,ptr) (ch == ':' && bfin_start_label (ptr))
|
||||
#define TC_START_LABEL(c, s, ptr) (c == ':' && bfin_start_label (s, ptr))
|
||||
#define tc_fix_adjustable(FIX) bfin_fix_adjustable (FIX)
|
||||
extern bfd_boolean bfin_fix_adjustable (struct fix *);
|
||||
|
||||
|
@ -48,7 +48,7 @@ extern long md_pcrel_from_section (struct fix *, segT);
|
||||
int d30v_cleanup (int);
|
||||
#define md_after_pass_hook() d30v_cleanup (FALSE)
|
||||
#define md_cleanup() d30v_cleanup (FALSE)
|
||||
#define TC_START_LABEL(ch, ptr) (ch == ':' && d30v_cleanup (FALSE))
|
||||
#define TC_START_LABEL(ch, s, ptr) (ch == ':' && d30v_cleanup (FALSE))
|
||||
void d30v_start_line (void);
|
||||
#define md_start_line_hook() d30v_start_line ()
|
||||
|
||||
|
@ -59,12 +59,8 @@ extern const struct relax_type md_relax_table[];
|
||||
|
||||
/* We need a special version of the TC_START_LABEL macro so that we
|
||||
allow the LDI:8, LDI:20, LDI:32 and delay slot instructions to be
|
||||
parsed as such. Note - in a HORRIBLE HACK, we make use of the
|
||||
knowledge that this marco is only ever evaluated in one place
|
||||
(read_a_source_file in read.c) where we can access the local
|
||||
variable 's' - the start of the symbol that was terminated by
|
||||
'character'. Also we need to be able to change the contents of
|
||||
parsed as such. We need to be able to change the contents of
|
||||
the local variable 'c' which is passed to this macro as 'character'. */
|
||||
#define TC_START_LABEL(character, i_l_p) \
|
||||
#define TC_START_LABEL(character, s, i_l_p) \
|
||||
((character) != ':' ? 0 : (character = fr30_is_colon_insn (s)) ? 0 : ((character = ':'), 1))
|
||||
extern char fr30_is_colon_insn (char *);
|
||||
|
@ -77,13 +77,9 @@ extern long md_pcrel_from_section (struct fix *, segT);
|
||||
|
||||
/* We need a special version of the TC_START_LABEL macro so that we
|
||||
allow the :Z, :S, :Q and :G suffixes to be
|
||||
parsed as such. Note - in a HORRIBLE HACK, we make use of the
|
||||
knowledge that this marco is only ever evaluated in one place
|
||||
(read_a_source_file in read.c) where we can access the local
|
||||
variable 's' - the start of the symbol that was terminated by
|
||||
'character'. Also we need to be able to change the contents of
|
||||
parsed as such. We need to be able to change the contents of
|
||||
the local variable 'c' which is passed to this macro as 'character'. */
|
||||
#define TC_START_LABEL(character, i_l_p) \
|
||||
#define TC_START_LABEL(character, s, i_l_p) \
|
||||
((character) != ':' ? 0 : (character = m32c_is_colon_insn (s)) ? 0 : ((character = ':'), 1))
|
||||
extern char m32c_is_colon_insn (char *);
|
||||
|
||||
|
@ -102,7 +102,7 @@ extern int m32r_force_relocation (struct fix *);
|
||||
/* Ensure insns at labels are aligned to 32 bit boundaries. */
|
||||
int m32r_fill_insn (int);
|
||||
#define md_after_pass_hook() m32r_fill_insn (1)
|
||||
#define TC_START_LABEL(ch, ptr) (ch == ':' && m32r_fill_insn (0))
|
||||
#define TC_START_LABEL(ch, s, ptr) (ch == ':' && m32r_fill_insn (0))
|
||||
|
||||
#define md_cleanup m32r_elf_section_change_hook
|
||||
#define md_elf_section_change_hook m32r_elf_section_change_hook
|
||||
|
@ -97,7 +97,7 @@ extern void mep_prepare_relax_scan (fragS *, offsetT *, relax_substateT);
|
||||
#define VTEXT_SECTION_NAME ".vtext"
|
||||
|
||||
/* Needed to process pending instructions when a label is encountered. */
|
||||
#define TC_START_LABEL(ch, ptr) ((ch == ':') && mep_flush_pending_output ())
|
||||
#define TC_START_LABEL(ch, s, ptr) ((ch == ':') && mep_flush_pending_output ())
|
||||
|
||||
#define tc_unrecognized_line(c) mep_unrecognized_line (c)
|
||||
extern int mep_unrecognized_line (int);
|
||||
|
@ -42,7 +42,7 @@
|
||||
#include "dw2gencfi.h"
|
||||
|
||||
#ifndef TC_START_LABEL
|
||||
#define TC_START_LABEL(x,y) (x == ':')
|
||||
#define TC_START_LABEL(x,y,z) (x == ':')
|
||||
#endif
|
||||
|
||||
/* Set by the object-format or the target. */
|
||||
@ -760,7 +760,7 @@ read_a_source_file (char *name)
|
||||
S points to the beginning of the symbol.
|
||||
[In case of pseudo-op, s->'.'.]
|
||||
Input_line_pointer->'\0' where c was. */
|
||||
if (TC_START_LABEL (c, input_line_pointer))
|
||||
if (TC_START_LABEL (c, s, input_line_pointer))
|
||||
{
|
||||
if (flag_m68k_mri)
|
||||
{
|
||||
|
@ -1,3 +1,9 @@
|
||||
2009-09-01 Jie Zhang <jie.zhang@analog.com>
|
||||
|
||||
* gas/bfin/stack2.s: Add pop multiple instruction with a label
|
||||
on the same line.
|
||||
* gas/bfin/stack2.d: Adjust accordingly.
|
||||
|
||||
2009-08-31 Jan Beulich <jbeulich@novell.com>
|
||||
|
||||
* gas/elf/section5.l: Remove no longer issued warning pattern.
|
||||
|
@ -81,3 +81,5 @@ Disassembly of section .text:
|
||||
94: 00 e8 02 00 LINK 0x8;.*
|
||||
98: 00 e8 ff ff LINK 0x3fffc;.*
|
||||
9c: 01 e8 00 00 UNLINK;
|
||||
a0: b3 05 \(R7:6, P5:3\) = \[SP\+\+\];
|
||||
\.\.\.
|
||||
|
@ -123,3 +123,5 @@ LINK 0X8;
|
||||
LINK 0x3FFFC;
|
||||
|
||||
UNLINK ; /* de-allocate the stack frame (b)*/
|
||||
|
||||
L$L$foo: (R7:6,P5:3) = [SP++]; /* Pop multiple on the same line with a label */
|
||||
|
Loading…
Reference in New Issue
Block a user