[Bug target/11772] Incorrect code generated with -mrtd and long long (most builtins)

2011-04-11 Thread ktietz at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11772

--- Comment #6 from Kai Tietz ktietz at gcc dot gnu.org 2011-04-11 17:44:08 
UTC ---
Author: ktietz
Date: Mon Apr 11 17:44:04 2011
New Revision: 172268

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=172268
Log:
2011-04-11  Kai Tietz  kti...@redhat.com

PR target/9601
PR target/11772
* config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
* config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
comment.
(ix86_is_msabi_thiscall): Removed.
(ix86_is_type_thiscall): Likewise.
(ix86_get_callcvt): New function.
(ix86_comp_type_attributes): Simplify check.
(ix86_function_regparm): Use ix86_get_callcvt for calling
convention attribute checks.
(ix86_return_pops_args): Likewise.
(ix86_static_chain): Likewise.
(x86_this_parameter): Likewise.
(x86_output_mi_thunk): Likewise.
(ix86_function_type_abi): Optimize check for types without attributes.
* config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
by flag-values.
(IX86_BASE_CALLCVT): Helper macro.
* config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
Use ix86_get_callcvt for calling convention attribute checks and avoid
symbol-decoration for stdcall in TARGET_RTD case.
* config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
Likewise.
(gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
for declaration.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/i386-protos.h
trunk/gcc/config/i386/i386.c
trunk/gcc/config/i386/i386.h
trunk/gcc/config/i386/netware.c
trunk/gcc/config/i386/winnt.c


[Bug target/11772] Incorrect code generated with -mrtd and long long (most builtins)

2011-04-11 Thread ktietz at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11772

Kai Tietz ktietz at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||ktietz at gcc dot gnu.org
 Resolution||FIXED

--- Comment #7 from Kai Tietz ktietz at gcc dot gnu.org 2011-04-11 17:48:47 
UTC ---
Fixed.


[Bug target/11772] Incorrect code generated with -mrtd and long long (most builtins)

2006-02-16 Thread rguenth at gcc dot gnu dot org


--- Comment #4 from rguenth at gcc dot gnu dot org  2006-02-16 15:50 ---
There's a similar issue with trying to override certain builtins calling
convention with -mrtd in effect.  Consider

 extern void* __attribute__((__cdecl__)) memcpy(void*, void*, __SIZE_TYPE__);

we even after seeing this decl emit calls to memcpy with -mrtd ABI out of
emit_block_move_via_libcall.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11772



[Bug target/11772] Incorrect code generated with -mrtd and long long (most builtins)

2006-02-16 Thread rguenth at gcc dot gnu dot org


--- Comment #5 from rguenth at gcc dot gnu dot org  2006-02-16 15:50 ---
*** Bug 22017 has been marked as a duplicate of this bug. ***


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||lyuzhou at 21cn dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11772