This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
RE: target/7643: H8300 - ___muldi3 is generated for multiplication by long long constant
- From: "Dhananjay R. Deshpande" <dhananjayd at kpit dot com>
- To: <gcc-bugs at gcc dot gnu dot org>
- Date: Tue, 20 Aug 2002 12:28:53 +0530
- Subject: RE: target/7643: H8300 - ___muldi3 is generated for multiplication by long long constant
Same is true for all DI operations with one operand as LL constant. ( for which __NDW macro is used in libgcc2.h )
- Dhananjay
>
>
>
> >Number: 7643
> >Category: target
> >Synopsis: H8300 - ___muldi3 is generated for
> multiplication by long long constant
> >Confidential: no
> >Severity: serious
> >Priority: medium
> >Responsible: unassigned
> >State: open
> >Class: sw-bug
> >Submitter-Id: net
> >Arrival-Date: Mon Aug 19 23:46:01 PDT 2002
> >Closed-Date:
> >Last-Modified:
> >Originator: Dhananjay Deshpande
> >Release: 3.0, 3.1
> >Organization:
> >Environment:
> GNU/Linux X H8300
> >Description:
> The compiler generates call to ___muldi for LL constants.
> ___muldi is not generated in libgcc unless sizeof(long long ) > 32.
> This gives linker error when rand() is used from newlib.
> This problem should be there for other targets where sizeof(
> long long ) is not more than 32.
> >How-To-Repeat:
> Compile code below with h8300-*-gcc -S and you will see a
> call to ___muldi3
> void foo()
> {
> unsigned long long a ;
> a = a * 664136223846793005LL ;
> }
> >Fix:
>
> >Release-Note:
> >Audit-Trail:
> >Unformatted:
>