Chromium Code Reviews| Index: src/arm/macro-assembler-arm.cc |
| =================================================================== |
| --- src/arm/macro-assembler-arm.cc (revision 12502) |
| +++ src/arm/macro-assembler-arm.cc (working copy) |
| @@ -3162,6 +3162,22 @@ |
| } |
| +void MacroAssembler::VFPCopyFields(Register dst, Register src, int field_count, |
| + SwVfpRegister first, SwVfpRegister last) { |
| + ASSERT(CpuFeatures::IsEnabled(VFP2)); |
| + ASSERT_LE(first.code(), last.code()); |
|
danno
2012/10/29 15:29:24
In debug mode, can you please actually verify in g
|
| + int available_words = last.code() - first.code() + 1; |
| + |
| + while (field_count > 0) { |
| + int words_to_copy = Min(field_count, available_words); |
| + SwVfpRegister copy_last = |
| + SwVfpRegister::from_code(first.code() + words_to_copy - 1); |
| + vldm(ia_w, src, first, copy_last); |
| + vstm(ia_w, dst, first, copy_last); |
| + field_count -= words_to_copy; |
| + } |
| +} |
| + |
| void MacroAssembler::CopyBytes(Register src, |
| Register dst, |
| Register length, |