This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [PATCH] x86/Intel: fix indirect far jmp/call with operand size specified
- From: "Jan Beulich" <jbeulich at novell dot com>
- To: "H.J. Lu" <hjl dot tools at gmail dot com>
- Cc: <binutils at sourceware dot org>
- Date: Fri, 22 Feb 2008 15:33:42 +0000
- Subject: Re: [PATCH] x86/Intel: fix indirect far jmp/call with operand size specified
- References: <47BDB2BE.76E4.0078.0@novell.com> <20080222151717.GB24838@lucon.org>
>> -jmp, 1, 0xff, 0x4, 1, Cpu64, Modrm|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Reg64|Qword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S|JumpAbsolute }
>> +jmp, 1, 0xff, 0x4, 1, Cpu64, Modrm|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Reg16|Reg64|Word|Qword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S|JumpAbsolute }
>
>This is wrong. 64bit jump/call only support 64bit reg/mem.
I just made jmp match call. And I'm pretty sure it's actually valid (despite
being pointless); I think I even tried it out once. It's just like 16-bit
push/pop is encodable, even though it makes little sense.
Jan