* config/mips/mips.h (ASM_OUTPUT_CASE_LABEL): Delete.
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 13 Apr 2005 20:46:28 +0000 (20:46 +0000)
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 13 Apr 2005 20:46:28 +0000 (20:46 +0000)
(JUMP_TABLES_IN_TEXT_SECTION): Define.
* config/mips/mips.c (mips16_insn_length): Remove reference to
JUMP_TABLES_IN_TEXT_SECTION.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@98111 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/mips/mips.c
gcc/config/mips/mips.h

index 507bef1..0ce7275 100644 (file)
@@ -1,3 +1,10 @@
+2005-04-13  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.h (ASM_OUTPUT_CASE_LABEL): Delete.
+       (JUMP_TABLES_IN_TEXT_SECTION): Define.
+       * config/mips/mips.c (mips16_insn_length): Remove reference to
+       JUMP_TABLES_IN_TEXT_SECTION.
+
 2005-04-13 Fariborz Jahanian <fjahanian@apple.com>
 
        * simplify-rtx.c (simplify_binary_operation_1): Return
index 0a82ce1..9e1a308 100644 (file)
@@ -7988,11 +7988,7 @@ dump_constants (struct mips16_constant *constants, rtx insn)
   emit_barrier_after (insn);
 }
 
-/* Return the length of instruction INSN.
-
-   ??? MIPS16 switch tables go in .text, but we don't define
-   JUMP_TABLES_IN_TEXT_SECTION, so get_attr_length will not
-   compute their lengths correctly.  */
+/* Return the length of instruction INSN.  */
 
 static int
 mips16_insn_length (rtx insn)
index 2c6e066..e2118e5 100644 (file)
@@ -2576,18 +2576,9 @@ do {                                                                     \
             LOCAL_LABEL_PREFIX, VALUE);                                \
 } while (0)
 
-/* When generating mips16 code we want to put the jump table in the .text
-   section.  In all other cases, we want to put the jump table in the .rdata
-   section.  Unfortunately, we can't use JUMP_TABLES_IN_TEXT_SECTION, because
-   it is not conditional.  Instead, we use ASM_OUTPUT_CASE_LABEL to switch back
-   to the .text section if appropriate.  */
-#undef ASM_OUTPUT_CASE_LABEL
-#define ASM_OUTPUT_CASE_LABEL(FILE, PREFIX, NUM, INSN)                 \
-do {                                                                   \
-  if (TARGET_MIPS16)                                                   \
-    function_section (current_function_decl);                          \
-  (*targetm.asm_out.internal_label) (FILE, PREFIX, NUM);               \
-} while (0)
+/* When generating MIPS16 code, we want the jump table to be in the text
+   section so that we can load its address using a PC-relative addition.  */
+#define JUMP_TABLES_IN_TEXT_SECTION TARGET_MIPS16
 
 /* This is how to output an assembler line
    that says to advance the location counter