[PATCH] x86: drop bogus Tbyte
H.J. Lu
hjl.tools@gmail.com
Mon Oct 31 16:31:51 GMT 2022
On Mon, Oct 31, 2022 at 3:18 AM Jan Beulich <jbeulich@suse.com> wrote:
>
> Prior to commit 1cb0ab18ad24 ("x86/Intel: restrict suffix derivation")
> the Tbyte modifier on the FLDT and FSTPT templates was pointless, as
> No_ldSuf would have prevented it being accepted. Due to the special
> nature of LONG_DOUBLE_MNEM_SUFFIX said commit, however, has led to these
> insns being accepted in Intel syntax mode even when "tbyte ptr" was
> present. Restore original behavior by dropping Tbyte there. (Note that
> these insns in principle should by marked AT&T syntax only, but since
> they haven't been so far we probably shouldn't change that.)
>
> --- a/opcodes/i386-opc.tbl
> +++ b/opcodes/i386-opc.tbl
> @@ -599,7 +599,7 @@ fld, 0xdb, 5, CpuFP, Modrm|No_bSuf|No_wS
> fild, 0xdf, 0, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Word|Dword|Unspecified|BaseIndex }
> fild, 0xdf, 5, CpuFP, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex }
> fildll, 0xdf, 5, CpuFP, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ATTSyntax, { Unspecified|BaseIndex }
> -fldt, 0xdb, 5, CpuFP, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Tbyte|Unspecified|BaseIndex }
> +fldt, 0xdb, 5, CpuFP, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex }
> fbld, 0xdf, 4, CpuFP, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf, { Tbyte|Unspecified|BaseIndex }
>
> // store (no pop)
> @@ -617,7 +617,7 @@ fstp, 0xdb, 7, CpuFP, Modrm|No_bSuf|No_w
> fistp, 0xdf, 3, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Word|Dword|Unspecified|BaseIndex }
> fistp, 0xdf, 7, CpuFP, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex }
> fistpll, 0xdf, 7, CpuFP, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ATTSyntax, { Unspecified|BaseIndex }
> -fstpt, 0xdb, 7, CpuFP, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Tbyte|Unspecified|BaseIndex }
> +fstpt, 0xdb, 7, CpuFP, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex }
> fbstp, 0xdf, 6, CpuFP, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf, { Tbyte|Unspecified|BaseIndex }
>
> // exchange %st<n> with %st0
OK.
Thanks.
--
H.J.
More information about the Binutils
mailing list