diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2022-02-06 22:41:43 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-02-06 22:41:43 -0500 |
| commit | 069dd01ce4ced3cb9664e4f1e09be753cb3ed476 (patch) | |
| tree | 4e32e8efde362d928e204335d8582788d1355b35 /src/Sema.zig | |
| parent | 53e6c719efe5073307ee58436b17ee80f574b984 (diff) | |
| parent | eb82fdf96c3392ec9eabacbaa98c976f9ccd264e (diff) | |
| download | zig-069dd01ce4ced3cb9664e4f1e09be753cb3ed476.tar.gz zig-069dd01ce4ced3cb9664e4f1e09be753cb3ed476.zip | |
Merge pull request #10740 from ziglang/stage2-float-arithmetic
stage2: add more float arithmetic and f80 support
Diffstat (limited to 'src/Sema.zig')
| -rw-r--r-- | src/Sema.zig | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/src/Sema.zig b/src/Sema.zig index 07e71c4bff..4e8853d7ce 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -8188,7 +8188,7 @@ fn analyzeArithmetic( } else { return sema.addConstant( scalar_type, - try lhs_val.floatAdd(rhs_val, scalar_type, sema.arena), + try lhs_val.floatAdd(rhs_val, scalar_type, sema.arena, target), ); } } else break :rs .{ .src = rhs_src, .air_tag = .add }; @@ -8281,7 +8281,7 @@ fn analyzeArithmetic( } else { return sema.addConstant( scalar_type, - try lhs_val.floatSub(rhs_val, scalar_type, sema.arena), + try lhs_val.floatSub(rhs_val, scalar_type, sema.arena, target), ); } } else break :rs .{ .src = rhs_src, .air_tag = .sub }; @@ -8397,7 +8397,7 @@ fn analyzeArithmetic( } else { return sema.addConstant( scalar_type, - try lhs_val.floatDiv(rhs_val, scalar_type, sema.arena), + try lhs_val.floatDiv(rhs_val, scalar_type, sema.arena, target), ); } } else { @@ -8472,7 +8472,7 @@ fn analyzeArithmetic( } else { return sema.addConstant( scalar_type, - try lhs_val.floatDivTrunc(rhs_val, scalar_type, sema.arena), + try lhs_val.floatDivTrunc(rhs_val, scalar_type, sema.arena, target), ); } } else break :rs .{ .src = rhs_src, .air_tag = .div_trunc }; @@ -8535,7 +8535,7 @@ fn analyzeArithmetic( } else { return sema.addConstant( scalar_type, - try lhs_val.floatDivFloor(rhs_val, scalar_type, sema.arena), + try lhs_val.floatDivFloor(rhs_val, scalar_type, sema.arena, target), ); } } else break :rs .{ .src = rhs_src, .air_tag = .div_floor }; @@ -8587,7 +8587,7 @@ fn analyzeArithmetic( // TODO: emit compile error if there is a remainder return sema.addConstant( scalar_type, - try lhs_val.floatDiv(rhs_val, scalar_type, sema.arena), + try lhs_val.floatDiv(rhs_val, scalar_type, sema.arena, target), ); } } else break :rs .{ .src = rhs_src, .air_tag = .div_exact }; @@ -8642,7 +8642,7 @@ fn analyzeArithmetic( } else { return sema.addConstant( scalar_type, - try lhs_val.floatMul(rhs_val, scalar_type, sema.arena), + try lhs_val.floatMul(rhs_val, scalar_type, sema.arena, target), ); } } else break :rs .{ .src = lhs_src, .air_tag = .mul }; @@ -8798,7 +8798,7 @@ fn analyzeArithmetic( } return sema.addConstant( scalar_type, - try lhs_val.floatRem(rhs_val, sema.arena), + try lhs_val.floatRem(rhs_val, scalar_type, sema.arena, target), ); } else { return sema.failWithModRemNegative(block, lhs_src, lhs_ty, rhs_ty); @@ -8859,7 +8859,7 @@ fn analyzeArithmetic( if (maybe_rhs_val) |rhs_val| { return sema.addConstant( scalar_type, - try lhs_val.floatRem(rhs_val, sema.arena), + try lhs_val.floatRem(rhs_val, scalar_type, sema.arena, target), ); } else break :rs .{ .src = rhs_src, .air_tag = .rem }; } else break :rs .{ .src = lhs_src, .air_tag = .rem }; @@ -8916,7 +8916,7 @@ fn analyzeArithmetic( if (maybe_rhs_val) |rhs_val| { return sema.addConstant( scalar_type, - try lhs_val.floatMod(rhs_val, sema.arena), + try lhs_val.floatMod(rhs_val, scalar_type, sema.arena, target), ); } else break :rs .{ .src = rhs_src, .air_tag = .mod }; } else break :rs .{ .src = lhs_src, .air_tag = .mod }; @@ -14196,12 +14196,12 @@ fn coerce( .Float, .ComptimeFloat => switch (inst_ty.zigTypeTag()) { .ComptimeFloat => { const val = try sema.resolveConstValue(block, inst_src, inst); - const result_val = try val.floatCast(sema.arena, dest_ty); + const result_val = try val.floatCast(sema.arena, dest_ty, target); return try sema.addConstant(dest_ty, result_val); }, .Float => { if (try sema.resolveDefinedValue(block, inst_src, inst)) |val| { - const result_val = try val.floatCast(sema.arena, dest_ty); + const result_val = try val.floatCast(sema.arena, dest_ty, target); if (!val.eql(result_val, dest_ty)) { return sema.fail( block, |
