diff options
author | Zach van Rijn <me@zv.io> | 2022-11-04 02:26:55 +0000 |
---|---|---|
committer | Zach van Rijn <me@zv.io> | 2022-11-04 02:26:55 +0000 |
commit | b7965cf9a40f3b41761906c578d825bb8f8b572e (patch) | |
tree | 20806aeed4e1cc309ab30ab690ada676e225c17d /experimental/libffcall/ppc64.patch | |
parent | eced2938ac3c628ac5c5ea8d1b8a7238452107cd (diff) | |
download | packages-b7965cf9a40f3b41761906c578d825bb8f8b572e.tar.gz packages-b7965cf9a40f3b41761906c578d825bb8f8b572e.tar.bz2 packages-b7965cf9a40f3b41761906c578d825bb8f8b572e.tar.xz packages-b7965cf9a40f3b41761906c578d825bb8f8b572e.zip |
user/libffcall: move to 'experimental/'. see #761.
Diffstat (limited to 'experimental/libffcall/ppc64.patch')
-rw-r--r-- | experimental/libffcall/ppc64.patch | 371 |
1 files changed, 371 insertions, 0 deletions
diff --git a/experimental/libffcall/ppc64.patch b/experimental/libffcall/ppc64.patch new file mode 100644 index 000000000..e7da43899 --- /dev/null +++ b/experimental/libffcall/ppc64.patch @@ -0,0 +1,371 @@ +Changed from 2.2/2.3 --> 2.4: + + * sed -i ppc64.patch -e 's/vaword/varword/g' + * remove all assembly + +--- libffcall-2.2/avcall/avcall-powerpc64.c.old 2018-09-17 16:47:43.000000000 +0000 ++++ libffcall-2.2/avcall/avcall-powerpc64.c 2020-05-11 23:06:57.534813743 +0000 +@@ -181,111 +181,111 @@ + /* In the ELFv2 ABI, gcc returns structs of size <= 16 in registers. */ + if (l->rsize > 0 && l->rsize <= 16) { + void* raddr = l->raddr; +- #if 0 /* Unoptimized */ ++ #if 1 /* Unoptimized */ + if (l->rsize == 1) { + ((unsigned char *)raddr)[0] = (unsigned char)(iret); + } else + if (l->rsize == 2) { +- ((unsigned char *)raddr)[0] = (unsigned char)(iret); +- ((unsigned char *)raddr)[1] = (unsigned char)(iret>>8); ++ ((unsigned char *)raddr)[1] = (unsigned char)(iret); ++ ((unsigned char *)raddr)[0] = (unsigned char)(iret>>8); + } else + if (l->rsize == 3) { +- ((unsigned char *)raddr)[0] = (unsigned char)(iret); ++ ((unsigned char *)raddr)[2] = (unsigned char)(iret); + ((unsigned char *)raddr)[1] = (unsigned char)(iret>>8); +- ((unsigned char *)raddr)[2] = (unsigned char)(iret>>16); ++ ((unsigned char *)raddr)[0] = (unsigned char)(iret>>16); + } else + if (l->rsize == 4) { +- ((unsigned char *)raddr)[0] = (unsigned char)(iret); +- ((unsigned char *)raddr)[1] = (unsigned char)(iret>>8); +- ((unsigned char *)raddr)[2] = (unsigned char)(iret>>16); +- ((unsigned char *)raddr)[3] = (unsigned char)(iret>>24); ++ ((unsigned char *)raddr)[3] = (unsigned char)(iret); ++ ((unsigned char *)raddr)[2] = (unsigned char)(iret>>8); ++ ((unsigned char *)raddr)[1] = (unsigned char)(iret>>16); ++ ((unsigned char *)raddr)[0] = (unsigned char)(iret>>24); + } else + if (l->rsize == 5) { +- ((unsigned char *)raddr)[0] = (unsigned char)(iret); +- ((unsigned char *)raddr)[1] = (unsigned char)(iret>>8); ++ ((unsigned char *)raddr)[4] = (unsigned char)(iret); ++ ((unsigned char *)raddr)[3] = (unsigned char)(iret>>8); + ((unsigned char *)raddr)[2] = (unsigned char)(iret>>16); +- ((unsigned char *)raddr)[3] = (unsigned char)(iret>>24); +- ((unsigned char *)raddr)[4] = (unsigned char)(iret>>32); ++ ((unsigned char *)raddr)[1] = (unsigned char)(iret>>24); ++ ((unsigned char *)raddr)[0] = (unsigned char)(iret>>32); + } else + if (l->rsize == 6) { +- ((unsigned char *)raddr)[0] = (unsigned char)(iret); +- ((unsigned char *)raddr)[1] = (unsigned char)(iret>>8); +- ((unsigned char *)raddr)[2] = (unsigned char)(iret>>16); +- ((unsigned char *)raddr)[3] = (unsigned char)(iret>>24); +- ((unsigned char *)raddr)[4] = (unsigned char)(iret>>32); +- ((unsigned char *)raddr)[5] = (unsigned char)(iret>>40); ++ ((unsigned char *)raddr)[5] = (unsigned char)(iret); ++ ((unsigned char *)raddr)[4] = (unsigned char)(iret>>8); ++ ((unsigned char *)raddr)[3] = (unsigned char)(iret>>16); ++ ((unsigned char *)raddr)[2] = (unsigned char)(iret>>24); ++ ((unsigned char *)raddr)[1] = (unsigned char)(iret>>32); ++ ((unsigned char *)raddr)[0] = (unsigned char)(iret>>40); + } else + if (l->rsize == 7) { +- ((unsigned char *)raddr)[0] = (unsigned char)(iret); +- ((unsigned char *)raddr)[1] = (unsigned char)(iret>>8); +- ((unsigned char *)raddr)[2] = (unsigned char)(iret>>16); ++ ((unsigned char *)raddr)[6] = (unsigned char)(iret); ++ ((unsigned char *)raddr)[5] = (unsigned char)(iret>>8); ++ ((unsigned char *)raddr)[4] = (unsigned char)(iret>>16); + ((unsigned char *)raddr)[3] = (unsigned char)(iret>>24); +- ((unsigned char *)raddr)[4] = (unsigned char)(iret>>32); +- ((unsigned char *)raddr)[5] = (unsigned char)(iret>>40); +- ((unsigned char *)raddr)[6] = (unsigned char)(iret>>48); ++ ((unsigned char *)raddr)[2] = (unsigned char)(iret>>32); ++ ((unsigned char *)raddr)[1] = (unsigned char)(iret>>40); ++ ((unsigned char *)raddr)[0] = (unsigned char)(iret>>48); + } else + if (l->rsize >= 8 && l->rsize <= 16) { +- ((unsigned char *)raddr)[0] = (unsigned char)(iret); +- ((unsigned char *)raddr)[1] = (unsigned char)(iret>>8); +- ((unsigned char *)raddr)[2] = (unsigned char)(iret>>16); +- ((unsigned char *)raddr)[3] = (unsigned char)(iret>>24); +- ((unsigned char *)raddr)[4] = (unsigned char)(iret>>32); +- ((unsigned char *)raddr)[5] = (unsigned char)(iret>>40); +- ((unsigned char *)raddr)[6] = (unsigned char)(iret>>48); +- ((unsigned char *)raddr)[7] = (unsigned char)(iret>>56); ++ ((unsigned char *)raddr)[7] = (unsigned char)(iret); ++ ((unsigned char *)raddr)[6] = (unsigned char)(iret>>8); ++ ((unsigned char *)raddr)[5] = (unsigned char)(iret>>16); ++ ((unsigned char *)raddr)[4] = (unsigned char)(iret>>24); ++ ((unsigned char *)raddr)[3] = (unsigned char)(iret>>32); ++ ((unsigned char *)raddr)[2] = (unsigned char)(iret>>40); ++ ((unsigned char *)raddr)[1] = (unsigned char)(iret>>48); ++ ((unsigned char *)raddr)[0] = (unsigned char)(iret>>56); + if (l->rsize == 8) { + } else + if (l->rsize == 9) { +- ((unsigned char *)raddr)[8+0] = (unsigned char)(iret2); ++ ((unsigned char *)raddr)[8+0] = (unsigned char)(iret2>>56); + } else + if (l->rsize == 10) { +- ((unsigned char *)raddr)[8+0] = (unsigned char)(iret2); +- ((unsigned char *)raddr)[8+1] = (unsigned char)(iret2>>8); ++ ((unsigned char *)raddr)[8+0] = (unsigned char)(iret2>>56); ++ ((unsigned char *)raddr)[8+1] = (unsigned char)(iret2>>48); + } else + if (l->rsize == 11) { +- ((unsigned char *)raddr)[8+0] = (unsigned char)(iret2); +- ((unsigned char *)raddr)[8+1] = (unsigned char)(iret2>>8); +- ((unsigned char *)raddr)[8+2] = (unsigned char)(iret2>>16); ++ ((unsigned char *)raddr)[8+0] = (unsigned char)(iret2>>56); ++ ((unsigned char *)raddr)[8+1] = (unsigned char)(iret2>>48); ++ ((unsigned char *)raddr)[8+2] = (unsigned char)(iret2>>40); + } else + if (l->rsize == 12) { +- ((unsigned char *)raddr)[8+0] = (unsigned char)(iret2); +- ((unsigned char *)raddr)[8+1] = (unsigned char)(iret2>>8); +- ((unsigned char *)raddr)[8+2] = (unsigned char)(iret2>>16); +- ((unsigned char *)raddr)[8+3] = (unsigned char)(iret2>>24); ++ ((unsigned char *)raddr)[8+0] = (unsigned char)(iret2>>56); ++ ((unsigned char *)raddr)[8+1] = (unsigned char)(iret2>>48); ++ ((unsigned char *)raddr)[8+2] = (unsigned char)(iret2>>40); ++ ((unsigned char *)raddr)[8+3] = (unsigned char)(iret2>>32); + } else + if (l->rsize == 13) { +- ((unsigned char *)raddr)[8+0] = (unsigned char)(iret2); +- ((unsigned char *)raddr)[8+1] = (unsigned char)(iret2>>8); +- ((unsigned char *)raddr)[8+2] = (unsigned char)(iret2>>16); +- ((unsigned char *)raddr)[8+3] = (unsigned char)(iret2>>24); +- ((unsigned char *)raddr)[8+4] = (unsigned char)(iret2>>32); ++ ((unsigned char *)raddr)[8+0] = (unsigned char)(iret2>>56); ++ ((unsigned char *)raddr)[8+1] = (unsigned char)(iret2>>48); ++ ((unsigned char *)raddr)[8+2] = (unsigned char)(iret2>>40); ++ ((unsigned char *)raddr)[8+3] = (unsigned char)(iret2>>32); ++ ((unsigned char *)raddr)[8+4] = (unsigned char)(iret2>>24); + } else + if (l->rsize == 14) { +- ((unsigned char *)raddr)[8+0] = (unsigned char)(iret2); +- ((unsigned char *)raddr)[8+1] = (unsigned char)(iret2>>8); +- ((unsigned char *)raddr)[8+2] = (unsigned char)(iret2>>16); +- ((unsigned char *)raddr)[8+3] = (unsigned char)(iret2>>24); +- ((unsigned char *)raddr)[8+4] = (unsigned char)(iret2>>32); +- ((unsigned char *)raddr)[8+5] = (unsigned char)(iret2>>40); ++ ((unsigned char *)raddr)[8+0] = (unsigned char)(iret2>>56); ++ ((unsigned char *)raddr)[8+1] = (unsigned char)(iret2>>48); ++ ((unsigned char *)raddr)[8+2] = (unsigned char)(iret2>>40); ++ ((unsigned char *)raddr)[8+3] = (unsigned char)(iret2>>32); ++ ((unsigned char *)raddr)[8+4] = (unsigned char)(iret2>>24); ++ ((unsigned char *)raddr)[8+5] = (unsigned char)(iret2>>16); + } else + if (l->rsize == 15) { +- ((unsigned char *)raddr)[8+0] = (unsigned char)(iret2); +- ((unsigned char *)raddr)[8+1] = (unsigned char)(iret2>>8); +- ((unsigned char *)raddr)[8+2] = (unsigned char)(iret2>>16); +- ((unsigned char *)raddr)[8+3] = (unsigned char)(iret2>>24); +- ((unsigned char *)raddr)[8+4] = (unsigned char)(iret2>>32); +- ((unsigned char *)raddr)[8+5] = (unsigned char)(iret2>>40); +- ((unsigned char *)raddr)[8+6] = (unsigned char)(iret2>>48); ++ ((unsigned char *)raddr)[8+0] = (unsigned char)(iret2>>56); ++ ((unsigned char *)raddr)[8+1] = (unsigned char)(iret2>>48); ++ ((unsigned char *)raddr)[8+2] = (unsigned char)(iret2>>40); ++ ((unsigned char *)raddr)[8+3] = (unsigned char)(iret2>>32); ++ ((unsigned char *)raddr)[8+4] = (unsigned char)(iret2>>24); ++ ((unsigned char *)raddr)[8+5] = (unsigned char)(iret2>>16); ++ ((unsigned char *)raddr)[8+6] = (unsigned char)(iret2>>8); + } else + if (l->rsize == 16) { +- ((unsigned char *)raddr)[8+0] = (unsigned char)(iret2); +- ((unsigned char *)raddr)[8+1] = (unsigned char)(iret2>>8); +- ((unsigned char *)raddr)[8+2] = (unsigned char)(iret2>>16); +- ((unsigned char *)raddr)[8+3] = (unsigned char)(iret2>>24); +- ((unsigned char *)raddr)[8+4] = (unsigned char)(iret2>>32); +- ((unsigned char *)raddr)[8+5] = (unsigned char)(iret2>>40); +- ((unsigned char *)raddr)[8+6] = (unsigned char)(iret2>>48); +- ((unsigned char *)raddr)[8+7] = (unsigned char)(iret2>>56); ++ ((unsigned char *)raddr)[8+0] = (unsigned char)(iret2>>56); ++ ((unsigned char *)raddr)[8+1] = (unsigned char)(iret2>>48); ++ ((unsigned char *)raddr)[8+2] = (unsigned char)(iret2>>40); ++ ((unsigned char *)raddr)[8+3] = (unsigned char)(iret2>>32); ++ ((unsigned char *)raddr)[8+4] = (unsigned char)(iret2>>24); ++ ((unsigned char *)raddr)[8+5] = (unsigned char)(iret2>>16); ++ ((unsigned char *)raddr)[8+6] = (unsigned char)(iret2>>8); ++ ((unsigned char *)raddr)[8+7] = (unsigned char)(iret2); + } + } + #else /* Optimized: fewer conditional jumps, fewer memory accesses */ +--- libffcall-2.2/vacall/vacall-powerpc64.c.old 2020-05-11 23:11:15.566571148 +0000 ++++ libffcall-2.2/vacall/vacall-powerpc64.c 2020-05-11 23:16:52.489693582 +0000 +@@ -140,111 +140,111 @@ + if (list.flags & __VA_REGISTER_STRUCT_RETURN) { + /* In the ELFv2 ABI, gcc returns structs of size <= 16 in registers. */ + if (list.rsize > 0 && list.rsize <= 16) { +- #if 0 /* Unoptimized */ ++ #if 1 /* Unoptimized */ + if (list.rsize == 1) { + iret = (__varword)((unsigned char *) list.raddr)[0]; + } else + if (list.rsize == 2) { +- iret = ((__varword)((unsigned char *) list.raddr)[0]) +- | ((__varword)((unsigned char *) list.raddr)[1] << 8); ++ iret = ((__varword)((unsigned char *) list.raddr)[1]) ++ | ((__varword)((unsigned char *) list.raddr)[0] << 8); + } else + if (list.rsize == 3) { +- iret = ((__varword)((unsigned char *) list.raddr)[0]) ++ iret = ((__varword)((unsigned char *) list.raddr)[2]) + | ((__varword)((unsigned char *) list.raddr)[1] << 8) +- | ((__varword)((unsigned char *) list.raddr)[2] << 16); ++ | ((__varword)((unsigned char *) list.raddr)[0] << 16); + } else + if (list.rsize == 4) { +- iret = ((__varword)((unsigned char *) list.raddr)[0]) +- | ((__varword)((unsigned char *) list.raddr)[1] << 8) +- | ((__varword)((unsigned char *) list.raddr)[2] << 16) +- | ((__varword)((unsigned char *) list.raddr)[3] << 24); ++ iret = ((__varword)((unsigned char *) list.raddr)[3]) ++ | ((__varword)((unsigned char *) list.raddr)[2] << 8) ++ | ((__varword)((unsigned char *) list.raddr)[1] << 16) ++ | ((__varword)((unsigned char *) list.raddr)[0] << 24); + } else + if (list.rsize == 5) { +- iret = ((__varword)((unsigned char *) list.raddr)[0]) +- | ((__varword)((unsigned char *) list.raddr)[1] << 8) ++ iret = ((__varword)((unsigned char *) list.raddr)[4]) ++ | ((__varword)((unsigned char *) list.raddr)[3] << 8) + | ((__varword)((unsigned char *) list.raddr)[2] << 16) +- | ((__varword)((unsigned char *) list.raddr)[3] << 24) +- | ((__varword)((unsigned char *) list.raddr)[4] << 32); ++ | ((__varword)((unsigned char *) list.raddr)[1] << 24) ++ | ((__varword)((unsigned char *) list.raddr)[0] << 32); + } else + if (list.rsize == 6) { +- iret = ((__varword)((unsigned char *) list.raddr)[0]) +- | ((__varword)((unsigned char *) list.raddr)[1] << 8) +- | ((__varword)((unsigned char *) list.raddr)[2] << 16) +- | ((__varword)((unsigned char *) list.raddr)[3] << 24) +- | ((__varword)((unsigned char *) list.raddr)[4] << 32) +- | ((__varword)((unsigned char *) list.raddr)[5] << 40); ++ iret = ((__varword)((unsigned char *) list.raddr)[5]) ++ | ((__varword)((unsigned char *) list.raddr)[4] << 8) ++ | ((__varword)((unsigned char *) list.raddr)[3] << 16) ++ | ((__varword)((unsigned char *) list.raddr)[2] << 24) ++ | ((__varword)((unsigned char *) list.raddr)[1] << 32) ++ | ((__varword)((unsigned char *) list.raddr)[0] << 40); + } else + if (list.rsize == 7) { +- iret = ((__varword)((unsigned char *) list.raddr)[0]) +- | ((__varword)((unsigned char *) list.raddr)[1] << 8) +- | ((__varword)((unsigned char *) list.raddr)[2] << 16) ++ iret = ((__varword)((unsigned char *) list.raddr)[6]) ++ | ((__varword)((unsigned char *) list.raddr)[5] << 8) ++ | ((__varword)((unsigned char *) list.raddr)[4] << 16) + | ((__varword)((unsigned char *) list.raddr)[3] << 24) +- | ((__varword)((unsigned char *) list.raddr)[4] << 32) +- | ((__varword)((unsigned char *) list.raddr)[5] << 40) +- | ((__varword)((unsigned char *) list.raddr)[6] << 48); ++ | ((__varword)((unsigned char *) list.raddr)[2] << 32) ++ | ((__varword)((unsigned char *) list.raddr)[1] << 40) ++ | ((__varword)((unsigned char *) list.raddr)[0] << 48); + } else + if (list.rsize >= 8 && list.rsize <= 16) { +- iret = ((__varword)((unsigned char *) list.raddr)[0]) +- | ((__varword)((unsigned char *) list.raddr)[1] << 8) +- | ((__varword)((unsigned char *) list.raddr)[2] << 16) +- | ((__varword)((unsigned char *) list.raddr)[3] << 24) +- | ((__varword)((unsigned char *) list.raddr)[4] << 32) +- | ((__varword)((unsigned char *) list.raddr)[5] << 40) +- | ((__varword)((unsigned char *) list.raddr)[6] << 48) +- | ((__varword)((unsigned char *) list.raddr)[7] << 56); ++ iret = ((__varword)((unsigned char *) list.raddr)[7]) ++ | ((__varword)((unsigned char *) list.raddr)[6] << 8) ++ | ((__varword)((unsigned char *) list.raddr)[5] << 16) ++ | ((__varword)((unsigned char *) list.raddr)[4] << 24) ++ | ((__varword)((unsigned char *) list.raddr)[3] << 32) ++ | ((__varword)((unsigned char *) list.raddr)[2] << 40) ++ | ((__varword)((unsigned char *) list.raddr)[1] << 48) ++ | ((__varword)((unsigned char *) list.raddr)[0] << 56); + if (list.rsize == 8) { + } else + if (list.rsize == 9) { +- iret2 = (__varword)((unsigned char *) list.raddr)[8]; ++ iret2 = (__varword)((unsigned char *) list.raddr)[8] << 56; + } else + if (list.rsize == 10) { +- iret2 = ((__varword)((unsigned char *) list.raddr)[8]) +- | ((__varword)((unsigned char *) list.raddr)[9] << 8); ++ iret2 = ((__varword)((unsigned char *) list.raddr)[8] << 56) ++ | ((__varword)((unsigned char *) list.raddr)[9] << 48); + } else + if (list.rsize == 11) { +- iret2 = ((__varword)((unsigned char *) list.raddr)[8]) +- | ((__varword)((unsigned char *) list.raddr)[9] << 8) +- | ((__varword)((unsigned char *) list.raddr)[10] << 16); ++ iret2 = ((__varword)((unsigned char *) list.raddr)[8] << 56) ++ | ((__varword)((unsigned char *) list.raddr)[9] << 48) ++ | ((__varword)((unsigned char *) list.raddr)[10] << 40); + } else + if (list.rsize == 12) { +- iret2 = ((__varword)((unsigned char *) list.raddr)[8]) +- | ((__varword)((unsigned char *) list.raddr)[9] << 8) +- | ((__varword)((unsigned char *) list.raddr)[10] << 16) +- | ((__varword)((unsigned char *) list.raddr)[11] << 24); ++ iret2 = ((__varword)((unsigned char *) list.raddr)[8] << 56) ++ | ((__varword)((unsigned char *) list.raddr)[9] << 48) ++ | ((__varword)((unsigned char *) list.raddr)[10] << 40) ++ | ((__varword)((unsigned char *) list.raddr)[11] << 32); + } else + if (list.rsize == 13) { +- iret2 = ((__varword)((unsigned char *) list.raddr)[8]) +- | ((__varword)((unsigned char *) list.raddr)[9] << 8) +- | ((__varword)((unsigned char *) list.raddr)[10] << 16) +- | ((__varword)((unsigned char *) list.raddr)[11] << 24) +- | ((__varword)((unsigned char *) list.raddr)[12] << 32); ++ iret2 = ((__varword)((unsigned char *) list.raddr)[8] << 56) ++ | ((__varword)((unsigned char *) list.raddr)[9] << 48) ++ | ((__varword)((unsigned char *) list.raddr)[10] << 40) ++ | ((__varword)((unsigned char *) list.raddr)[11] << 32) ++ | ((__varword)((unsigned char *) list.raddr)[12] << 24); + } else + if (list.rsize == 14) { +- iret2 = ((__varword)((unsigned char *) list.raddr)[8]) +- | ((__varword)((unsigned char *) list.raddr)[9] << 8) +- | ((__varword)((unsigned char *) list.raddr)[10] << 16) +- | ((__varword)((unsigned char *) list.raddr)[11] << 24) +- | ((__varword)((unsigned char *) list.raddr)[12] << 32) +- | ((__varword)((unsigned char *) list.raddr)[13] << 40); ++ iret2 = ((__varword)((unsigned char *) list.raddr)[8] << 56) ++ | ((__varword)((unsigned char *) list.raddr)[9] << 48) ++ | ((__varword)((unsigned char *) list.raddr)[10] << 40) ++ | ((__varword)((unsigned char *) list.raddr)[11] << 32) ++ | ((__varword)((unsigned char *) list.raddr)[12] << 24) ++ | ((__varword)((unsigned char *) list.raddr)[13] << 16); + } else + if (list.rsize == 15) { +- iret2 = ((__varword)((unsigned char *) list.raddr)[8]) +- | ((__varword)((unsigned char *) list.raddr)[9] << 8) +- | ((__varword)((unsigned char *) list.raddr)[10] << 16) +- | ((__varword)((unsigned char *) list.raddr)[11] << 24) +- | ((__varword)((unsigned char *) list.raddr)[12] << 32) +- | ((__varword)((unsigned char *) list.raddr)[13] << 40) +- | ((__varword)((unsigned char *) list.raddr)[14] << 48); ++ iret2 = ((__varword)((unsigned char *) list.raddr)[8] << 56) ++ | ((__varword)((unsigned char *) list.raddr)[9] << 48) ++ | ((__varword)((unsigned char *) list.raddr)[10] << 40) ++ | ((__varword)((unsigned char *) list.raddr)[11] << 32) ++ | ((__varword)((unsigned char *) list.raddr)[12] << 24) ++ | ((__varword)((unsigned char *) list.raddr)[13] << 16) ++ | ((__varword)((unsigned char *) list.raddr)[14] << 8); + } else + if (list.rsize == 16) { +- iret2 = ((__varword)((unsigned char *) list.raddr)[8]) +- | ((__varword)((unsigned char *) list.raddr)[9] << 8) +- | ((__varword)((unsigned char *) list.raddr)[10] << 16) +- | ((__varword)((unsigned char *) list.raddr)[11] << 24) +- | ((__varword)((unsigned char *) list.raddr)[12] << 32) +- | ((__varword)((unsigned char *) list.raddr)[13] << 40) +- | ((__varword)((unsigned char *) list.raddr)[14] << 48) +- | ((__varword)((unsigned char *) list.raddr)[15] << 56); ++ iret2 = ((__varword)((unsigned char *) list.raddr)[8] << 56) ++ | ((__varword)((unsigned char *) list.raddr)[9] << 48) ++ | ((__varword)((unsigned char *) list.raddr)[10] << 40) ++ | ((__varword)((unsigned char *) list.raddr)[11] << 32) ++ | ((__varword)((unsigned char *) list.raddr)[12] << 24) ++ | ((__varword)((unsigned char *) list.raddr)[13] << 16) ++ | ((__varword)((unsigned char *) list.raddr)[14] << 8) ++ | ((__varword)((unsigned char *) list.raddr)[15]); + } + } + #else /* Optimized: fewer conditional jumps, fewer memory accesses */ |