Fix to bad codegen issue while tail calling virtual stub dispatched call that requires runtime lookup.
Fix to bad codegen issue while tail calling virtual stub dispatched call that requires runtime lookup.

This is a case of Virtual Stub Dispatch (VSD) call that requires runtime lookup.  For such a call JIT needs to pass the address of the indirection cell in R11 (which is a callee trash register).  For the F# repro, VSD call is marked with ".tail" prefix and a result RyuJIT attempted to dispatch through a tail call helper.  But CLR tail call helper implementation doesn't preserve R11 nor make any such guarantees and a result indirection cell address passed in R11 gets trashed leading to an AV in VM during call dispatch.  In fact all of the calls that have non-standard args passed in callee trash registers cannot be tail called via helper for the same reason.  Note that it is fine to fast tail call though.

     Fix: During call morphing reject tail calls with non-stand args to be dispatched via tail-call helper.

[tfs-changeset: 1506345]

josteink/coreclr,swgillespie/coreclr,mocsy/coreclr,JonHanna/coreclr,ramarag/coreclr,JosephTremoulet/coreclr,martinwoodward/coreclr,cshung/coreclr,roncain/coreclr,benpye/coreclr,ZhichengZhu/coreclr,jhendrixMSFT/coreclr,krixalis/coreclr,bartdesmet/coreclr,manu-silicon/coreclr,shana/coreclr,James-Ko/coreclr,yeaicc/coreclr,martinwoodward/coreclr,Dmitry-Me/coreclr,yeaicc/coreclr,geertdoornbos/coreclr,ramarag/coreclr,vinnyrom/coreclr,DasAllFolks/coreclr,cmckinsey/coreclr,schellap/coreclr,sagood/coreclr,mokchhya/coreclr,shahid-pk/coreclr,andschwa/coreclr,krk/coreclr,chrishaly/coreclr,sejongoh/coreclr,vinnyrom/coreclr,taylorjonl/coreclr,jhendrixMSFT/coreclr,blackdwarf/coreclr,wkchoy74/coreclr,dasMulli/coreclr,kyulee1/coreclr,ruben-ayrapetyan/coreclr,ramarag/coreclr,bartonjs/coreclr,zmaruo/coreclr,ericeil/coreclr,blackdwarf/coreclr,Alcaro/coreclr,shahid-pk/coreclr,OryJuVog/coreclr,MCGPPeters/coreclr,wtgodbe/coreclr,bartonjs/coreclr,martinwoodward/coreclr,naamunds/coreclr,qiudesong/coreclr,iamjasonp/coreclr,Sridhar-MS/coreclr,pgavlin/coreclr,naamunds/coreclr,mmitche/coreclr,SpotLabsNET/coreclr,Godin/coreclr,zmaruo/coreclr,orthoxerox/coreclr,bitcrazed/coreclr,yizhang82/coreclr,SlavaRa/coreclr,ragmani/coreclr,cshung/coreclr,taylorjonl/coreclr,GuilhermeSa/coreclr,ganeshran/coreclr,fffej/coreclr,YongseopKim/coreclr,SlavaRa/coreclr,mskvortsov/coreclr,pgavlin/coreclr,andschwa/coreclr,ZhichengZhu/coreclr,mskvortsov/coreclr,taylorjonl/coreclr,Samana/coreclr,stormleoxia/coreclr,MCGPPeters/coreclr,manu-silicon/coreclr,benpye/coreclr,chaos7theory/coreclr,mokchhya/coreclr,qiudesong/coreclr,matthubin/coreclr,sagood/coreclr,roncain/coreclr,ZhichengZhu/coreclr,krytarowski/coreclr,Godin/coreclr,manu-silicon/coreclr,ganeshran/coreclr,JosephTremoulet/coreclr,OryJuVog/coreclr,dasMulli/coreclr,sperling/coreclr,chrishaly/coreclr,ramarag/coreclr,krk/coreclr,shana/coreclr,manu-silicon/coreclr,orthoxerox/coreclr,parjong/coreclr,dkorolev/coreclr,pgavlin/coreclr,ktos/coreclr,sjsinju/coreclr,andschwa/coreclr,krytarowski/coreclr,jamesqo/coreclr,sperling/coreclr,krytarowski/coreclr,ericeil/coreclr,bitcrazed/coreclr,andschwa/coreclr,sagood/coreclr,russellhadley/coreclr,wtgodbe/coreclr,fffej/coreclr,KrzysztofCwalina/coreclr,jhendrixMSFT/coreclr,poizan42/coreclr,xoofx/coreclr,rartemev/coreclr,vinnyrom/coreclr,Lucrecious/coreclr,bitcrazed/coreclr,ragmani/coreclr,roncain/coreclr,mskvortsov/coreclr,alexperovich/coreclr,Dmitry-Me/coreclr,mokchhya/coreclr,serenabenny/coreclr,manu-silicon/coreclr,shahid-pk/coreclr,sagood/coreclr,bartonjs/coreclr,dkorolev/coreclr,wateret/coreclr,gkhanna79/coreclr,Alcaro/coreclr,JonHanna/coreclr,Djuffin/coreclr,orthoxerox/coreclr,Samana/coreclr,dkorolev/coreclr,dpodder/coreclr,dkorolev/coreclr,wkchoy74/coreclr,OryJuVog/coreclr,Lucrecious/coreclr,rartemev/coreclr,AlfredoMS/coreclr,jhendrixMSFT/coreclr,Godin/coreclr,fffej/coreclr,Alcaro/coreclr,ericeil/coreclr,naamunds/coreclr,bjjones/coreclr,yizhang82/coreclr,AlexGhiondea/coreclr,xoofx/coreclr,cydhaselton/coreclr,sperling/coreclr,bitcrazed/coreclr,dpodder/coreclr,russellhadley/coreclr,zmaruo/coreclr,bjjones/coreclr,ganeshran/coreclr,swgillespie/coreclr,sejongoh/coreclr,krixalis/coreclr,taylorjonl/coreclr,bjjones/coreclr,wateret/coreclr,chuck-mitchell/coreclr,DasAllFolks/coreclr,naamunds/coreclr,ragmani/coreclr,Dmitry-Me/coreclr,chrishaly/coreclr,tijoytom/coreclr,jhendrixMSFT/coreclr,chaos7theory/coreclr,alexperovich/coreclr,chuck-mitchell/coreclr,krk/coreclr,kyulee1/coreclr,dkorolev/coreclr,ericeil/coreclr,ytechie/coreclr,chuck-mitchell/coreclr,pgavlin/coreclr,ramarag/coreclr,KrzysztofCwalina/coreclr,blackdwarf/coreclr,JonHanna/coreclr,vinnyrom/coreclr,chaos7theory/coreclr,AlexGhiondea/coreclr,krytarowski/coreclr,JosephTremoulet/coreclr,SpotLabsNET/coreclr,MCGPPeters/coreclr,pgavlin/coreclr,stormleoxia/coreclr,dpodder/coreclr,shahid-pk/coreclr,chrishaly/coreclr,Sridhar-MS/coreclr,Lucrecious/coreclr,orthoxerox/coreclr,ganeshran/coreclr,tijoytom/coreclr,bitcrazed/coreclr,jamesqo/coreclr,Samana/coreclr,bartonjs/coreclr,poizan42/coreclr,ktos/coreclr,sperling/coreclr,martinwoodward/coreclr,Lucrecious/coreclr,blackdwarf/coreclr,AlexGhiondea/coreclr,hseok-oh/coreclr,mmitche/coreclr,AlexGhiondea/coreclr,cmckinsey/coreclr,sperling/coreclr,benpye/coreclr,James-Ko/coreclr,matthubin/coreclr,hseok-oh/coreclr,stormleoxia/coreclr,SlavaRa/coreclr,wkchoy74/coreclr,manu-silicon/coreclr,poizan42/coreclr,jamesqo/coreclr,josteink/coreclr,mokchhya/coreclr,hseok-oh/coreclr,KrzysztofCwalina/coreclr,botaberg/coreclr,poizan42/coreclr,wateret/coreclr,chaos7theory/coreclr,qiudesong/coreclr,ruben-ayrapetyan/coreclr,blackdwarf/coreclr,mmitche/coreclr,gitchomik/coreclr,bartdesmet/coreclr,Djuffin/coreclr,wtgodbe/coreclr,iamjasonp/coreclr,chuck-mitchell/coreclr,cmckinsey/coreclr,bjjones/coreclr,cydhaselton/coreclr,cydhaselton/coreclr,vinnyrom/coreclr,martinwoodward/coreclr,yeaicc/coreclr,swgillespie/coreclr,xoofx/coreclr,cmckinsey/coreclr,mocsy/coreclr,swgillespie/coreclr,Samana/coreclr,YongseopKim/coreclr,matthubin/coreclr,xoofx/coreclr,botaberg/coreclr,ytechie/coreclr,wateret/coreclr,martinwoodward/coreclr,schellap/coreclr,sperling/coreclr,chrishaly/coreclr,SlavaRa/coreclr,chrishaly/coreclr,jamesqo/coreclr,chuck-mitchell/coreclr,russellhadley/coreclr,perfectphase/coreclr,yeaicc/coreclr,josteink/coreclr,fffej/coreclr,tijoytom/coreclr,DasAllFolks/coreclr,ramarag/coreclr,ktos/coreclr,wtgodbe/coreclr,jhendrixMSFT/coreclr,naamunds/coreclr,dasMulli/coreclr,MCGPPeters/coreclr,roncain/coreclr,zmaruo/coreclr,bartonjs/coreclr,dasMulli/coreclr,stormleoxia/coreclr,sejongoh/coreclr,shana/coreclr,Dmitry-Me/coreclr,mocsy/coreclr,josteink/coreclr,krixalis/coreclr,sjsinju/coreclr,neurospeech/coreclr,MCGPPeters/coreclr,shana/coreclr,OryJuVog/coreclr,botaberg/coreclr,serenabenny/coreclr,botaberg/coreclr,dpodder/coreclr,vinnyrom/coreclr,KrzysztofCwalina/coreclr,KrzysztofCwalina/coreclr,AlfredoMS/coreclr,matthubin/coreclr,Alcaro/coreclr,hseok-oh/coreclr,kyulee1/coreclr,andschwa/coreclr,neurospeech/coreclr,orthoxerox/coreclr,serenabenny/coreclr,chuck-mitchell/coreclr,yeaicc/coreclr,andschwa/coreclr,LLITCHEV/coreclr,wkchoy74/coreclr,ktos/coreclr,sagood/coreclr,tijoytom/coreclr,hseok-oh/coreclr,wateret/coreclr,JonHanna/coreclr,DasAllFolks/coreclr,LLITCHEV/coreclr,Godin/coreclr,yizhang82/coreclr,swgillespie/coreclr,bitcrazed/coreclr,tijoytom/coreclr,geertdoornbos/coreclr,YongseopKim/coreclr,cydhaselton/coreclr,dkorolev/coreclr,sejongoh/coreclr,Sridhar-MS/coreclr,shana/coreclr,chaos7theory/coreclr,Dmitry-Me/coreclr,andschwa/coreclr,bartdesmet/coreclr,OryJuVog/coreclr,taylorjonl/coreclr,mmitche/coreclr,ytechie/coreclr,gkhanna79/coreclr,perfectphase/coreclr,perfectphase/coreclr,yizhang82/coreclr,benpye/coreclr,gkhanna79/coreclr,AlfredoMS/coreclr,taylorjonl/coreclr,JonHanna/coreclr,orthoxerox/coreclr,DasAllFolks/coreclr,fffej/coreclr,chaos7theory/coreclr,Lucrecious/coreclr,Djuffin/coreclr,gkhanna79/coreclr,LLITCHEV/coreclr,AlexGhiondea/coreclr,alexperovich/coreclr,LLITCHEV/coreclr,AlfredoMS/coreclr,serenabenny/coreclr,iamjasonp/coreclr,AlfredoMS/coreclr,yeaicc/coreclr,qiudesong/coreclr,bartonjs/coreclr,roncain/coreclr,rartemev/coreclr,parjong/coreclr,bjjones/coreclr,JonHanna/coreclr,KrzysztofCwalina/coreclr,iamjasonp/coreclr,qiudesong/coreclr,sejongoh/coreclr,LLITCHEV/coreclr,ytechie/coreclr,josteink/coreclr,ramarag/coreclr,bartdesmet/coreclr,KrzysztofCwalina/coreclr,stormleoxia/coreclr,stormleoxia/coreclr,sejongoh/coreclr,geertdoornbos/coreclr,ganeshran/coreclr,YongseopKim/coreclr,mmitche/coreclr,perfectphase/coreclr,schellap/coreclr,martinwoodward/coreclr,cmckinsey/coreclr,krixalis/coreclr,Sridhar-MS/coreclr,Samana/coreclr,rartemev/coreclr,poizan42/coreclr,yizhang82/coreclr,gitchomik/coreclr,dpodder/coreclr,ragmani/coreclr,serenabenny/coreclr,ericeil/coreclr,bitcrazed/coreclr,DasAllFolks/coreclr,SpotLabsNET/coreclr,bartdesmet/coreclr,gkhanna79/coreclr,iamjasonp/coreclr,ganeshran/coreclr,mocsy/coreclr,alexperovich/coreclr,ruben-ayrapetyan/coreclr,cshung/coreclr,benpye/coreclr,cydhaselton/coreclr,gitchomik/coreclr,SpotLabsNET/coreclr,dasMulli/coreclr,wateret/coreclr,rartemev/coreclr,ytechie/coreclr,SpotLabsNET/coreclr,AlexGhiondea/coreclr,shahid-pk/coreclr,jamesqo/coreclr,LLITCHEV/coreclr,Alcaro/coreclr,ragmani/coreclr,mocsy/coreclr,geertdoornbos/coreclr,russellhadley/coreclr,yeaicc/coreclr,ruben-ayrapetyan/coreclr,zmaruo/coreclr,ktos/coreclr,fffej/coreclr,geertdoornbos/coreclr,mokchhya/coreclr,James-Ko/coreclr,JosephTremoulet/coreclr,russellhadley/coreclr,Dmitry-Me/coreclr,kyulee1/coreclr,GuilhermeSa/coreclr,Samana/coreclr,hseok-oh/coreclr,GuilhermeSa/coreclr,OryJuVog/coreclr,dasMulli/coreclr,bartdesmet/coreclr,bartonjs/coreclr,taylorjonl/coreclr,Djuffin/coreclr,pgavlin/coreclr,mocsy/coreclr,krk/coreclr,kyulee1/coreclr,alexperovich/coreclr,xoofx/coreclr,Dmitry-Me/coreclr,dpodder/coreclr,parjong/coreclr,mocsy/coreclr,krytarowski/coreclr,wkchoy74/coreclr,sjsinju/coreclr,LLITCHEV/coreclr,Lucrecious/coreclr,parjong/coreclr,Sridhar-MS/coreclr,neurospeech/coreclr,geertdoornbos/coreclr,shahid-pk/coreclr,gitchomik/coreclr,perfectphase/coreclr,sjsinju/coreclr,mskvortsov/coreclr,sjsinju/coreclr,manu-silicon/coreclr,serenabenny/coreclr,mskvortsov/coreclr,sagood/coreclr,SpotLabsNET/coreclr,neurospeech/coreclr,ruben-ayrapetyan/coreclr,neurospeech/coreclr,mskvortsov/coreclr,wtgodbe/coreclr,chuck-mitchell/coreclr,ericeil/coreclr,Godin/coreclr,cmckinsey/coreclr,ZhichengZhu/coreclr,rartemev/coreclr,zmaruo/coreclr,swgillespie/coreclr,roncain/coreclr,GuilhermeSa/coreclr,geertdoornbos/coreclr,Godin/coreclr,Alcaro/coreclr,sperling/coreclr,mokchhya/coreclr,ktos/coreclr,iamjasonp/coreclr,gitchomik/coreclr,cmckinsey/coreclr,AlfredoMS/coreclr,krixalis/coreclr,parjong/coreclr,roncain/coreclr,schellap/coreclr,Godin/coreclr,matthubin/coreclr,naamunds/coreclr,GuilhermeSa/coreclr,swgillespie/coreclr,tijoytom/coreclr,neurospeech/coreclr,GuilhermeSa/coreclr,ktos/coreclr,shana/coreclr,shahid-pk/coreclr,yizhang82/coreclr,mokchhya/coreclr,wtgodbe/coreclr,josteink/coreclr,kyulee1/coreclr,jhendrixMSFT/coreclr,Djuffin/coreclr,Djuffin/coreclr,wkchoy74/coreclr,Lucrecious/coreclr,krk/coreclr,YongseopKim/coreclr,YongseopKim/coreclr,alexperovich/coreclr,ytechie/coreclr,SlavaRa/coreclr,James-Ko/coreclr,wkchoy74/coreclr,JosephTremoulet/coreclr,russellhadley/coreclr,qiudesong/coreclr,botaberg/coreclr,krk/coreclr,jamesqo/coreclr,Sridhar-MS/coreclr,krixalis/coreclr,sjsinju/coreclr,dasMulli/coreclr,ragmani/coreclr,schellap/coreclr,perfectphase/coreclr,sejongoh/coreclr,blackdwarf/coreclr,ruben-ayrapetyan/coreclr,schellap/coreclr,gitchomik/coreclr,JosephTremoulet/coreclr,mmitche/coreclr,James-Ko/coreclr,bartdesmet/coreclr,ZhichengZhu/coreclr,vinnyrom/coreclr,naamunds/coreclr,benpye/coreclr,botaberg/coreclr,stormleoxia/coreclr,cydhaselton/coreclr,matthubin/coreclr,ZhichengZhu/coreclr,SlavaRa/coreclr,krytarowski/coreclr,poizan42/coreclr,cshung/coreclr,MCGPPeters/coreclr,James-Ko/coreclr,cshung/coreclr,blackdwarf/coreclr,ZhichengZhu/coreclr,josteink/coreclr,parjong/coreclr,gkhanna79/coreclr,cshung/coreclr,schellap/coreclr,xoofx/coreclr,bjjones/coreclr,benpye/coreclr