This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [DO NOT APPLY 11/10] x86: remaining ambiguous operand cases
On Tue, Aug 6, 2019 at 7:32 AM Jan Beulich <jbeulich@suse.com> wrote:
>
>
> The further tests added below produce the following testsuite failures:
>
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg16.s:7: Warning: 0000000012345678 shortened to 0000000000005678
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg16.s:11: Warning: 0000000012345678 shortened to 0000000000005678
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg16.s:15: Warning: 0000000012345678 shortened to 0000000000005678
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg16.s:24: Warning: 0000000012345678 shortened to 0000000000005678
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg16.s:70: Warning: 0000000012345678 shortened to 0000000000005678
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg16.s:85: Warning: 0000000012345678 shortened to 0000000000005678
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg16.s:108: Warning: 0000000012345678 shortened to 0000000000005678
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg16.s:128: Warning: 0000000012345678 shortened to 0000000000005678
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg16.s:131: Warning: 0000000012345678 shortened to 0000000000005678
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg16.s:132: Error: operand size mismatch for `vcvtneps2bf16'
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg16.s:133: Error: operand size mismatch for `vcvtpd2dq'
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg16.s:134: Error: operand size mismatch for `vcvtpd2dq'
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg16.s:135: Error: operand size mismatch for `vcvtpd2ps'
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg16.s:136: Error: operand size mismatch for `vcvtpd2ps'
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg16.s:137: Error: operand size mismatch for `vcvtpd2udq'
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg16.s:138: Error: operand size mismatch for `vcvtqq2ps'
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg16.s:143: Error: operand size mismatch for `vcvttpd2dq'
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg16.s:144: Error: operand size mismatch for `vcvttpd2dq'
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg16.s:145: Error: operand size mismatch for `vcvttpd2udq'
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg16.s:146: Error: operand size mismatch for `vcvtuqq2ps'
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg16.s:154: Warning: 0000000012345678 shortened to 0000000000005678
>
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg32.s:131: Error: operand size mismatch for `vcvtneps2bf16'
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg32.s:132: Error: operand size mismatch for `vcvtpd2dq'
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg32.s:133: Error: operand size mismatch for `vcvtpd2dq'
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg32.s:134: Error: operand size mismatch for `vcvtpd2ps'
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg32.s:135: Error: operand size mismatch for `vcvtpd2ps'
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg32.s:136: Error: operand size mismatch for `vcvtpd2udq'
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg32.s:137: Error: operand size mismatch for `vcvtqq2ps'
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg32.s:142: Error: operand size mismatch for `vcvttpd2dq'
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg32.s:143: Error: operand size mismatch for `vcvttpd2dq'
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg32.s:144: Error: operand size mismatch for `vcvttpd2udq'
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg32.s:145: Error: operand size mismatch for `vcvtuqq2ps'
>
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg64.s:134: Error: operand size mismatch for `vcvtneps2bf16'
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg64.s:135: Error: operand size mismatch for `vcvtpd2dq'
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg64.s:136: Error: operand size mismatch for `vcvtpd2dq'
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg64.s:137: Error: operand size mismatch for `vcvtpd2ps'
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg64.s:138: Error: operand size mismatch for `vcvtpd2ps'
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg64.s:139: Error: operand size mismatch for `vcvtpd2udq'
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg64.s:140: Error: operand size mismatch for `vcvtqq2ps'
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg64.s:145: Error: operand size mismatch for `vcvttpd2dq'
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg64.s:146: Error: operand size mismatch for `vcvttpd2dq'
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg64.s:147: Error: operand size mismatch for `vcvttpd2udq'
> /home/jbeulich/cpp/binutils/master-git/2019-06-24/gas/testsuite/gas/i386/noreg64.s:148: Error: operand size mismatch for `vcvtuqq2ps'
>
> Questions:
> 1) Should 32-bit immediates in 16-bit mode result in 32-bit encoding to be emitted?
> If so, what about symbol references - should we assume 16- or 32-bit addresses
> in this case?
No. Suffix should be required in this case.
> 2) Should the XMM/YMM ambiguity be resolved (if so I'd suggest to default to XMM)?
No. Suffix should be required in this case.
H.J.