https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89316
--- Comment #9 from Uroš Bizjak <ubizjak at gmail dot com> --- (In reply to Uroš Bizjak from comment #8) > (In reply to Jakub Jelinek from comment #7) > > Guess this is similar to the TLS ICE with -mforce-indirect-call. In this > > case, I think we need to figure out into which register could we load the > > address. Unfortunately, %rax or %eax isn't available for that, at least not > > always, e.g. for -m64 it can hold the saved static chain, the existence of > > __morestack_large_model shows that, but -m32 doesn't have anything like > > that. > > So, in theory for -fsplit-stack -mforce-indirect-call -m64 we could call > > __morestack_large_model even in non-large model compilations, just load the > > address of that function differently. For -m32, I'm out of ideas. > > We may use a temporary regno as returned from > split_stack_prologue_scratch_regno, perhaps in some generalized form here. Bah, get_scratch_register_on_entry, not split_stack_prologue_scratch_regno.