- allow the LDI:8, LDI:20 and LDI:32 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 the local variable 'c' which is
- passed to this macro as 'character'. */
-#define TC_START_LABEL(character, i_l_p) \
- ((character) != ':' ? 0 : (character = fr30_is_label_start (s)) ? 0 : ((character = ':'), 1))
-extern char fr30_is_label_start PARAMS ((char *));
+ allow the LDI:8, LDI:20, LDI:32 and delay slot instructions to be
+ parsed as such. We need to be able to change the contents of the
+ var storing what was at the NUL delimiter. */
+#define TC_START_LABEL(STR, NUL_CHAR, NEXT_CHAR) \
+ (NEXT_CHAR == ':' && !fr30_is_colon_insn (STR, &NUL_CHAR))
+extern int fr30_is_colon_insn (char *, char *);