Lines Matching defs:right
841 Node* WasmGraphBuilder::Binop(wasm::WasmOpcode opcode, Node* left, Node* right,
856 return BuildI32DivS(left, right, position);
858 return BuildI32DivU(left, right, position);
860 return BuildI32RemS(left, right, position);
862 return BuildI32RemU(left, right, position);
874 right = MaskShiftCount32(right);
878 right = MaskShiftCount32(right);
882 right = MaskShiftCount32(right);
886 right = MaskShiftCount32(right);
891 right = MaskShiftCount32(right);
894 return BuildI32Rol(left, right);
899 return Invert(Binop(wasm::kExprI32Eq, left, right));
914 std::swap(left, right);
918 std::swap(left, right);
922 std::swap(left, right);
926 std::swap(left, right);
941 return BuildI64DivS(left, right, position);
943 return BuildI64DivU(left, right, position);
945 return BuildI64RemS(left, right, position);
947 return BuildI64RemU(left, right, position);
956 right = MaskShiftCount64(right);
960 right = MaskShiftCount64(right);
964 right = MaskShiftCount64(right);
970 return Invert(Binop(wasm::kExprI64Eq, left, right));
985 std::swap(left, right);
989 std::swap(left, right);
993 std::swap(left, right);
997 std::swap(left, right);
1000 right = MaskShiftCount64(right);
1001 return m->Is64() ? graph()->NewNode(m->Word64Ror(), left, right)
1002 : graph()->NewNode(m->Word64RorLowerable(), left, right,
1007 MaskShiftCount64(right))
1009 MaskShiftCount64(right), control());
1012 right, control());
1014 return BuildI64Rol(left, right);
1016 return BuildF32CopySign(left, right);
1018 return BuildF64CopySign(left, right);
1035 return Invert(Binop(wasm::kExprF32Eq, left, right));
1041 std::swap(left, right);
1045 std::swap(left, right);
1066 return Invert(Binop(wasm::kExprF64Eq, left, right));
1075 std::swap(left, right);
1079 std::swap(left, right);
1094 return BuildF64Pow(left, right);
1099 return BuildF64Mod(left, right);
1101 return gasm_->TaggedEqual(left, right);
1103 return BuildI32AsmjsDivS(left, right);
1105 return BuildI32AsmjsDivU(left, right);
1107 return BuildI32AsmjsRemS(left, right);
1109 return BuildI32AsmjsRemU(left, right);
1111 return BuildAsmjsStoreMem(MachineType::Int8(), left, right);
1113 return BuildAsmjsStoreMem(MachineType::Int16(), left, right);
1115 return BuildAsmjsStoreMem(MachineType::Int32(), left, right);
1117 return BuildAsmjsStoreMem(MachineType::Float32(), left, right);
1119 return BuildAsmjsStoreMem(MachineType::Float64(), left, right);
1123 return graph()->NewNode(op, left, right);
1882 Node* WasmGraphBuilder::BuildF32CopySign(Node* left, Node* right) {
1888 Binop(wasm::kExprI32And, Unop(wasm::kExprI32ReinterpretF32, right),
1894 Node* WasmGraphBuilder::BuildF64CopySign(Node* left, Node* right) {
1899 gasm_->Word64And(gasm_->BitcastFloat64ToInt64(right),
1906 Node* high_word_right = gasm_->Float64ExtractHighWord32(right);
2317 Node* WasmGraphBuilder::BuildF64Pow(Node* left, Node* right) {
2320 return BuildCFuncInstruction(ref, type, left, right);
2323 Node* WasmGraphBuilder::BuildF64Mod(Node* left, Node* right) {
2326 return BuildCFuncInstruction(ref, type, left, right);
2682 Node* WasmGraphBuilder::BuildI32DivS(Node* left, Node* right,
2684 ZeroCheck32(wasm::kTrapDivByZero, right, position);
2688 BranchExpectFalse(gasm_->Word32Equal(right, Int32Constant(-1)), &denom_is_m1,
2697 return gasm_->Int32Div(left, right);
2700 Node* WasmGraphBuilder::BuildI32RemS(Node* left, Node* right,
2704 ZeroCheck32(wasm::kTrapRemByZero, right, position);
2707 gasm_->Word32Equal(right, Int32Constant(-1)), BranchHint::kFalse);
2711 graph()->NewNode(m->Int32Mod(), left, right, d.if_false));
2714 Node* WasmGraphBuilder::BuildI32DivU(Node* left, Node* right,
2716 ZeroCheck32(wasm::kTrapDivByZero, right, position);
2717 return gasm_->Uint32Div(left, right);
2720 Node* WasmGraphBuilder::BuildI32RemU(Node* left, Node* right,
2722 ZeroCheck32(wasm::kTrapRemByZero, right, position);
2723 return gasm_->Uint32Mod(left, right);
2726 Node* WasmGraphBuilder::BuildI32AsmjsDivS(Node* left, Node* right) {
2729 Int32Matcher mr(right);
2737 return gasm_->Int32Div(left, right);
2742 // The hardware instruction does the right thing (e.g. arm).
2743 return gasm_->Int32Div(left, right);
2748 gasm_->Word32Equal(right, Int32Constant(0)), BranchHint::kFalse);
2753 gasm_->Word32Equal(right, Int32Constant(-1)), BranchHint::kFalse);
2756 Node* div = graph()->NewNode(m->Int32Div(), left, right, n.if_false);
2764 Node* WasmGraphBuilder::BuildI32AsmjsRemS(Node* left, Node* right) {
2769 Int32Matcher mr(right);
2774 return gasm_->Int32Mod(left, right);
2778 // power of 2 right hand side.
2780 // if 0 < right then
2781 // msk = right - 1
2782 // if right & msk != 0 then
2783 // left % right
2790 // if right < -1 then
2791 // left % right
2802 Node* check0 = gasm_->Int32LessThan(zero, right);
2809 Node* msk = graph()->NewNode(m->Int32Add(), right, minus_one);
2811 Node* check1 = graph()->NewNode(m->Word32And(), right, msk);
2815 Node* true1 = graph()->NewNode(m->Int32Mod(), left, right, if_true1);
2844 Node* check1 = graph()->NewNode(m->Int32LessThan(), right, minus_one);
2849 Node* true1 = graph()->NewNode(m->Int32Mod(), left, right, if_true1);
2862 Node* WasmGraphBuilder::BuildI32AsmjsDivU(Node* left, Node* right) {
2866 // The hardware instruction does the right thing (e.g. arm).
2867 return gasm_->Uint32Div(left, right);
2872 gasm_->Word32Equal(right, Int32Constant(0)), BranchHint::kFalse);
2876 graph()->NewNode(mcgraph()->machine()->Uint32Div(), left, right,
2880 Node* WasmGraphBuilder::BuildI32AsmjsRemU(Node* left, Node* right) {
2884 gasm_->Word32Equal(right, Int32Constant(0)), BranchHint::kFalse);
2887 Node* rem = graph()->NewNode(mcgraph()->machine()->Uint32Mod(), left, right,
2892 Node* WasmGraphBuilder::BuildI64DivS(Node* left, Node* right,
2895 return BuildDiv64Call(left, right, ExternalReference::wasm_int64_div(),
2898 ZeroCheck64(wasm::kTrapDivByZero, right, position);
2902 BranchExpectFalse(gasm_->Word64Equal(right, Int64Constant(-1)), &denom_is_m1,
2912 return gasm_->Int64Div(left, right);
2915 Node* WasmGraphBuilder::BuildI64RemS(Node* left, Node* right,
2918 return BuildDiv64Call(left, right, ExternalReference::wasm_int64_mod(),
2921 ZeroCheck64(wasm::kTrapRemByZero, right, position);
2923 gasm_->Word64Equal(right, Int64Constant(-1)));
2927 Node* rem = graph()->NewNode(mcgraph()->machine()->Int64Mod(), left, right,
2933 Node* WasmGraphBuilder::BuildI64DivU(Node* left, Node* right,
2936 return BuildDiv64Call(left, right, ExternalReference::wasm_uint64_div(),
2939 ZeroCheck64(wasm::kTrapDivByZero, right, position);
2940 return gasm_->Uint64Div(left, right);
2942 Node* WasmGraphBuilder::BuildI64RemU(Node* left, Node* right,
2945 return BuildDiv64Call(left, right, ExternalReference::wasm_uint64_mod(),
2948 ZeroCheck64(wasm::kTrapRemByZero, right, position);
2949 return gasm_->Uint64Mod(left, right);
2952 Node* WasmGraphBuilder::BuildDiv64Call(Node* left, Node* right,
2959 {MachineRepresentation::kWord64, right}});
3411 Node* WasmGraphBuilder::BuildI32Rol(Node* left, Node* right) {
3414 Int32Matcher m(right);
3420 Binop(wasm::kExprI32Sub, Int32Constant(32), right));
3424 Node* WasmGraphBuilder::BuildI64Rol(Node* left, Node* right) {
3427 Int64Matcher m(right);
3430 : Binop(wasm::kExprI64Sub, Int64Constant(64), right);