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, |