Commit 03158648 by Charles Baylis Committed by Christophe Lyon

re PR target/59142 (internal compiler error while compiling OpenCV 2.4.7)

2013-12-19  Charles Baylis  <charles.baylis@linaro.org>

	PR target/59142
	gcc/
	* arm/predicates.md (arm_hard_general_register_operand): New
	predicate.
	(arm_hard_register_operand): Remove.
	* config/arm/arm-ldmstm.ml: Use arm_hard_general_register_operand
	for all patterns.
	* config/arm/ldmstm.md: Regenerate.

From-SVN: r206124
parent 315d7bd4
2013-12-19 Charles Baylis <charles.baylis@linaro.org>
PR target/59142
* arm/predicates.md (arm_hard_general_register_operand): New
predicate.
(arm_hard_register_operand): Remove.
* config/arm/arm-ldmstm.ml: Use arm_hard_general_register_operand
for all patterns.
* config/arm/ldmstm.md: Regenerate.
2013-12-19 Charles Baylis <charles.baylis@linaro.org>
PR target/59142
* config/arm/predicates.md (vfp_hard_register_operand): New predicate.
* config/arm/arm.md (vfp_pop_multiple_with_writeback): Use
vfp_hard_register_operand.
......@@ -70,7 +70,7 @@ let destreg nregs first op_type thumb =
let write_ldm_set thumb nregs offset opnr first =
let indent = " " in
Printf.printf "%s" (if first then " [" else indent);
Printf.printf "(set (match_operand:SI %d \"arm_hard_register_operand\" \"\")\n" opnr;
Printf.printf "(set (match_operand:SI %d \"arm_hard_general_register_operand\" \"\")\n" opnr;
Printf.printf "%s (mem:SI " indent;
begin if offset != 0 then Printf.printf "(plus:SI " end;
Printf.printf "%s" (destreg nregs first IN thumb);
......@@ -84,7 +84,7 @@ let write_stm_set thumb nregs offset opnr first =
begin if offset != 0 then Printf.printf "(plus:SI " end;
Printf.printf "%s" (destreg nregs first IN thumb);
begin if offset != 0 then Printf.printf " (const_int %d))" offset end;
Printf.printf ")\n%s (match_operand:SI %d \"arm_hard_register_operand\" \"\"))" indent opnr
Printf.printf ")\n%s (match_operand:SI %d \"arm_hard_general_register_operand\" \"\"))" indent opnr
let write_ldm_peep_set extra_indent nregs opnr first =
let indent = " " ^ extra_indent in
......
......@@ -54,10 +54,10 @@
(match_operand 0 "s_register_operand")))
;; Any hard register.
(define_predicate "arm_hard_register_operand"
(define_predicate "arm_hard_general_register_operand"
(match_code "reg")
{
return REGNO (op) < FIRST_PSEUDO_REGISTER;
return REGNO (op) <= LAST_ARM_REGNUM;
})
;; A low register.
......
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