Chromium Code Reviews| Index: src/arm/assembler-arm-inl.h |
| diff --git a/src/arm/assembler-arm-inl.h b/src/arm/assembler-arm-inl.h |
| index 02dc907fcc0ce559deffb2ce73f542e1b9e52f84..c26dded1a76dbfd125791912c35101a5ff954ac7 100644 |
| --- a/src/arm/assembler-arm-inl.h |
| +++ b/src/arm/assembler-arm-inl.h |
| @@ -58,7 +58,7 @@ int Register::NumAllocatableRegisters() { |
| int DwVfpRegister::NumRegisters() { |
| if (CpuFeatures::IsSupported(VFP2)) { |
| - return DwVfpRegister::kNumRegisters; |
| + return CpuFeatures::IsSupported(VFP32DREGS) ? 32 : 16; |
| } else { |
| return 1; |
| } |
| @@ -67,7 +67,7 @@ int DwVfpRegister::NumRegisters() { |
| int DwVfpRegister::NumAllocatableRegisters() { |
| if (CpuFeatures::IsSupported(VFP2)) { |
| - return DwVfpRegister::kMaxNumAllocatableRegisters; |
| + return NumRegisters() - kNumReservedRegisters; |
| } else { |
| return 1; |
| } |
| @@ -77,10 +77,22 @@ int DwVfpRegister::NumAllocatableRegisters() { |
| int DwVfpRegister::ToAllocationIndex(DwVfpRegister reg) { |
| ASSERT(!reg.is(kDoubleRegZero)); |
| ASSERT(!reg.is(kScratchDoubleReg)); |
| + if (reg.code() > kDoubleRegZero.code()) |
|
ulan_google
2013/01/18 10:44:42
Nit: brackets are needed around "if" body.
hans
2013/01/22 13:55:40
Done.
|
| + return reg.code() - kNumReservedRegisters; |
| return reg.code(); |
| } |
| +DwVfpRegister DwVfpRegister::FromAllocationIndex(int index) { |
| + ASSERT(index >= 0 && index < NumAllocatableRegisters()); |
| + ASSERT(kScratchDoubleReg.code() - kDoubleRegZero.code() == |
| + kNumReservedRegisters - 1); |
| + if (index >= kDoubleRegZero.code()) |
|
ulan_google
2013/01/18 10:44:42
Nit: brackets are needed around "if" body.
hans
2013/01/22 13:55:40
Done.
|
| + return from_code(index + kNumReservedRegisters); |
| + return from_code(index); |
| +} |
| + |
| + |
| void RelocInfo::apply(intptr_t delta) { |
| if (RelocInfo::IsInternalReference(rmode_)) { |
| // absolute code pointer inside code object moves with the code object. |