re PR target/28014 (space-optimized divide used inconsistently)
authorJ"orn Rennecke <joern.rennecke@st.com>
Tue, 13 Jun 2006 17:44:56 +0000 (17:44 +0000)
committerJoern Rennecke <amylaar@gcc.gnu.org>
Tue, 13 Jun 2006 17:44:56 +0000 (18:44 +0100)
commit31b6f0aee8fc46282f06ceadc057e1b623f54872
tree77b0e8646b86bb0b70f9dec160ea2b7da24fb530
parentde4fb767a9e80685a673a65b590774336f108c4f
re PR target/28014 (space-optimized divide used inconsistently)

        PR target/28014:

        gcc:
        * config/sh/t-sh (LIB1ASMFUNCS): Add _udiv_qrnnd16
        * config/sh/sh.c (print_operand): Add !SHMEDIA functionality to 'M'.
        * config/sh/lib1funcs.h (SL, SL1): Define.
        * config/sh/lib1funcs.asm (__udiv_qrnnd16): New hidden function.
        * longlong.h (__sh__): Define umul_ppmm, udiv_qrnnd and sub_ddmmss.
        * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): New rule.
        (OBJS_Os_4_200): New variable.
        ($(T)libgcc-Os-4-200.a): Use it.
        * sh.md (udivsi3): For TARGET_DIVIDE_CALL_TABLE, avoid function call
        when dividing 1 and/or by 0.

        gcc/testsuite:
        * g++.dg/eh/div.C: New test.

From-SVN: r114616
gcc/ChangeLog
gcc/config/sh/lib1funcs.asm
gcc/config/sh/lib1funcs.h
gcc/config/sh/sh.c
gcc/config/sh/sh.md
gcc/config/sh/t-sh
gcc/longlong.h
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/eh/div.C [new file with mode: 0644]