diff options
| author | Jacob G-W <jacoblevgw@gmail.com> | 2021-11-10 14:25:43 -0500 |
|---|---|---|
| committer | Jakub Konka <kubkon@jakubkonka.com> | 2021-11-10 21:56:03 -0800 |
| commit | f3ba72cf5a7e2c40c6a10fd987e7f4486c2b9300 (patch) | |
| tree | 1d3136cf7e61a962e78460d12fe1521247d7700e /src | |
| parent | e5bc092408d7a02b74011e07beaee3c98ec9a268 (diff) | |
| download | zig-f3ba72cf5a7e2c40c6a10fd987e7f4486c2b9300.tar.gz zig-f3ba72cf5a7e2c40c6a10fd987e7f4486c2b9300.zip | |
x86_64/Emit: don't misisel push/pop for extended regs
Diffstat (limited to 'src')
| -rw-r--r-- | src/arch/x86_64/Emit.zig | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/arch/x86_64/Emit.zig b/src/arch/x86_64/Emit.zig index 3c53e5f680..7430b8065b 100644 --- a/src/arch/x86_64/Emit.zig +++ b/src/arch/x86_64/Emit.zig @@ -197,7 +197,10 @@ fn mirPushPop(emit: *Emit, tag: Mir.Inst.Tag, inst: Mir.Inst.Index) InnerError!v .pop => 0x58, else => unreachable, }; - const encoder = try Encoder.init(emit.code, 1); + const encoder = try Encoder.init(emit.code, 2); + encoder.rex(.{ + .b = ops.reg1.isExtended(), + }); encoder.opcode_withReg(opc, ops.reg1.lowId()); }, 0b01 => { |
