diff options
author | Richard Earnshaw <rearnsha@arm.com> | 2002-03-23 18:18:43 +0000 |
---|---|---|
committer | Richard Earnshaw <rearnsha@gcc.gnu.org> | 2002-03-23 18:18:43 +0000 |
commit | 64e92a2664338473268928c206f62ba397379601 (patch) | |
tree | 06cbf38f1e6d16c47b6222893315b70e042fbd1c | |
parent | d6961341dd0ef37d0c292d25f7e428a42e22b0c0 (diff) | |
download | gcc-64e92a2664338473268928c206f62ba397379601.zip gcc-64e92a2664338473268928c206f62ba397379601.tar.gz gcc-64e92a2664338473268928c206f62ba397379601.tar.bz2 |
re PR java/5489 (-fverbose-asm crashes jc1 on ARM cross-compiler)
PR java/5489
* arm.md (return, sibcall_epilogue): Pass const_true_rtx as the
operand argument to output_return_instruction.
* arm.c (arm_print_operand, case 'd'): If the operand is
const_true_rtx then just return.
(arm_print_operand, case 'D'): If the operand is const_true_rtx
then abort.
From-SVN: r51241
-rw-r--r-- | gcc/ChangeLog | 10 | ||||
-rw-r--r-- | gcc/config/arm/arm.c | 9 | ||||
-rw-r--r-- | gcc/config/arm/arm.md | 4 |
3 files changed, 18 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 123ec27..180ff01 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2002-03-23 Richard Earnshaw <rearnsha@arm.com> + + PR java/5489 + * arm.md (return, sibcall_epilogue): Pass const_true_rtx as the + operand argument to output_return_instruction. + * arm.c (arm_print_operand, case 'd'): If the operand is + const_true_rtx then just return. + (arm_print_operand, case 'D'): If the operand is const_true_rtx + then abort. + 2002-03-23 Andrew Cagney <ac131313@redhat.com> * doc/invoke.texi (Option Summary): Mention -Wswitch-default. diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 814c84d..53633dc 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -8568,7 +8568,8 @@ arm_print_operand (stream, x, code) return; case 'd': - if (!x) + /* CONST_TRUE_RTX means always -- that's the default. */ + if (x == const_true_rtx) return; if (TARGET_ARM) @@ -8579,8 +8580,10 @@ arm_print_operand (stream, x, code) return; case 'D': - if (!x) - return; + /* CONST_TRUE_RTX means not always -- ie never. We shouldn't ever + want to do that. */ + if (x == const_true_rtx) + abort (); if (TARGET_ARM) fputs (arm_condition_codes[ARM_INVERSE_CONDITION_CODE diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md index 9ea7d0c..7d73cbd 100644 --- a/gcc/config/arm/arm.md +++ b/gcc/config/arm/arm.md @@ -6721,7 +6721,7 @@ arm_ccfsm_state += 2; return \"\"; } - return output_return_instruction (NULL, TRUE, FALSE); + return output_return_instruction (const_true_rtx, TRUE, FALSE); }" [(set_attr "type" "load") (set_attr "predicable" "yes")] @@ -8756,7 +8756,7 @@ "* output_asm_insn (\"%@ Sibcall epilogue\", operands); if (USE_RETURN_INSN (FALSE)) - return output_return_instruction (NULL, FALSE, FALSE); + return output_return_instruction (const_true_rtx, FALSE, FALSE); return arm_output_epilogue (FALSE); " ;; Length is absolute worst case |