authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2023-06-19 17:06:39-07:00
committergravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2023-06-20 12:55:38-04:00
log09c7f1bd7c4410948a984f2f155a6e36ff6279fd
tree1089c9df54d3d6d9563c2871f6cd808d57b570b4
parentb20ccff515364cdb8f3e733cc950e53ab77656db

musl: update libc.S to v1.2.4


2 files changed, 248 insertions(+), 218 deletions(-)

lib/libc/musl/libc.S+30-203
...@@ -168,7 +168,7 @@ _IO_putc:...@@ -168,7 +168,7 @@ _IO_putc:
168.weak _IO_putc_unlocked168.weak _IO_putc_unlocked
169.type _IO_putc_unlocked, %function;169.type _IO_putc_unlocked, %function;
170_IO_putc_unlocked:170_IO_putc_unlocked:
171#if !defined(ARCH_riscv64) && !defined(ARCH_mips) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64)171#if !defined(ARCH_riscv64) && !defined(ARCH_mips) && !defined(ARCH_mips64) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64)
172.globl ___tls_get_addr172.globl ___tls_get_addr
173.type ___tls_get_addr, %function;173.type ___tls_get_addr, %function;
174___tls_get_addr:174___tls_get_addr:
...@@ -187,7 +187,7 @@ __aio_suspend_time64:...@@ -187,7 +187,7 @@ __aio_suspend_time64:
187.globl __assert_fail187.globl __assert_fail
188.type __assert_fail, %function;188.type __assert_fail, %function;
189__assert_fail:189__assert_fail:
190#if !defined(ARCH_riscv64) && !defined(ARCH_i386) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64)190#if !defined(ARCH_riscv64) && !defined(ARCH_x86) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64)
191.globl __cachectl191.globl __cachectl
192.type __cachectl, %function;192.type __cachectl, %function;
193__cachectl:193__cachectl:
...@@ -313,10 +313,10 @@ __fseterr:...@@ -313,10 +313,10 @@ __fseterr:
313.type __fsetlocking, %function;313.type __fsetlocking, %function;
314__fsetlocking:314__fsetlocking:
315#ifdef PTR32315#ifdef PTR32
316.globl __fstat_time64316.weak __fstat_time64
317.type __fstat_time64, %function;317.type __fstat_time64, %function;
318__fstat_time64:318__fstat_time64:
319.globl __fstatat_time64319.weak __fstatat_time64
320.type __fstatat_time64, %function;320.type __fstatat_time64, %function;
321__fstatat_time64:321__fstatat_time64:
322.globl __ftime64322.globl __ftime64
...@@ -338,22 +338,12 @@ __fwritable:...@@ -338,22 +338,12 @@ __fwritable:
338.globl __fwriting338.globl __fwriting
339.type __fwriting, %function;339.type __fwriting, %function;
340__fwriting:340__fwriting:
341#if !defined(ARCH_mips) && !defined(ARCH_i386) && !defined(ARCH_powerpc)
342.globl __fxstat341.globl __fxstat
343.type __fxstat, %function;342.type __fxstat, %function;
344__fxstat:343__fxstat:
345#endif
346WEAK64 __fxstat64
347.type __fxstat64, %function;
348__fxstat64:
349#if !defined(ARCH_mips) && !defined(ARCH_i386) && !defined(ARCH_powerpc)
350.globl __fxstatat344.globl __fxstatat
351.type __fxstatat, %function;345.type __fxstatat, %function;
352__fxstatat:346__fxstatat:
353#endif
354WEAK64 __fxstatat64
355.type __fxstatat64, %function;
356__fxstatat64:
357.weak __getdelim347.weak __getdelim
358.type __getdelim, %function;348.type __getdelim, %function;
359__getdelim:349__getdelim:
...@@ -508,7 +498,7 @@ __localtime64:...@@ -508,7 +498,7 @@ __localtime64:
508.type __localtime64_r, %function;498.type __localtime64_r, %function;
509__localtime64_r:499__localtime64_r:
510#endif500#endif
511#if !defined(ARCH_mips) && !defined(ARCH_i386) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64)501#if !defined(ARCH_mips) && !defined(ARCH_mips64) && !defined(ARCH_x86) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64)
512.globl __longjmp502.globl __longjmp
513.type __longjmp, %function;503.type __longjmp, %function;
514__longjmp:504__longjmp:
...@@ -521,14 +511,9 @@ __lstat_time64:...@@ -521,14 +511,9 @@ __lstat_time64:
521.type __lutimes_time64, %function;511.type __lutimes_time64, %function;
522__lutimes_time64:512__lutimes_time64:
523#endif513#endif
524#if !defined(ARCH_mips) && !defined(ARCH_i386) && !defined(ARCH_powerpc)
525.globl __lxstat514.globl __lxstat
526.type __lxstat, %function;515.type __lxstat, %function;
527__lxstat:516__lxstat:
528#endif
529WEAK64 __lxstat64
530.type __lxstat64, %function;
531__lxstat64:
532#ifdef PTR32517#ifdef PTR32
533.globl __mktime64518.globl __mktime64
534.type __mktime64, %function;519.type __mktime64, %function;
...@@ -591,7 +576,17 @@ __recvmmsg_time64:...@@ -591,7 +576,17 @@ __recvmmsg_time64:
591.globl __res_state576.globl __res_state
592.type __res_state, %function;577.type __res_state, %function;
593__res_state:578__res_state:
594#if !defined(ARCH_mips) && !defined(ARCH_i386) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64)579#if !defined(ARCH_mips) && !defined(ARCH_mips64) && !defined(ARCH_x86) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64)
580.globl __restore
581.type __restore, %function;
582__restore:
583#endif
584#if !defined(ARCH_mips) && !defined(ARCH_mips64) && !defined(ARCH_x86) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64)
585.globl __restore_rt
586.type __restore_rt, %function;
587__restore_rt:
588#endif
589#if !defined(ARCH_mips) && !defined(ARCH_mips64) && !defined(ARCH_x86) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64)
595.globl __riscv_flush_icache590.globl __riscv_flush_icache
596.type __riscv_flush_icache, %function;591.type __riscv_flush_icache, %function;
597__riscv_flush_icache:592__riscv_flush_icache:
...@@ -792,27 +787,27 @@ __xpg_basename:...@@ -792,27 +787,27 @@ __xpg_basename:
792.weak __xpg_strerror_r787.weak __xpg_strerror_r
793.type __xpg_strerror_r, %function;788.type __xpg_strerror_r, %function;
794__xpg_strerror_r:789__xpg_strerror_r:
795#if !defined(ARCH_mips) && !defined(ARCH_i386) && !defined(ARCH_powerpc)
796.globl __xstat790.globl __xstat
797.type __xstat, %function;791.type __xstat, %function;
798__xstat:792__xstat:
799#endif
800WEAK64 __xstat64
801.type __xstat64, %function;
802__xstat64:
803.weak _dl_debug_state793.weak _dl_debug_state
804.type _dl_debug_state, %function;794.type _dl_debug_state, %function;
805_dl_debug_state:795_dl_debug_state:
806.globl _dlstart796.globl _dlstart
807.type _dlstart, %function;797.type _dlstart, %function;
808_dlstart:798_dlstart:
799#if !defined(ARCH_riscv64) && !defined(ARCH_mips) && !defined(ARCH_x86) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64)
800.globl _dlstart_data
801.type _dlstart_data, %function;
802_dlstart_data:
803#endif
809.globl _exit804.globl _exit
810.type _exit, %function;805.type _exit, %function;
811_exit:806_exit:
812.weak _fini807.weak _fini
813.type _fini, %function;808.type _fini, %function;
814_fini:809_fini:
815#if !defined(ARCH_riscv64) && !defined(ARCH_i386) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64)810#if !defined(ARCH_riscv64) && !defined(ARCH_x86) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64)
816.globl _flush_cache811.globl _flush_cache
817.type _flush_cache, %function;812.type _flush_cache, %function;
818_flush_cache:813_flush_cache:
...@@ -886,45 +881,24 @@ adjtimex:...@@ -886,45 +881,24 @@ adjtimex:
886.globl aio_cancel881.globl aio_cancel
887.type aio_cancel, %function;882.type aio_cancel, %function;
888aio_cancel:883aio_cancel:
889.weak aio_cancel64
890.type aio_cancel64, %function;
891aio_cancel64:
892.globl aio_error884.globl aio_error
893.type aio_error, %function;885.type aio_error, %function;
894aio_error:886aio_error:
895.weak aio_error64
896.type aio_error64, %function;
897aio_error64:
898.globl aio_fsync887.globl aio_fsync
899.type aio_fsync, %function;888.type aio_fsync, %function;
900aio_fsync:889aio_fsync:
901.weak aio_fsync64
902.type aio_fsync64, %function;
903aio_fsync64:
904.globl aio_read890.globl aio_read
905.type aio_read, %function;891.type aio_read, %function;
906aio_read:892aio_read:
907.weak aio_read64
908.type aio_read64, %function;
909aio_read64:
910.globl aio_return893.globl aio_return
911.type aio_return, %function;894.type aio_return, %function;
912aio_return:895aio_return:
913.weak aio_return64
914.type aio_return64, %function;
915aio_return64:
916.globl aio_suspend896.globl aio_suspend
917.type aio_suspend, %function;897.type aio_suspend, %function;
918aio_suspend:898aio_suspend:
919.weak aio_suspend64
920.type aio_suspend64, %function;
921aio_suspend64:
922.globl aio_write899.globl aio_write
923.type aio_write, %function;900.type aio_write, %function;
924aio_write:901aio_write:
925.weak aio_write64
926.type aio_write64, %function;
927aio_write64:
928.globl alarm902.globl alarm
929.type alarm, %function;903.type alarm, %function;
930alarm:904alarm:
...@@ -934,10 +908,7 @@ aligned_alloc:...@@ -934,10 +908,7 @@ aligned_alloc:
934.globl alphasort908.globl alphasort
935.type alphasort, %function;909.type alphasort, %function;
936alphasort:910alphasort:
937.weak alphasort64911#if !defined(ARCH_riscv64) && !defined(ARCH_mips) && !defined(ARCH_mips64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64)
938.type alphasort64, %function;
939alphasort64:
940#if !defined(ARCH_riscv64) && !defined(ARCH_mips) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64)
941.globl arch_prctl912.globl arch_prctl
942.type arch_prctl, %function;913.type arch_prctl, %function;
943arch_prctl:914arch_prctl:
...@@ -1062,12 +1033,12 @@ cabsf:...@@ -1062,12 +1033,12 @@ cabsf:
1062.globl cabsl1033.globl cabsl
1063.type cabsl, %function;1034.type cabsl, %function;
1064cabsl:1035cabsl:
1065#if !defined(ARCH_riscv64) && !defined(ARCH_i386) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64)1036#if !defined(ARCH_riscv64) && !defined(ARCH_x86) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64)
1066.weak cachectl1037.weak cachectl
1067.type cachectl, %function;1038.type cachectl, %function;
1068cachectl:1039cachectl:
1069#endif1040#endif
1070#if !defined(ARCH_riscv64) && !defined(ARCH_i386) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64)1041#if !defined(ARCH_riscv64) && !defined(ARCH_x86) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64)
1071.weak cacheflush1042.weak cacheflush
1072.type cacheflush, %function;1043.type cacheflush, %function;
1073cacheflush:1044cacheflush:
...@@ -1384,9 +1355,6 @@ creall:...@@ -1384,9 +1355,6 @@ creall:
1384.globl creat1355.globl creat
1385.type creat, %function;1356.type creat, %function;
1386creat:1357creat:
1387.weak creat64
1388.type creat64, %function;
1389creat64:
1390.globl crypt1358.globl crypt
1391.type crypt, %function;1359.type crypt, %function;
1392crypt:1360crypt:
...@@ -1729,9 +1697,6 @@ faccessat:...@@ -1729,9 +1697,6 @@ faccessat:
1729.globl fallocate1697.globl fallocate
1730.type fallocate, %function;1698.type fallocate, %function;
1731fallocate:1699fallocate:
1732.weak fallocate64
1733.type fallocate64, %function;
1734fallocate64:
1735.globl fanotify_init1700.globl fanotify_init
1736.type fanotify_init, %function;1701.type fanotify_init, %function;
1737fanotify_init:1702fanotify_init:
...@@ -1858,9 +1823,6 @@ fgetln:...@@ -1858,9 +1823,6 @@ fgetln:
1858.globl fgetpos1823.globl fgetpos
1859.type fgetpos, %function;1824.type fgetpos, %function;
1860fgetpos:1825fgetpos:
1861.weak fgetpos64
1862.type fgetpos64, %function;
1863fgetpos64:
1864.globl fgetpwent1826.globl fgetpwent
1865.type fgetpwent, %function;1827.type fgetpwent, %function;
1866fgetpwent:1828fgetpwent:
...@@ -1966,9 +1928,6 @@ fnmatch:...@@ -1966,9 +1928,6 @@ fnmatch:
1966.globl fopen1928.globl fopen
1967.type fopen, %function;1929.type fopen, %function;
1968fopen:1930fopen:
1969.weak fopen64
1970.type fopen64, %function;
1971fopen64:
1972.globl fopencookie1931.globl fopencookie
1973.type fopencookie, %function;1932.type fopencookie, %function;
1974fopencookie:1933fopencookie:
...@@ -2035,9 +1994,6 @@ fremovexattr:...@@ -2035,9 +1994,6 @@ fremovexattr:
2035.globl freopen1994.globl freopen
2036.type freopen, %function;1995.type freopen, %function;
2037freopen:1996freopen:
2038.weak freopen64
2039.type freopen64, %function;
2040freopen64:
2041.globl frexp1997.globl frexp
2042.type frexp, %function;1998.type frexp, %function;
2043frexp:1999frexp:
...@@ -2056,42 +2012,24 @@ fseek:...@@ -2056,42 +2012,24 @@ fseek:
2056.weak fseeko2012.weak fseeko
2057.type fseeko, %function;2013.type fseeko, %function;
2058fseeko:2014fseeko:
2059.weak fseeko64
2060.type fseeko64, %function;
2061fseeko64:
2062.globl fsetpos2015.globl fsetpos
2063.type fsetpos, %function;2016.type fsetpos, %function;
2064fsetpos:2017fsetpos:
2065.weak fsetpos64
2066.type fsetpos64, %function;
2067fsetpos64:
2068.globl fsetxattr2018.globl fsetxattr
2069.type fsetxattr, %function;2019.type fsetxattr, %function;
2070fsetxattr:2020fsetxattr:
2071.globl fstat2021WEAK64 fstat
2072.type fstat, %function;2022.type fstat, %function;
2073fstat:2023fstat:
2074.weak fstat642024WEAK64 fstatat
2075.type fstat64, %function;
2076fstat64:
2077.globl fstatat
2078.type fstatat, %function;2025.type fstatat, %function;
2079fstatat:2026fstatat:
2080.weak fstatat64
2081.type fstatat64, %function;
2082fstatat64:
2083.weak fstatfs2027.weak fstatfs
2084.type fstatfs, %function;2028.type fstatfs, %function;
2085fstatfs:2029fstatfs:
2086.weak fstatfs64
2087.type fstatfs64, %function;
2088fstatfs64:
2089.globl fstatvfs2030.globl fstatvfs
2090.type fstatvfs, %function;2031.type fstatvfs, %function;
2091fstatvfs:2032fstatvfs:
2092.weak fstatvfs64
2093.type fstatvfs64, %function;
2094fstatvfs64:
2095.globl fsync2033.globl fsync
2096.type fsync, %function;2034.type fsync, %function;
2097fsync:2035fsync:
...@@ -2101,9 +2039,6 @@ ftell:...@@ -2101,9 +2039,6 @@ ftell:
2101.weak ftello2039.weak ftello
2102.type ftello, %function;2040.type ftello, %function;
2103ftello:2041ftello:
2104.weak ftello64
2105.type ftello64, %function;
2106ftello64:
2107.globl ftime2042.globl ftime
2108.type ftime, %function;2043.type ftime, %function;
2109ftime:2044ftime:
...@@ -2113,18 +2048,12 @@ ftok:...@@ -2113,18 +2048,12 @@ ftok:
2113.globl ftruncate2048.globl ftruncate
2114.type ftruncate, %function;2049.type ftruncate, %function;
2115ftruncate:2050ftruncate:
2116.weak ftruncate64
2117.type ftruncate64, %function;
2118ftruncate64:
2119.globl ftrylockfile2051.globl ftrylockfile
2120.type ftrylockfile, %function;2052.type ftrylockfile, %function;
2121ftrylockfile:2053ftrylockfile:
2122.globl ftw2054.globl ftw
2123.type ftw, %function;2055.type ftw, %function;
2124ftw:2056ftw:
2125.weak ftw64
2126.type ftw64, %function;
2127ftw64:
2128.globl funlockfile2057.globl funlockfile
2129.type funlockfile, %function;2058.type funlockfile, %function;
2130funlockfile:2059funlockfile:
...@@ -2203,9 +2132,6 @@ getdelim:...@@ -2203,9 +2132,6 @@ getdelim:
2203.globl getdents2132.globl getdents
2204.type getdents, %function;2133.type getdents, %function;
2205getdents:2134getdents:
2206.weak getdents64
2207.type getdents64, %function;
2208getdents64:
2209.globl getdomainname2135.globl getdomainname
2210.type getdomainname, %function;2136.type getdomainname, %function;
2211getdomainname:2137getdomainname:
...@@ -2380,9 +2306,6 @@ getresuid:...@@ -2380,9 +2306,6 @@ getresuid:
2380.globl getrlimit2306.globl getrlimit
2381.type getrlimit, %function;2307.type getrlimit, %function;
2382getrlimit:2308getrlimit:
2383.weak getrlimit64
2384.type getrlimit64, %function;
2385getrlimit64:
2386.globl getrusage2309.globl getrusage
2387.type getrusage, %function;2310.type getrusage, %function;
2388getrusage:2311getrusage:
...@@ -2479,15 +2402,9 @@ getxattr:...@@ -2479,15 +2402,9 @@ getxattr:
2479.globl glob2402.globl glob
2480.type glob, %function;2403.type glob, %function;
2481glob:2404glob:
2482.weak glob64
2483.type glob64, %function;
2484glob64:
2485.globl globfree2405.globl globfree
2486.type globfree, %function;2406.type globfree, %function;
2487globfree:2407globfree:
2488.weak globfree64
2489.type globfree64, %function;
2490globfree64:
2491.globl gmtime2408.globl gmtime
2492.type gmtime, %function;2409.type gmtime, %function;
2493gmtime:2410gmtime:
...@@ -2632,12 +2549,12 @@ insque:...@@ -2632,12 +2549,12 @@ insque:
2632.globl ioctl2549.globl ioctl
2633.type ioctl, %function;2550.type ioctl, %function;
2634ioctl:2551ioctl:
2635#if !defined(ARCH_riscv64) && !defined(ARCH_aarch64)2552#if !defined(ARCH_riscv64) && !defined(ARCH_mips64) && !defined(ARCH_aarch64)
2636.globl ioperm2553.globl ioperm
2637.type ioperm, %function;2554.type ioperm, %function;
2638ioperm:2555ioperm:
2639#endif2556#endif
2640#if !defined(ARCH_riscv64) && !defined(ARCH_aarch64)2557#if !defined(ARCH_riscv64) && !defined(ARCH_mips64) && !defined(ARCH_aarch64)
2641.globl iopl2558.globl iopl
2642.type iopl, %function;2559.type iopl, %function;
2643iopl:2560iopl:
...@@ -2897,9 +2814,6 @@ linkat:...@@ -2897,9 +2814,6 @@ linkat:
2897.globl lio_listio2814.globl lio_listio
2898.type lio_listio, %function;2815.type lio_listio, %function;
2899lio_listio:2816lio_listio:
2900.weak lio_listio64
2901.type lio_listio64, %function;
2902lio_listio64:
2903.globl listen2817.globl listen
2904.type listen, %function;2818.type listen, %function;
2905listen:2819listen:
...@@ -2945,9 +2859,6 @@ localtime_r:...@@ -2945,9 +2859,6 @@ localtime_r:
2945.globl lockf2859.globl lockf
2946.type lockf, %function;2860.type lockf, %function;
2947lockf:2861lockf:
2948.weak lockf64
2949.type lockf64, %function;
2950lockf64:
2951.globl log2862.globl log
2952.type log, %function;2863.type log, %function;
2953log:2864log:
...@@ -3029,18 +2940,12 @@ lsearch:...@@ -3029,18 +2940,12 @@ lsearch:
3029.weak lseek2940.weak lseek
3030.type lseek, %function;2941.type lseek, %function;
3031lseek:2942lseek:
3032.weak lseek64
3033.type lseek64, %function;
3034lseek64:
3035.globl lsetxattr2943.globl lsetxattr
3036.type lsetxattr, %function;2944.type lsetxattr, %function;
3037lsetxattr:2945lsetxattr:
3038.globl lstat2946.globl lstat
3039.type lstat, %function;2947.type lstat, %function;
3040lstat:2948lstat:
3041.weak lstat64
3042.type lstat64, %function;
3043lstat64:
3044.globl lutimes2949.globl lutimes
3045.type lutimes, %function;2950.type lutimes, %function;
3046lutimes:2951lutimes:
...@@ -3146,27 +3051,15 @@ mknodat:...@@ -3146,27 +3051,15 @@ mknodat:
3146.globl mkostemp3051.globl mkostemp
3147.type mkostemp, %function;3052.type mkostemp, %function;
3148mkostemp:3053mkostemp:
3149.weak mkostemp64
3150.type mkostemp64, %function;
3151mkostemp64:
3152.weak mkostemps3054.weak mkostemps
3153.type mkostemps, %function;3055.type mkostemps, %function;
3154mkostemps:3056mkostemps:
3155.weak mkostemps64
3156.type mkostemps64, %function;
3157mkostemps64:
3158.globl mkstemp3057.globl mkstemp
3159.type mkstemp, %function;3058.type mkstemp, %function;
3160mkstemp:3059mkstemp:
3161.weak mkstemp64
3162.type mkstemp64, %function;
3163mkstemp64:
3164.globl mkstemps3060.globl mkstemps
3165.type mkstemps, %function;3061.type mkstemps, %function;
3166mkstemps:3062mkstemps:
3167.weak mkstemps64
3168.type mkstemps64, %function;
3169mkstemps64:
3170.globl mktemp3063.globl mktemp
3171.type mktemp, %function;3064.type mktemp, %function;
3172mktemp:3065mktemp:
...@@ -3185,9 +3078,6 @@ mlockall:...@@ -3185,9 +3078,6 @@ mlockall:
3185.weak mmap3078.weak mmap
3186.type mmap, %function;3079.type mmap, %function;
3187mmap:3080mmap:
3188.weak mmap64
3189.type mmap64, %function;
3190mmap64:
3191.globl modf3081.globl modf
3192.type modf, %function;3082.type modf, %function;
3193modf:3083modf:
...@@ -3329,9 +3219,6 @@ nexttowardl:...@@ -3329,9 +3219,6 @@ nexttowardl:
3329.globl nftw3219.globl nftw
3330.type nftw, %function;3220.type nftw, %function;
3331nftw:3221nftw:
3332.weak nftw64
3333.type nftw64, %function;
3334nftw64:
3335.globl ngettext3222.globl ngettext
3336.type ngettext, %function;3223.type ngettext, %function;
3337ngettext:3224ngettext:
...@@ -3380,9 +3267,6 @@ ntohs:...@@ -3380,9 +3267,6 @@ ntohs:
3380.globl open3267.globl open
3381.type open, %function;3268.type open, %function;
3382open:3269open:
3383.weak open64
3384.type open64, %function;
3385open64:
3386.globl open_by_handle_at3270.globl open_by_handle_at
3387.type open_by_handle_at, %function;3271.type open_by_handle_at, %function;
3388open_by_handle_at:3272open_by_handle_at:
...@@ -3395,9 +3279,6 @@ open_wmemstream:...@@ -3395,9 +3279,6 @@ open_wmemstream:
3395.globl openat3279.globl openat
3396.type openat, %function;3280.type openat, %function;
3397openat:3281openat:
3398.weak openat64
3399.type openat64, %function;
3400openat64:
3401.globl opendir3282.globl opendir
3402.type opendir, %function;3283.type opendir, %function;
3403opendir:3284opendir:
...@@ -3443,15 +3324,9 @@ posix_close:...@@ -3443,15 +3324,9 @@ posix_close:
3443.globl posix_fadvise3324.globl posix_fadvise
3444.type posix_fadvise, %function;3325.type posix_fadvise, %function;
3445posix_fadvise:3326posix_fadvise:
3446.weak posix_fadvise64
3447.type posix_fadvise64, %function;
3448posix_fadvise64:
3449.globl posix_fallocate3327.globl posix_fallocate
3450.type posix_fallocate, %function;3328.type posix_fallocate, %function;
3451posix_fallocate:3329posix_fallocate:
3452.weak posix_fallocate64
3453.type posix_fallocate64, %function;
3454posix_fallocate64:
3455.globl posix_madvise3330.globl posix_madvise
3456.type posix_madvise, %function;3331.type posix_madvise, %function;
3457posix_madvise:3332posix_madvise:
...@@ -3557,24 +3432,15 @@ prctl:...@@ -3557,24 +3432,15 @@ prctl:
3557.globl pread3432.globl pread
3558.type pread, %function;3433.type pread, %function;
3559pread:3434pread:
3560.weak pread64
3561.type pread64, %function;
3562pread64:
3563.globl preadv3435.globl preadv
3564.type preadv, %function;3436.type preadv, %function;
3565preadv:3437preadv:
3566.weak preadv64
3567.type preadv64, %function;
3568preadv64:
3569.globl printf3438.globl printf
3570.type printf, %function;3439.type printf, %function;
3571printf:3440printf:
3572.globl prlimit3441.globl prlimit
3573.type prlimit, %function;3442.type prlimit, %function;
3574prlimit:3443prlimit:
3575.weak prlimit64
3576.type prlimit64, %function;
3577prlimit64:
3578.globl process_vm_readv3444.globl process_vm_readv
3579.type process_vm_readv, %function;3445.type process_vm_readv, %function;
3580process_vm_readv:3446process_vm_readv:
...@@ -3971,15 +3837,9 @@ putwchar_unlocked:...@@ -3971,15 +3837,9 @@ putwchar_unlocked:
3971.globl pwrite3837.globl pwrite
3972.type pwrite, %function;3838.type pwrite, %function;
3973pwrite:3839pwrite:
3974.weak pwrite64
3975.type pwrite64, %function;
3976pwrite64:
3977.globl pwritev3840.globl pwritev
3978.type pwritev, %function;3841.type pwritev, %function;
3979pwritev:3842pwritev:
3980.weak pwritev64
3981.type pwritev64, %function;
3982pwritev64:
3983.globl qsort3843.globl qsort
3984.type qsort, %function;3844.type qsort, %function;
3985qsort:3845qsort:
...@@ -4013,12 +3873,6 @@ readahead:...@@ -4013,12 +3873,6 @@ readahead:
4013.globl readdir3873.globl readdir
4014.type readdir, %function;3874.type readdir, %function;
4015readdir:3875readdir:
4016.weak readdir64
4017.type readdir64, %function;
4018readdir64:
4019.weak readdir64_r
4020.type readdir64_r, %function;
4021readdir64_r:
4022.globl readdir_r3876.globl readdir_r
4023.type readdir_r, %function;3877.type readdir_r, %function;
4024readdir_r:3878readdir_r:
...@@ -4139,7 +3993,7 @@ rintf:...@@ -4139,7 +3993,7 @@ rintf:
4139.globl rintl3993.globl rintl
4140.type rintl, %function;3994.type rintl, %function;
4141rintl:3995rintl:
4142#if !defined(ARCH_mips) && !defined(ARCH_i386) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64)3996#if !defined(ARCH_mips) && !defined(ARCH_mips64) && !defined(ARCH_x86) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64)
4143.weak riscv_flush_icache3997.weak riscv_flush_icache
4144.type riscv_flush_icache, %function;3998.type riscv_flush_icache, %function;
4145riscv_flush_icache:3999riscv_flush_icache:
...@@ -4186,9 +4040,6 @@ scalbnl:...@@ -4186,9 +4040,6 @@ scalbnl:
4186.globl scandir4040.globl scandir
4187.type scandir, %function;4041.type scandir, %function;
4188scandir:4042scandir:
4189.weak scandir64
4190.type scandir64, %function;
4191scandir64:
4192.globl scanf4043.globl scanf
4193.type scanf, %function;4044.type scanf, %function;
4194scanf:4045scanf:
...@@ -4285,9 +4136,6 @@ send:...@@ -4285,9 +4136,6 @@ send:
4285.globl sendfile4136.globl sendfile
4286.type sendfile, %function;4137.type sendfile, %function;
4287sendfile:4138sendfile:
4288.weak sendfile64
4289.type sendfile64, %function;
4290sendfile64:
4291.globl sendmmsg4139.globl sendmmsg
4292.type sendmmsg, %function;4140.type sendmmsg, %function;
4293sendmmsg:4141sendmmsg:
...@@ -4393,9 +4241,6 @@ setreuid:...@@ -4393,9 +4241,6 @@ setreuid:
4393.globl setrlimit4241.globl setrlimit
4394.type setrlimit, %function;4242.type setrlimit, %function;
4395setrlimit:4243setrlimit:
4396.weak setrlimit64
4397.type setrlimit64, %function;
4398setrlimit64:
4399.globl setservent4244.globl setservent
4400.type setservent, %function;4245.type setservent, %function;
4401setservent:4246setservent:
...@@ -4612,21 +4457,12 @@ sscanf:...@@ -4612,21 +4457,12 @@ sscanf:
4612.globl stat4457.globl stat
4613.type stat, %function;4458.type stat, %function;
4614stat:4459stat:
4615.weak stat64
4616.type stat64, %function;
4617stat64:
4618.weak statfs4460.weak statfs
4619.type statfs, %function;4461.type statfs, %function;
4620statfs:4462statfs:
4621.weak statfs64
4622.type statfs64, %function;
4623statfs64:
4624.globl statvfs4463.globl statvfs
4625.type statvfs, %function;4464.type statvfs, %function;
4626statvfs:4465statvfs:
4627.weak statvfs64
4628.type statvfs64, %function;
4629statvfs64:
4630.globl stime4466.globl stime
4631.type stime, %function;4467.type stime, %function;
4632stime:4468stime:
...@@ -4984,9 +4820,6 @@ timespec_get:...@@ -4984,9 +4820,6 @@ timespec_get:
4984.globl tmpfile4820.globl tmpfile
4985.type tmpfile, %function;4821.type tmpfile, %function;
4986tmpfile:4822tmpfile:
4987.weak tmpfile64
4988.type tmpfile64, %function;
4989tmpfile64:
4990.globl tmpnam4823.globl tmpnam
4991.type tmpnam, %function;4824.type tmpnam, %function;
4992tmpnam:4825tmpnam:
...@@ -5029,9 +4862,6 @@ trunc:...@@ -5029,9 +4862,6 @@ trunc:
5029.globl truncate4862.globl truncate
5030.type truncate, %function;4863.type truncate, %function;
5031truncate:4864truncate:
5032.weak truncate64
5033.type truncate64, %function;
5034truncate64:
5035.globl truncf4865.globl truncf
5036.type truncf, %function;4866.type truncf, %function;
5037truncf:4867truncf:
...@@ -5152,9 +4982,6 @@ verrx:...@@ -5152,9 +4982,6 @@ verrx:
5152.globl versionsort4982.globl versionsort
5153.type versionsort, %function;4983.type versionsort, %function;
5154versionsort:4984versionsort:
5155.weak versionsort64
5156.type versionsort64, %function;
5157versionsort64:
5158.globl vfork4985.globl vfork
5159.type vfork, %function;4986.type vfork, %function;
5160vfork:4987vfork:
tools/gen_stubs.zig+218-15
...@@ -11,6 +11,7 @@...@@ -11,6 +11,7 @@
11//! * One of the following, corresponding to the CPU architecture:11//! * One of the following, corresponding to the CPU architecture:
12//! - `-DARCH_riscv64`12//! - `-DARCH_riscv64`
13//! - `-DARCH_mips`13//! - `-DARCH_mips`
14//! - `-DARCH_mips64`
14//! - `-DARCH_i386`15//! - `-DARCH_i386`
15//! - `-DARCH_x86_64`16//! - `-DARCH_x86_64`
16//! - `-DARCH_powerpc`17//! - `-DARCH_powerpc`
...@@ -28,9 +29,20 @@ const log = std.log;...@@ -28,9 +29,20 @@ const log = std.log;
28const elf = std.elf;29const elf = std.elf;
29const native_endian = @import("builtin").target.cpu.arch.endian();30const native_endian = @import("builtin").target.cpu.arch.endian();
3031
31const arches: [7]std.Target.Cpu.Arch = blk: {32const inputs = .{
32 var result: [7]std.Target.Cpu.Arch = undefined;33 .riscv64,
33 for (.{ .riscv64, .mips, .x86, .x86_64, .powerpc, .powerpc64, .aarch64 }) |arch| {34 .mips,
35 .mips64,
36 .x86,
37 .x86_64,
38 .powerpc,
39 .powerpc64,
40 .aarch64,
41};
42
43const arches: [inputs.len]std.Target.Cpu.Arch = blk: {
44 var result: [inputs.len]std.Target.Cpu.Arch = undefined;
45 for (inputs) |arch| {
34 result[archIndex(arch)] = arch;46 result[archIndex(arch)] = arch;
35 }47 }
36 break :blk result;48 break :blk result;
...@@ -56,6 +68,7 @@ const MultiSym = struct {...@@ -56,6 +68,7 @@ const MultiSym = struct {
56 fn is32Only(ms: MultiSym) bool {68 fn is32Only(ms: MultiSym) bool {
57 return ms.present[archIndex(.riscv64)] == false and69 return ms.present[archIndex(.riscv64)] == false and
58 ms.present[archIndex(.mips)] == true and70 ms.present[archIndex(.mips)] == true and
71 ms.present[archIndex(.mips64)] == false and
59 ms.present[archIndex(.x86)] == true and72 ms.present[archIndex(.x86)] == true and
60 ms.present[archIndex(.x86_64)] == false and73 ms.present[archIndex(.x86_64)] == false and
61 ms.present[archIndex(.powerpc)] == true and74 ms.present[archIndex(.powerpc)] == true and
...@@ -97,6 +110,7 @@ const MultiSym = struct {...@@ -97,6 +110,7 @@ const MultiSym = struct {
97 const map = .{110 const map = .{
98 .{ .riscv64, 8 },111 .{ .riscv64, 8 },
99 .{ .mips, 4 },112 .{ .mips, 4 },
113 .{ .mips64, 8 },
100 .{ .x86, 4 },114 .{ .x86, 4 },
101 .{ .x86_64, 8 },115 .{ .x86_64, 8 },
102 .{ .powerpc, 4 },116 .{ .powerpc, 4 },
...@@ -118,6 +132,7 @@ const MultiSym = struct {...@@ -118,6 +132,7 @@ const MultiSym = struct {
118 const map = .{132 const map = .{
119 .{ .riscv64, 16 },133 .{ .riscv64, 16 },
120 .{ .mips, 8 },134 .{ .mips, 8 },
135 .{ .mips64, 16 },
121 .{ .x86, 8 },136 .{ .x86, 8 },
122 .{ .x86_64, 16 },137 .{ .x86_64, 16 },
123 .{ .powerpc, 8 },138 .{ .powerpc, 8 },
...@@ -139,6 +154,7 @@ const MultiSym = struct {...@@ -139,6 +154,7 @@ const MultiSym = struct {
139 const map = .{154 const map = .{
140 .{ .riscv64, 2 },155 .{ .riscv64, 2 },
141 .{ .mips, 1 },156 .{ .mips, 1 },
157 .{ .mips64, 2 },
142 .{ .x86, 1 },158 .{ .x86, 1 },
143 .{ .x86_64, 2 },159 .{ .x86_64, 2 },
144 .{ .powerpc, 1 },160 .{ .powerpc, 1 },
...@@ -187,17 +203,23 @@ pub fn main() !void {...@@ -187,17 +203,23 @@ pub fn main() !void {
187 }203 }
188204
189 for (arches) |arch| {205 for (arches) |arch| {
190 const libc_so_path = try std.fmt.allocPrint(arena, "{s}/lib/libc.so", .{@tagName(arch)});206 const libc_so_path = try std.fmt.allocPrint(arena, "{s}/lib/libc.so", .{
207 archMuslName(arch),
208 });
191209
192 // Read the ELF header.210 // Read the ELF header.
193 const elf_bytes = try build_all_dir.readFileAllocOptions(211 const elf_bytes = build_all_dir.readFileAllocOptions(
194 arena,212 arena,
195 libc_so_path,213 libc_so_path,
196 100 * 1024 * 1024,214 100 * 1024 * 1024,
197 1 * 1024 * 1024,215 1 * 1024 * 1024,
198 @alignOf(elf.Elf64_Ehdr),216 @alignOf(elf.Elf64_Ehdr),
199 null,217 null,
200 );218 ) catch |err| {
219 std.debug.panic("unable to read '{s}/{s}': {s}", .{
220 build_all_path, libc_so_path, @errorName(err),
221 });
222 };
201 const header = try elf.Header.parse(elf_bytes[0..@sizeOf(elf.Elf64_Ehdr)]);223 const header = try elf.Header.parse(elf_bytes[0..@sizeOf(elf.Elf64_Ehdr)]);
202224
203 const parse: Parse = .{225 const parse: Parse = .{
...@@ -437,9 +459,15 @@ fn parseElf(parse: Parse, comptime is_64: bool, comptime endian: builtin.Endian)...@@ -437,9 +459,15 @@ fn parseElf(parse: Parse, comptime is_64: bool, comptime endian: builtin.Endian)
437 const dynstr = elf_bytes[dynstr_offset..];459 const dynstr = elf_bytes[dynstr_offset..];
438460
439 // Sort the list by address, ascending.461 // Sort the list by address, ascending.
440 mem.sort(Sym, @alignCast(8, dyn_syms), {}, S.symbolAddrLessThan);462 // We need a copy to fix alignment.
463 const copied_dyn_syms = copy: {
464 const ptr = try arena.alloc(Sym, dyn_syms.len);
465 @memcpy(ptr, dyn_syms);
466 break :copy ptr;
467 };
468 mem.sort(Sym, copied_dyn_syms, {}, S.symbolAddrLessThan);
441469
442 for (dyn_syms) |sym| {470 for (copied_dyn_syms) |sym| {
443 const this_section = s(sym.st_shndx);471 const this_section = s(sym.st_shndx);
444 const name = try arena.dupe(u8, mem.sliceTo(dynstr[s(sym.st_name)..], 0));472 const name = try arena.dupe(u8, mem.sliceTo(dynstr[s(sym.st_name)..], 0));
445 const ty = @truncate(u4, sym.st_info);473 const ty = @truncate(u4, sym.st_info);
...@@ -555,19 +583,36 @@ fn archIndex(arch: std.Target.Cpu.Arch) u8 {...@@ -555,19 +583,36 @@ fn archIndex(arch: std.Target.Cpu.Arch) u8 {
555 // zig fmt: off583 // zig fmt: off
556 .riscv64 => 0,584 .riscv64 => 0,
557 .mips => 1,585 .mips => 1,
558 .x86 => 2,586 .mips64 => 2,
559 .x86_64 => 3,587 .x86 => 3,
560 .powerpc => 4,588 .x86_64 => 4,
561 .powerpc64 => 5,589 .powerpc => 5,
562 .aarch64 => 6,590 .powerpc64 => 6,
591 .aarch64 => 7,
592 else => unreachable,
593 // zig fmt: on
594 };
595}
596
597fn archMuslName(arch: std.Target.Cpu.Arch) []const u8 {
598 return switch (arch) {
599 // zig fmt: off
600 .riscv64 => "riscv64",
601 .mips => "mips",
602 .mips64 => "mips64",
603 .x86 => "i386",
604 .x86_64 => "x86_64",
605 .powerpc => "powerpc",
606 .powerpc64 => "powerpc64",
607 .aarch64 => "aarch64",
563 else => unreachable,608 else => unreachable,
564 // zig fmt: on609 // zig fmt: on
565 };610 };
566}611}
567612
568fn archSetName(arch_set: [arches.len]bool) []const u8 {613fn archSetName(arch_set: [arches.len]bool) []const u8 {
569 for (arches, 0..) |arch, i| {614 for (arches, arch_set) |arch, set_item| {
570 if (arch_set[i]) {615 if (set_item) {
571 return @tagName(arch);616 return @tagName(arch);
572 }617 }
573 }618 }
...@@ -913,4 +958,162 @@ const blacklisted_symbols = [_][]const u8{...@@ -913,4 +958,162 @@ const blacklisted_symbols = [_][]const u8{
913 "sinf128",958 "sinf128",
914 "sqrtf128",959 "sqrtf128",
915 "truncf128",960 "truncf128",
961 "__aarch64_cas16_acq",
962 "__aarch64_cas16_acq_rel",
963 "__aarch64_cas16_rel",
964 "__aarch64_cas16_relax",
965 "__aarch64_cas1_acq",
966 "__aarch64_cas1_acq_rel",
967 "__aarch64_cas1_rel",
968 "__aarch64_cas1_relax",
969 "__aarch64_cas2_acq",
970 "__aarch64_cas2_acq_rel",
971 "__aarch64_cas2_rel",
972 "__aarch64_cas2_relax",
973 "__aarch64_cas4_acq",
974 "__aarch64_cas4_acq_rel",
975 "__aarch64_cas4_rel",
976 "__aarch64_cas4_relax",
977 "__aarch64_cas8_acq",
978 "__aarch64_cas8_acq_rel",
979 "__aarch64_cas8_rel",
980 "__aarch64_cas8_relax",
981 "__aarch64_ldadd1_acq",
982 "__aarch64_ldadd1_acq_rel",
983 "__aarch64_ldadd1_rel",
984 "__aarch64_ldadd1_relax",
985 "__aarch64_ldadd2_acq",
986 "__aarch64_ldadd2_acq_rel",
987 "__aarch64_ldadd2_rel",
988 "__aarch64_ldadd2_relax",
989 "__aarch64_ldadd4_acq",
990 "__aarch64_ldadd4_acq_rel",
991 "__aarch64_ldadd4_rel",
992 "__aarch64_ldadd4_relax",
993 "__aarch64_ldadd8_acq",
994 "__aarch64_ldadd8_acq_rel",
995 "__aarch64_ldadd8_rel",
996 "__aarch64_ldadd8_relax",
997 "__aarch64_ldclr1_acq",
998 "__aarch64_ldclr1_acq_rel",
999 "__aarch64_ldclr1_rel",
1000 "__aarch64_ldclr1_relax",
1001 "__aarch64_ldclr2_acq",
1002 "__aarch64_ldclr2_acq_rel",
1003 "__aarch64_ldclr2_rel",
1004 "__aarch64_ldclr2_relax",
1005 "__aarch64_ldclr4_acq",
1006 "__aarch64_ldclr4_acq_rel",
1007 "__aarch64_ldclr4_rel",
1008 "__aarch64_ldclr4_relax",
1009 "__aarch64_ldclr8_acq",
1010 "__aarch64_ldclr8_acq_rel",
1011 "__aarch64_ldclr8_rel",
1012 "__aarch64_ldclr8_relax",
1013 "__aarch64_ldeor1_acq",
1014 "__aarch64_ldeor1_acq_rel",
1015 "__aarch64_ldeor1_rel",
1016 "__aarch64_ldeor1_relax",
1017 "__aarch64_ldeor2_acq",
1018 "__aarch64_ldeor2_acq_rel",
1019 "__aarch64_ldeor2_rel",
1020 "__aarch64_ldeor2_relax",
1021 "__aarch64_ldeor4_acq",
1022 "__aarch64_ldeor4_acq_rel",
1023 "__aarch64_ldeor4_rel",
1024 "__aarch64_ldeor4_relax",
1025 "__aarch64_ldeor8_acq",
1026 "__aarch64_ldeor8_acq_rel",
1027 "__aarch64_ldeor8_rel",
1028 "__aarch64_ldeor8_relax",
1029 "__aarch64_ldset1_acq",
1030 "__aarch64_ldset1_acq_rel",
1031 "__aarch64_ldset1_rel",
1032 "__aarch64_ldset1_relax",
1033 "__aarch64_ldset2_acq",
1034 "__aarch64_ldset2_acq_rel",
1035 "__aarch64_ldset2_rel",
1036 "__aarch64_ldset2_relax",
1037 "__aarch64_ldset4_acq",
1038 "__aarch64_ldset4_acq_rel",
1039 "__aarch64_ldset4_rel",
1040 "__aarch64_ldset4_relax",
1041 "__aarch64_ldset8_acq",
1042 "__aarch64_ldset8_acq_rel",
1043 "__aarch64_ldset8_rel",
1044 "__aarch64_ldset8_relax",
1045 "__aarch64_swp1_acq",
1046 "__aarch64_swp1_acq_rel",
1047 "__aarch64_swp1_rel",
1048 "__aarch64_swp1_relax",
1049 "__aarch64_swp2_acq",
1050 "__aarch64_swp2_acq_rel",
1051 "__aarch64_swp2_rel",
1052 "__aarch64_swp2_relax",
1053 "__aarch64_swp4_acq",
1054 "__aarch64_swp4_acq_rel",
1055 "__aarch64_swp4_rel",
1056 "__aarch64_swp4_relax",
1057 "__aarch64_swp8_acq",
1058 "__aarch64_swp8_acq_rel",
1059 "__aarch64_swp8_rel",
1060 "__aarch64_swp8_relax",
1061 "__addhf3",
1062 "__atomic_compare_exchange_16",
1063 "__atomic_exchange_16",
1064 "__atomic_fetch_add_16",
1065 "__atomic_fetch_and_16",
1066 "__atomic_fetch_nand_16",
1067 "__atomic_fetch_or_16",
1068 "__atomic_fetch_sub_16",
1069 "__atomic_fetch_umax_1",
1070 "__atomic_fetch_umax_16",
1071 "__atomic_fetch_umax_2",
1072 "__atomic_fetch_umax_4",
1073 "__atomic_fetch_umax_8",
1074 "__atomic_fetch_umin_1",
1075 "__atomic_fetch_umin_16",
1076 "__atomic_fetch_umin_2",
1077 "__atomic_fetch_umin_4",
1078 "__atomic_fetch_umin_8",
1079 "__atomic_fetch_xor_16",
1080 "__atomic_load_16",
1081 "__atomic_store_16",
1082 "__cmphf2",
1083 "__cmpxf2",
1084 "__divdc3",
1085 "__divhc3",
1086 "__divhf3",
1087 "__divkc3",
1088 "__divsc3",
1089 "__divtc3",
1090 "__divxc3",
1091 "__eqhf2",
1092 "__extendhfdf2",
1093 "__fixhfdi",
1094 "__fixhfsi",
1095 "__fixhfti",
1096 "__fixunshfdi",
1097 "__fixunshfsi",
1098 "__fixunshfti",
1099 "__floatdihf",
1100 "__floatsihf",
1101 "__floattihf",
1102 "__floatundihf",
1103 "__floatunsihf",
1104 "__floatuntihf",
1105 "__gehf2",
1106 "__gthf2",
1107 "__lehf2",
1108 "__lthf2",
1109 "__mulhc3",
1110 "__mulhf3",
1111 "__neghf2",
1112 "__negkf2",
1113 "__negtf2",
1114 "__negxf2",
1115 "__nehf2",
1116 "__subhf3",
1117 "__unordhf2",
1118 "__unordxf2",
916};1119};