re PR target/50099 (ICE: internal compiler error: in extract_insn, at recog.c:2113 while building lttng-ust)

Fix PR target/50099

From-SVN: r179378
This commit is contained in:
Ramana Radhakrishnan 2011-09-30 09:36:43 +00:00 committed by Ramana Radhakrishnan
parent 8a58edc29d
commit 8d4f1548bd
6 changed files with 36 additions and 6 deletions

View File

@ -1,3 +1,12 @@
2011-09-30 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
PR target/50099
* config/arm/iterators.md (qhs_zextenddi_cstr): New.
(qhs_zextenddi_op): New.
* config/arm/arm.md ("zero_extend<mode>di2"): Use them.
* config/arm/predicates.md ("arm_extendqisi_mem_op"):
Distinguish between ARM and Thumb2 states.
2011-09-30 David S. Miller <davem@davemloft.net>
* config/sparc/sparc.opt (VIS2): New option.

View File

@ -4389,8 +4389,8 @@
(define_insn "zero_extend<mode>di2"
[(set (match_operand:DI 0 "s_register_operand" "=r")
(zero_extend:DI (match_operand:QHSI 1 "<qhs_extenddi_op>"
"<qhs_extenddi_cstr>")))]
(zero_extend:DI (match_operand:QHSI 1 "<qhs_zextenddi_op>"
"<qhs_zextenddi_cstr>")))]
"TARGET_32BIT <qhs_zextenddi_cond>"
"#"
[(set_attr "length" "8")

View File

@ -390,10 +390,14 @@
(define_mode_attr qhs_zextenddi_cond [(SI "") (HI "&& arm_arch6") (QI "")])
(define_mode_attr qhs_sextenddi_cond [(SI "") (HI "&& arm_arch6")
(QI "&& arm_arch6")])
(define_mode_attr qhs_extenddi_op [(SI "s_register_operand")
(define_mode_attr qhs_zextenddi_op [(SI "s_register_operand")
(HI "nonimmediate_operand")
(QI "nonimmediate_operand")])
(define_mode_attr qhs_extenddi_cstr [(SI "r") (HI "rm") (QI "rm")])
(define_mode_attr qhs_extenddi_op [(SI "s_register_operand")
(HI "nonimmediate_operand")
(QI "arm_reg_or_extendqisi_mem_op")])
(define_mode_attr qhs_extenddi_cstr [(SI "r") (HI "rm") (QI "rUq")])
(define_mode_attr qhs_zextenddi_cstr [(SI "r") (HI "rm") (QI "rm")])
;; Mode attributes used for fixed-point support.
(define_mode_attr qaddsub_suf [(V4UQQ "8") (V2UHQ "16") (UQQ "8") (UHQ "16")

View File

@ -301,8 +301,11 @@
(define_special_predicate "arm_extendqisi_mem_op"
(and (match_operand 0 "memory_operand")
(match_test "arm_legitimate_address_outer_p (mode, XEXP (op, 0),
SIGN_EXTEND, 0)")))
(match_test "TARGET_ARM ? arm_legitimate_address_outer_p (mode,
XEXP (op, 0),
SIGN_EXTEND,
0)
: memory_address_p (QImode, XEXP (op, 0))")))
(define_special_predicate "arm_reg_or_extendqisi_mem_op"
(ior (match_operand 0 "arm_extendqisi_mem_op")

View File

@ -1,3 +1,7 @@
2011-09-30 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
* gcc.target/arm/pr50099.c: New test.
2011-09-30 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
* gcc.target/arm/pr42835.c: Add -fno-tree-tail-merge.

View File

@ -0,0 +1,10 @@
/* { dg-do compile } */
/* { dg-options "-O2" } */
long long foo (signed char * arg)
{
long long temp_1;
temp_1 = arg[256];
return temp_1;
}