Commit 09835ed2 by Richard Kenner

*** empty log message ***

From-SVN: r676
parent 89d825c9
...@@ -522,6 +522,16 @@ insert_save_restore (insn, save_p, regno, insn_mode) ...@@ -522,6 +522,16 @@ insert_save_restore (insn, save_p, regno, insn_mode)
enum insn_code code; enum insn_code code;
int i; int i;
/* A common failure mode if register status is not correct in the RTL
is for this routine to be called with a REGNO we didn't expect to
save. That will cause us to write an insn with a (nil) SET_DEST
or SET_SRC. Instead of doing so and causing a crash later, check
for this common case and abort here instead. This will remove one
step in debugging such problems. */
if (regno_save_mem[regno] == 0)
abort ();
/* If INSN is a CALL_INSN, we must insert our insns before any /* If INSN is a CALL_INSN, we must insert our insns before any
USE insns in front of the CALL_INSN. */ USE insns in front of the CALL_INSN. */
......
...@@ -1244,7 +1244,6 @@ ...@@ -1244,7 +1244,6 @@
;; operand 3 is the offset for the source and destination pointers ;; operand 3 is the offset for the source and destination pointers
;; operand 4 is the first value to be loaded ;; operand 4 is the first value to be loaded
;; operand 5 is the register to hold the value (r4 or r5) ;; operand 5 is the register to hold the value (r4 or r5)
;; Upon completion, r2 and r3 are unchanged
(define_expand "call_block_move" (define_expand "call_block_move"
[(set (reg:SI 3) (minus:SI (match_operand:SI 2 "register_operand" "r") [(set (reg:SI 3) (minus:SI (match_operand:SI 2 "register_operand" "r")
...@@ -1255,13 +1254,10 @@ ...@@ -1255,13 +1254,10 @@
(match_dup 3))) (match_dup 3)))
(use (reg:SI 2)) (use (reg:SI 2))
(use (reg:SI 3)) (use (reg:SI 3))
(use (reg:SI 4)) (use (match_dup 5))
(use (reg:SI 5))
(parallel [(call (mem:SI (match_operand 0 "" "")) (parallel [(call (mem:SI (match_operand 0 "" ""))
(const_int 0)) (const_int 0))
(use (reg:SI 1))]) (use (reg:SI 1))])]
(clobber (reg:SI 4))
(clobber (reg:SI 5))]
"" ""
"") "")
...@@ -1279,15 +1275,11 @@ ...@@ -1279,15 +1275,11 @@
(set (reg:SI 6) (match_operand:SI 6 "immediate_operand" "i")) (set (reg:SI 6) (match_operand:SI 6 "immediate_operand" "i"))
(use (reg:SI 2)) (use (reg:SI 2))
(use (reg:SI 3)) (use (reg:SI 3))
(use (reg:SI 4)) (use (match_dup 5))
(use (reg:SI 5))
(use (reg:SI 6)) (use (reg:SI 6))
(parallel [(call (mem:SI (match_operand 0 "" "")) (parallel [(call (mem:SI (match_operand 0 "" ""))
(const_int 0)) (const_int 0))
(use (reg:SI 1))]) (use (reg:SI 1))])]
(clobber (reg:SI 4))
(clobber (reg:SI 5))
(clobber (reg:SI 6))]
"" ""
"") "")
......
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