For non floating point regs, the following are the HImode names.
For float regs, the stack top is sometimes referred to as "%st(0)"
- instead of just "%st". PRINT_REG in i386.c handles with with the
- "y" code. */
+ instead of just "%st". PRINT_REG handles this with the "y" code. */
#define HI_REGISTER_NAMES \
{"ax","dx","cx","bx","si","di","bp","sp", \
If CODE is 'h', pretend the reg is the `high' byte register.
If CODE is 'y', print "st(0)" instead of "st", if the reg is stack op. */
-extern char *hi_reg_name[];
-extern char *qi_reg_name[];
-extern char *qi_high_reg_name[];
-
#define PRINT_REG(X, CODE, FILE) \
- do { if (REGNO (X) == ARG_POINTER_REGNUM) \
- abort (); \
+ do { static char *hi_reg_name[] = HI_REGISTER_NAMES; \
+ static char *qi_reg_name[] = QI_REGISTER_NAMES; \
+ static char *qi_high_reg_name[] = QI_HIGH_REGISTER_NAMES; \
+ if (REGNO (X) == ARG_POINTER_REGNUM) abort (); \
fprintf (FILE, "%s", RP); \
switch ((CODE == 'w' ? 2 \
: CODE == 'b' ? 1 \
{ \
case 3: \
if (STACK_TOP_P (X)) \
- { \
- fputs ("st(0)", FILE); \
- break; \
- } \
- case 4: \
- case 8: \
- if (!FP_REG_P (X)) fputs ("e", FILE); \
+ { fputs ("st(0)", FILE); break; } \
+ case 4: case 8: \
+ if (! FP_REG_P (X)) fputs ("e", FILE); \
case 2: \
fputs (hi_reg_name[REGNO (X)], FILE); \
break; \