summaryrefslogtreecommitdiff
path: root/deps/v8/test/cctest/assembler-helper-arm.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test/cctest/assembler-helper-arm.h')
-rw-r--r--deps/v8/test/cctest/assembler-helper-arm.h27
1 files changed, 17 insertions, 10 deletions
diff --git a/deps/v8/test/cctest/assembler-helper-arm.h b/deps/v8/test/cctest/assembler-helper-arm.h
index dd24087bda..c0b0cf8255 100644
--- a/deps/v8/test/cctest/assembler-helper-arm.h
+++ b/deps/v8/test/cctest/assembler-helper-arm.h
@@ -7,20 +7,27 @@
#include <functional>
-#include "src/macro-assembler.h"
+#include "src/handles.h"
+#include "src/simulator.h"
namespace v8 {
namespace internal {
-// These function prototypes have 5 arguments since they are used with the
-// CALL_GENERATED_CODE macro.
-typedef Object* (*F_iiiii)(int x, int p1, int p2, int p3, int p4);
-typedef Object* (*F_piiii)(void* p0, int p1, int p2, int p3, int p4);
-typedef Object* (*F_ppiii)(void* p0, void* p1, int p2, int p3, int p4);
-typedef Object* (*F_pppii)(void* p0, void* p1, void* p2, int p3, int p4);
-typedef Object* (*F_ippii)(int p0, void* p1, void* p2, int p3, int p4);
-
-Address AssembleCode(std::function<void(Assembler&)> assemble);
+// TODO(arm): Refine these signatures per test case, they can have arbitrary
+// return and argument types and arbitrary number of arguments.
+using F_iiiii = Object*(int x, int p1, int p2, int p3, int p4);
+using F_piiii = Object*(void* p0, int p1, int p2, int p3, int p4);
+using F_ppiii = Object*(void* p0, void* p1, int p2, int p3, int p4);
+using F_pppii = Object*(void* p0, void* p1, void* p2, int p3, int p4);
+using F_ippii = Object*(int p0, void* p1, void* p2, int p3, int p4);
+
+Handle<Code> AssembleCodeImpl(std::function<void(Assembler&)> assemble);
+
+template <typename Signature>
+GeneratedCode<Signature> AssembleCode(
+ std::function<void(Assembler&)> assemble) {
+ return GeneratedCode<Signature>::FromCode(*AssembleCodeImpl(assemble));
+}
} // namespace internal
} // namespace v8