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]

Re: [patch i386]: PR/38900 ICE for fastcall functions with -O2


On 07/06/2009 10:11 AM, Kai Tietz wrote:
Hello,

the first patch I posted just cured the ICE but produces wrong code.
So I modified patch and add an additional testcase for dllimport'ed
fastcall method with more then one argument to my patch. The problem
is that ecx and edx are used by fastcall functions for register
passing, This patch makes sure that for the case that ecx and edx are
used for argument passing to sibcalled function, eax is used as call
register.

This doesn't fix the problem either, it merely moves it around. You'll now see the same problem for regparm functions instead.

You need to figure out why ecx and edx weren't already live,
which should have forced the register allocator to chose eax
without these changed annotations.


r~



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