aboutsummaryrefslogtreecommitdiff
path: root/src/Sema.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2022-02-06 22:41:43 -0500
committerGitHub <noreply@github.com>2022-02-06 22:41:43 -0500
commit069dd01ce4ced3cb9664e4f1e09be753cb3ed476 (patch)
tree4e32e8efde362d928e204335d8582788d1355b35 /src/Sema.zig
parent53e6c719efe5073307ee58436b17ee80f574b984 (diff)
parenteb82fdf96c3392ec9eabacbaa98c976f9ccd264e (diff)
downloadzig-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.zig24
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,