+#ifdef TC_D10V
+ /* All insns end in a char for which LEX_IS_SYMBOL_COMPONENT is true.
+ Trap is the only short insn that has a first operand that is
+ neither register nor label.
+ We must prevent exef0f ||trap #1 to degenerate to exef0f ||trap#1 .
+ We can't make '#' LEX_IS_SYMBOL_COMPONENT because it is
+ already LEX_IS_LINE_COMMENT_START. However, it is the
+ only character in line_comment_chars for d10v, hence we
+ can recognize it as such. */
+ /* An alternative approach would be to reset the state to 1 when
+ we see '||', '<'- or '->', but that seems to be overkill. */
+ if (state == 10)
+ PUT (' ');
+#endif
+ /* We have a line comment character which is not at the
+ start of a line. If this is also a normal comment
+ character, fall through. Otherwise treat it as a default
+ character. */
+ if (strchr (tc_comment_chars, ch) == NULL
+ && (! scrub_m68k_mri
+ || (ch != '!' && ch != '*')))
+ goto de_fault;
+ if (scrub_m68k_mri
+ && (ch == '!' || ch == '*' || ch == '#')
+ && state != 1
+ && state != 10)
+ goto de_fault;
+ /* Fall through. */
+ case LEX_IS_COMMENT_START:
+#if defined TC_ARM && defined OBJ_ELF
+ /* On the ARM, `@' is the comment character.
+ Unfortunately this is also a special character in ELF .symver
+ directives (and .type, though we deal with those another way).
+ So we check if this line is such a directive, and treat
+ the character as default if so. This is a hack. */
+ if ((symver_state != NULL) && (*symver_state == 0))
+ goto de_fault;
+#endif
+
+#ifdef TC_ARM
+ /* For the ARM, care is needed not to damage occurrences of \@
+ by stripping the @ onwards. Yuck. */
+ if ((to > tostart ? to[-1] : last_char) == '\\')
+ /* Do not treat the @ as a start-of-comment. */
+ goto de_fault;
+#endif