diff options
author | ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-08-09 16:38:45 +0000 |
---|---|---|
committer | ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-08-09 16:38:45 +0000 |
commit | 3a1af93034f967f91b4f9a56987603cf6b4f360f (patch) | |
tree | cbfcedff7be2fe615e69736cecd53aaf551a0dd8 /gcc/config | |
parent | 54a5ecb6b046485a8b1f476cf957f6320a42c59c (diff) | |
download | gcc-3a1af93034f967f91b4f9a56987603cf6b4f360f.tar.gz |
* config/rs6000/rs6000.c (print_operand) <D>: Fix comment and adjust.
(rs6000_generate_compare): Tweak comments.
* config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Fix comment.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116041 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 15 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.md | 2 |
2 files changed, 9 insertions, 8 deletions
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 676f9645265..47734a41866 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -10283,13 +10283,14 @@ print_operand (FILE *file, rtx x, int code) return; case 'D': - /* Like 'J' but get to the EQ bit. */ + /* Like 'J' but get to the GT bit only. */ gcc_assert (GET_CODE (x) == REG); - /* Bit 1 is EQ bit. */ - i = 4 * (REGNO (x) - CR0_REGNO) + 2; + /* Bit 1 is GT bit. */ + i = 4 * (REGNO (x) - CR0_REGNO) + 1; - fprintf (file, "%d", i); + /* Add one for shift count in rlinm for scc. */ + fprintf (file, "%d", i + 1); return; case 'E': @@ -11086,7 +11087,7 @@ rs6000_generate_compare (enum rtx_code code) /* First, the compare. */ compare_result = gen_reg_rtx (comp_mode); - /* SPE FP compare instructions on the GPRs. Yuck! */ + /* E500 FP compare instructions on the GPRs. Yuck! */ if ((TARGET_E500 && !TARGET_FPRS && TARGET_HARD_FLOAT) && rs6000_compare_fp_p) { @@ -11096,8 +11097,8 @@ rs6000_generate_compare (enum rtx_code code) if (op_mode == VOIDmode) op_mode = GET_MODE (rs6000_compare_op1); - /* Note: The E500 comparison instructions set the GT bit (x + - 1), on success. This explains the mess. */ + /* The E500 FP compare instructions toggle the GT bit (CR bit 1) only. + This explains the following mess. */ switch (code) { diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index 611d9e162bf..92590a70db5 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -55,7 +55,7 @@ (UNSPEC_TLSGOTTPREL 28) (UNSPEC_TLSTLS 29) (UNSPEC_FIX_TRUNC_TF 30) ; fadd, rounding towards zero - (UNSPEC_MV_CR_GT 31) ; move_from_CR_eq_bit + (UNSPEC_MV_CR_GT 31) ; move_from_CR_gt_bit (UNSPEC_STFIWX 32) (UNSPEC_POPCNTB 33) (UNSPEC_FRES 34) |