mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-04 23:10:25 +08:00
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
This commit is contained in:
parent
a2c8e14464
commit
810c1b83f6
@ -1,3 +1,9 @@
|
||||
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>
|
||||
|
||||
* cppexp.c (cpp_parse_escape): Make static. Change second arg
|
||||
|
@ -6393,7 +6393,7 @@ save_restore_insns (store_p, large_reg, large_offset, file)
|
||||
void
|
||||
function_prologue (file, size)
|
||||
FILE *file;
|
||||
int size ATTRIBUTE_UNUSED;
|
||||
HOST_WIDE_INT size ATTRIBUTE_UNUSED;
|
||||
{
|
||||
#ifndef FUNCTION_NAME_ALREADY_DECLARED
|
||||
const char *fnname;
|
||||
|
@ -9231,7 +9231,8 @@ move\\t%0,%z4\\n\\
|
||||
emit_insn (gen_bgtu (operands[4]));
|
||||
|
||||
/* 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;
|
||||
}
|
||||
@ -9239,7 +9240,7 @@ move\\t%0,%z4\\n\\
|
||||
|
||||
;; An embedded PIC switch statement looks like this:
|
||||
;; bal $LS1
|
||||
;; sll $reg,$reg,2
|
||||
;; sll $reg,$index,2
|
||||
;; $LS1:
|
||||
;; addu $reg,$reg,$31
|
||||
;; lw $reg,$L1-$LS1($reg)
|
||||
@ -9249,8 +9250,6 @@ move\\t%0,%z4\\n\\
|
||||
;; .word case1-$LS1
|
||||
;; .word case2-$LS1
|
||||
;; ...
|
||||
;;
|
||||
;; ??? So how does operand 2 get used?
|
||||
|
||||
(define_insn "casesi_internal"
|
||||
[(set (pc)
|
||||
@ -9260,13 +9259,8 @@ move\\t%0,%z4\\n\\
|
||||
(clobber (match_operand:SI 2 "register_operand" "=d"))
|
||||
(clobber (reg:SI 31))]
|
||||
"TARGET_EMBEDDED_PIC"
|
||||
"*
|
||||
{
|
||||
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\";
|
||||
}"
|
||||
"%(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"
|
||||
[(set_attr "type" "jump")
|
||||
(set_attr "mode" "none")
|
||||
(set_attr "length" "24")])
|
||||
|
Loading…
Reference in New Issue
Block a user