| Index: src/register-configuration.cc
|
| diff --git a/src/register-configuration.cc b/src/register-configuration.cc
|
| index d4b90ca9265e4e86900d502d0b51ccddc608a3d8..af35fd3b03c77b1b42acefddc5a54cf76d9faaed 100644
|
| --- a/src/register-configuration.cc
|
| +++ b/src/register-configuration.cc
|
| @@ -22,9 +22,13 @@ static const int kAllocatableGeneralCodes[] = {
|
| ALLOCATABLE_GENERAL_REGISTERS(REGISTER_CODE)};
|
| #undef REGISTER_CODE
|
|
|
| -static const int kAllocatableDoubleCodes[] = {
|
| #define REGISTER_CODE(R) DoubleRegister::kCode_##R,
|
| +static const int kAllocatableDoubleCodes[] = {
|
| ALLOCATABLE_DOUBLE_REGISTERS(REGISTER_CODE)};
|
| +#if V8_TARGET_ARCH_ARM
|
| +static const int kAllocatableNoVFP32DoubleCodes[] = {
|
| + ALLOCATABLE_NO_VFP32_DOUBLE_REGISTERS(REGISTER_CODE)};
|
| +#endif // V8_TARGET_ARCH_ARM
|
| #undef REGISTER_CODE
|
|
|
| static const char* const kGeneralRegisterNames[] = {
|
| @@ -99,7 +103,14 @@ class ArchDefaultRegisterConfiguration : public RegisterConfiguration {
|
| #else
|
| #error Unsupported target architecture.
|
| #endif
|
| - kAllocatableGeneralCodes, kAllocatableDoubleCodes,
|
| + kAllocatableGeneralCodes,
|
| +#if V8_TARGET_ARCH_ARM
|
| + CpuFeatures::IsSupported(VFP32DREGS)
|
| + ? kAllocatableDoubleCodes
|
| + : kAllocatableNoVFP32DoubleCodes,
|
| +#else
|
| + kAllocatableDoubleCodes,
|
| +#endif
|
| kSimpleFPAliasing ? AliasingKind::OVERLAP : AliasingKind::COMBINE,
|
| kGeneralRegisterNames, kFloatRegisterNames, kDoubleRegisterNames,
|
| kSimd128RegisterNames) {
|
|
|