authorgravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2023-05-02 21:22:30-04:00
committergravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2023-05-03 04:25:14-04:00
loga5e50891cbd66c740afba722e94f841a2b43c1fc
tree2261801bdca6d21436c825e28d04076df31d0974
parent36a39267b89583ad1dded42a54de90a7f9b5eacf

x86_64: optimize code size for double neg/abs


1 files changed, 2 insertions(+), 6 deletions(-)

src/arch/x86_64/CodeGen.zig+2-6
...@@ -4229,16 +4229,12 @@ fn airFloatSign(self: *Self, inst: Air.Inst.Index) !void {...@@ -4229,16 +4229,12 @@ fn airFloatSign(self: *Self, inst: Air.Inst.Index) !void {
42294229
4230 const tag = self.air.instructions.items(.tag)[inst];4230 const tag = self.air.instructions.items(.tag)[inst];
4231 try self.genBinOpMir(switch (ty_bits) {4231 try self.genBinOpMir(switch (ty_bits) {
4232 32 => switch (tag) {4232 // No point using an extra prefix byte for *pd which performs the same operation.
4233 32, 64 => switch (tag) {
4233 .neg => .xorps,4234 .neg => .xorps,
4234 .fabs => .andnps,4235 .fabs => .andnps,
4235 else => unreachable,4236 else => unreachable,
4236 },4237 },
4237 64 => switch (tag) {
4238 .neg => .xorpd,
4239 .fabs => .andnpd,
4240 else => unreachable,
4241 },
4242 else => return self.fail("TODO implement airFloatSign for {}", .{4238 else => return self.fail("TODO implement airFloatSign for {}", .{
4243 ty.fmt(self.bin_file.options.module.?),4239 ty.fmt(self.bin_file.options.module.?),
4244 }),4240 }),