https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118940
--- Comment #14 from Vladimir Makarov <vmakarov at gcc dot gnu.org> --- (In reply to Jakub Jelinek from comment #13) > The inline asm stresses the RA to the maximum, it needs 6 registers, di, cx, > ax + 3 others and sp is fixed and bp is used as frame pointer. > But at least in theory it should be reloadable. The problem is actually solved exactly by the patch for PR115458 which makes live range splitting more reliable. I took time to analyze this and I found that although the patch does not do any hard reg live range splitting, it ran additional sub-passes (assignment sub-pass) after trying and failing to do the live range splitting. And additional sub-pass helps to generate necessary spills and reloads. In any case I'll still submit the PR test today.