OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <stdint.h> | 5 #include <stdint.h> |
6 #include <stdlib.h> | 6 #include <stdlib.h> |
7 #include <string.h> | 7 #include <string.h> |
8 | 8 |
9 #include "src/base/platform/elapsed-timer.h" | 9 #include "src/base/platform/elapsed-timer.h" |
10 #include "src/utils.h" | 10 #include "src/utils.h" |
(...skipping 2095 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2106 | 2106 |
2107 // 64-bit cases handled in test-run-wasm-64.cc. | 2107 // 64-bit cases handled in test-run-wasm-64.cc. |
2108 static MachineType mixed[] = { | 2108 static MachineType mixed[] = { |
2109 MachineType::Int32(), MachineType::Float32(), MachineType::Float64(), | 2109 MachineType::Int32(), MachineType::Float32(), MachineType::Float64(), |
2110 MachineType::Float32(), MachineType::Int32(), MachineType::Float64(), | 2110 MachineType::Float32(), MachineType::Int32(), MachineType::Float64(), |
2111 MachineType::Float32(), MachineType::Float64(), MachineType::Int32(), | 2111 MachineType::Float32(), MachineType::Float64(), MachineType::Int32(), |
2112 MachineType::Int32(), MachineType::Int32()}; | 2112 MachineType::Int32(), MachineType::Int32()}; |
2113 | 2113 |
2114 int num_params = static_cast<int>(arraysize(mixed)) - start; | 2114 int num_params = static_cast<int>(arraysize(mixed)) - start; |
2115 for (int which = 0; which < num_params; ++which) { | 2115 for (int which = 0; which < num_params; ++which) { |
2116 v8::base::AccountingAllocator allocator; | 2116 v8::internal::AccountingAllocator allocator; |
2117 Zone zone(&allocator); | 2117 Zone zone(&allocator); |
2118 TestingModule module(execution_mode); | 2118 TestingModule module(execution_mode); |
2119 module.AddMemory(1024); | 2119 module.AddMemory(1024); |
2120 MachineType* memtypes = &mixed[start]; | 2120 MachineType* memtypes = &mixed[start]; |
2121 MachineType result = memtypes[which]; | 2121 MachineType result = memtypes[which]; |
2122 | 2122 |
2123 // ========================================================================= | 2123 // ========================================================================= |
2124 // Build the selector function. | 2124 // Build the selector function. |
2125 // ========================================================================= | 2125 // ========================================================================= |
2126 uint32_t index; | 2126 uint32_t index; |
(...skipping 507 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2634 FOR_FLOAT32_INPUTS(i) { | 2634 FOR_FLOAT32_INPUTS(i) { |
2635 FOR_FLOAT32_INPUTS(j) { CHECK_FLOAT_EQ(copysignf(*i, *j), r.Call(*i, *j)); } | 2635 FOR_FLOAT32_INPUTS(j) { CHECK_FLOAT_EQ(copysignf(*i, *j), r.Call(*i, *j)); } |
2636 } | 2636 } |
2637 } | 2637 } |
2638 | 2638 |
2639 static void CompileCallIndirectMany(LocalType param) { | 2639 static void CompileCallIndirectMany(LocalType param) { |
2640 // Make sure we don't run out of registers when compiling indirect calls | 2640 // Make sure we don't run out of registers when compiling indirect calls |
2641 // with many many parameters. | 2641 // with many many parameters. |
2642 TestSignatures sigs; | 2642 TestSignatures sigs; |
2643 for (byte num_params = 0; num_params < 40; ++num_params) { | 2643 for (byte num_params = 0; num_params < 40; ++num_params) { |
2644 v8::base::AccountingAllocator allocator; | 2644 v8::internal::AccountingAllocator allocator; |
2645 Zone zone(&allocator); | 2645 Zone zone(&allocator); |
2646 HandleScope scope(CcTest::InitIsolateOnce()); | 2646 HandleScope scope(CcTest::InitIsolateOnce()); |
2647 TestingModule module(kExecuteCompiled); | 2647 TestingModule module(kExecuteCompiled); |
2648 FunctionSig* sig = sigs.many(&zone, kAstStmt, param, num_params); | 2648 FunctionSig* sig = sigs.many(&zone, kAstStmt, param, num_params); |
2649 | 2649 |
2650 module.AddSignature(sig); | 2650 module.AddSignature(sig); |
2651 module.AddSignature(sig); | 2651 module.AddSignature(sig); |
2652 module.AddIndirectFunctionTable(nullptr, 0); | 2652 module.AddIndirectFunctionTable(nullptr, 0); |
2653 | 2653 |
2654 WasmFunctionCompiler t(sig, &module); | 2654 WasmFunctionCompiler t(sig, &module); |
(...skipping 21 matching lines...) Expand all Loading... |
2676 MachineType::Int32()); | 2676 MachineType::Int32()); |
2677 BUILD(r, WASM_I32_REMS(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)), WASM_ZERO); | 2677 BUILD(r, WASM_I32_REMS(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)), WASM_ZERO); |
2678 const int32_t kMin = std::numeric_limits<int32_t>::min(); | 2678 const int32_t kMin = std::numeric_limits<int32_t>::min(); |
2679 CHECK_EQ(0, r.Call(133, 100)); | 2679 CHECK_EQ(0, r.Call(133, 100)); |
2680 CHECK_EQ(0, r.Call(kMin, -1)); | 2680 CHECK_EQ(0, r.Call(kMin, -1)); |
2681 CHECK_EQ(0, r.Call(0, 1)); | 2681 CHECK_EQ(0, r.Call(0, 1)); |
2682 CHECK_TRAP(r.Call(100, 0)); | 2682 CHECK_TRAP(r.Call(100, 0)); |
2683 CHECK_TRAP(r.Call(-1001, 0)); | 2683 CHECK_TRAP(r.Call(-1001, 0)); |
2684 CHECK_TRAP(r.Call(kMin, 0)); | 2684 CHECK_TRAP(r.Call(kMin, 0)); |
2685 } | 2685 } |
OLD | NEW |