| 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/wasm/wasm-macro-gen.h" |     9 #include "src/wasm/wasm-macro-gen.h" | 
|    10  |    10  | 
| (...skipping 2937 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  2948   module.AddSignature(sigs.i_ii()); |  2948   module.AddSignature(sigs.i_ii()); | 
|  2949  |  2949  | 
|  2950   // Builder the caller function. |  2950   // Builder the caller function. | 
|  2951   BUILD(r, WASM_CALL_INDIRECT(1, WASM_GET_LOCAL(0), WASM_I8(66), WASM_I8(22))); |  2951   BUILD(r, WASM_CALL_INDIRECT(1, WASM_GET_LOCAL(0), WASM_I8(66), WASM_I8(22))); | 
|  2952  |  2952  | 
|  2953   CHECK_TRAP(r.Call(0)); |  2953   CHECK_TRAP(r.Call(0)); | 
|  2954   CHECK_TRAP(r.Call(1)); |  2954   CHECK_TRAP(r.Call(1)); | 
|  2955   CHECK_TRAP(r.Call(2)); |  2955   CHECK_TRAP(r.Call(2)); | 
|  2956 } |  2956 } | 
|  2957  |  2957  | 
 |  2958 TEST(Run_Wasm_F32Floor) { | 
 |  2959   WasmRunner<float> r(MachineType::Float32()); | 
 |  2960   BUILD(r, WASM_F32_FLOOR(WASM_GET_LOCAL(0))); | 
 |  2961  | 
 |  2962   FOR_FLOAT32_INPUTS(i) { CheckFloatEq(floorf(*i), r.Call(*i)); } | 
 |  2963 } | 
 |  2964  | 
 |  2965 TEST(Run_Wasm_F32Ceil) { | 
 |  2966   WasmRunner<float> r(MachineType::Float32()); | 
 |  2967   BUILD(r, WASM_F32_CEIL(WASM_GET_LOCAL(0))); | 
 |  2968  | 
 |  2969   FOR_FLOAT32_INPUTS(i) { CheckFloatEq(ceilf(*i), r.Call(*i)); } | 
 |  2970 } | 
 |  2971  | 
|  2958 TEST(Run_Wasm_F32Trunc) { |  2972 TEST(Run_Wasm_F32Trunc) { | 
|  2959   WasmRunner<float> r(MachineType::Float32()); |  2973   WasmRunner<float> r(MachineType::Float32()); | 
|  2960   BUILD(r, WASM_F32_TRUNC(WASM_GET_LOCAL(0))); |  2974   BUILD(r, WASM_F32_TRUNC(WASM_GET_LOCAL(0))); | 
|  2961  |  2975  | 
|  2962   FOR_FLOAT32_INPUTS(i) { CheckFloatEq(trunc(*i), r.Call(*i)); } |  2976   FOR_FLOAT32_INPUTS(i) { CheckFloatEq(truncf(*i), r.Call(*i)); } | 
|  2963 } |  2977 } | 
|  2964  |  2978  | 
|  2965  |  | 
|  2966 // TODO(titzer): Fix for nosee4 and re-enable. |  | 
|  2967 #if 0 |  | 
|  2968  |  | 
|  2969 TEST(Run_Wasm_F32Floor) { |  | 
|  2970   WasmRunner<float> r(MachineType::Float32()); |  | 
|  2971   BUILD(r, WASM_F32_FLOOR(WASM_GET_LOCAL(0))); |  | 
|  2972  |  | 
|  2973   FOR_FLOAT32_INPUTS(i) { CheckFloatEq(floor(*i), r.Call(*i)); } |  | 
|  2974 } |  | 
|  2975  |  | 
|  2976  |  | 
|  2977 TEST(Run_Wasm_F32Ceil) { |  | 
|  2978   WasmRunner<float> r(MachineType::Float32()); |  | 
|  2979   BUILD(r, WASM_F32_CEIL(WASM_GET_LOCAL(0))); |  | 
|  2980  |  | 
|  2981   FOR_FLOAT32_INPUTS(i) { CheckFloatEq(ceil(*i), r.Call(*i)); } |  | 
|  2982 } |  | 
|  2983  |  | 
|  2984  |  | 
|  2985 TEST(Run_Wasm_F32NearestInt) { |  2979 TEST(Run_Wasm_F32NearestInt) { | 
|  2986   WasmRunner<float> r(MachineType::Float32()); |  2980   WasmRunner<float> r(MachineType::Float32()); | 
|  2987   BUILD(r, WASM_F32_NEARESTINT(WASM_GET_LOCAL(0))); |  2981   BUILD(r, WASM_F32_NEARESTINT(WASM_GET_LOCAL(0))); | 
|  2988  |  2982  | 
|  2989   FOR_FLOAT32_INPUTS(i) { CheckFloatEq(nearbyint(*i), r.Call(*i)); } |  2983   FOR_FLOAT32_INPUTS(i) { CheckFloatEq(nearbyintf(*i), r.Call(*i)); } | 
|  2990 } |  2984 } | 
|  2991  |  2985  | 
|  2992  |  | 
|  2993 TEST(Run_Wasm_F64Floor) { |  2986 TEST(Run_Wasm_F64Floor) { | 
|  2994   WasmRunner<double> r(MachineType::Float64()); |  2987   WasmRunner<double> r(MachineType::Float64()); | 
|  2995   BUILD(r, WASM_F64_FLOOR(WASM_GET_LOCAL(0))); |  2988   BUILD(r, WASM_F64_FLOOR(WASM_GET_LOCAL(0))); | 
|  2996  |  2989  | 
|  2997   FOR_FLOAT64_INPUTS(i) { CheckDoubleEq(floor(*i), r.Call(*i)); } |  2990   FOR_FLOAT64_INPUTS(i) { CheckDoubleEq(floor(*i), r.Call(*i)); } | 
|  2998 } |  2991 } | 
|  2999  |  2992  | 
|  3000  |  | 
|  3001 TEST(Run_Wasm_F64Ceil) { |  2993 TEST(Run_Wasm_F64Ceil) { | 
|  3002   WasmRunner<double> r(MachineType::Float64()); |  2994   WasmRunner<double> r(MachineType::Float64()); | 
|  3003   BUILD(r, WASM_F64_CEIL(WASM_GET_LOCAL(0))); |  2995   BUILD(r, WASM_F64_CEIL(WASM_GET_LOCAL(0))); | 
|  3004  |  2996  | 
|  3005   FOR_FLOAT64_INPUTS(i) { CheckDoubleEq(ceil(*i), r.Call(*i)); } |  2997   FOR_FLOAT64_INPUTS(i) { CheckDoubleEq(ceil(*i), r.Call(*i)); } | 
|  3006 } |  2998 } | 
|  3007  |  2999  | 
 |  3000 TEST(Run_Wasm_F64Trunc) { | 
 |  3001   WasmRunner<double> r(MachineType::Float64()); | 
 |  3002   BUILD(r, WASM_F64_TRUNC(WASM_GET_LOCAL(0))); | 
 |  3003  | 
 |  3004   FOR_FLOAT64_INPUTS(i) { CheckDoubleEq(trunc(*i), r.Call(*i)); } | 
 |  3005 } | 
|  3008  |  3006  | 
|  3009 TEST(Run_Wasm_F64NearestInt) { |  3007 TEST(Run_Wasm_F64NearestInt) { | 
|  3010   WasmRunner<double> r(MachineType::Float64()); |  3008   WasmRunner<double> r(MachineType::Float64()); | 
|  3011   BUILD(r, WASM_F64_NEARESTINT(WASM_GET_LOCAL(0))); |  3009   BUILD(r, WASM_F64_NEARESTINT(WASM_GET_LOCAL(0))); | 
|  3012  |  3010  | 
|  3013   FOR_FLOAT64_INPUTS(i) { CheckDoubleEq(nearbyint(*i), r.Call(*i)); } |  3011   FOR_FLOAT64_INPUTS(i) { CheckDoubleEq(nearbyint(*i), r.Call(*i)); } | 
|  3014 } |  3012 } | 
|  3015  |  3013  | 
|  3016 #endif |  | 
|  3017  |  | 
|  3018 TEST(Run_Wasm_F64Trunc) { |  | 
|  3019   WasmRunner<double> r(MachineType::Float64()); |  | 
|  3020   BUILD(r, WASM_F64_TRUNC(WASM_GET_LOCAL(0))); |  | 
|  3021  |  | 
|  3022   FOR_FLOAT64_INPUTS(i) { CheckDoubleEq(trunc(*i), r.Call(*i)); } |  | 
|  3023 } |  | 
|  3024  |  | 
|  3025 TEST(Run_Wasm_F32Min) { |  3014 TEST(Run_Wasm_F32Min) { | 
|  3026   WasmRunner<float> r(MachineType::Float32(), MachineType::Float32()); |  3015   WasmRunner<float> r(MachineType::Float32(), MachineType::Float32()); | 
|  3027   BUILD(r, WASM_F32_MIN(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1))); |  3016   BUILD(r, WASM_F32_MIN(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1))); | 
|  3028  |  3017  | 
|  3029   FOR_FLOAT32_INPUTS(i) { |  3018   FOR_FLOAT32_INPUTS(i) { | 
|  3030     FOR_FLOAT32_INPUTS(j) { |  3019     FOR_FLOAT32_INPUTS(j) { | 
|  3031       float expected; |  3020       float expected; | 
|  3032       if (*i < *j) { |  3021       if (*i < *j) { | 
|  3033         expected = *i; |  3022         expected = *i; | 
|  3034       } else if (*j < *i) { |  3023       } else if (*j < *i) { | 
| (...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  3334  |  3323  | 
|  3335 #if WASM_64 |  3324 #if WASM_64 | 
|  3336 TEST(Compile_Wasm_CallIndirect_Many_i64) { CompileCallIndirectMany(kAstI64); } |  3325 TEST(Compile_Wasm_CallIndirect_Many_i64) { CompileCallIndirectMany(kAstI64); } | 
|  3337 #endif |  3326 #endif | 
|  3338  |  3327  | 
|  3339  |  3328  | 
|  3340 TEST(Compile_Wasm_CallIndirect_Many_f32) { CompileCallIndirectMany(kAstF32); } |  3329 TEST(Compile_Wasm_CallIndirect_Many_f32) { CompileCallIndirectMany(kAstF32); } | 
|  3341  |  3330  | 
|  3342  |  3331  | 
|  3343 TEST(Compile_Wasm_CallIndirect_Many_f64) { CompileCallIndirectMany(kAstF64); } |  3332 TEST(Compile_Wasm_CallIndirect_Many_f64) { CompileCallIndirectMany(kAstF64); } | 
| OLD | NEW |