Hi Eric, Hi Richard,

  I need your brains...

  The mips64vrel-elf toolchain is showing a lot of unexpected failures
  in the gcc testsuite (and g++ testsuite) for multilibs which use
  -mlong64 and -mgp32 together.  For example the first one I came
  across is this:

    % ... mips64vrel-elf/gcc/xgcc ... -mlong64 -mgp32 ... 
gcc.c-torture/compile/20010327-1.c
    
    gcc.c-torture/compile/20010327-1.c:12: error: initializer element is not 
constant

  Or how about this one:

    % ... mips64vrel-elf/gcc/xgcc ... gcc.c-torture/compile/mipscop-4.c ... 
-mlong64 -mgp32

    gcc.c-torture/compile/mipscop-4.c:4: error: register specified for 'c3r1' 
isn't suitable for data type

  The problems all seem to extend from the fact that a long is forced
  to be 64-bits but the general purpose registers are 32-bits. What I
  am not sure about is whether this is a generic bug in gcc somewhere
  (that assumes that a long will fit into a register) or whether there
  is something mips specific about the problem.  (One thing telling
  gcc that a long is 32-bits and another thing tell it that they are
  64-bits).

  What do you think ?

Cheers
  Nick

    

Reply via email to