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


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