Index: test/cctest/compiler/test-run-native-calls.cc |
diff --git a/test/cctest/compiler/test-run-native-calls.cc b/test/cctest/compiler/test-run-native-calls.cc |
index 4c271859f40ca4cc7800f93abc703bb207eef4ba..7885ba40148b661b6ceedda7d5fa4a029d186b13 100644 |
--- a/test/cctest/compiler/test-run-native-calls.cc |
+++ b/test/cctest/compiler/test-run-native-calls.cc |
@@ -87,8 +87,16 @@ class RegisterPairs : public Pairs { |
class Float32RegisterPairs : public Pairs { |
public: |
Float32RegisterPairs() |
- : Pairs(100, GetRegConfig()->num_allocatable_aliased_double_registers(), |
- GetRegConfig()->allocatable_double_codes()) {} |
+ : Pairs( |
+ 100, |
+#if V8_TARGET_ARCH_ARM |
+ // TODO(bbudge) Modify wasm linkage to allow use of all float regs. |
+ GetRegConfig()->num_allocatable_double_registers() / 2 - 2, |
+#else |
+ GetRegConfig()->num_allocatable_double_registers(), |
+#endif |
+ GetRegConfig()->allocatable_double_codes()) { |
+ } |
}; |
@@ -127,6 +135,10 @@ struct Allocator { |
// Allocate a floating point register/stack location. |
if (fp_offset < fp_count) { |
int code = fp_regs[fp_offset++]; |
+#if V8_TARGET_ARCH_ARM |
+ // TODO(bbudge) Modify wasm linkage to allow use of all float regs. |
+ if (type.representation() == MachineRepresentation::kFloat32) code *= 2; |
+#endif |
return LinkageLocation::ForRegister(code, type); |
} else { |
int offset = -1 - stack_offset; |