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/v8.h" | 5 #include "src/v8.h" |
6 | 6 |
7 // Required to get M_E etc. in MSVC. | 7 // Required to get M_E etc. in MSVC. |
8 #if defined(_WIN32) | 8 #if defined(_WIN32) |
9 #define _USE_MATH_DEFINES | 9 #define _USE_MATH_DEFINES |
10 #endif | 10 #endif |
(...skipping 979 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
990 DCHECK(args->length() == 1); | 990 DCHECK(args->length() == 1); |
991 Literal* literal = args->at(0)->AsLiteral(); | 991 Literal* literal = args->at(0)->AsLiteral(); |
992 if (literal != nullptr) { | 992 if (literal != nullptr) { |
993 if (literal->raw_value()->IsNumber()) { | 993 if (literal->raw_value()->IsNumber()) { |
994 float val = static_cast<float>(literal->raw_value()->AsNumber()); | 994 float val = static_cast<float>(literal->raw_value()->AsNumber()); |
995 byte code[] = {WASM_F32(val)}; | 995 byte code[] = {WASM_F32(val)}; |
996 current_function_builder_->EmitCode(code, sizeof(code)); | 996 current_function_builder_->EmitCode(code, sizeof(code)); |
997 return true; | 997 return true; |
998 } | 998 } |
999 } | 999 } |
| 1000 switch (TypeIndexOf(args->at(0))) { |
| 1001 case kInt32: |
| 1002 case kFixnum: |
| 1003 current_function_builder_->Emit(kExprF32SConvertI32); |
| 1004 break; |
| 1005 case kUint32: |
| 1006 current_function_builder_->Emit(kExprF32UConvertI32); |
| 1007 break; |
| 1008 case kFloat32: |
| 1009 break; |
| 1010 case kFloat64: |
| 1011 current_function_builder_->Emit(kExprF32ConvertF64); |
| 1012 break; |
| 1013 default: |
| 1014 UNREACHABLE(); |
| 1015 } |
1000 break; | 1016 break; |
1001 } | 1017 } |
1002 default: { | 1018 default: { |
1003 UNREACHABLE(); | 1019 UNREACHABLE(); |
1004 break; | 1020 break; |
1005 } | 1021 } |
1006 } | 1022 } |
1007 VisitCallArgs(call); | 1023 VisitCallArgs(call); |
1008 return true; | 1024 return true; |
1009 } | 1025 } |
(...skipping 508 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1518 // that zone in constructor may be thrown away once wasm module is written. | 1534 // that zone in constructor may be thrown away once wasm module is written. |
1519 WasmModuleIndex* AsmWasmBuilder::Run() { | 1535 WasmModuleIndex* AsmWasmBuilder::Run() { |
1520 AsmWasmBuilderImpl impl(isolate_, zone_, literal_, foreign_, typer_); | 1536 AsmWasmBuilderImpl impl(isolate_, zone_, literal_, foreign_, typer_); |
1521 impl.Compile(); | 1537 impl.Compile(); |
1522 WasmModuleWriter* writer = impl.builder_->Build(zone_); | 1538 WasmModuleWriter* writer = impl.builder_->Build(zone_); |
1523 return writer->WriteTo(zone_); | 1539 return writer->WriteTo(zone_); |
1524 } | 1540 } |
1525 } // namespace wasm | 1541 } // namespace wasm |
1526 } // namespace internal | 1542 } // namespace internal |
1527 } // namespace v8 | 1543 } // namespace v8 |
OLD | NEW |