Compiling external programs for SPIM Target results in an infinite loop afer executing cc1.
Aniket Deole
aniket.deole@gmail.com
Tue Jun 4 08:01:00 GMT 2013
Hello,
We are building GCC for the Mips Simulator "SPIM".
We have previously built the same for GCC 4.6.2, and are now trying to
build it for 4.7.2.
We are experiencing an issue related to the cbranchsi4 in GCC 4.7.2,
machine description wherein, GCC is compiled correctly and cc1 is
generated. But while compiling an external C program having
conditional statements using cc1, the compilation goes in an infinite
loop.
We were able to rectify this infinite loop by removing an SI from the
instruction for the first match operator clause.
But we are not sure as to why this fix is required with respect to the
different GCC versions 4.6.2 and 4.7.2.
---------------------------------------------------------------
GCC 4.6.2 MD:
--------------------------
(define_insn "cbranchsi4"
[(set (pc)
(if_then_else
(match_operator:SI 0 "comparison_operator"
[(match_operand:SI 1 "register_operand" "")
(match_operand:SI 2 "register_operand" "")])
(label_ref (match_operand 3 "" ""))
(pc)))]
""
"* return conditional_insn(GET_CODE(operands[0]),operands,0); "
)
--------------------------------------------------------------
GCC 4.7.2 MD:
---------------------------
(define_insn "cbranchsi4"
[(set (pc)
(if_then_else
(match_operator 0 "comparison_operator"
[(match_operand:SI 1 "register_operand" "")
(match_operand:SI 2 "register_operand" "")])
(label_ref (match_operand 3 "" ""))
(pc)))]
""
"* return conditional_insn(GET_CODE(operands[0]),operands,0); "
)
Thank You,
---------------------------------
Aniket Deole
aniket.deole@gmail.com
More information about the Gcc-help
mailing list