This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: gcc 3.4.0 m68k-elf generates illegal code for ColdFire (maybea fix)


Bernardo Innocenti wrote:

I see. I should have gone in reload.c and see the full thing. Now I see you were right.

Unfortunately, I can't regtest any patches right
now because both 3_4-branch and mainline are
currently broken on the m68k.

Richard, do you approve this patch for mainline?

(I've slightly edited the ChangeLog entry
and removed the extra parentheses).

2004-05-27 Peter Jakubek <peter@laseranimation.com>

   * reload.c (find_reloads): Force reload for pseudo registers on big
   endian machines.

diff -ru gcc.orig/gcc/reload.c gcc/gcc/reload.c
--- gcc.orig/gcc/reload.c    2004-03-10 02:51:01.000000000 +0100
+++ gcc/gcc/reload.c    2004-05-27 13:07:32.828125000 +0200
@@ -2947,7 +2947,7 @@
                < BIGGEST_ALIGNMENT)
               && (GET_MODE_SIZE (operand_mode[i])
                   > GET_MODE_SIZE (GET_MODE (operand))))
-              || (GET_CODE (operand) == MEM && BYTES_BIG_ENDIAN)
+              || BYTES_BIG_ENDIAN
#ifdef LOAD_EXTEND_OP
              || (GET_MODE_SIZE (operand_mode[i]) <= UNITS_PER_WORD
                  && (GET_MODE_SIZE (GET_MODE (operand))


Thanks!


Now we have to wait until someone else takes a closer look.

I have tested the patch with success on ColdFire and 68k targets,
but can't say anything about other big endian targets.

Peter Jakubek
LaserAnimation Sollinger GmbH
peter@lasergraph-dsp.de








Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]