These are pre-UAL syntax, and we don't support any other pre-UAL instructions, with the exception of FLDMX/FSTMX, which don't have a UAL equivalent. Therefore there's no reason to keep them or their AsmParser hacks around.
Details
Diff Detail
- Repository
- rL LLVM
Event Timeline
We don't want pre-UAL syntax. I know these were there before, but moving them up into table-gen encourages people to further add pre-UAL support and I believe we should stay well away from it.
Is there any reason why we don't just remove it?
+Saleem, who added these aliases in 2013.
Do you remember why these aliases were added, but not any other pre-UAL VFP instructions? There is a section in the v7AR reference manual calling out the FLDMX and FSTMX instructions as not having a UAL syntax, while still having a defined (but deprecated) baheviour, but this patch doesn't touch them.
IIRC it had something to do with not having the equivalent mnemonics in UAL. If there is an equivalent, I don't think that we need to bother with the addition of the support for the pre-UAL syntax. Its been long enough, and most of the translation is relatively easy.
I've double-checked, and the FLDMX and FSTMX are the only pre-UAL VFP instructions that don't have a UAL syntax, so I've removed all of the FLDMS anbd FLDMD aliases.
This still removes all of the hacks in the AsmParser, so the diagnostics for the register list operand in FLDMX and FSTMX are now the standard ones for the dpr_reglist operand class, as used by the UAL instructions.
Hi @rengolin
You were right. I afraid that this change breaks building some Android code. See https://android.googlesource.com/platform/frameworks/av, and, for example, the android-8.1.0_r9 tag, media/libstagefright/codecs/aacenc/src/asm/ARMV7/*.S. These files use fstmfdd and fldmfdd and are failed to compile now. They are already removed from the master branch (merge commit 69d60c1372, 17-Oct-2017), however, I believe that we have to be able to compile the existing versions.