Commit 3145fa97c2

Jakub Konka <kubkon@jakubkonka.com>
2022-01-17 21:52:15
stage2: separate ptr and stack offset codepaths in genSetStack
1 parent ab204f8
Changed files (1)
src
arch
src/arch/x86_64/CodeGen.zig
@@ -3252,9 +3252,11 @@ fn genSetStack(self: *Self, ty: Type, stack_offset: u32, mcv: MCValue) InnerErro
             }
             return self.fail("TODO implement memcpy for setting stack from {}", .{mcv});
         },
-        .ptr_stack_offset,
-        .stack_offset,
-        => |off| {
+        .ptr_stack_offset => {
+            const reg = try self.copyToTmpRegister(ty, mcv);
+            return self.genSetStack(ty, stack_offset, MCValue{ .register = reg });
+        },
+        .stack_offset => |off| {
             if (stack_offset == off) {
                 // Copy stack variable to itself; nothing to do.
                 return;