From 887c97742f86071ffab2a79443d48c4153b63ad6 Mon Sep 17 00:00:00 2001 From: Marc Tiehuis Date: Sat, 30 Jun 2018 20:15:02 +1200 Subject: [PATCH] Alignment fix and allow rudimentary f128 float printing --- std/fmt/index.zig | 2 +- std/special/compiler_rt/floatunditf.zig | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/std/fmt/index.zig b/std/fmt/index.zig index f4dfa0e324..bf12e86fef 100644 --- a/std/fmt/index.zig +++ b/std/fmt/index.zig @@ -327,7 +327,7 @@ pub fn formatFloatScientific( comptime Errors: type, output: fn (@typeOf(context), []const u8) Errors!void, ) Errors!void { - var x = f64(value); + var x = @floatCast(f64, value); // Errol doesn't handle these special cases. if (math.signbit(x)) { diff --git a/std/special/compiler_rt/floatunditf.zig b/std/special/compiler_rt/floatunditf.zig index 12d6a5613f..afc545448a 100644 --- a/std/special/compiler_rt/floatunditf.zig +++ b/std/special/compiler_rt/floatunditf.zig @@ -17,7 +17,7 @@ pub extern fn __floatunditf(a: u128) f128 { const exp = (u128.bit_count - 1) - @clz(a); const shift = mantissa_bits - @intCast(u7, exp); - var result: u128 = (a << shift) ^ implicit_bit; + var result: u128 align(16) = (a << shift) ^ implicit_bit; result += (@intCast(u128, exp) + exponent_bias) << mantissa_bits; return @bitCast(f128, result);