| ... | @@ -2658,19 +2658,19 @@ fn binOpBigInt(func: *CodeGen, lhs: WValue, rhs: WValue, ty: Type, op: Op) Inner | ... | @@ -2658,19 +2658,19 @@ fn binOpBigInt(func: *CodeGen, lhs: WValue, rhs: WValue, ty: Type, op: Op) Inner |
| 2658 | .rem => return func.callIntrinsic("__umodti3", &.{ ty.toIntern(), ty.toIntern() }, ty, &.{ lhs, rhs }), | 2658 | .rem => return func.callIntrinsic("__umodti3", &.{ ty.toIntern(), ty.toIntern() }, ty, &.{ lhs, rhs }), |
| 2659 | .shr => return func.callIntrinsic("__lshrti3", &.{ ty.toIntern(), .i32_type }, ty, &.{ lhs, rhs }), | 2659 | .shr => return func.callIntrinsic("__lshrti3", &.{ ty.toIntern(), .i32_type }, ty, &.{ lhs, rhs }), |
| 2660 | .shl => return func.callIntrinsic("__ashlti3", &.{ ty.toIntern(), .i32_type }, ty, &.{ lhs, rhs }), | 2660 | .shl => return func.callIntrinsic("__ashlti3", &.{ ty.toIntern(), .i32_type }, ty, &.{ lhs, rhs }), |
| 2661 | .xor => { | 2661 | .@"and", .@"or", .xor => { |
| 2662 | const result = try func.allocStack(ty); | 2662 | const result = try func.allocStack(ty); |
| 2663 | try func.emitWValue(result); | 2663 | try func.emitWValue(result); |
| 2664 | const lhs_high_bit = try func.load(lhs, Type.u64, 0); | 2664 | const lhs_high_bit = try func.load(lhs, Type.u64, 0); |
| 2665 | const rhs_high_bit = try func.load(rhs, Type.u64, 0); | 2665 | const rhs_high_bit = try func.load(rhs, Type.u64, 0); |
| 2666 | const xor_high_bit = try func.binOp(lhs_high_bit, rhs_high_bit, Type.u64, .xor); | 2666 | const op_high_bit = try func.binOp(lhs_high_bit, rhs_high_bit, Type.u64, op); |
| 2667 | try func.store(.stack, xor_high_bit, Type.u64, result.offset()); | 2667 | try func.store(.stack, op_high_bit, Type.u64, result.offset()); |
| 2668 | | 2668 | |
| 2669 | try func.emitWValue(result); | 2669 | try func.emitWValue(result); |
| 2670 | const lhs_low_bit = try func.load(lhs, Type.u64, 8); | 2670 | const lhs_low_bit = try func.load(lhs, Type.u64, 8); |
| 2671 | const rhs_low_bit = try func.load(rhs, Type.u64, 8); | 2671 | const rhs_low_bit = try func.load(rhs, Type.u64, 8); |
| 2672 | const xor_low_bit = try func.binOp(lhs_low_bit, rhs_low_bit, Type.u64, .xor); | 2672 | const op_low_bit = try func.binOp(lhs_low_bit, rhs_low_bit, Type.u64, op); |
| 2673 | try func.store(.stack, xor_low_bit, Type.u64, result.offset() + 8); | 2673 | try func.store(.stack, op_low_bit, Type.u64, result.offset() + 8); |
| 2674 | return result; | 2674 | return result; |
| 2675 | }, | 2675 | }, |
| 2676 | .add, .sub => { | 2676 | .add, .sub => { |