| 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 "src/compiler/wasm-compiler.h" | 5 #include "src/compiler/wasm-compiler.h" | 
| 6 | 6 | 
| 7 #include "src/isolate-inl.h" | 7 #include "src/isolate-inl.h" | 
| 8 | 8 | 
| 9 #include "src/base/platform/elapsed-timer.h" | 9 #include "src/base/platform/elapsed-timer.h" | 
| 10 #include "src/base/platform/platform.h" | 10 #include "src/base/platform/platform.h" | 
| (...skipping 846 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 857       break; | 857       break; | 
| 858     // kExprI64UConvertI32: | 858     // kExprI64UConvertI32: | 
| 859     case wasm::kExprI64UConvertI32: | 859     case wasm::kExprI64UConvertI32: | 
| 860       op = m->ChangeUint32ToUint64(); | 860       op = m->ChangeUint32ToUint64(); | 
| 861       break; | 861       break; | 
| 862     // kExprF64ReinterpretI64: | 862     // kExprF64ReinterpretI64: | 
| 863     // kExprI64ReinterpretF64: | 863     // kExprI64ReinterpretF64: | 
| 864     // kExprI64Clz: | 864     // kExprI64Clz: | 
| 865     // kExprI64Ctz: | 865     // kExprI64Ctz: | 
| 866     // kExprI64Popcnt: | 866     // kExprI64Popcnt: | 
|  | 867     case wasm::kExprI64Popcnt: { | 
|  | 868       if (m->Word64Popcnt().IsSupported()) { | 
|  | 869         op = m->Word64Popcnt().op(); | 
|  | 870       } else if (m->Is32() && m->Word32Popcnt().IsSupported()) { | 
|  | 871         op = m->Word64PopcntPlaceholder(); | 
|  | 872       } else { | 
|  | 873         return BuildI64Popcnt(input); | 
|  | 874       } | 
|  | 875       break; | 
|  | 876     } | 
| 867     // kExprF32SConvertI64: | 877     // kExprF32SConvertI64: | 
| 868     case wasm::kExprF32SConvertI64: | 878     case wasm::kExprF32SConvertI64: | 
| 869       if (m->Is32()) { | 879       if (m->Is32()) { | 
| 870         return BuildF32SConvertI64(input); | 880         return BuildF32SConvertI64(input); | 
| 871       } | 881       } | 
| 872       op = m->RoundInt64ToFloat32(); | 882       op = m->RoundInt64ToFloat32(); | 
| 873       break; | 883       break; | 
| 874     // kExprF32UConvertI64: | 884     // kExprF32UConvertI64: | 
| 875     case wasm::kExprF32UConvertI64: | 885     case wasm::kExprF32UConvertI64: | 
| 876       if (m->Is32()) { | 886       if (m->Is32()) { | 
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 949         op = m->Word64Ctz().op(); | 959         op = m->Word64Ctz().op(); | 
| 950         break; | 960         break; | 
| 951       } else if (m->Word64ReverseBits().IsSupported()) { | 961       } else if (m->Word64ReverseBits().IsSupported()) { | 
| 952         Node* reversed = graph()->NewNode(m->Word64ReverseBits().op(), input); | 962         Node* reversed = graph()->NewNode(m->Word64ReverseBits().op(), input); | 
| 953         Node* result = graph()->NewNode(m->Word64Clz(), reversed); | 963         Node* result = graph()->NewNode(m->Word64Clz(), reversed); | 
| 954         return result; | 964         return result; | 
| 955       } else { | 965       } else { | 
| 956         return BuildI64Ctz(input); | 966         return BuildI64Ctz(input); | 
| 957       } | 967       } | 
| 958     } | 968     } | 
| 959     case wasm::kExprI64Popcnt: { |  | 
| 960       if (m->Word64Popcnt().IsSupported()) { |  | 
| 961         op = m->Word64Popcnt().op(); |  | 
| 962         break; |  | 
| 963       } else { |  | 
| 964         return BuildI64Popcnt(input); |  | 
| 965       } |  | 
| 966     } |  | 
| 967 #endif | 969 #endif | 
| 968     default: | 970     default: | 
| 969       op = UnsupportedOpcode(opcode); | 971       op = UnsupportedOpcode(opcode); | 
| 970   } | 972   } | 
| 971   return graph()->NewNode(op, input); | 973   return graph()->NewNode(op, input); | 
| 972 } | 974 } | 
| 973 | 975 | 
| 974 | 976 | 
| 975 Node* WasmGraphBuilder::Float32Constant(float value) { | 977 Node* WasmGraphBuilder::Float32Constant(float value) { | 
| 976   return jsgraph()->Float32Constant(value); | 978   return jsgraph()->Float32Constant(value); | 
| (...skipping 1524 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2501         static_cast<int>(function.code_end_offset - function.code_start_offset), | 2503         static_cast<int>(function.code_end_offset - function.code_start_offset), | 
| 2502         decode_ms, compile_ms); | 2504         decode_ms, compile_ms); | 
| 2503   } | 2505   } | 
| 2504   return code; | 2506   return code; | 
| 2505 } | 2507 } | 
| 2506 | 2508 | 
| 2507 | 2509 | 
| 2508 }  // namespace compiler | 2510 }  // namespace compiler | 
| 2509 }  // namespace internal | 2511 }  // namespace internal | 
| 2510 }  // namespace v8 | 2512 }  // namespace v8 | 
| OLD | NEW | 
|---|