https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89316
--- Comment #8 from Uroš Bizjak <ubizjak at gmail dot com> --- (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.