Commit 810c1b83 by Richard Henderson Committed by Richard Henderson

mips.c (function_prologue): Fix argument types.

        * mips.c (function_prologue): Fix argument types.
        * mips.md (casesi): Use emit_jump_insn for casesi_internal.
        (casesi_internal): Write to the scratch register.

From-SVN: r30023
parent a2c8e144
Fri Oct 15 13:48:45 1999 Richard Henderson <rth@cygnus.com>
* mips.c (function_prologue): Fix argument types.
* mips.md (casesi): Use emit_jump_insn for casesi_internal.
(casesi_internal): Write to the scratch register.
1999-10-15 11:16 -0700 Zack Weinberg <zack@bitmover.com> 1999-10-15 11:16 -0700 Zack Weinberg <zack@bitmover.com>
* cppexp.c (cpp_parse_escape): Make static. Change second arg * cppexp.c (cpp_parse_escape): Make static. Change second arg
......
...@@ -6393,7 +6393,7 @@ save_restore_insns (store_p, large_reg, large_offset, file) ...@@ -6393,7 +6393,7 @@ save_restore_insns (store_p, large_reg, large_offset, file)
void void
function_prologue (file, size) function_prologue (file, size)
FILE *file; FILE *file;
int size ATTRIBUTE_UNUSED; HOST_WIDE_INT size ATTRIBUTE_UNUSED;
{ {
#ifndef FUNCTION_NAME_ALREADY_DECLARED #ifndef FUNCTION_NAME_ALREADY_DECLARED
const char *fnname; const char *fnname;
......
...@@ -9231,7 +9231,8 @@ move\\t%0,%z4\\n\\ ...@@ -9231,7 +9231,8 @@ move\\t%0,%z4\\n\\
emit_insn (gen_bgtu (operands[4])); emit_insn (gen_bgtu (operands[4]));
/* Do the PIC jump. */ /* Do the PIC jump. */
emit_insn (gen_casesi_internal (reg, operands[3], gen_reg_rtx (SImode))); emit_jump_insn (gen_casesi_internal (reg, operands[3],
gen_reg_rtx (SImode)));
DONE; DONE;
} }
...@@ -9239,7 +9240,7 @@ move\\t%0,%z4\\n\\ ...@@ -9239,7 +9240,7 @@ move\\t%0,%z4\\n\\
;; An embedded PIC switch statement looks like this: ;; An embedded PIC switch statement looks like this:
;; bal $LS1 ;; bal $LS1
;; sll $reg,$reg,2 ;; sll $reg,$index,2
;; $LS1: ;; $LS1:
;; addu $reg,$reg,$31 ;; addu $reg,$reg,$31
;; lw $reg,$L1-$LS1($reg) ;; lw $reg,$L1-$LS1($reg)
...@@ -9249,8 +9250,6 @@ move\\t%0,%z4\\n\\ ...@@ -9249,8 +9250,6 @@ move\\t%0,%z4\\n\\
;; .word case1-$LS1 ;; .word case1-$LS1
;; .word case2-$LS1 ;; .word case2-$LS1
;; ... ;; ...
;;
;; ??? So how does operand 2 get used?
(define_insn "casesi_internal" (define_insn "casesi_internal"
[(set (pc) [(set (pc)
...@@ -9260,13 +9259,8 @@ move\\t%0,%z4\\n\\ ...@@ -9260,13 +9259,8 @@ move\\t%0,%z4\\n\\
(clobber (match_operand:SI 2 "register_operand" "=d")) (clobber (match_operand:SI 2 "register_operand" "=d"))
(clobber (reg:SI 31))] (clobber (reg:SI 31))]
"TARGET_EMBEDDED_PIC" "TARGET_EMBEDDED_PIC"
"* "%(bal\\t%S1\;sll\\t%2,%0,2\\n%~%S1:\;addu\\t%2,%2,$31%)\;\\
{ lw\\t%2,%1-%S1(%2)\;addu\\t%2,%2,$31\;j\\t%2"
output_asm_insn (\"%(bal\\t%S1\;sll\\t%0,2\\n%~%S1:\", operands);
output_asm_insn (\"addu\\t%0,%0,$31%)\", operands);
output_asm_insn (\"lw\\t%0,%1-%S1(%0)\;addu\\t%0,%0,$31\", operands);
return \"j\\t%0\";
}"
[(set_attr "type" "jump") [(set_attr "type" "jump")
(set_attr "mode" "none") (set_attr "mode" "none")
(set_attr "length" "24")]) (set_attr "length" "24")])
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment