summaryrefslogtreecommitdiff
path: root/gas/config/tc-arm.h
diff options
context:
space:
mode:
authorDaniel Gutson <daniel.gutson@tallertechnologies.com>2014-03-19 14:31:25 +0000
committerNick Clifton <nickc@redhat.com>2014-03-19 14:31:25 +0000
commit2e6976a881711242cc151971b83e36844edbc310 (patch)
tree7fa14ffd87bbb539a72b2fd72f8454886960decb /gas/config/tc-arm.h
parente57190430e09d0df5c2277a527eb2bed4328fd6c (diff)
downloadbinutils-gdb-2e6976a881711242cc151971b83e36844edbc310.tar.gz
Add support for ARM assembler produced by CodeCompositor Studio.
* 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): Rename to arm_comment_chars. (line_separator_chars): Rename to arm_line_separator_chars. (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. (tc_comment_chars): Define. (tc_line_separator_chars): Define. * app.c (do_scrub_begin): Use tc_line_separator_chars, if defined. * read.c (read_begin): Likewise. * doc/as.texinfo: Add documentation for the -mccs command line option. * doc/c-arm.texi: Likewise. * doc/internals.texi: Document tc_line_separator_chars. * NEWS: Mention the new feature. * gas/arm/ccs.s: New test case. * gas/arm/ccs.d: New expected disassembly.
Diffstat (limited to 'gas/config/tc-arm.h')
-rw-r--r--gas/config/tc-arm.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/gas/config/tc-arm.h b/gas/config/tc-arm.h
index ea078015a08..f88fa297611 100644
--- a/gas/config/tc-arm.h
+++ b/gas/config/tc-arm.h
@@ -81,6 +81,10 @@ struct fix;
/* We support double slash line-comments for compatibility with the ARM AArch64 Assembler. */
#define DOUBLESLASH_LINE_COMMENTS
+/* We conditionally support labels without a colon. */
+#define LABELS_WITHOUT_COLONS codecomposer_syntax
+extern bfd_boolean codecomposer_syntax;
+
#define tc_symbol_chars arm_symbol_chars
extern const char arm_symbol_chars[];
@@ -100,6 +104,9 @@ extern int arm_optimize_expr (expressionS *, operatorT, expressionS *);
#define md_start_line_hook() arm_start_line_hook ()
+#define TC_START_LABEL_WITHOUT_COLON(c, l) tc_start_label_without_colon (c, l)
+extern bfd_boolean tc_start_label_without_colon (char, const char *);
+
#define tc_frob_label(S) arm_frob_label (S)
/* We also need to mark assembler created symbols: */
@@ -363,3 +370,9 @@ void tc_pe_dwarf2_emit_offset (symbolS *, unsigned int);
extern int arm_convert_symbolic_attribute (const char *);
extern int arm_apply_sym_value (struct fix *);
#endif
+
+#define tc_comment_chars arm_comment_chars
+extern char arm_comment_chars[];
+
+#define tc_line_separator_chars arm_line_separator_chars
+extern char arm_line_separator_chars[];