mirror of git://gcc.gnu.org/git/gcc.git
re PR target/58792 (ICE at mode-switching.c:421 when compiling clang lib/AST/MicrosoftCXXABI.cpp)
PR target/58792 * config/i386/i386.c (ix86_function_value_regno): Add DX_REG, ST1_REG and XMM1_REG for 32bit and 64bit targets. Also add DI_REG and SI_REG for 64bit SYSV ABI targets. From-SVN: r203857
This commit is contained in:
parent
c07757e536
commit
6eb793dd0f
|
|
@ -1,3 +1,10 @@
|
|||
2013-10-19 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
PR target/58792
|
||||
* config/i386/i386.c (ix86_function_value_regno): Add DX_REG,
|
||||
ST1_REG and XMM1_REG for 32bit and 64bit targets. Also add DI_REG
|
||||
and SI_REG for 64bit SYSV ABI targets.
|
||||
|
||||
2013-10-19 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
* mode-switching.c (create_pre_exit): Rename maybe_builtin_apply
|
||||
|
|
|
|||
|
|
@ -7393,9 +7393,15 @@ ix86_function_value_regno_p (const unsigned int regno)
|
|||
switch (regno)
|
||||
{
|
||||
case AX_REG:
|
||||
case DX_REG:
|
||||
return true;
|
||||
case DI_REG:
|
||||
case SI_REG:
|
||||
return TARGET_64BIT && ix86_abi != MS_ABI;
|
||||
|
||||
case FIRST_FLOAT_REG:
|
||||
/* Complex values are returned in %st(0)/%st(1) pair. */
|
||||
case ST0_REG:
|
||||
case ST1_REG:
|
||||
/* TODO: The function should depend on current function ABI but
|
||||
builtins.c would need updating then. Therefore we use the
|
||||
default ABI. */
|
||||
|
|
@ -7403,10 +7409,12 @@ ix86_function_value_regno_p (const unsigned int regno)
|
|||
return false;
|
||||
return TARGET_FLOAT_RETURNS_IN_80387;
|
||||
|
||||
case FIRST_SSE_REG:
|
||||
/* Complex values are returned in %xmm0/%xmm1 pair. */
|
||||
case XMM0_REG:
|
||||
case XMM1_REG:
|
||||
return TARGET_SSE;
|
||||
|
||||
case FIRST_MMX_REG:
|
||||
case MM0_REG:
|
||||
if (TARGET_MACHO || TARGET_64BIT)
|
||||
return false;
|
||||
return TARGET_MMX;
|
||||
|
|
|
|||
Loading…
Reference in New Issue