This is the mail archive of the gcc-patches@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]

[PATCH, ARM] arm_return_in_msb needs to handle TImode.


Hi,

I observed the following failure on arm big-endian: 

FAIL: tmpdir-g++.dg-struct-layout-1/t024 cp_compat_x_tst.o compile,  (internal compiler error)

The compiler is configured as:

armeb-montavista-linux-gnueabi-gcc -v

Using built-in specs.
COLLECT_GCC=./armeb-tools/bin/armeb-montavista-linux-gnueabi-gcc
COLLECT_LTO_WRAPPER=/home/manjunath/NCDtools/mips/toolchain/armeb-tools/bin/../libexec/gcc/armeb-montavista-linux-gnueabi/4.7.0/lto-wrapper
Target: armeb-montavista-linux-gnueabi
Configured with: /home/manjunath/NCDtools/mips/toolchain/scripts/../src/configure --disable-fixed-point --without-ppl --without-python --disable-werror --enable-checking --with-sysroot --with-local-prefix=/home/manjunath/NCDtools/mips/toolchain/scripts/../armeb-tools/armeb-montavista-linux-gnueabi/sys-root --disable-sim --enable-symvers=gnu --enable-__cxa_atexit --with-arch=armv7-a --with-fpu=vfpv3-d16 --with-float=hard --with-tune=cortex-a9 --target=armeb-montavista-linux-gnueabi --enable-languages=c,c++ --prefix=/home/manjunath/NCDtools/mips/toolchain/scripts/../armeb-tools
Thread model: posix
gcc version 4.7.0 () 


Debugging shows that ITmode is not handled by arm_return_in_msb

debug snip ...
{{{
void test2001() void test2002() void test2003() void test2004() void test2005()
Breakpoint 1, shift_return_value (mode=TImode, left_p=0 '\000', value=0x7ffff033b380)
    at /home/manjunath/NCDtools/mips/toolchain/scripts/../src/gcc/calls.c:2127
2127      gcc_assert (REG_P (value) && HARD_REGISTER_P (value));

(gdb) p mode
$1 = TImode

(gdb) p left_p
$2 = 0 '\000'

(gdb) p debug_rtx(value)
(parallel:TI [
        (expr_list:REG_DEP_TRUE (reg:DI 63 s0)
            (const_int 0 [0]))
        (expr_list:REG_DEP_TRUE (reg:DI 65 s2)
            (const_int 8 [0x8]))
    ])
$3 = void
}}}

I have attached the patch which fixes the above problem, kindly review the patch
and accept it for mainline.


Regards,
Manjunath S Matti.

Attachment: TImode_fix.patch
Description: TImode_fix.patch


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