MMIX: use current_location() directly
It's no longer a static function, so it can be used without involving a
wrapper function plus an indirect function call.
diff --git a/gas/config/tc-mmix.c b/gas/config/tc-mmix.c
index f2a16e6..157cb72 100644
--- a/gas/config/tc-mmix.c
+++ b/gas/config/tc-mmix.c
@@ -441,16 +441,6 @@
md_number_to_chars (opcodep + i * 4, SWYM_INSN_BYTE << 24, 4);
}
-/* See macro md_parse_name in tc-mmix.h. */
-
-int
-mmix_current_location (void (*fn) (expressionS *), expressionS *exp)
-{
- (*fn) (exp);
-
- return 1;
-}
-
/* Get up to three operands, filling them into the exp array.
General idea and code stolen from the tic80 port. */
diff --git a/gas/config/tc-mmix.h b/gas/config/tc-mmix.h
index 08061b8..5e70617 100644
--- a/gas/config/tc-mmix.h
+++ b/gas/config/tc-mmix.h
@@ -48,15 +48,12 @@
extern void mmix_md_finish (void);
#define md_finish mmix_md_finish
-extern int mmix_current_location \
- (void (*fn) (expressionS *), expressionS *);
extern int mmix_parse_predefined_name (char *, expressionS *);
extern char *mmix_current_prefix;
-/* A bit ugly, since we "know" that there's a static function
- current_location that does what we want. We also strip off a leading
- ':' in another ugly way.
+/* Besides the special casing of "@" we also strip off a leading ':' in an
+ ugly way.
The [DVWIOUZX]_Handler symbols are provided when-used. */
@@ -65,7 +62,7 @@
(! mmix_gnu_syntax \
&& (name[0] == '@' \
? (! is_part_of_name (name[1]) \
- && mmix_current_location (current_location, exp)) \
+ && (current_location (exp), 1)) \
: ((name[0] == ':' || ISUPPER (name[0])) \
&& mmix_parse_predefined_name (name, exp))))