diff --git a/test/cctest/test-simulator-arm.cc b/test/cctest/test-simulator-arm.cc index cff04da983..7404418e84 100644 --- a/test/cctest/test-simulator-arm.cc +++ b/test/cctest/test-simulator-arm.cc @@ -38,13 +38,15 @@ namespace v8 { namespace internal { +#if defined(USE_SIMULATOR) + #ifndef V8_TARGET_LITTLE_ENDIAN #error Expected ARM to be little-endian #endif // Define these function prototypes to match JSEntryFunction in execution.cc. -typedef Object* (*F_iiiii)(int p0, int p1, int p2, int p3, int p4); -typedef Object* (*F_piiii)(void* p0, int p1, int p2, int p3, int p4); +typedef Object* (*F1)(int x, int p1, int p2, int p3, int p4); +typedef Object* (*F3)(void* p0, int p1, int p2, int p3, int p4); #define __ assm. @@ -181,7 +183,7 @@ void AssembleStoreExcl(Assembler* assembler, MemoryAccess access, AssembleMemoryAccess(assembler, access, dest_reg, value_reg, addr_reg); } -Address AssembleCode(std::function assemble) { +F3 AssembleCode(std::function assemble) { Isolate* isolate = CcTest::i_isolate(); Assembler assm(isolate, nullptr, 0); @@ -193,7 +195,8 @@ Address AssembleCode(std::function assemble) { assm.GetCode(isolate, &desc); Handle code = isolate->factory()->NewCode(desc, Code::STUB, Handle()); - return code->entry(); + F3 f = FUNCTION_CAST(code->entry()); + return f; } void TestInvalidateExclusiveAccess(TestData initial_data, MemoryAccess access1, @@ -202,11 +205,11 @@ void TestInvalidateExclusiveAccess(TestData initial_data, MemoryAccess access1, Isolate* isolate = CcTest::i_isolate(); HandleScope scope(isolate); - F_piiii f = FUNCTION_CAST(AssembleCode([&](Assembler& assm) { + F3 f = AssembleCode([&](Assembler& assm) { AssembleLoadExcl(&assm, access1, r1, r1); AssembleMemoryAccess(&assm, access2, r3, r2, r1); AssembleStoreExcl(&assm, access3, r0, r3, r1); - })); + }); TestData t = initial_data; @@ -287,9 +290,9 @@ TEST(simulator_invalidate_exclusive_access) { static int ExecuteMemoryAccess(Isolate* isolate, TestData* test_data, MemoryAccess access) { HandleScope scope(isolate); - F_piiii f = FUNCTION_CAST(AssembleCode([&](Assembler& assm) { + F3 f = AssembleCode([&](Assembler& assm) { AssembleMemoryAccess(&assm, access, r0, r2, r1); - })); + }); return reinterpret_cast( CALL_GENERATED_CODE(isolate, f, test_data, 0, 0, 0, 0)); @@ -414,11 +417,11 @@ TEST(simulator_vabs_32) { Isolate* isolate = CcTest::i_isolate(); HandleScope scope(isolate); - F_iiiii f = FUNCTION_CAST(AssembleCode([](Assembler& assm) { + F3 f = AssembleCode([](Assembler& assm) { __ vmov(s0, r0); __ vabs(s0, s0); __ vmov(r0, s0); - })); + }); for (Float32 f32 : Float32Inputs()) { Float32 res = Float32::FromBits(reinterpret_cast( @@ -432,11 +435,11 @@ TEST(simulator_vabs_64) { Isolate* isolate = CcTest::i_isolate(); HandleScope scope(isolate); - F_iiiii f = FUNCTION_CAST(AssembleCode([](Assembler& assm) { + F3 f = AssembleCode([](Assembler& assm) { __ vmov(d0, r0, r1); __ vabs(d0, d0); __ vmov(r1, r0, d0); - })); + }); for (Float64 f64 : Float64Inputs()) { uint32_t p0 = static_cast(f64.get_bits()); @@ -453,11 +456,11 @@ TEST(simulator_vneg_32) { Isolate* isolate = CcTest::i_isolate(); HandleScope scope(isolate); - F_iiiii f = FUNCTION_CAST(AssembleCode([](Assembler& assm) { + F3 f = AssembleCode([](Assembler& assm) { __ vmov(s0, r0); __ vneg(s0, s0); __ vmov(r0, s0); - })); + }); for (Float32 f32 : Float32Inputs()) { Float32 res = Float32::FromBits(reinterpret_cast( @@ -471,11 +474,11 @@ TEST(simulator_vneg_64) { Isolate* isolate = CcTest::i_isolate(); HandleScope scope(isolate); - F_iiiii f = FUNCTION_CAST(AssembleCode([](Assembler& assm) { + F3 f = AssembleCode([](Assembler& assm) { __ vmov(d0, r0, r1); __ vneg(d0, d0); __ vmov(r1, r0, d0); - })); + }); for (Float64 f64 : Float64Inputs()) { uint32_t p0 = static_cast(f64.get_bits()); @@ -490,5 +493,7 @@ TEST(simulator_vneg_64) { #undef __ +#endif // USE_SIMULATOR + } // namespace internal } // namespace v8