Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(660)

Side by Side Diff: src/compiler/wasm-compiler.cc

Issue 2729943002: [WASM] Implement remaining F32x4 operations for ARM. (Closed)
Patch Set: Rebase. Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/compiler/opcodes.h ('k') | src/wasm/wasm-opcodes.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 <memory> 7 #include <memory>
8 8
9 #include "src/assembler-inl.h" 9 #include "src/assembler-inl.h"
10 #include "src/base/platform/elapsed-timer.h" 10 #include "src/base/platform/elapsed-timer.h"
(...skipping 3361 matching lines...) Expand 10 before | Expand all | Expand 10 after
3372 inputs[0]); 3372 inputs[0]);
3373 case wasm::kExprF32x4UConvertI32x4: 3373 case wasm::kExprF32x4UConvertI32x4:
3374 return graph()->NewNode(jsgraph()->machine()->Float32x4FromUint32x4(), 3374 return graph()->NewNode(jsgraph()->machine()->Float32x4FromUint32x4(),
3375 inputs[0]); 3375 inputs[0]);
3376 case wasm::kExprF32x4Abs: 3376 case wasm::kExprF32x4Abs:
3377 return graph()->NewNode(jsgraph()->machine()->Float32x4Abs(), inputs[0]); 3377 return graph()->NewNode(jsgraph()->machine()->Float32x4Abs(), inputs[0]);
3378 case wasm::kExprF32x4Neg: 3378 case wasm::kExprF32x4Neg:
3379 return graph()->NewNode(jsgraph()->machine()->Float32x4Neg(), inputs[0]); 3379 return graph()->NewNode(jsgraph()->machine()->Float32x4Neg(), inputs[0]);
3380 case wasm::kExprF32x4Sqrt: 3380 case wasm::kExprF32x4Sqrt:
3381 return graph()->NewNode(jsgraph()->machine()->Float32x4Sqrt(), inputs[0]); 3381 return graph()->NewNode(jsgraph()->machine()->Float32x4Sqrt(), inputs[0]);
3382 case wasm::kExprF32x4RecipApprox:
3383 return graph()->NewNode(jsgraph()->machine()->Float32x4RecipApprox(),
3384 inputs[0]);
3385 case wasm::kExprF32x4RecipSqrtApprox:
3386 return graph()->NewNode(jsgraph()->machine()->Float32x4RecipSqrtApprox(),
3387 inputs[0]);
3382 case wasm::kExprF32x4Add: 3388 case wasm::kExprF32x4Add:
3383 return graph()->NewNode(jsgraph()->machine()->Float32x4Add(), inputs[0], 3389 return graph()->NewNode(jsgraph()->machine()->Float32x4Add(), inputs[0],
3384 inputs[1]); 3390 inputs[1]);
3385 case wasm::kExprF32x4Sub: 3391 case wasm::kExprF32x4Sub:
3386 return graph()->NewNode(jsgraph()->machine()->Float32x4Sub(), inputs[0], 3392 return graph()->NewNode(jsgraph()->machine()->Float32x4Sub(), inputs[0],
3387 inputs[1]); 3393 inputs[1]);
3388 case wasm::kExprF32x4Mul: 3394 case wasm::kExprF32x4Mul:
3389 return graph()->NewNode(jsgraph()->machine()->Float32x4Mul(), inputs[0], 3395 return graph()->NewNode(jsgraph()->machine()->Float32x4Mul(), inputs[0],
3390 inputs[1]); 3396 inputs[1]);
3391 case wasm::kExprF32x4Div: 3397 case wasm::kExprF32x4Div:
3392 return graph()->NewNode(jsgraph()->machine()->Float32x4Div(), inputs[0], 3398 return graph()->NewNode(jsgraph()->machine()->Float32x4Div(), inputs[0],
3393 inputs[1]); 3399 inputs[1]);
3394 case wasm::kExprF32x4Min: 3400 case wasm::kExprF32x4Min:
3395 return graph()->NewNode(jsgraph()->machine()->Float32x4Min(), inputs[0], 3401 return graph()->NewNode(jsgraph()->machine()->Float32x4Min(), inputs[0],
3396 inputs[1]); 3402 inputs[1]);
3397 case wasm::kExprF32x4Max: 3403 case wasm::kExprF32x4Max:
3398 return graph()->NewNode(jsgraph()->machine()->Float32x4Max(), inputs[0], 3404 return graph()->NewNode(jsgraph()->machine()->Float32x4Max(), inputs[0],
3399 inputs[1]); 3405 inputs[1]);
3406 case wasm::kExprF32x4RecipRefine:
3407 return graph()->NewNode(jsgraph()->machine()->Float32x4RecipRefine(),
3408 inputs[0], inputs[1]);
3409 case wasm::kExprF32x4RecipSqrtRefine:
3410 return graph()->NewNode(jsgraph()->machine()->Float32x4RecipSqrtRefine(),
3411 inputs[0], inputs[1]);
3400 case wasm::kExprF32x4Eq: 3412 case wasm::kExprF32x4Eq:
3401 return graph()->NewNode(jsgraph()->machine()->Float32x4Equal(), inputs[0], 3413 return graph()->NewNode(jsgraph()->machine()->Float32x4Equal(), inputs[0],
3402 inputs[1]); 3414 inputs[1]);
3403 case wasm::kExprF32x4Ne: 3415 case wasm::kExprF32x4Ne:
3404 return graph()->NewNode(jsgraph()->machine()->Float32x4NotEqual(), 3416 return graph()->NewNode(jsgraph()->machine()->Float32x4NotEqual(),
3405 inputs[0], inputs[1]); 3417 inputs[0], inputs[1]);
3406 // TODO(aseemgarg): Get rid of GreaterThan and GreaterThanEquals machine ops
3407 // for all SIMD types.
3408 case wasm::kExprF32x4Gt:
3409 return graph()->NewNode(jsgraph()->machine()->Float32x4GreaterThan(),
3410 inputs[0], inputs[1]);
3411 case wasm::kExprF32x4Ge:
3412 return graph()->NewNode(
3413 jsgraph()->machine()->Float32x4GreaterThanOrEqual(), inputs[0],
3414 inputs[1]);
3415 case wasm::kExprF32x4Lt: 3418 case wasm::kExprF32x4Lt:
3416 return graph()->NewNode(jsgraph()->machine()->Float32x4LessThan(), 3419 return graph()->NewNode(jsgraph()->machine()->Float32x4LessThan(),
3417 inputs[0], inputs[1]); 3420 inputs[0], inputs[1]);
3418 case wasm::kExprF32x4Le: 3421 case wasm::kExprF32x4Le:
3419 return graph()->NewNode(jsgraph()->machine()->Float32x4LessThanOrEqual(), 3422 return graph()->NewNode(jsgraph()->machine()->Float32x4LessThanOrEqual(),
3420 inputs[0], inputs[1]); 3423 inputs[0], inputs[1]);
3424 case wasm::kExprF32x4Gt:
3425 return graph()->NewNode(jsgraph()->machine()->Float32x4LessThan(),
3426 inputs[1], inputs[0]);
3427 case wasm::kExprF32x4Ge:
3428 return graph()->NewNode(jsgraph()->machine()->Float32x4LessThanOrEqual(),
3429 inputs[1], inputs[0]);
3421 case wasm::kExprI32x4Splat: 3430 case wasm::kExprI32x4Splat:
3422 return graph()->NewNode(jsgraph()->machine()->Int32x4Splat(), inputs[0]); 3431 return graph()->NewNode(jsgraph()->machine()->Int32x4Splat(), inputs[0]);
3423 case wasm::kExprI32x4SConvertF32x4: 3432 case wasm::kExprI32x4SConvertF32x4:
3424 return graph()->NewNode(jsgraph()->machine()->Int32x4FromFloat32x4(), 3433 return graph()->NewNode(jsgraph()->machine()->Int32x4FromFloat32x4(),
3425 inputs[0]); 3434 inputs[0]);
3426 case wasm::kExprI32x4UConvertF32x4: 3435 case wasm::kExprI32x4UConvertF32x4:
3427 return graph()->NewNode(jsgraph()->machine()->Uint32x4FromFloat32x4(), 3436 return graph()->NewNode(jsgraph()->machine()->Uint32x4FromFloat32x4(),
3428 inputs[0]); 3437 inputs[0]);
3429 case wasm::kExprI32x4Neg: 3438 case wasm::kExprI32x4Neg:
3430 return graph()->NewNode(jsgraph()->machine()->Int32x4Neg(), inputs[0]); 3439 return graph()->NewNode(jsgraph()->machine()->Int32x4Neg(), inputs[0]);
(...skipping 12 matching lines...) Expand all
3443 case wasm::kExprI32x4MaxS: 3452 case wasm::kExprI32x4MaxS:
3444 return graph()->NewNode(jsgraph()->machine()->Int32x4Max(), inputs[0], 3453 return graph()->NewNode(jsgraph()->machine()->Int32x4Max(), inputs[0],
3445 inputs[1]); 3454 inputs[1]);
3446 case wasm::kExprI32x4Eq: 3455 case wasm::kExprI32x4Eq:
3447 return graph()->NewNode(jsgraph()->machine()->Int32x4Equal(), inputs[0], 3456 return graph()->NewNode(jsgraph()->machine()->Int32x4Equal(), inputs[0],
3448 inputs[1]); 3457 inputs[1]);
3449 case wasm::kExprI32x4Ne: 3458 case wasm::kExprI32x4Ne:
3450 return graph()->NewNode(jsgraph()->machine()->Int32x4NotEqual(), 3459 return graph()->NewNode(jsgraph()->machine()->Int32x4NotEqual(),
3451 inputs[0], inputs[1]); 3460 inputs[0], inputs[1]);
3452 case wasm::kExprI32x4LtS: 3461 case wasm::kExprI32x4LtS:
3453 return graph()->NewNode(jsgraph()->machine()->Int32x4GreaterThan(), 3462 return graph()->NewNode(jsgraph()->machine()->Int32x4LessThan(),
3463 inputs[0], inputs[1]);
3464 case wasm::kExprI32x4LeS:
3465 return graph()->NewNode(jsgraph()->machine()->Int32x4LessThanOrEqual(),
3466 inputs[0], inputs[1]);
3467 case wasm::kExprI32x4GtS:
3468 return graph()->NewNode(jsgraph()->machine()->Int32x4LessThan(),
3454 inputs[1], inputs[0]); 3469 inputs[1], inputs[0]);
3455 case wasm::kExprI32x4LeS: 3470 case wasm::kExprI32x4GeS:
3456 return graph()->NewNode(jsgraph()->machine()->Int32x4GreaterThanOrEqual(), 3471 return graph()->NewNode(jsgraph()->machine()->Int32x4LessThanOrEqual(),
3457 inputs[1], inputs[0]); 3472 inputs[1], inputs[0]);
3458 case wasm::kExprI32x4GtS:
3459 return graph()->NewNode(jsgraph()->machine()->Int32x4GreaterThan(),
3460 inputs[0], inputs[1]);
3461 case wasm::kExprI32x4GeS:
3462 return graph()->NewNode(jsgraph()->machine()->Int32x4GreaterThanOrEqual(),
3463 inputs[0], inputs[1]);
3464 case wasm::kExprI32x4MinU: 3473 case wasm::kExprI32x4MinU:
3465 return graph()->NewNode(jsgraph()->machine()->Uint32x4Min(), inputs[0], 3474 return graph()->NewNode(jsgraph()->machine()->Uint32x4Min(), inputs[0],
3466 inputs[1]); 3475 inputs[1]);
3467 case wasm::kExprI32x4MaxU: 3476 case wasm::kExprI32x4MaxU:
3468 return graph()->NewNode(jsgraph()->machine()->Uint32x4Max(), inputs[0], 3477 return graph()->NewNode(jsgraph()->machine()->Uint32x4Max(), inputs[0],
3469 inputs[1]); 3478 inputs[1]);
3470 case wasm::kExprI32x4LtU: 3479 case wasm::kExprI32x4LtU:
3471 return graph()->NewNode(jsgraph()->machine()->Uint32x4GreaterThan(), 3480 return graph()->NewNode(jsgraph()->machine()->Uint32x4LessThan(),
3481 inputs[0], inputs[1]);
3482 case wasm::kExprI32x4LeU:
3483 return graph()->NewNode(jsgraph()->machine()->Uint32x4LessThanOrEqual(),
3484 inputs[0], inputs[1]);
3485 case wasm::kExprI32x4GtU:
3486 return graph()->NewNode(jsgraph()->machine()->Uint32x4LessThan(),
3472 inputs[1], inputs[0]); 3487 inputs[1], inputs[0]);
3473 case wasm::kExprI32x4LeU:
3474 return graph()->NewNode(
3475 jsgraph()->machine()->Uint32x4GreaterThanOrEqual(), inputs[1],
3476 inputs[0]);
3477 case wasm::kExprI32x4GtU:
3478 return graph()->NewNode(jsgraph()->machine()->Uint32x4GreaterThan(),
3479 inputs[0], inputs[1]);
3480 case wasm::kExprI32x4GeU: 3488 case wasm::kExprI32x4GeU:
3481 return graph()->NewNode( 3489 return graph()->NewNode(jsgraph()->machine()->Uint32x4LessThanOrEqual(),
3482 jsgraph()->machine()->Uint32x4GreaterThanOrEqual(), inputs[0], 3490 inputs[1], inputs[0]);
3483 inputs[1]);
3484 case wasm::kExprI16x8Splat: 3491 case wasm::kExprI16x8Splat:
3485 return graph()->NewNode(jsgraph()->machine()->Int16x8Splat(), inputs[0]); 3492 return graph()->NewNode(jsgraph()->machine()->Int16x8Splat(), inputs[0]);
3486 case wasm::kExprI16x8Neg: 3493 case wasm::kExprI16x8Neg:
3487 return graph()->NewNode(jsgraph()->machine()->Int16x8Neg(), inputs[0]); 3494 return graph()->NewNode(jsgraph()->machine()->Int16x8Neg(), inputs[0]);
3488 case wasm::kExprI16x8Add: 3495 case wasm::kExprI16x8Add:
3489 return graph()->NewNode(jsgraph()->machine()->Int16x8Add(), inputs[0], 3496 return graph()->NewNode(jsgraph()->machine()->Int16x8Add(), inputs[0],
3490 inputs[1]); 3497 inputs[1]);
3491 case wasm::kExprI16x8AddSaturateS: 3498 case wasm::kExprI16x8AddSaturateS:
3492 return graph()->NewNode(jsgraph()->machine()->Int16x8AddSaturate(), 3499 return graph()->NewNode(jsgraph()->machine()->Int16x8AddSaturate(),
3493 inputs[0], inputs[1]); 3500 inputs[0], inputs[1]);
(...skipping 12 matching lines...) Expand all
3506 case wasm::kExprI16x8MaxS: 3513 case wasm::kExprI16x8MaxS:
3507 return graph()->NewNode(jsgraph()->machine()->Int16x8Max(), inputs[0], 3514 return graph()->NewNode(jsgraph()->machine()->Int16x8Max(), inputs[0],
3508 inputs[1]); 3515 inputs[1]);
3509 case wasm::kExprI16x8Eq: 3516 case wasm::kExprI16x8Eq:
3510 return graph()->NewNode(jsgraph()->machine()->Int16x8Equal(), inputs[0], 3517 return graph()->NewNode(jsgraph()->machine()->Int16x8Equal(), inputs[0],
3511 inputs[1]); 3518 inputs[1]);
3512 case wasm::kExprI16x8Ne: 3519 case wasm::kExprI16x8Ne:
3513 return graph()->NewNode(jsgraph()->machine()->Int16x8NotEqual(), 3520 return graph()->NewNode(jsgraph()->machine()->Int16x8NotEqual(),
3514 inputs[0], inputs[1]); 3521 inputs[0], inputs[1]);
3515 case wasm::kExprI16x8LtS: 3522 case wasm::kExprI16x8LtS:
3516 return graph()->NewNode(jsgraph()->machine()->Int16x8GreaterThan(), 3523 return graph()->NewNode(jsgraph()->machine()->Int16x8LessThan(),
3524 inputs[0], inputs[1]);
3525 case wasm::kExprI16x8LeS:
3526 return graph()->NewNode(jsgraph()->machine()->Int16x8LessThanOrEqual(),
3527 inputs[0], inputs[1]);
3528 case wasm::kExprI16x8GtS:
3529 return graph()->NewNode(jsgraph()->machine()->Int16x8LessThan(),
3517 inputs[1], inputs[0]); 3530 inputs[1], inputs[0]);
3518 case wasm::kExprI16x8LeS: 3531 case wasm::kExprI16x8GeS:
3519 return graph()->NewNode(jsgraph()->machine()->Int16x8GreaterThanOrEqual(), 3532 return graph()->NewNode(jsgraph()->machine()->Int16x8LessThanOrEqual(),
3520 inputs[1], inputs[0]); 3533 inputs[1], inputs[0]);
3521 case wasm::kExprI16x8GtS:
3522 return graph()->NewNode(jsgraph()->machine()->Int16x8GreaterThan(),
3523 inputs[0], inputs[1]);
3524 case wasm::kExprI16x8GeS:
3525 return graph()->NewNode(jsgraph()->machine()->Int16x8GreaterThanOrEqual(),
3526 inputs[0], inputs[1]);
3527 case wasm::kExprI16x8AddSaturateU: 3534 case wasm::kExprI16x8AddSaturateU:
3528 return graph()->NewNode(jsgraph()->machine()->Uint16x8AddSaturate(), 3535 return graph()->NewNode(jsgraph()->machine()->Uint16x8AddSaturate(),
3529 inputs[0], inputs[1]); 3536 inputs[0], inputs[1]);
3530 case wasm::kExprI16x8SubSaturateU: 3537 case wasm::kExprI16x8SubSaturateU:
3531 return graph()->NewNode(jsgraph()->machine()->Uint16x8SubSaturate(), 3538 return graph()->NewNode(jsgraph()->machine()->Uint16x8SubSaturate(),
3532 inputs[0], inputs[1]); 3539 inputs[0], inputs[1]);
3533 case wasm::kExprI16x8MinU: 3540 case wasm::kExprI16x8MinU:
3534 return graph()->NewNode(jsgraph()->machine()->Uint16x8Min(), inputs[0], 3541 return graph()->NewNode(jsgraph()->machine()->Uint16x8Min(), inputs[0],
3535 inputs[1]); 3542 inputs[1]);
3536 case wasm::kExprI16x8MaxU: 3543 case wasm::kExprI16x8MaxU:
3537 return graph()->NewNode(jsgraph()->machine()->Uint16x8Max(), inputs[0], 3544 return graph()->NewNode(jsgraph()->machine()->Uint16x8Max(), inputs[0],
3538 inputs[1]); 3545 inputs[1]);
3539 case wasm::kExprI16x8LtU: 3546 case wasm::kExprI16x8LtU:
3540 return graph()->NewNode(jsgraph()->machine()->Uint16x8GreaterThan(), 3547 return graph()->NewNode(jsgraph()->machine()->Uint16x8LessThan(),
3548 inputs[0], inputs[1]);
3549 case wasm::kExprI16x8LeU:
3550 return graph()->NewNode(jsgraph()->machine()->Uint16x8LessThanOrEqual(),
3551 inputs[0], inputs[1]);
3552 case wasm::kExprI16x8GtU:
3553 return graph()->NewNode(jsgraph()->machine()->Uint16x8LessThan(),
3541 inputs[1], inputs[0]); 3554 inputs[1], inputs[0]);
3542 case wasm::kExprI16x8LeU:
3543 return graph()->NewNode(
3544 jsgraph()->machine()->Uint16x8GreaterThanOrEqual(), inputs[1],
3545 inputs[0]);
3546 case wasm::kExprI16x8GtU:
3547 return graph()->NewNode(jsgraph()->machine()->Uint16x8GreaterThan(),
3548 inputs[0], inputs[1]);
3549 case wasm::kExprI16x8GeU: 3555 case wasm::kExprI16x8GeU:
3550 return graph()->NewNode( 3556 return graph()->NewNode(jsgraph()->machine()->Uint16x8LessThanOrEqual(),
3551 jsgraph()->machine()->Uint16x8GreaterThanOrEqual(), inputs[0], 3557 inputs[1], inputs[0]);
3552 inputs[1]);
3553 case wasm::kExprI8x16Splat: 3558 case wasm::kExprI8x16Splat:
3554 return graph()->NewNode(jsgraph()->machine()->Int8x16Splat(), inputs[0]); 3559 return graph()->NewNode(jsgraph()->machine()->Int8x16Splat(), inputs[0]);
3555 case wasm::kExprI8x16Neg: 3560 case wasm::kExprI8x16Neg:
3556 return graph()->NewNode(jsgraph()->machine()->Int8x16Neg(), inputs[0]); 3561 return graph()->NewNode(jsgraph()->machine()->Int8x16Neg(), inputs[0]);
3557 case wasm::kExprI8x16Add: 3562 case wasm::kExprI8x16Add:
3558 return graph()->NewNode(jsgraph()->machine()->Int8x16Add(), inputs[0], 3563 return graph()->NewNode(jsgraph()->machine()->Int8x16Add(), inputs[0],
3559 inputs[1]); 3564 inputs[1]);
3560 case wasm::kExprI8x16AddSaturateS: 3565 case wasm::kExprI8x16AddSaturateS:
3561 return graph()->NewNode(jsgraph()->machine()->Int8x16AddSaturate(), 3566 return graph()->NewNode(jsgraph()->machine()->Int8x16AddSaturate(),
3562 inputs[0], inputs[1]); 3567 inputs[0], inputs[1]);
(...skipping 12 matching lines...) Expand all
3575 case wasm::kExprI8x16MaxS: 3580 case wasm::kExprI8x16MaxS:
3576 return graph()->NewNode(jsgraph()->machine()->Int8x16Max(), inputs[0], 3581 return graph()->NewNode(jsgraph()->machine()->Int8x16Max(), inputs[0],
3577 inputs[1]); 3582 inputs[1]);
3578 case wasm::kExprI8x16Eq: 3583 case wasm::kExprI8x16Eq:
3579 return graph()->NewNode(jsgraph()->machine()->Int8x16Equal(), inputs[0], 3584 return graph()->NewNode(jsgraph()->machine()->Int8x16Equal(), inputs[0],
3580 inputs[1]); 3585 inputs[1]);
3581 case wasm::kExprI8x16Ne: 3586 case wasm::kExprI8x16Ne:
3582 return graph()->NewNode(jsgraph()->machine()->Int8x16NotEqual(), 3587 return graph()->NewNode(jsgraph()->machine()->Int8x16NotEqual(),
3583 inputs[0], inputs[1]); 3588 inputs[0], inputs[1]);
3584 case wasm::kExprI8x16LtS: 3589 case wasm::kExprI8x16LtS:
3585 return graph()->NewNode(jsgraph()->machine()->Int8x16GreaterThan(), 3590 return graph()->NewNode(jsgraph()->machine()->Int8x16LessThan(),
3591 inputs[0], inputs[1]);
3592 case wasm::kExprI8x16LeS:
3593 return graph()->NewNode(jsgraph()->machine()->Int8x16LessThanOrEqual(),
3594 inputs[0], inputs[1]);
3595 case wasm::kExprI8x16GtS:
3596 return graph()->NewNode(jsgraph()->machine()->Int8x16LessThan(),
3586 inputs[1], inputs[0]); 3597 inputs[1], inputs[0]);
3587 case wasm::kExprI8x16LeS: 3598 case wasm::kExprI8x16GeS:
3588 return graph()->NewNode(jsgraph()->machine()->Int8x16GreaterThanOrEqual(), 3599 return graph()->NewNode(jsgraph()->machine()->Int8x16LessThanOrEqual(),
3589 inputs[1], inputs[0]); 3600 inputs[1], inputs[0]);
3590 case wasm::kExprI8x16GtS:
3591 return graph()->NewNode(jsgraph()->machine()->Int8x16GreaterThan(),
3592 inputs[0], inputs[1]);
3593 case wasm::kExprI8x16GeS:
3594 return graph()->NewNode(jsgraph()->machine()->Int8x16GreaterThanOrEqual(),
3595 inputs[0], inputs[1]);
3596 case wasm::kExprI8x16AddSaturateU: 3601 case wasm::kExprI8x16AddSaturateU:
3597 return graph()->NewNode(jsgraph()->machine()->Uint8x16AddSaturate(), 3602 return graph()->NewNode(jsgraph()->machine()->Uint8x16AddSaturate(),
3598 inputs[0], inputs[1]); 3603 inputs[0], inputs[1]);
3599 case wasm::kExprI8x16SubSaturateU: 3604 case wasm::kExprI8x16SubSaturateU:
3600 return graph()->NewNode(jsgraph()->machine()->Uint8x16SubSaturate(), 3605 return graph()->NewNode(jsgraph()->machine()->Uint8x16SubSaturate(),
3601 inputs[0], inputs[1]); 3606 inputs[0], inputs[1]);
3602 case wasm::kExprI8x16MinU: 3607 case wasm::kExprI8x16MinU:
3603 return graph()->NewNode(jsgraph()->machine()->Uint8x16Min(), inputs[0], 3608 return graph()->NewNode(jsgraph()->machine()->Uint8x16Min(), inputs[0],
3604 inputs[1]); 3609 inputs[1]);
3605 case wasm::kExprI8x16MaxU: 3610 case wasm::kExprI8x16MaxU:
3606 return graph()->NewNode(jsgraph()->machine()->Uint8x16Max(), inputs[0], 3611 return graph()->NewNode(jsgraph()->machine()->Uint8x16Max(), inputs[0],
3607 inputs[1]); 3612 inputs[1]);
3608 case wasm::kExprI8x16LtU: 3613 case wasm::kExprI8x16LtU:
3609 return graph()->NewNode(jsgraph()->machine()->Uint8x16GreaterThan(), 3614 return graph()->NewNode(jsgraph()->machine()->Uint8x16LessThan(),
3615 inputs[0], inputs[1]);
3616 case wasm::kExprI8x16LeU:
3617 return graph()->NewNode(jsgraph()->machine()->Uint8x16LessThanOrEqual(),
3618 inputs[0], inputs[1]);
3619 case wasm::kExprI8x16GtU:
3620 return graph()->NewNode(jsgraph()->machine()->Uint8x16LessThan(),
3610 inputs[1], inputs[0]); 3621 inputs[1], inputs[0]);
3611 case wasm::kExprI8x16LeU:
3612 return graph()->NewNode(
3613 jsgraph()->machine()->Uint8x16GreaterThanOrEqual(), inputs[1],
3614 inputs[0]);
3615 case wasm::kExprI8x16GtU:
3616 return graph()->NewNode(jsgraph()->machine()->Uint8x16GreaterThan(),
3617 inputs[0], inputs[1]);
3618 case wasm::kExprI8x16GeU: 3622 case wasm::kExprI8x16GeU:
3619 return graph()->NewNode( 3623 return graph()->NewNode(jsgraph()->machine()->Uint8x16LessThanOrEqual(),
3620 jsgraph()->machine()->Uint8x16GreaterThanOrEqual(), inputs[0], 3624 inputs[1], inputs[0]);
3621 inputs[1]);
3622 case wasm::kExprS128And: 3625 case wasm::kExprS128And:
3623 return graph()->NewNode(jsgraph()->machine()->Simd128And(), inputs[0], 3626 return graph()->NewNode(jsgraph()->machine()->Simd128And(), inputs[0],
3624 inputs[1]); 3627 inputs[1]);
3625 case wasm::kExprS128Or: 3628 case wasm::kExprS128Or:
3626 return graph()->NewNode(jsgraph()->machine()->Simd128Or(), inputs[0], 3629 return graph()->NewNode(jsgraph()->machine()->Simd128Or(), inputs[0],
3627 inputs[1]); 3630 inputs[1]);
3628 case wasm::kExprS128Xor: 3631 case wasm::kExprS128Xor:
3629 return graph()->NewNode(jsgraph()->machine()->Simd128Xor(), inputs[0], 3632 return graph()->NewNode(jsgraph()->machine()->Simd128Xor(), inputs[0],
3630 inputs[1]); 3633 inputs[1]);
3631 case wasm::kExprS128Not: 3634 case wasm::kExprS128Not:
(...skipping 600 matching lines...) Expand 10 before | Expand all | Expand 10 after
4232 wasm::ErrorThrower* thrower, Isolate* isolate, 4235 wasm::ErrorThrower* thrower, Isolate* isolate,
4233 wasm::ModuleBytesEnv* module_env, const wasm::WasmFunction* function) { 4236 wasm::ModuleBytesEnv* module_env, const wasm::WasmFunction* function) {
4234 WasmCompilationUnit unit(isolate, module_env, function); 4237 WasmCompilationUnit unit(isolate, module_env, function);
4235 unit.ExecuteCompilation(); 4238 unit.ExecuteCompilation();
4236 return unit.FinishCompilation(thrower); 4239 return unit.FinishCompilation(thrower);
4237 } 4240 }
4238 4241
4239 } // namespace compiler 4242 } // namespace compiler
4240 } // namespace internal 4243 } // namespace internal
4241 } // namespace v8 4244 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/opcodes.h ('k') | src/wasm/wasm-opcodes.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698