Lines Matching defs:left
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);
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);
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);
1001 return m->Is64() ? graph()->NewNode(m->Word64Ror(), left, right)
1002 : graph()->NewNode(m->Word64RorLowerable(), left, right,
1006 return m->Is64() ? graph()->NewNode(m->Word64Rol().op(), left,
1008 : graph()->NewNode(m->Word64RolLowerable().op(), left,
1011 return graph()->NewNode(m->Word64RolLowerable().placeholder(), left,
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) {
1886 Binop(wasm::kExprI32And, Unop(wasm::kExprI32ReinterpretF32, left),
1894 Node* WasmGraphBuilder::BuildF64CopySign(Node* left, Node* right) {
1897 gasm_->Word64Or(gasm_->Word64And(gasm_->BitcastFloat64ToInt64(left),
1905 Node* high_word_left = gasm_->Float64ExtractHighWord32(left);
1912 return gasm_->Float64InsertHighWord32(left, new_high_word);
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,
2691 TrapIfEq32(wasm::kTrapDivUnrepresentable, left, kMinInt, position);
2697 return gasm_->Int32Div(left, right);
2700 Node* WasmGraphBuilder::BuildI32RemS(Node* left, Node* right,
2711 graph()->NewNode(m->Int32Mod(), left, right, d.if_false));
2714 Node* WasmGraphBuilder::BuildI32DivU(Node* left, Node* right,
2717 return gasm_->Uint32Div(left, right);
2720 Node* WasmGraphBuilder::BuildI32RemU(Node* left, Node* right,
2723 return gasm_->Uint32Mod(left, right);
2726 Node* WasmGraphBuilder::BuildI32AsmjsDivS(Node* left, Node* right) {
2734 // The result is the negation of the left input.
2735 return gasm_->Int32Sub(Int32Constant(0), left);
2737 return gasm_->Int32Div(left, right);
2743 return gasm_->Int32Div(left, right);
2756 Node* div = graph()->NewNode(m->Int32Div(), left, right, n.if_false);
2758 Node* neg = gasm_->Int32Sub(Int32Constant(0), left);
2764 Node* WasmGraphBuilder::BuildI32AsmjsRemS(Node* left, Node* right) {
2774 return gasm_->Int32Mod(left, right);
2783 // left % right
2785 // if left < 0 then
2786 // -(-left & msk)
2788 // left & msk
2791 // left % right
2815 Node* true1 = graph()->NewNode(m->Int32Mod(), left, right, if_true1);
2820 Node* check2 = graph()->NewNode(m->Int32LessThan(), left, zero);
2828 graph()->NewNode(m->Int32Sub(), zero, left), msk));
2831 Node* false2 = graph()->NewNode(m->Word32And(), left, msk);
2849 Node* true1 = graph()->NewNode(m->Int32Mod(), left, right, if_true1);
2862 Node* WasmGraphBuilder::BuildI32AsmjsDivU(Node* left, Node* right) {
2867 return gasm_->Uint32Div(left, right);
2876 graph()->NewNode(mcgraph()->machine()->Uint32Div(), left, right,
2880 Node* WasmGraphBuilder::BuildI32AsmjsRemU(Node* left, Node* right) {
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(),
2905 TrapIfEq64(wasm::kTrapDivUnrepresentable, left,
2912 return gasm_->Int64Div(left, right);
2915 Node* WasmGraphBuilder::BuildI64RemS(Node* left, Node* right,
2918 return BuildDiv64Call(left, right, ExternalReference::wasm_int64_mod(),
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(),
2940 return gasm_->Uint64Div(left, right);
2942 Node* WasmGraphBuilder::BuildI64RemU(Node* left, Node* right,
2945 return BuildDiv64Call(left, right, ExternalReference::wasm_uint64_mod(),
2949 return gasm_->Uint64Mod(left, right);
2952 Node* WasmGraphBuilder::BuildDiv64Call(Node* left, Node* right,
2958 StoreArgsInStackSlot({{MachineRepresentation::kWord64, left},
3411 Node* WasmGraphBuilder::BuildI32Rol(Node* left, Node* right) {
3416 return Binop(wasm::kExprI32Ror, left,
3419 return Binop(wasm::kExprI32Ror, left,
3424 Node* WasmGraphBuilder::BuildI64Rol(Node* left, Node* right) {
3431 return Binop(wasm::kExprI64Ror, left, inv_right);