[WRAPPER] Fixed RV64 isSimpleWrappers (#1898)

This commit is contained in:
rajdakin 2024-10-03 12:49:18 +02:00 committed by GitHub
parent 1c7ac8c761
commit 49aaeb3080
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 412 additions and 116 deletions

View File

@ -867,11 +867,11 @@ def main(root: str, files: Iterable[Filename], ver: str):
}
def check_simple(v: FunctionType) -> Dict[str, int]:
regs_count: int = 0
fpr_count : int = 0
ret: Dict[str, int] = {}
for k in forbidden_simple:
regs_count: int = 0
fpr_count : int = 0
if v.get_convention() is not allowed_conv:
continue
if v[0] in forbidden_simple[k]:

View File

@ -8426,15 +8426,15 @@ int isSimpleWrapper(wrapper_t fun) {
if (fun == &vFW) return 1;
if (fun == &vFu) return 1;
if (fun == &vFU) return 1;
if (fun == &vFf) return 3;
if (fun == &vFd) return 3;
if (fun == &vFf) return 2;
if (fun == &vFd) return 2;
if (fun == &vFl) return 1;
if (fun == &vFL) return 1;
if (fun == &vFp) return 1;
if (fun == &IFv) return 1;
if (fun == &IFI) return 1;
if (fun == &IFf) return 3;
if (fun == &IFd) return 3;
if (fun == &IFf) return 2;
if (fun == &IFd) return 2;
if (fun == &IFp) return 1;
if (fun == &CFv) return 1;
if (fun == &CFW) return 1;
@ -8449,17 +8449,17 @@ int isSimpleWrapper(wrapper_t fun) {
if (fun == &uFv) return 1;
if (fun == &uFu) return 1;
if (fun == &uFU) return 1;
if (fun == &uFd) return 3;
if (fun == &uFd) return 2;
if (fun == &uFL) return 1;
if (fun == &uFp) return 1;
if (fun == &UFv) return 1;
if (fun == &UFu) return 1;
if (fun == &UFp) return 1;
if (fun == &fFf) return -3;
if (fun == &fFf) return -2;
if (fun == &fFp) return -1;
if (fun == &dFv) return -1;
if (fun == &dFu) return -1;
if (fun == &dFd) return -3;
if (fun == &dFd) return -2;
if (fun == &dFL) return -1;
if (fun == &dFp) return -1;
if (fun == &lFv) return 1;
@ -8468,7 +8468,7 @@ int isSimpleWrapper(wrapper_t fun) {
if (fun == &lFp) return 1;
if (fun == &LFv) return 1;
if (fun == &LFu) return 1;
if (fun == &LFd) return 3;
if (fun == &LFd) return 2;
if (fun == &LFL) return 1;
if (fun == &LFp) return 1;
if (fun == &pFv) return 1;
@ -8476,7 +8476,7 @@ int isSimpleWrapper(wrapper_t fun) {
if (fun == &pFW) return 1;
if (fun == &pFu) return 1;
if (fun == &pFU) return 1;
if (fun == &pFd) return 3;
if (fun == &pFd) return 2;
if (fun == &pFl) return 1;
if (fun == &pFL) return 1;
if (fun == &pFp) return 1;
@ -8487,16 +8487,16 @@ int isSimpleWrapper(wrapper_t fun) {
if (fun == &vFuW) return 1;
if (fun == &vFuu) return 1;
if (fun == &vFuU) return 1;
if (fun == &vFuf) return 3;
if (fun == &vFud) return 3;
if (fun == &vFuf) return 2;
if (fun == &vFud) return 2;
if (fun == &vFul) return 1;
if (fun == &vFuL) return 1;
if (fun == &vFup) return 1;
if (fun == &vFUu) return 1;
if (fun == &vFfC) return 3;
if (fun == &vFff) return 5;
if (fun == &vFfp) return 3;
if (fun == &vFdd) return 5;
if (fun == &vFfC) return 2;
if (fun == &vFff) return 3;
if (fun == &vFfp) return 2;
if (fun == &vFdd) return 3;
if (fun == &vFlu) return 1;
if (fun == &vFlp) return 1;
if (fun == &vFLu) return 1;
@ -8507,13 +8507,13 @@ int isSimpleWrapper(wrapper_t fun) {
if (fun == &vFpW) return 1;
if (fun == &vFpu) return 1;
if (fun == &vFpU) return 1;
if (fun == &vFpf) return 3;
if (fun == &vFpd) return 3;
if (fun == &vFpf) return 2;
if (fun == &vFpd) return 2;
if (fun == &vFpl) return 1;
if (fun == &vFpL) return 1;
if (fun == &vFpp) return 1;
if (fun == &IFpu) return 1;
if (fun == &IFpd) return 3;
if (fun == &IFpd) return 2;
if (fun == &IFpp) return 1;
if (fun == &CFuW) return 1;
if (fun == &CFuu) return 1;
@ -8527,7 +8527,7 @@ int isSimpleWrapper(wrapper_t fun) {
if (fun == &uFpC) return 1;
if (fun == &uFpu) return 1;
if (fun == &uFpU) return 1;
if (fun == &uFpf) return 3;
if (fun == &uFpf) return 2;
if (fun == &uFpl) return 1;
if (fun == &uFpL) return 1;
if (fun == &uFpp) return 1;
@ -8535,19 +8535,19 @@ int isSimpleWrapper(wrapper_t fun) {
if (fun == &UFUp) return 1;
if (fun == &UFpU) return 1;
if (fun == &UFpp) return 1;
if (fun == &fFff) return -5;
if (fun == &fFfp) return -3;
if (fun == &fFff) return -3;
if (fun == &fFfp) return -2;
if (fun == &fFpu) return -1;
if (fun == &fFpp) return -1;
if (fun == &dFdd) return -5;
if (fun == &dFdp) return -3;
if (fun == &dFdd) return -3;
if (fun == &dFdp) return -2;
if (fun == &dFll) return -1;
if (fun == &dFpu) return -1;
if (fun == &dFpd) return -3;
if (fun == &dFpd) return -2;
if (fun == &dFpp) return -1;
if (fun == &lFll) return 1;
if (fun == &lFpu) return 1;
if (fun == &lFpd) return 3;
if (fun == &lFpd) return 2;
if (fun == &lFpl) return 1;
if (fun == &lFpL) return 1;
if (fun == &lFpp) return 1;
@ -8560,7 +8560,7 @@ int isSimpleWrapper(wrapper_t fun) {
if (fun == &pFuu) return 1;
if (fun == &pFup) return 1;
if (fun == &pFUU) return 1;
if (fun == &pFdd) return 5;
if (fun == &pFdd) return 3;
if (fun == &pFll) return 1;
if (fun == &pFlp) return 1;
if (fun == &pFLu) return 1;
@ -8570,7 +8570,7 @@ int isSimpleWrapper(wrapper_t fun) {
if (fun == &pFpW) return 1;
if (fun == &pFpu) return 1;
if (fun == &pFpU) return 1;
if (fun == &pFpd) return 3;
if (fun == &pFpd) return 2;
if (fun == &pFpl) return 1;
if (fun == &pFpL) return 1;
if (fun == &pFpp) return 1;
@ -8581,22 +8581,22 @@ int isSimpleWrapper(wrapper_t fun) {
if (fun == &vFuuC) return 1;
if (fun == &vFuuu) return 1;
if (fun == &vFuuU) return 1;
if (fun == &vFuuf) return 3;
if (fun == &vFuud) return 3;
if (fun == &vFuuf) return 2;
if (fun == &vFuud) return 2;
if (fun == &vFuup) return 1;
if (fun == &vFuUU) return 1;
if (fun == &vFuff) return 5;
if (fun == &vFufp) return 3;
if (fun == &vFudd) return 5;
if (fun == &vFuff) return 3;
if (fun == &vFufp) return 2;
if (fun == &vFudd) return 3;
if (fun == &vFull) return 1;
if (fun == &vFulp) return 1;
if (fun == &vFuLp) return 1;
if (fun == &vFupu) return 1;
if (fun == &vFupp) return 1;
if (fun == &vFfff) return 7;
if (fun == &vFfpp) return 3;
if (fun == &vFddd) return 7;
if (fun == &vFdpp) return 3;
if (fun == &vFfff) return 4;
if (fun == &vFfpp) return 2;
if (fun == &vFddd) return 4;
if (fun == &vFdpp) return 2;
if (fun == &vFllp) return 1;
if (fun == &vFlpp) return 1;
if (fun == &vFLup) return 1;
@ -8607,19 +8607,19 @@ int isSimpleWrapper(wrapper_t fun) {
if (fun == &vFpuW) return 1;
if (fun == &vFpuu) return 1;
if (fun == &vFpuU) return 1;
if (fun == &vFpuf) return 3;
if (fun == &vFpud) return 3;
if (fun == &vFpuf) return 2;
if (fun == &vFpud) return 2;
if (fun == &vFpul) return 1;
if (fun == &vFpuL) return 1;
if (fun == &vFpup) return 1;
if (fun == &vFpUu) return 1;
if (fun == &vFpUU) return 1;
if (fun == &vFpUf) return 3;
if (fun == &vFpUf) return 2;
if (fun == &vFpUp) return 1;
if (fun == &vFpff) return 5;
if (fun == &vFpdu) return 3;
if (fun == &vFpdd) return 5;
if (fun == &vFpdp) return 3;
if (fun == &vFpff) return 3;
if (fun == &vFpdu) return 2;
if (fun == &vFpdd) return 3;
if (fun == &vFpdp) return 2;
if (fun == &vFpll) return 1;
if (fun == &vFplp) return 1;
if (fun == &vFpLu) return 1;
@ -8627,29 +8627,29 @@ int isSimpleWrapper(wrapper_t fun) {
if (fun == &vFpLp) return 1;
if (fun == &vFppu) return 1;
if (fun == &vFppU) return 1;
if (fun == &vFppf) return 3;
if (fun == &vFppd) return 3;
if (fun == &vFppf) return 2;
if (fun == &vFppd) return 2;
if (fun == &vFppl) return 1;
if (fun == &vFppL) return 1;
if (fun == &vFppp) return 1;
if (fun == &IFppI) return 1;
if (fun == &CFuUu) return 1;
if (fun == &CFuff) return 5;
if (fun == &CFuff) return 3;
if (fun == &CFppp) return 1;
if (fun == &WFppp) return 1;
if (fun == &uFuuu) return 1;
if (fun == &uFuup) return 1;
if (fun == &uFufp) return 3;
if (fun == &uFufp) return 2;
if (fun == &uFupu) return 1;
if (fun == &uFupp) return 1;
if (fun == &uFpWu) return 1;
if (fun == &uFpWf) return 3;
if (fun == &uFpWf) return 2;
if (fun == &uFpWp) return 1;
if (fun == &uFpuu) return 1;
if (fun == &uFpuU) return 1;
if (fun == &uFpuL) return 1;
if (fun == &uFpup) return 1;
if (fun == &uFpfu) return 3;
if (fun == &uFpfu) return 2;
if (fun == &uFplu) return 1;
if (fun == &uFpLu) return 1;
if (fun == &uFpLL) return 1;
@ -8658,16 +8658,16 @@ int isSimpleWrapper(wrapper_t fun) {
if (fun == &uFppL) return 1;
if (fun == &uFppp) return 1;
if (fun == &UFUUU) return 1;
if (fun == &fFfff) return -7;
if (fun == &fFffp) return -5;
if (fun == &fFfff) return -4;
if (fun == &fFffp) return -3;
if (fun == &fFppL) return -1;
if (fun == &fFppp) return -1;
if (fun == &dFuud) return -3;
if (fun == &dFddd) return -7;
if (fun == &dFddp) return -5;
if (fun == &dFpdd) return -5;
if (fun == &dFuud) return -2;
if (fun == &dFddd) return -4;
if (fun == &dFddp) return -3;
if (fun == &dFpdd) return -3;
if (fun == &dFppu) return -1;
if (fun == &dFppd) return -3;
if (fun == &dFppd) return -2;
if (fun == &dFppp) return -1;
if (fun == &lFlll) return 1;
if (fun == &lFpLu) return 1;
@ -8698,8 +8698,8 @@ int isSimpleWrapper(wrapper_t fun) {
if (fun == &pFupl) return 1;
if (fun == &pFupL) return 1;
if (fun == &pFupp) return 1;
if (fun == &pFdUU) return 3;
if (fun == &pFddd) return 7;
if (fun == &pFdUU) return 2;
if (fun == &pFddd) return 4;
if (fun == &pFLup) return 1;
if (fun == &pFLLp) return 1;
if (fun == &pFLpp) return 1;
@ -8708,8 +8708,8 @@ int isSimpleWrapper(wrapper_t fun) {
if (fun == &pFpuu) return 1;
if (fun == &pFpup) return 1;
if (fun == &pFpUu) return 1;
if (fun == &pFpdu) return 3;
if (fun == &pFpdd) return 5;
if (fun == &pFpdu) return 2;
if (fun == &pFpdd) return 3;
if (fun == &pFplu) return 1;
if (fun == &pFpll) return 1;
if (fun == &pFplp) return 1;
@ -8719,62 +8719,358 @@ int isSimpleWrapper(wrapper_t fun) {
if (fun == &pFppI) return 1;
if (fun == &pFppu) return 1;
if (fun == &pFppU) return 1;
if (fun == &pFppf) return 3;
if (fun == &pFppd) return 3;
if (fun == &pFppf) return 2;
if (fun == &pFppd) return 2;
if (fun == &pFppl) return 1;
if (fun == &pFppL) return 1;
if (fun == &pFppp) return 1;
if (fun == &vFuuuf) return 3;
if (fun == &vFuuud) return 3;
if (fun == &vFuuff) return 5;
if (fun == &vFufff) return 7;
if (fun == &vFuddd) return 7;
if (fun == &vFffff) return 9;
if (fun == &vFdddd) return 9;
if (fun == &vFpudd) return 5;
if (fun == &vFpfff) return 7;
if (fun == &vFpdup) return 3;
if (fun == &vFpddu) return 5;
if (fun == &vFpddd) return 7;
if (fun == &vFppff) return 5;
if (fun == &vFppdu) return 3;
if (fun == &vFppdd) return 5;
if (fun == &vFppdp) return 3;
if (fun == &vFpppd) return 3;
if (fun == &CFuuff) return 5;
if (fun == &pFuddd) return 7;
if (fun == &pFffff) return 9;
if (fun == &pFdddd) return 9;
if (fun == &pFlfff) return 7;
if (fun == &pFpudd) return 5;
if (fun == &pFpdIU) return 3;
if (fun == &pFppdd) return 5;
if (fun == &vFuffff) return 9;
if (fun == &vFudddd) return 9;
if (fun == &vFddddp) return 9;
if (fun == &vFpuddd) return 7;
if (fun == &vFpffff) return 9;
if (fun == &vFpdddd) return 9;
if (fun == &vFpddpp) return 5;
if (fun == &vFppudd) return 5;
if (fun == &vFppfff) return 7;
if (fun == &vFppddp) return 5;
if (fun == &vFpppff) return 5;
if (fun == &vFpppdd) return 5;
if (fun == &pFudddp) return 7;
if (fun == &pFpdddd) return 9;
if (fun == &pFppddu) return 5;
if (fun == &vFuuffff) return 9;
if (fun == &vFuudddd) return 9;
if (fun == &vFdddppp) return 7;
if (fun == &vFpudddd) return 9;
if (fun == &vFpddddp) return 9;
if (fun == &vFppffff) return 9;
if (fun == &vFppdddd) return 9;
if (fun == &vFuuuffff) return 9;
if (fun == &vFuuudddd) return 9;
if (fun == &vFppddddu) return 9;
if (fun == &vFpppffff) return 9;
if (fun == &vFCCCC) return 1;
if (fun == &vFWWWW) return 1;
if (fun == &vFuIII) return 1;
if (fun == &vFuWWW) return 1;
if (fun == &vFuuCu) return 1;
if (fun == &vFuuCp) return 1;
if (fun == &vFuuuu) return 1;
if (fun == &vFuuuf) return 2;
if (fun == &vFuuud) return 2;
if (fun == &vFuuul) return 1;
if (fun == &vFuuup) return 1;
if (fun == &vFuuUl) return 1;
if (fun == &vFuuff) return 3;
if (fun == &vFuupp) return 1;
if (fun == &vFuUup) return 1;
if (fun == &vFuUUU) return 1;
if (fun == &vFufff) return 4;
if (fun == &vFuddd) return 4;
if (fun == &vFuluU) return 1;
if (fun == &vFullC) return 1;
if (fun == &vFullp) return 1;
if (fun == &vFulpu) return 1;
if (fun == &vFulpp) return 1;
if (fun == &vFuppu) return 1;
if (fun == &vFffff) return 5;
if (fun == &vFdddd) return 5;
if (fun == &vFpCuW) return 1;
if (fun == &vFpuuu) return 1;
if (fun == &vFpuup) return 1;
if (fun == &vFpudd) return 3;
if (fun == &vFpupu) return 1;
if (fun == &vFpupp) return 1;
if (fun == &vFpUuu) return 1;
if (fun == &vFpUup) return 1;
if (fun == &vFpUUu) return 1;
if (fun == &vFpUUp) return 1;
if (fun == &vFpUpp) return 1;
if (fun == &vFpfff) return 4;
if (fun == &vFpdup) return 2;
if (fun == &vFpddu) return 3;
if (fun == &vFpddd) return 4;
if (fun == &vFplll) return 1;
if (fun == &vFplpp) return 1;
if (fun == &vFpLuu) return 1;
if (fun == &vFpLLL) return 1;
if (fun == &vFpLLp) return 1;
if (fun == &vFpLpu) return 1;
if (fun == &vFpLpL) return 1;
if (fun == &vFpLpp) return 1;
if (fun == &vFppuu) return 1;
if (fun == &vFppup) return 1;
if (fun == &vFppff) return 3;
if (fun == &vFppdu) return 2;
if (fun == &vFppdd) return 3;
if (fun == &vFppdp) return 2;
if (fun == &vFpplp) return 1;
if (fun == &vFppLL) return 1;
if (fun == &vFppLp) return 1;
if (fun == &vFpppu) return 1;
if (fun == &vFpppd) return 2;
if (fun == &vFpppl) return 1;
if (fun == &vFpppL) return 1;
if (fun == &vFpppp) return 1;
if (fun == &CFuuff) return 3;
if (fun == &uFuuuu) return 1;
if (fun == &uFpCCC) return 1;
if (fun == &uFpuup) return 1;
if (fun == &uFpupu) return 1;
if (fun == &uFpupp) return 1;
if (fun == &uFplup) return 1;
if (fun == &uFppuu) return 1;
if (fun == &uFppup) return 1;
if (fun == &uFpplp) return 1;
if (fun == &uFppLp) return 1;
if (fun == &uFpppu) return 1;
if (fun == &uFpppL) return 1;
if (fun == &uFpppp) return 1;
if (fun == &dFpppp) return -1;
if (fun == &lFplpp) return 1;
if (fun == &lFpLpp) return 1;
if (fun == &lFpplp) return 1;
if (fun == &lFpppL) return 1;
if (fun == &lFpppp) return 1;
if (fun == &LFpupL) return 1;
if (fun == &LFpLCL) return 1;
if (fun == &LFpLuu) return 1;
if (fun == &LFpLLp) return 1;
if (fun == &LFpLpL) return 1;
if (fun == &LFpLpp) return 1;
if (fun == &LFppLu) return 1;
if (fun == &LFppLL) return 1;
if (fun == &LFppLp) return 1;
if (fun == &LFpppL) return 1;
if (fun == &LFpppp) return 1;
if (fun == &pFuuuu) return 1;
if (fun == &pFuddd) return 4;
if (fun == &pFullu) return 1;
if (fun == &pFuppp) return 1;
if (fun == &pFffff) return 5;
if (fun == &pFdddd) return 5;
if (fun == &pFlfff) return 4;
if (fun == &pFLLup) return 1;
if (fun == &pFLLpp) return 1;
if (fun == &pFLppp) return 1;
if (fun == &pFpWWW) return 1;
if (fun == &pFpuuu) return 1;
if (fun == &pFpuup) return 1;
if (fun == &pFpudd) return 3;
if (fun == &pFpuLL) return 1;
if (fun == &pFpupu) return 1;
if (fun == &pFpupp) return 1;
if (fun == &pFpdIU) return 2;
if (fun == &pFplpl) return 1;
if (fun == &pFplpp) return 1;
if (fun == &pFpLup) return 1;
if (fun == &pFpLLp) return 1;
if (fun == &pFpLpl) return 1;
if (fun == &pFpLpL) return 1;
if (fun == &pFpLpp) return 1;
if (fun == &pFppCp) return 1;
if (fun == &pFppWp) return 1;
if (fun == &pFppuu) return 1;
if (fun == &pFppup) return 1;
if (fun == &pFppUU) return 1;
if (fun == &pFppdd) return 3;
if (fun == &pFppll) return 1;
if (fun == &pFpplp) return 1;
if (fun == &pFppLL) return 1;
if (fun == &pFppLp) return 1;
if (fun == &pFpppu) return 1;
if (fun == &pFpppL) return 1;
if (fun == &pFpppp) return 1;
if (fun == &vFuIIII) return 1;
if (fun == &vFuCCCC) return 1;
if (fun == &vFuCuup) return 1;
if (fun == &vFuWWWW) return 1;
if (fun == &vFuuuuu) return 1;
if (fun == &vFuuuup) return 1;
if (fun == &vFuuull) return 1;
if (fun == &vFuulll) return 1;
if (fun == &vFuullp) return 1;
if (fun == &vFuuppu) return 1;
if (fun == &vFuUUUU) return 1;
if (fun == &vFuffff) return 5;
if (fun == &vFudddd) return 5;
if (fun == &vFullpu) return 1;
if (fun == &vFupupp) return 1;
if (fun == &vFupppu) return 1;
if (fun == &vFupppp) return 1;
if (fun == &vFfffff) return 6;
if (fun == &vFddddp) return 5;
if (fun == &vFLpppp) return 1;
if (fun == &vFpuuuu) return 1;
if (fun == &vFpuuup) return 1;
if (fun == &vFpuupp) return 1;
if (fun == &vFpuddd) return 4;
if (fun == &vFpupup) return 1;
if (fun == &vFpUuuu) return 1;
if (fun == &vFpUUuu) return 1;
if (fun == &vFpUUup) return 1;
if (fun == &vFpUUUu) return 1;
if (fun == &vFpUUUp) return 1;
if (fun == &vFpffff) return 5;
if (fun == &vFpdddd) return 5;
if (fun == &vFpddpp) return 3;
if (fun == &vFpluul) return 1;
if (fun == &vFplppp) return 1;
if (fun == &vFpLLLL) return 1;
if (fun == &vFpLLpp) return 1;
if (fun == &vFppuuu) return 1;
if (fun == &vFppuup) return 1;
if (fun == &vFppudd) return 3;
if (fun == &vFppupu) return 1;
if (fun == &vFppupp) return 1;
if (fun == &vFppfff) return 4;
if (fun == &vFppddp) return 3;
if (fun == &vFppLLL) return 1;
if (fun == &vFppLLp) return 1;
if (fun == &vFppLpL) return 1;
if (fun == &vFppLpp) return 1;
if (fun == &vFpppuu) return 1;
if (fun == &vFpppup) return 1;
if (fun == &vFpppff) return 3;
if (fun == &vFpppdd) return 3;
if (fun == &vFpppLp) return 1;
if (fun == &vFppppu) return 1;
if (fun == &vFppppL) return 1;
if (fun == &vFppppp) return 1;
if (fun == &IFppIII) return 1;
if (fun == &uFLpppL) return 1;
if (fun == &uFpCCCC) return 1;
if (fun == &uFpuuuu) return 1;
if (fun == &uFpuupp) return 1;
if (fun == &uFpupuu) return 1;
if (fun == &uFpuppp) return 1;
if (fun == &uFppuup) return 1;
if (fun == &uFppupp) return 1;
if (fun == &uFpplpp) return 1;
if (fun == &uFppLpp) return 1;
if (fun == &uFppppL) return 1;
if (fun == &uFppppp) return 1;
if (fun == &lFpuuLL) return 1;
if (fun == &lFppupp) return 1;
if (fun == &lFppLpL) return 1;
if (fun == &lFppLpp) return 1;
if (fun == &LFLpppL) return 1;
if (fun == &LFpLuuu) return 1;
if (fun == &LFpLLLp) return 1;
if (fun == &LFpLpuu) return 1;
if (fun == &LFpLpLp) return 1;
if (fun == &LFpLppL) return 1;
if (fun == &LFpLppp) return 1;
if (fun == &LFppLLp) return 1;
if (fun == &LFppLpL) return 1;
if (fun == &LFppppp) return 1;
if (fun == &pFuuupu) return 1;
if (fun == &pFuupuu) return 1;
if (fun == &pFudddp) return 4;
if (fun == &pFupLpl) return 1;
if (fun == &pFupLpL) return 1;
if (fun == &pFLuppp) return 1;
if (fun == &pFpuuuu) return 1;
if (fun == &pFpuuup) return 1;
if (fun == &pFpuupp) return 1;
if (fun == &pFpuLpp) return 1;
if (fun == &pFpuppu) return 1;
if (fun == &pFpuppp) return 1;
if (fun == &pFpdddd) return 5;
if (fun == &pFplppp) return 1;
if (fun == &pFpLLLp) return 1;
if (fun == &pFpLpup) return 1;
if (fun == &pFppWpp) return 1;
if (fun == &pFppuuu) return 1;
if (fun == &pFppuup) return 1;
if (fun == &pFppupp) return 1;
if (fun == &pFppddu) return 3;
if (fun == &pFppLpp) return 1;
if (fun == &pFpppup) return 1;
if (fun == &pFppppu) return 1;
if (fun == &pFppppL) return 1;
if (fun == &pFppppp) return 1;
if (fun == &vFCCCCff) return 3;
if (fun == &vFuuuuuu) return 1;
if (fun == &vFuuuull) return 1;
if (fun == &vFuuuppp) return 1;
if (fun == &vFuuffff) return 5;
if (fun == &vFuudddd) return 5;
if (fun == &vFuupupp) return 1;
if (fun == &vFufffff) return 6;
if (fun == &vFulluUC) return 1;
if (fun == &vFuppppu) return 1;
if (fun == &vFuppppp) return 1;
if (fun == &vFUUpppp) return 1;
if (fun == &vFffffff) return 7;
if (fun == &vFdddddd) return 7;
if (fun == &vFdddppp) return 4;
if (fun == &vFpuuuup) return 1;
if (fun == &vFpuuupp) return 1;
if (fun == &vFpuupuu) return 1;
if (fun == &vFpuuppp) return 1;
if (fun == &vFpudddd) return 5;
if (fun == &vFpupuuu) return 1;
if (fun == &vFpupupu) return 1;
if (fun == &vFpuppuu) return 1;
if (fun == &vFpupppp) return 1;
if (fun == &vFpUuuup) return 1;
if (fun == &vFpddddd) return 6;
if (fun == &vFpddddp) return 5;
if (fun == &vFpLLLLu) return 1;
if (fun == &vFpLpLLL) return 1;
if (fun == &vFppuuuu) return 1;
if (fun == &vFppuUUU) return 1;
if (fun == &vFppuppp) return 1;
if (fun == &vFppffff) return 5;
if (fun == &vFppdddd) return 5;
if (fun == &vFpplppp) return 1;
if (fun == &vFppLppp) return 1;
if (fun == &vFpppuuu) return 1;
if (fun == &vFpppuup) return 1;
if (fun == &vFpppLpp) return 1;
if (fun == &vFppppLp) return 1;
if (fun == &vFpppppu) return 1;
if (fun == &vFpppppU) return 1;
if (fun == &vFpppppL) return 1;
if (fun == &vFpppppp) return 1;
if (fun == &uFuuuuuu) return 1;
if (fun == &uFupuufp) return 2;
if (fun == &uFuppppp) return 1;
if (fun == &uFpWuuCp) return 1;
if (fun == &uFpuuuup) return 1;
if (fun == &uFpuuupp) return 1;
if (fun == &uFpuuppp) return 1;
if (fun == &uFpupupu) return 1;
if (fun == &uFpupppp) return 1;
if (fun == &uFppuuup) return 1;
if (fun == &uFppuupu) return 1;
if (fun == &uFppLpLp) return 1;
if (fun == &uFppLppL) return 1;
if (fun == &uFpppppp) return 1;
if (fun == &lFpuuLLp) return 1;
if (fun == &lFpppLpp) return 1;
if (fun == &LFpLLLLL) return 1;
if (fun == &LFppLLpL) return 1;
if (fun == &LFppLpLL) return 1;
if (fun == &pFuCCCCp) return 1;
if (fun == &pFuuuuuu) return 1;
if (fun == &pFuuuuup) return 1;
if (fun == &pFuuppuu) return 1;
if (fun == &pFuppppp) return 1;
if (fun == &pFdddddd) return 7;
if (fun == &pFpuuuuu) return 1;
if (fun == &pFpuuupu) return 1;
if (fun == &pFpupuup) return 1;
if (fun == &pFpupppp) return 1;
if (fun == &pFplpppp) return 1;
if (fun == &pFpLuLpp) return 1;
if (fun == &pFpLppup) return 1;
if (fun == &pFppuupp) return 1;
if (fun == &pFppuppp) return 1;
if (fun == &pFpplplp) return 1;
if (fun == &pFpplppp) return 1;
if (fun == &pFpppupp) return 1;
if (fun == &pFpppppu) return 1;
if (fun == &pFpppppp) return 1;
if (fun == &vFCCCCfff) return 4;
if (fun == &vFuuuffff) return 5;
if (fun == &vFuuudddd) return 5;
if (fun == &vFuffffff) return 7;
if (fun == &vFudddddd) return 7;
if (fun == &vFpfffppp) return 4;
if (fun == &vFpdddddd) return 7;
if (fun == &vFppddddu) return 5;
if (fun == &vFpppffff) return 5;
if (fun == &vFuCCCCfff) return 4;
if (fun == &vFuuufffff) return 6;
if (fun == &vFffffffff) return 9;
if (fun == &vFpudddddd) return 7;
if (fun == &vFuffffffff) return 9;
if (fun == &vFffCCCCfff) return 6;
if (fun == &vFppddddudd) return 7;
if (fun == &vFpppffffff) return 7;
if (fun == &vFppdddddddd) return 9;
if (fun == &lFpLppdddddd) return 7;
#if !defined(STATICBUILD)
if (fun == &WFpLLu) return 1;
if (fun == &lFpLpdddddd) return 7;
#endif
return 0;
}
#else