From ee243aa8d00d007f0b12acd3d055b8b981e21839 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Thu, 16 Apr 1992 22:05:20 -0400 Subject: [PATCH] entered into RCS From-SVN: r753 --- gcc/config/m68k/sgs.h | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/gcc/config/m68k/sgs.h b/gcc/config/m68k/sgs.h index 55f315916c0..023e4e0a307 100644 --- a/gcc/config/m68k/sgs.h +++ b/gcc/config/m68k/sgs.h @@ -382,17 +382,20 @@ do { union { float f; long l;} tem; \ /* At end of a switch table, define LDnnn iff the symbol LInnn was defined. Some SGS assemblers have a bug such that "Lnnn-LInnn-2.b(pc,d0.l*2)" - fails to assemble. Luckily "Lnnn(pc,d0.l*2)" produces the results - we want. This difference can be accommodated by using an assembler + fails to assemble. Luckily "LDnnn(pc,d0.l*2)" produces the results + we want. This difference can be accommodated by making the assembler define such "LDnnn" to be either "Lnnn-LInnn-2.b", "Lnnn", or any other string, as necessary. This is accomplished via the ASM_OUTPUT_CASE_END macro. */ #undef ASM_OUTPUT_CASE_END #define ASM_OUTPUT_CASE_END(FILE,NUM,TABLE) \ - if (RTX_INTEGRATED_P (TABLE)) \ +{ if (switch_table_difference_label_flag) \ asm_fprintf (FILE, "\t%s %LLD%d,%LL%d-%LLI%d-2.b\n",\ - SET_ASM_OP, (NUM), (NUM), (NUM)) + SET_ASM_OP, (NUM), (NUM), (NUM)) \ + switch_table_difference_label_flag = 0; } + +int switch_table_difference_label_flag; /* This is how to output an element of a case-vector that is relative. */ -- 2.30.2