Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1353)

Unified Diff: src/arm/code-stubs-arm.cc

Issue 11428137: ARM: Make use of d16-d31 when available. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Get the feature detection right Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/arm/code-stubs-arm.cc
diff --git a/src/arm/code-stubs-arm.cc b/src/arm/code-stubs-arm.cc
index 9484f85f97e38ff87de543ec4c25dee3b9d6984e..233425f32e17aa2ab35cfbf569e73086da675c1b 100644
--- a/src/arm/code-stubs-arm.cc
+++ b/src/arm/code-stubs-arm.cc
@@ -2036,8 +2036,11 @@ void StoreBufferOverflowStub::Generate(MacroAssembler* masm) {
__ stm(db_w, sp, kCallerSaved | lr.bit());
if (save_doubles_ == kSaveFPRegs) {
CpuFeatures::Scope scope(VFP2);
- __ sub(sp, sp, Operand(kDoubleSize * DwVfpRegister::kNumRegisters));
- for (int i = 0; i < DwVfpRegister::kNumRegisters; i++) {
+ // Nbr of d-regs not known at snapshot time.
+ ASSERT(!Serializer::enabled());
+ __ sub(sp, sp, Operand(kDoubleSize *
+ DwVfpRegister::NumAvailableRegisters()));
+ for (int i = 0; i < DwVfpRegister::NumAvailableRegisters(); i++) {
DwVfpRegister reg = DwVfpRegister::from_code(i);
__ vstr(reg, MemOperand(sp, i * kDoubleSize));
}
@@ -2054,11 +2057,12 @@ void StoreBufferOverflowStub::Generate(MacroAssembler* masm) {
argument_count);
if (save_doubles_ == kSaveFPRegs) {
CpuFeatures::Scope scope(VFP2);
- for (int i = 0; i < DwVfpRegister::kNumRegisters; i++) {
+ for (int i = 0; i < DwVfpRegister::NumAvailableRegisters(); i++) {
DwVfpRegister reg = DwVfpRegister::from_code(i);
__ vldr(reg, MemOperand(sp, i * kDoubleSize));
}
- __ add(sp, sp, Operand(kDoubleSize * DwVfpRegister::kNumRegisters));
+ __ add(sp, sp, Operand(kDoubleSize *
+ DwVfpRegister::NumAvailableRegisters()));
}
__ ldm(ia_w, sp, kCallerSaved | pc.bit()); // Also pop pc to get Ret(0).
}

Powered by Google App Engine
This is Rietveld 408576698