[PATCH] add CodeComposer Studio assembly syntax compatibility support

Daniel Gutson daniel.gutson@tallertechnologies.com
Thu Feb 27 15:20:00 GMT 2014


The attached patch adds support for the TI's CodeComposer Studio assembly
syntax to the assembler. This mode is enabled by specifying the new -mccs flag
I added.

I needed to change the comment_chars, line_comment_chars and
line_separator_chars arrays at runtime (depending on the command line options),
so I removed the 'const' specifier from their declaration. I propagated this
change to all the architectures, but only tested ARM (please help with the
rest). I think that the ability to change the content of such arrays at runtime
could be helpful in other future cases as well.

All tests passed including the new one I added to test this new mode.

I could not test the other architectures since I'm not sure the best configure
options to build them. Is there a way to make them all for testing purposes?

Thanks.

2014-02-27  Daniel Gutson <daniel.gutson@tallertechnologies.com>

gas/

    * read.h (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-arm.c (codecomposer_syntax): New flag that states whether the
      CCS syntax compatibility mode is on or off.
      (asmfunc_states): New enum to represent the asmfunc directive state.
      (asmfunc_state): New variable holding the asmfunc directive state.
      (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
      (s_ccs_ref): New function that handles the .ref directive.
      (asmfunc_debug): New function.
      (s_ccs_asmfunc): New function that handles the .asmfunc directive.
      (s_ccs_endasmfunc): New function that handles the .endasmfunc directive.
      (s_ccs_def): New function that handles the .def directive.
      (tc_start_label_without_colon): New function.
      (md_pseudo_table): Added new CCS directives.
      (arm_ccs_mode): New function that handles the -mccs command line option.
      (arm_long_opts): Added new -mccs command line option.
    * config/tc-arm.h (LABELS_WITHOUT_COLONS): New macro.
      (TC_START_LABEL_WITHOUT_COLON): New macro.
      (tc_start_label_without_colon): Added extern function declaration.
    * config/tc-aarch64.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-alpha.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-arc.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-avr.c  (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-bfin.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-cr16.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-cris.c (line_comment_chars): Removed const modifier.
      (line_separator_chars): alike.
    * config/tc-crx.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-d10v.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-d30v.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-dlx.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-epiphany.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-fr30.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-frv.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-h8300.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-hppa.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-i370.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-i386.c (line_comment_chars): Removed const modifier.
      (line_separator_chars): alike.
    * config/tc-i860.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-i960.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-ia64.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-ip2k.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-iq2000.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-lm32.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-m32c.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-m32r.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-m68hc11.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-m68k.c (line_comment_chars): Removed const modifier.
      (line_separator_chars): alike.
    * config/tc-mcore.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-mep.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-metag.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-microblaze.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-mips.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-mmix.c (line_comment_chars): Removed const modifier.
      (line_separator_chars): alike.
    * config/tc-mn10200.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-mn10300.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-moxie.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-msp430.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-mt.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-nds32.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-nios2.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-ns32k.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-openrisc.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-or32.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-pdp11.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-pj.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-ppc.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-rl78.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-rx.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-s390.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-score.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-sh.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-sparc.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-spu.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-tic30.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-tic4x.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-tic54x.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-tic6x.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-tilegx.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-tilepro.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-v850.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-vax.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-xc16x.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-xgate.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-xstormy16.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-xtensa.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-z80.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.
    * config/tc-z8k.c (comment_chars): Removed const modifier.
      (line_comment_chars): alike.
      (line_separator_chars): alike.

gas/doc/
    * as.texinfo: added documentation for the -mccs command line option.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ccs.patch
Type: text/x-patch
Size: 56114 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/binutils/attachments/20140227/993ac454/attachment.bin>


More information about the Binutils mailing list