mirror of
https://github.com/ziglang/zig.git
synced 2026-02-14 13:30:45 +00:00
x86_64: add missing decodings for .movsx
This commit is contained in:
parent
fe1fab4a8e
commit
e34e7d5ad1
@ -5841,7 +5841,7 @@ fn genSetReg(self: *Self, ty: Type, reg: Register, mcv: MCValue) InnerError!void
|
||||
if (intrinsicsAllowed(self.target.*, ty)) {
|
||||
const tag: Mir.Inst.Tag = switch (ty.tag()) {
|
||||
.f32 => .movss,
|
||||
.f64 => .movsx,
|
||||
.f64 => .movsd,
|
||||
else => return self.fail("TODO genSetReg from memory for {}", .{ty.fmtDebug()}),
|
||||
};
|
||||
const ptr_size: Memory.PtrSize = switch (ty.tag()) {
|
||||
|
||||
@ -328,6 +328,16 @@ fn mirMovsx(emit: *Emit, inst: Mir.Inst.Index) InnerError!void {
|
||||
op1 = .{ .reg = data.rr.r1 };
|
||||
op2 = .{ .reg = data.rr.r2 };
|
||||
},
|
||||
.rm_sib => {
|
||||
const msib = emit.mir.extraData(Mir.MemorySib, data.rx.payload).data;
|
||||
op1 = .{ .reg = data.rx.r1 };
|
||||
op2 = .{ .mem = Mir.MemorySib.decode(msib) };
|
||||
},
|
||||
.rm_rip => {
|
||||
const mrip = emit.mir.extraData(Mir.MemoryRip, data.rx.payload).data;
|
||||
op1 = .{ .reg = data.rx.r1 };
|
||||
op2 = .{ .mem = Mir.MemoryRip.decode(mrip) };
|
||||
},
|
||||
else => unreachable, // TODO
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user