--- /srv/rebuilderd/tmp/rebuilderdgZLZaF/inputs/libfftw3-mpi-dev_3.3.10-2+b1_armhf.deb +++ /srv/rebuilderd/tmp/rebuilderdgZLZaF/out/libfftw3-mpi-dev_3.3.10-2+b1_armhf.deb ├── file list │ @@ -1,3 +1,3 @@ │ -rw-r--r-- 0 0 0 4 2024-11-29 16:21:01.000000 debian-binary │ --rw-r--r-- 0 0 0 1032 2024-11-29 16:21:01.000000 control.tar.xz │ --rw-r--r-- 0 0 0 50924 2024-11-29 16:21:01.000000 data.tar.xz │ +-rw-r--r-- 0 0 0 1028 2024-11-29 16:21:01.000000 control.tar.xz │ +-rw-r--r-- 0 0 0 51152 2024-11-29 16:21:01.000000 data.tar.xz ├── control.tar.xz │ ├── control.tar │ │ ├── ./control │ │ │ @@ -1,13 +1,13 @@ │ │ │ Package: libfftw3-mpi-dev │ │ │ Source: fftw3 (3.3.10-2) │ │ │ Version: 3.3.10-2+b1 │ │ │ Architecture: armhf │ │ │ Maintainer: Debian Science Maintainers │ │ │ -Installed-Size: 314 │ │ │ +Installed-Size: 325 │ │ │ Depends: libfftw3-mpi3 (= 3.3.10-2+b1) │ │ │ Suggests: libfftw3-doc │ │ │ Section: libdevel │ │ │ Priority: optional │ │ │ Multi-Arch: same │ │ │ Homepage: https://fftw.org │ │ │ Description: MPI Library for computing Fast Fourier Transforms - development │ │ ├── ./md5sums │ │ │ ├── ./md5sums │ │ │ │┄ Files differ ├── data.tar.xz │ ├── data.tar │ │ ├── file list │ │ │ @@ -2,16 +2,16 @@ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-11-29 16:21:01.000000 ./usr/ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-11-29 16:21:01.000000 ./usr/include/ │ │ │ -rw-r--r-- 0 root (0) root (0) 36969 2024-11-29 16:21:01.000000 ./usr/include/fftw3-mpi.f03 │ │ │ -rw-r--r-- 0 root (0) root (0) 9624 2024-11-29 16:21:01.000000 ./usr/include/fftw3-mpi.h │ │ │ -rw-r--r-- 0 root (0) root (0) 18678 2024-11-29 16:21:01.000000 ./usr/include/fftw3l-mpi.f03 │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-11-29 16:21:01.000000 ./usr/lib/ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-11-29 16:21:01.000000 ./usr/lib/arm-linux-gnueabihf/ │ │ │ --rw-r--r-- 0 root (0) root (0) 109588 2024-11-29 16:21:01.000000 ./usr/lib/arm-linux-gnueabihf/libfftw3_mpi.a │ │ │ --rw-r--r-- 0 root (0) root (0) 110216 2024-11-29 16:21:01.000000 ./usr/lib/arm-linux-gnueabihf/libfftw3f_mpi.a │ │ │ +-rw-r--r-- 0 root (0) root (0) 115324 2024-11-29 16:21:01.000000 ./usr/lib/arm-linux-gnueabihf/libfftw3_mpi.a │ │ │ +-rw-r--r-- 0 root (0) root (0) 115980 2024-11-29 16:21:01.000000 ./usr/lib/arm-linux-gnueabihf/libfftw3f_mpi.a │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-11-29 16:21:01.000000 ./usr/share/ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-11-29 16:21:01.000000 ./usr/share/doc/ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-11-29 16:21:01.000000 ./usr/share/doc/libfftw3-mpi-dev/ │ │ │ -rw-r--r-- 0 root (0) root (0) 10046 2021-02-25 22:52:19.000000 ./usr/share/doc/libfftw3-mpi-dev/NEWS.gz │ │ │ -rw-r--r-- 0 root (0) root (0) 2122 2020-12-10 12:02:44.000000 ./usr/share/doc/libfftw3-mpi-dev/README │ │ │ -rw-r--r-- 0 root (0) root (0) 2940 2024-10-26 11:57:20.000000 ./usr/share/doc/libfftw3-mpi-dev/README.Debian │ │ │ -rw-r--r-- 0 root (0) root (0) 224 2024-11-29 16:21:01.000000 ./usr/share/doc/libfftw3-mpi-dev/changelog.Debian.armhf.gz │ │ ├── ./usr/lib/arm-linux-gnueabihf/libfftw3_mpi.a │ │ │ ├── nm -s {} │ │ │ │ @@ -134,112 +134,112 @@ │ │ │ │ 00000008 r .LC1 │ │ │ │ U MPI_Allreduce │ │ │ │ U MPI_Bcast │ │ │ │ U MPI_Comm_rank │ │ │ │ U MPI_Comm_size │ │ │ │ U __aeabi_idiv │ │ │ │ 00000000 t bogosity_hook │ │ │ │ -00000148 t cost_hook │ │ │ │ -00000bf4 t default_sz │ │ │ │ -00000248 t default_sz.constprop.0 │ │ │ │ -00000654 t default_sz.constprop.1 │ │ │ │ -000009d8 t default_sz.constprop.2 │ │ │ │ +0000017c t cost_hook │ │ │ │ +00000dbc t default_sz │ │ │ │ +000002a8 t default_sz.constprop.0 │ │ │ │ +00000748 t default_sz.constprop.1 │ │ │ │ +00000b50 t default_sz.constprop.2 │ │ │ │ U fftw_assertion_failed │ │ │ │ U fftw_cleanup │ │ │ │ U fftw_execute_r2r │ │ │ │ U fftw_ifree │ │ │ │ U fftw_ifree0 │ │ │ │ U fftw_imax │ │ │ │ U fftw_is_prime │ │ │ │ U fftw_malloc_plain │ │ │ │ U fftw_map_r2r_kind │ │ │ │ U fftw_mkapiplan │ │ │ │ U fftw_mpi_any_true │ │ │ │ U fftw_mpi_block │ │ │ │ U fftw_mpi_block_coords │ │ │ │ U fftw_mpi_choose_radix │ │ │ │ -00001604 T fftw_mpi_cleanup │ │ │ │ +00001960 T fftw_mpi_cleanup │ │ │ │ U fftw_mpi_conf_standard │ │ │ │ U fftw_mpi_default_block │ │ │ │ U fftw_mpi_dtensor_canonical │ │ │ │ U fftw_mpi_dtensor_destroy │ │ │ │ -00002854 T fftw_mpi_execute_dft │ │ │ │ -0000285c T fftw_mpi_execute_dft_c2r │ │ │ │ -00002858 T fftw_mpi_execute_dft_r2c │ │ │ │ -00002860 T fftw_mpi_execute_r2r │ │ │ │ -000015bc T fftw_mpi_init │ │ │ │ +00002ebc T fftw_mpi_execute_dft │ │ │ │ +00002ec4 T fftw_mpi_execute_dft_c2r │ │ │ │ +00002ec0 T fftw_mpi_execute_dft_r2c │ │ │ │ +00002ec8 T fftw_mpi_execute_r2r │ │ │ │ +00001914 T fftw_mpi_init │ │ │ │ U fftw_mpi_is_block1d │ │ │ │ -000016f8 T fftw_mpi_local_size │ │ │ │ -00001764 T fftw_mpi_local_size_1d │ │ │ │ -000017b8 T fftw_mpi_local_size_2d │ │ │ │ -00001794 T fftw_mpi_local_size_2d_transposed │ │ │ │ -00001800 T fftw_mpi_local_size_3d │ │ │ │ -000017d8 T fftw_mpi_local_size_3d_transposed │ │ │ │ -00001618 T fftw_mpi_local_size_guru │ │ │ │ -00000e14 t fftw_mpi_local_size_guru.part.0 │ │ │ │ -00000a80 t fftw_mpi_local_size_guru.part.0.constprop.0 │ │ │ │ -0000167c T fftw_mpi_local_size_many │ │ │ │ -00001738 T fftw_mpi_local_size_many_1d │ │ │ │ -00001644 T fftw_mpi_local_size_many_transposed │ │ │ │ -00001178 t fftw_mpi_local_size_many_transposed.part.0 │ │ │ │ -000003f0 t fftw_mpi_local_size_many_transposed.part.0.constprop.0 │ │ │ │ -00000770 t fftw_mpi_local_size_many_transposed.part.0.constprop.1 │ │ │ │ -000016bc T fftw_mpi_local_size_transposed │ │ │ │ +00001ac0 T fftw_mpi_local_size │ │ │ │ +00001b4c T fftw_mpi_local_size_1d │ │ │ │ +00001ba8 T fftw_mpi_local_size_2d │ │ │ │ +00001b80 T fftw_mpi_local_size_2d_transposed │ │ │ │ +00001bf8 T fftw_mpi_local_size_3d │ │ │ │ +00001bcc T fftw_mpi_local_size_3d_transposed │ │ │ │ +00001978 T fftw_mpi_local_size_guru │ │ │ │ +00001040 t fftw_mpi_local_size_guru.part.0 │ │ │ │ +00000c20 t fftw_mpi_local_size_guru.part.0.constprop.0 │ │ │ │ +00001a24 T fftw_mpi_local_size_many │ │ │ │ +00001b1c T fftw_mpi_local_size_many_1d │ │ │ │ +000019c0 T fftw_mpi_local_size_many_transposed │ │ │ │ +00001418 t fftw_mpi_local_size_many_transposed.part.0 │ │ │ │ +0000047c t fftw_mpi_local_size_many_transposed.part.0.constprop.0 │ │ │ │ +0000088c t fftw_mpi_local_size_many_transposed.part.0.constprop.1 │ │ │ │ +00001a7c T fftw_mpi_local_size_transposed │ │ │ │ U fftw_mpi_mkdtensor │ │ │ │ U fftw_mpi_mkproblem_dft_d │ │ │ │ U fftw_mpi_mkproblem_rdft2_d │ │ │ │ U fftw_mpi_mkproblem_rdft_d │ │ │ │ U fftw_mpi_mkproblem_transpose │ │ │ │ U fftw_mpi_num_blocks │ │ │ │ U fftw_mpi_num_blocks_total │ │ │ │ -00001b88 T fftw_mpi_plan_dft │ │ │ │ -00001c20 T fftw_mpi_plan_dft_1d │ │ │ │ -00001d14 T fftw_mpi_plan_dft_2d │ │ │ │ -00001e34 T fftw_mpi_plan_dft_3d │ │ │ │ -000026e0 T fftw_mpi_plan_dft_c2r │ │ │ │ -00002778 T fftw_mpi_plan_dft_c2r_2d │ │ │ │ -000027e4 T fftw_mpi_plan_dft_c2r_3d │ │ │ │ -00002574 T fftw_mpi_plan_dft_r2c │ │ │ │ -0000260c T fftw_mpi_plan_dft_r2c_2d │ │ │ │ -00002674 T fftw_mpi_plan_dft_r2c_3d │ │ │ │ -000019f8 T fftw_mpi_plan_guru_dft │ │ │ │ -00001f74 T fftw_mpi_plan_guru_r2r │ │ │ │ -00001af0 T fftw_mpi_plan_many_dft │ │ │ │ -000024dc T fftw_mpi_plan_many_dft_c2r │ │ │ │ -00002444 T fftw_mpi_plan_many_dft_r2c │ │ │ │ -00002080 T fftw_mpi_plan_many_r2r │ │ │ │ -00001828 T fftw_mpi_plan_many_transpose │ │ │ │ -00002118 T fftw_mpi_plan_r2r │ │ │ │ -000021b0 T fftw_mpi_plan_r2r_2d │ │ │ │ -000022e8 T fftw_mpi_plan_r2r_3d │ │ │ │ -00001928 T fftw_mpi_plan_transpose │ │ │ │ +00001ff0 T fftw_mpi_plan_dft │ │ │ │ +000020ac T fftw_mpi_plan_dft_1d │ │ │ │ +000021bc T fftw_mpi_plan_dft_2d │ │ │ │ +000022fc T fftw_mpi_plan_dft_3d │ │ │ │ +00002cec T fftw_mpi_plan_dft_c2r │ │ │ │ +00002da8 T fftw_mpi_plan_dft_c2r_2d │ │ │ │ +00002e30 T fftw_mpi_plan_dft_c2r_3d │ │ │ │ +00002b28 T fftw_mpi_plan_dft_r2c │ │ │ │ +00002be4 T fftw_mpi_plan_dft_r2c_2d │ │ │ │ +00002c64 T fftw_mpi_plan_dft_r2c_3d │ │ │ │ +00001e2c T fftw_mpi_plan_guru_dft │ │ │ │ +00002458 T fftw_mpi_plan_guru_r2r │ │ │ │ +00001f40 T fftw_mpi_plan_many_dft │ │ │ │ +00002a74 T fftw_mpi_plan_many_dft_c2r │ │ │ │ +000029c0 T fftw_mpi_plan_many_dft_r2c │ │ │ │ +00002580 T fftw_mpi_plan_many_r2r │ │ │ │ +00001c20 T fftw_mpi_plan_many_transpose │ │ │ │ +00002630 T fftw_mpi_plan_r2r │ │ │ │ +000026ec T fftw_mpi_plan_r2r_2d │ │ │ │ +00002844 T fftw_mpi_plan_r2r_3d │ │ │ │ +00001d3c T fftw_mpi_plan_transpose │ │ │ │ U fftw_the_planner │ │ │ │ -000001b4 t local_size │ │ │ │ +000001f0 t local_size │ │ │ │ 00000000 b mpi_inited │ │ │ │ -00000040 t nowisdom_hook │ │ │ │ -00001490 t plan_guru_rdft2 │ │ │ │ -0000128c t plan_guru_rdft2.constprop.0 │ │ │ │ -00001398 t plan_guru_rdft2.constprop.1 │ │ │ │ -00000070 t wisdom_ok_hook │ │ │ │ +00000048 t nowisdom_hook │ │ │ │ +000017b8 t plan_guru_rdft2 │ │ │ │ +00001558 t plan_guru_rdft2.constprop.0 │ │ │ │ +00001690 t plan_guru_rdft2.constprop.1 │ │ │ │ +0000007c t wisdom_ok_hook │ │ │ │ │ │ │ │ block.o: │ │ │ │ U MPI_Comm_size │ │ │ │ U __aeabi_idiv │ │ │ │ U __aeabi_idivmod │ │ │ │ -00000040 T fftw_mpi_block │ │ │ │ -000000f4 T fftw_mpi_block_coords │ │ │ │ -00000034 T fftw_mpi_default_block │ │ │ │ -000000a0 T fftw_mpi_idle_process │ │ │ │ -000002e4 T fftw_mpi_is_block1d │ │ │ │ -0000029c T fftw_mpi_is_local │ │ │ │ -00000248 T fftw_mpi_is_local_after │ │ │ │ +0000005c T fftw_mpi_block │ │ │ │ +0000015c T fftw_mpi_block_coords │ │ │ │ +0000004c T fftw_mpi_default_block │ │ │ │ +000000e0 T fftw_mpi_idle_process │ │ │ │ +000003f4 T fftw_mpi_is_block1d │ │ │ │ +00000380 T fftw_mpi_is_local │ │ │ │ +00000304 T fftw_mpi_is_local_after │ │ │ │ 00000000 T fftw_mpi_num_blocks │ │ │ │ -0000000c T fftw_mpi_num_blocks_ok │ │ │ │ -00000054 T fftw_mpi_num_blocks_total │ │ │ │ -00000138 T fftw_mpi_total_block │ │ │ │ +00000010 T fftw_mpi_num_blocks_ok │ │ │ │ +00000074 T fftw_mpi_num_blocks_total │ │ │ │ +000001bc T fftw_mpi_total_block │ │ │ │ │ │ │ │ choose-radix.o: │ │ │ │ U __aeabi_idiv │ │ │ │ U __aeabi_idivmod │ │ │ │ U fftw_isqrt │ │ │ │ 00000000 T fftw_mpi_choose_radix │ │ │ │ U fftw_mpi_default_block │ │ │ │ @@ -271,28 +271,28 @@ │ │ │ │ 0000000c r .LC3 │ │ │ │ 0000001c r .LC4 │ │ │ │ 00000020 r .LC5 │ │ │ │ U fftw_ifree │ │ │ │ U fftw_malloc_plain │ │ │ │ U fftw_md5INT │ │ │ │ U fftw_md5int │ │ │ │ -000000bc T fftw_mpi_dtensor_canonical │ │ │ │ -00000070 T fftw_mpi_dtensor_copy │ │ │ │ -00000028 T fftw_mpi_dtensor_destroy │ │ │ │ -0000002c T fftw_mpi_dtensor_md5 │ │ │ │ -00000204 T fftw_mpi_dtensor_print │ │ │ │ -000001c8 T fftw_mpi_dtensor_validp │ │ │ │ +00000110 T fftw_mpi_dtensor_canonical │ │ │ │ +000000a0 T fftw_mpi_dtensor_copy │ │ │ │ +0000003c T fftw_mpi_dtensor_destroy │ │ │ │ +00000040 T fftw_mpi_dtensor_md5 │ │ │ │ +000002a8 T fftw_mpi_dtensor_print │ │ │ │ +00000260 T fftw_mpi_dtensor_validp │ │ │ │ 00000000 T fftw_mpi_mkdtensor │ │ │ │ U fftw_mpi_num_blocks │ │ │ │ U memmove │ │ │ │ │ │ │ │ rearrange.o: │ │ │ │ U __aeabi_idivmod │ │ │ │ 00000000 T fftw_mpi_rearrange_applicable │ │ │ │ -000000c8 T fftw_mpi_rearrange_ny │ │ │ │ +000000f0 T fftw_mpi_rearrange_ny │ │ │ │ │ │ │ │ wisdom-api.o: │ │ │ │ U MPI_Abort │ │ │ │ U MPI_Bcast │ │ │ │ U MPI_Comm_dup │ │ │ │ U MPI_Comm_free │ │ │ │ U MPI_Comm_rank │ │ │ │ @@ -301,205 +301,205 @@ │ │ │ │ U MPI_Recv │ │ │ │ U MPI_Send │ │ │ │ U fftw_export_wisdom_to_string │ │ │ │ U fftw_free │ │ │ │ U fftw_ifree │ │ │ │ U fftw_import_wisdom_from_string │ │ │ │ U fftw_malloc_plain │ │ │ │ -0000010c T fftw_mpi_broadcast_wisdom │ │ │ │ +00000124 T fftw_mpi_broadcast_wisdom │ │ │ │ 00000000 T fftw_mpi_gather_wisdom │ │ │ │ U free │ │ │ │ U strlen │ │ │ │ │ │ │ │ f03-wrap.o: │ │ │ │ U MPI_Comm_f2c │ │ │ │ U fftw_mpi_broadcast_wisdom │ │ │ │ -00000598 T fftw_mpi_broadcast_wisdom_f03 │ │ │ │ +000008b8 T fftw_mpi_broadcast_wisdom_f03 │ │ │ │ U fftw_mpi_gather_wisdom │ │ │ │ -00000588 T fftw_mpi_gather_wisdom_f03 │ │ │ │ +000008a4 T fftw_mpi_gather_wisdom_f03 │ │ │ │ U fftw_mpi_local_size │ │ │ │ U fftw_mpi_local_size_1d │ │ │ │ -000000fc T fftw_mpi_local_size_1d_f03 │ │ │ │ +00000190 T fftw_mpi_local_size_1d_f03 │ │ │ │ U fftw_mpi_local_size_2d │ │ │ │ -0000012c T fftw_mpi_local_size_2d_f03 │ │ │ │ +000001dc T fftw_mpi_local_size_2d_f03 │ │ │ │ U fftw_mpi_local_size_2d_transposed │ │ │ │ -00000150 T fftw_mpi_local_size_2d_transposed_f03 │ │ │ │ +00000214 T fftw_mpi_local_size_2d_transposed_f03 │ │ │ │ U fftw_mpi_local_size_3d │ │ │ │ -00000180 T fftw_mpi_local_size_3d_f03 │ │ │ │ +00000260 T fftw_mpi_local_size_3d_f03 │ │ │ │ U fftw_mpi_local_size_3d_transposed │ │ │ │ -000001a8 T fftw_mpi_local_size_3d_transposed_f03 │ │ │ │ -0000009c T fftw_mpi_local_size_f03 │ │ │ │ +0000029c T fftw_mpi_local_size_3d_transposed_f03 │ │ │ │ +000000f8 T fftw_mpi_local_size_f03 │ │ │ │ U fftw_mpi_local_size_many │ │ │ │ U fftw_mpi_local_size_many_1d │ │ │ │ -000000c0 T fftw_mpi_local_size_many_1d_f03 │ │ │ │ -00000040 T fftw_mpi_local_size_many_f03 │ │ │ │ +00000130 T fftw_mpi_local_size_many_1d_f03 │ │ │ │ +00000060 T fftw_mpi_local_size_many_f03 │ │ │ │ U fftw_mpi_local_size_many_transposed │ │ │ │ 00000000 T fftw_mpi_local_size_many_transposed_f03 │ │ │ │ U fftw_mpi_local_size_transposed │ │ │ │ -0000006c T fftw_mpi_local_size_transposed_f03 │ │ │ │ +000000ac T fftw_mpi_local_size_transposed_f03 │ │ │ │ U fftw_mpi_plan_dft │ │ │ │ U fftw_mpi_plan_dft_1d │ │ │ │ -000002a8 T fftw_mpi_plan_dft_1d_f03 │ │ │ │ +00000430 T fftw_mpi_plan_dft_1d_f03 │ │ │ │ U fftw_mpi_plan_dft_2d │ │ │ │ -000002d0 T fftw_mpi_plan_dft_2d_f03 │ │ │ │ +0000046c T fftw_mpi_plan_dft_2d_f03 │ │ │ │ U fftw_mpi_plan_dft_3d │ │ │ │ -000002fc T fftw_mpi_plan_dft_3d_f03 │ │ │ │ +000004b8 T fftw_mpi_plan_dft_3d_f03 │ │ │ │ U fftw_mpi_plan_dft_c2r │ │ │ │ U fftw_mpi_plan_dft_c2r_2d │ │ │ │ -00000530 T fftw_mpi_plan_dft_c2r_2d_f03 │ │ │ │ +0000081c T fftw_mpi_plan_dft_c2r_2d_f03 │ │ │ │ U fftw_mpi_plan_dft_c2r_3d │ │ │ │ -00000558 T fftw_mpi_plan_dft_c2r_3d_f03 │ │ │ │ -00000508 T fftw_mpi_plan_dft_c2r_f03 │ │ │ │ -0000027c T fftw_mpi_plan_dft_f03 │ │ │ │ +00000858 T fftw_mpi_plan_dft_c2r_3d_f03 │ │ │ │ +000007e0 T fftw_mpi_plan_dft_c2r_f03 │ │ │ │ +000003e4 T fftw_mpi_plan_dft_f03 │ │ │ │ U fftw_mpi_plan_dft_r2c │ │ │ │ U fftw_mpi_plan_dft_r2c_2d │ │ │ │ -00000474 T fftw_mpi_plan_dft_r2c_2d_f03 │ │ │ │ +000006f8 T fftw_mpi_plan_dft_r2c_2d_f03 │ │ │ │ U fftw_mpi_plan_dft_r2c_3d │ │ │ │ -0000049c T fftw_mpi_plan_dft_r2c_3d_f03 │ │ │ │ -0000044c T fftw_mpi_plan_dft_r2c_f03 │ │ │ │ +00000734 T fftw_mpi_plan_dft_r2c_3d_f03 │ │ │ │ +000006bc T fftw_mpi_plan_dft_r2c_f03 │ │ │ │ U fftw_mpi_plan_many_dft │ │ │ │ U fftw_mpi_plan_many_dft_c2r │ │ │ │ -000004cc T fftw_mpi_plan_many_dft_c2r_f03 │ │ │ │ -0000023c T fftw_mpi_plan_many_dft_f03 │ │ │ │ +00000780 T fftw_mpi_plan_many_dft_c2r_f03 │ │ │ │ +00000384 T fftw_mpi_plan_many_dft_f03 │ │ │ │ U fftw_mpi_plan_many_dft_r2c │ │ │ │ -00000410 T fftw_mpi_plan_many_dft_r2c_f03 │ │ │ │ +0000065c T fftw_mpi_plan_many_dft_r2c_f03 │ │ │ │ U fftw_mpi_plan_many_r2r │ │ │ │ -00000330 T fftw_mpi_plan_many_r2r_f03 │ │ │ │ +00000504 T fftw_mpi_plan_many_r2r_f03 │ │ │ │ U fftw_mpi_plan_many_transpose │ │ │ │ -000001d8 T fftw_mpi_plan_many_transpose_f03 │ │ │ │ +000002e8 T fftw_mpi_plan_many_transpose_f03 │ │ │ │ U fftw_mpi_plan_r2r │ │ │ │ U fftw_mpi_plan_r2r_2d │ │ │ │ -0000039c T fftw_mpi_plan_r2r_2d_f03 │ │ │ │ +000005b0 T fftw_mpi_plan_r2r_2d_f03 │ │ │ │ U fftw_mpi_plan_r2r_3d │ │ │ │ -000003d0 T fftw_mpi_plan_r2r_3d_f03 │ │ │ │ -00000370 T fftw_mpi_plan_r2r_f03 │ │ │ │ +000005fc T fftw_mpi_plan_r2r_3d_f03 │ │ │ │ +00000564 T fftw_mpi_plan_r2r_f03 │ │ │ │ U fftw_mpi_plan_transpose │ │ │ │ -00000214 T fftw_mpi_plan_transpose_f03 │ │ │ │ +00000348 T fftw_mpi_plan_transpose_f03 │ │ │ │ │ │ │ │ transpose-alltoall.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ 00000004 r .LC1 │ │ │ │ 00000008 r .LC2 │ │ │ │ U MPI_Alltoall │ │ │ │ U MPI_Alltoallv │ │ │ │ U MPI_Comm_dup │ │ │ │ U MPI_Comm_free │ │ │ │ U MPI_Comm_rank │ │ │ │ U MPI_Comm_size │ │ │ │ -000002f8 t apply │ │ │ │ -00000400 t awake │ │ │ │ -000003d0 t destroy │ │ │ │ +00000344 t apply │ │ │ │ +00000470 t awake │ │ │ │ +0000043c t destroy │ │ │ │ U fftw_ifree0 │ │ │ │ U fftw_malloc_plain │ │ │ │ U fftw_mkplan_f_d │ │ │ │ U fftw_mkplan_rdft │ │ │ │ U fftw_mkproblem_rdft_0_d │ │ │ │ U fftw_mksolver │ │ │ │ U fftw_mktensor_1d │ │ │ │ U fftw_mktensor_3d │ │ │ │ U fftw_mpi_any_true │ │ │ │ U fftw_mpi_block │ │ │ │ U fftw_mpi_mkplans_posttranspose │ │ │ │ -00000428 T fftw_mpi_transpose_alltoall_register │ │ │ │ +000004a4 T fftw_mpi_transpose_alltoall_register │ │ │ │ U fftw_mpi_transpose_solve │ │ │ │ U fftw_ops_add2 │ │ │ │ U fftw_ops_zero │ │ │ │ U fftw_plan_awake │ │ │ │ U fftw_plan_destroy_internal │ │ │ │ U fftw_solver_register │ │ │ │ -0000003c t mkplan │ │ │ │ +00000040 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ 00000000 t print │ │ │ │ 00000000 d sadt.1 │ │ │ │ │ │ │ │ transpose-pairwise.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ 00000004 r .LC1 │ │ │ │ 00000008 r .LC2 │ │ │ │ U MPI_Comm_dup │ │ │ │ U MPI_Comm_free │ │ │ │ U MPI_Comm_rank │ │ │ │ U MPI_Comm_size │ │ │ │ U MPI_Sendrecv │ │ │ │ U __aeabi_idivmod │ │ │ │ -00000320 t apply │ │ │ │ -00000408 t awake │ │ │ │ -000003d4 t destroy │ │ │ │ +00000394 t apply │ │ │ │ +000004a8 t awake │ │ │ │ +00000470 t destroy │ │ │ │ U fftw_ifree │ │ │ │ U fftw_ifree0 │ │ │ │ U fftw_imax │ │ │ │ U fftw_malloc_plain │ │ │ │ U fftw_mkplan_f_d │ │ │ │ U fftw_mkplan_rdft │ │ │ │ U fftw_mkproblem_rdft_0_d │ │ │ │ U fftw_mksolver │ │ │ │ U fftw_mktensor_2d │ │ │ │ U fftw_mktensor_3d │ │ │ │ U fftw_mktensor_4d │ │ │ │ U fftw_mpi_any_true │ │ │ │ U fftw_mpi_block │ │ │ │ -00000430 T fftw_mpi_mkplans_posttranspose │ │ │ │ +000004dc T fftw_mpi_mkplans_posttranspose │ │ │ │ U fftw_mpi_num_blocks │ │ │ │ -00000a44 T fftw_mpi_transpose_pairwise_register │ │ │ │ +00000b74 T fftw_mpi_transpose_pairwise_register │ │ │ │ U fftw_mpi_transpose_solve │ │ │ │ U fftw_ops_add2 │ │ │ │ U fftw_ops_zero │ │ │ │ U fftw_plan_awake │ │ │ │ U fftw_plan_destroy_internal │ │ │ │ U fftw_solver_register │ │ │ │ 00000040 t fill1_comm_sched │ │ │ │ U memcpy │ │ │ │ U memmove │ │ │ │ -00000658 t mkplan │ │ │ │ +00000730 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ 00000000 t print │ │ │ │ 00000000 d sadt.1 │ │ │ │ -0000017c t transpose_chunks │ │ │ │ +000001b8 t transpose_chunks │ │ │ │ │ │ │ │ transpose-recurse.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ 00000004 r .LC1 │ │ │ │ 00000008 r .LC2 │ │ │ │ 0000003c r .LC3 │ │ │ │ 00000044 r .LC4 │ │ │ │ U MPI_Comm_free │ │ │ │ U MPI_Comm_rank │ │ │ │ U MPI_Comm_size │ │ │ │ U MPI_Comm_split │ │ │ │ U __aeabi_idiv │ │ │ │ U __aeabi_idivmod │ │ │ │ 00000000 t apply │ │ │ │ -000000e4 t awake │ │ │ │ -000000c8 t destroy │ │ │ │ +0000011c t awake │ │ │ │ +000000fc t destroy │ │ │ │ U fftw_first_divisor │ │ │ │ U fftw_imax │ │ │ │ U fftw_isqrt │ │ │ │ U fftw_mkplan_d │ │ │ │ U fftw_mkplan_f_d │ │ │ │ U fftw_mkplan_rdft │ │ │ │ U fftw_mkproblem_rdft_0_d │ │ │ │ U fftw_mksolver │ │ │ │ U fftw_mktensor_3d │ │ │ │ U fftw_mktensor_4d │ │ │ │ U fftw_mktensor_5d │ │ │ │ U fftw_mpi_any_true │ │ │ │ U fftw_mpi_block │ │ │ │ U fftw_mpi_mkproblem_transpose │ │ │ │ -000005e4 T fftw_mpi_transpose_recurse_register │ │ │ │ +00000674 T fftw_mpi_transpose_recurse_register │ │ │ │ U fftw_mpi_transpose_solve │ │ │ │ U fftw_ops_add2 │ │ │ │ U fftw_plan_awake │ │ │ │ U fftw_plan_destroy_internal │ │ │ │ U fftw_solver_register │ │ │ │ U fftw_toobig │ │ │ │ -00000104 t mkplan │ │ │ │ +00000148 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -00000038 t print │ │ │ │ -00000084 t radix_first │ │ │ │ -000000a0 t radix_sqrt │ │ │ │ +00000048 t print │ │ │ │ +000000a0 t radix_first │ │ │ │ +000000c8 t radix_sqrt │ │ │ │ 00000000 d sadt.1 │ │ │ │ │ │ │ │ transpose-problem.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ 0000002c r .LC1 │ │ │ │ U MPI_Comm_dup │ │ │ │ U MPI_Comm_free │ │ │ │ @@ -509,20 +509,20 @@ │ │ │ │ U fftw_ialignment_of │ │ │ │ U fftw_ifree │ │ │ │ U fftw_md5INT │ │ │ │ U fftw_md5int │ │ │ │ U fftw_md5puts │ │ │ │ U fftw_mkproblem │ │ │ │ U fftw_mpi_block │ │ │ │ -00000110 T fftw_mpi_mkproblem_transpose │ │ │ │ -000000ac t hash │ │ │ │ +00000150 T fftw_mpi_mkproblem_transpose │ │ │ │ +000000d8 t hash │ │ │ │ U memset │ │ │ │ 00000000 d padt │ │ │ │ -00000014 t print │ │ │ │ -00000074 t zero │ │ │ │ +0000001c t print │ │ │ │ +00000090 t zero │ │ │ │ │ │ │ │ transpose-solve.o: │ │ │ │ 00000000 T fftw_mpi_transpose_solve │ │ │ │ │ │ │ │ dft-serial.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ U MPI_Comm_rank │ │ │ │ @@ -534,16 +534,16 @@ │ │ │ │ U fftw_mkplan_rdft │ │ │ │ U fftw_mkproblem_dft_d │ │ │ │ U fftw_mksolver │ │ │ │ U fftw_mktensor │ │ │ │ U fftw_mktensor_0d │ │ │ │ U fftw_mktensor_1d │ │ │ │ U fftw_mpi_any_true │ │ │ │ -000001a8 T fftw_mpi_dft_serial_applicable │ │ │ │ -000001d8 T fftw_mpi_dft_serial_register │ │ │ │ +000001d0 T fftw_mpi_dft_serial_applicable │ │ │ │ +00000208 T fftw_mpi_dft_serial_register │ │ │ │ U fftw_mpi_dft_solve │ │ │ │ U fftw_mpi_is_local │ │ │ │ U fftw_ops_cpy │ │ │ │ U fftw_plan_awake │ │ │ │ U fftw_plan_destroy_internal │ │ │ │ U fftw_solver_register │ │ │ │ 00000054 t mkplan │ │ │ │ @@ -554,151 +554,151 @@ │ │ │ │ dft-rank-geq2.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ 00000004 r .LC1 │ │ │ │ 00000008 r .LC2 │ │ │ │ U MPI_Comm_rank │ │ │ │ U MPI_Comm_size │ │ │ │ 00000000 t apply │ │ │ │ -00000344 t awake │ │ │ │ -00000084 t destroy │ │ │ │ +000003a4 t awake │ │ │ │ +0000009c t destroy │ │ │ │ U fftw_extract_reim │ │ │ │ U fftw_mkplan_d │ │ │ │ U fftw_mkplan_rdft │ │ │ │ U fftw_mkproblem_dft_d │ │ │ │ U fftw_mksolver │ │ │ │ U fftw_mktensor │ │ │ │ U fftw_mktensor_2d │ │ │ │ U fftw_mpi_any_true │ │ │ │ U fftw_mpi_block │ │ │ │ -0000035c T fftw_mpi_dft_rank_geq2_register │ │ │ │ +000003c8 T fftw_mpi_dft_rank_geq2_register │ │ │ │ U fftw_mpi_dft_serial_applicable │ │ │ │ U fftw_mpi_dft_solve │ │ │ │ U fftw_mpi_is_local_after │ │ │ │ U fftw_mpi_mkdtensor │ │ │ │ U fftw_mpi_mkproblem_dft_d │ │ │ │ U fftw_ops_add │ │ │ │ U fftw_plan_awake │ │ │ │ U fftw_plan_destroy_internal │ │ │ │ U fftw_solver_register │ │ │ │ U fftw_tensor_sz │ │ │ │ -00000098 t mkplan │ │ │ │ +000000b4 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -0000004c t print │ │ │ │ +00000064 t print │ │ │ │ 00000000 d sadt.1 │ │ │ │ │ │ │ │ dft-rank-geq2-transposed.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ 00000004 r .LC1 │ │ │ │ 00000008 r .LC2 │ │ │ │ U MPI_Comm_rank │ │ │ │ U MPI_Comm_size │ │ │ │ 00000000 t apply │ │ │ │ -00000410 t awake │ │ │ │ -00000098 t destroy │ │ │ │ +00000484 t awake │ │ │ │ +000000b4 t destroy │ │ │ │ U fftw_extract_reim │ │ │ │ U fftw_mkplan_d │ │ │ │ U fftw_mkplan_rdft │ │ │ │ U fftw_mkproblem_dft_d │ │ │ │ U fftw_mksolver │ │ │ │ U fftw_mktensor │ │ │ │ U fftw_mktensor_1d │ │ │ │ U fftw_mktensor_2d │ │ │ │ U fftw_mpi_any_true │ │ │ │ U fftw_mpi_block │ │ │ │ -00000430 T fftw_mpi_dft_rank_geq2_transposed_register │ │ │ │ +000004b0 T fftw_mpi_dft_rank_geq2_transposed_register │ │ │ │ U fftw_mpi_dft_serial_applicable │ │ │ │ U fftw_mpi_dft_solve │ │ │ │ U fftw_mpi_is_local_after │ │ │ │ U fftw_mpi_mkproblem_transpose │ │ │ │ U fftw_mpi_num_blocks │ │ │ │ U fftw_ops_add │ │ │ │ U fftw_ops_add2 │ │ │ │ U fftw_plan_awake │ │ │ │ U fftw_plan_destroy_internal │ │ │ │ U fftw_solver_register │ │ │ │ -000000b4 t mkplan │ │ │ │ +000000d4 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -0000005c t print │ │ │ │ +00000078 t print │ │ │ │ 00000000 d sadt.1 │ │ │ │ │ │ │ │ dft-rank1.o: │ │ │ │ 00000000 r .LC1 │ │ │ │ 00000008 r .LC2 │ │ │ │ 00000010 r .LC3 │ │ │ │ 00000014 r .LC4 │ │ │ │ 00000018 r .LC5 │ │ │ │ U MPI_Comm_rank │ │ │ │ U MPI_Comm_size │ │ │ │ U __aeabi_idiv │ │ │ │ 00000000 t apply_ddft_first │ │ │ │ -000005f8 t apply_ddft_last │ │ │ │ -000005bc t awake │ │ │ │ -000001b8 t destroy │ │ │ │ +000006b8 t apply_ddft_last │ │ │ │ +00000668 t awake │ │ │ │ +00000208 t destroy │ │ │ │ U fftw_extract_reim │ │ │ │ U fftw_mkplan_d │ │ │ │ U fftw_mkplan_rdft │ │ │ │ U fftw_mkproblem_dft_d │ │ │ │ U fftw_mksolver │ │ │ │ U fftw_mktensor_1d │ │ │ │ U fftw_mktriggen │ │ │ │ U fftw_mpi_any_true │ │ │ │ U fftw_mpi_block │ │ │ │ U fftw_mpi_choose_radix │ │ │ │ -00000734 T fftw_mpi_dft_rank1_register │ │ │ │ +00000824 T fftw_mpi_dft_rank1_register │ │ │ │ U fftw_mpi_dft_serial_applicable │ │ │ │ U fftw_mpi_dft_solve │ │ │ │ U fftw_mpi_mkdtensor │ │ │ │ U fftw_mpi_mkproblem_dft_d │ │ │ │ U fftw_mpi_mkproblem_transpose │ │ │ │ U fftw_ops_add │ │ │ │ U fftw_ops_add2 │ │ │ │ U fftw_plan_awake │ │ │ │ U fftw_plan_destroy_internal │ │ │ │ U fftw_solver_register │ │ │ │ U fftw_triggen_destroy │ │ │ │ -000001d4 t mkplan │ │ │ │ +00000228 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -0000014c t print │ │ │ │ +0000018c t print │ │ │ │ 00000000 d sadt.1 │ │ │ │ │ │ │ │ dft-rank1-bigvec.o: │ │ │ │ 00000000 r .LC1 │ │ │ │ 00000004 r .LC2 │ │ │ │ 00000008 r .LC3 │ │ │ │ U MPI_Comm_rank │ │ │ │ U MPI_Comm_size │ │ │ │ U __aeabi_idiv │ │ │ │ 00000000 t apply │ │ │ │ -00000318 t awake │ │ │ │ -0000009c t destroy │ │ │ │ +00000380 t awake │ │ │ │ +000000c0 t destroy │ │ │ │ U fftw_extract_reim │ │ │ │ U fftw_mkplan_d │ │ │ │ U fftw_mkplan_rdft │ │ │ │ U fftw_mkproblem_dft_d │ │ │ │ U fftw_mksolver │ │ │ │ U fftw_mktensor_1d │ │ │ │ U fftw_mktensor_2d │ │ │ │ U fftw_mpi_any_true │ │ │ │ U fftw_mpi_block │ │ │ │ U fftw_mpi_default_block │ │ │ │ -00000338 T fftw_mpi_dft_rank1_bigvec_register │ │ │ │ +000003ac T fftw_mpi_dft_rank1_bigvec_register │ │ │ │ U fftw_mpi_dft_serial_applicable │ │ │ │ U fftw_mpi_dft_solve │ │ │ │ U fftw_mpi_mkproblem_transpose │ │ │ │ U fftw_mpi_rearrange_applicable │ │ │ │ U fftw_mpi_rearrange_ny │ │ │ │ U fftw_ops_add │ │ │ │ U fftw_ops_add2 │ │ │ │ U fftw_plan_awake │ │ │ │ U fftw_plan_destroy_internal │ │ │ │ U fftw_solver_register │ │ │ │ U memcpy │ │ │ │ -000000b8 t mkplan │ │ │ │ +000000e0 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -00000044 t print │ │ │ │ +0000005c t print │ │ │ │ 00000000 d sadt.1 │ │ │ │ │ │ │ │ dft-problem.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ 00000014 r .LC1 │ │ │ │ 00000020 r .LC2 │ │ │ │ 00000028 r .LC3 │ │ │ │ @@ -713,22 +713,22 @@ │ │ │ │ U fftw_md5int │ │ │ │ U fftw_md5puts │ │ │ │ U fftw_mkproblem │ │ │ │ U fftw_mpi_dtensor_canonical │ │ │ │ U fftw_mpi_dtensor_destroy │ │ │ │ U fftw_mpi_dtensor_md5 │ │ │ │ U fftw_mpi_dtensor_print │ │ │ │ -00000120 T fftw_mpi_mkproblem_dft │ │ │ │ -000001a8 T fftw_mpi_mkproblem_dft_d │ │ │ │ +00000160 T fftw_mpi_mkproblem_dft │ │ │ │ +00000210 T fftw_mpi_mkproblem_dft_d │ │ │ │ U fftw_mpi_total_block │ │ │ │ -000000c4 t hash │ │ │ │ +000000f0 t hash │ │ │ │ U memset │ │ │ │ 00000000 d padt │ │ │ │ -0000001c t print │ │ │ │ -00000090 t zero │ │ │ │ +00000020 t print │ │ │ │ +000000ac t zero │ │ │ │ │ │ │ │ dft-solve.o: │ │ │ │ 00000000 T fftw_mpi_dft_solve │ │ │ │ │ │ │ │ rdft-serial.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ U MPI_Comm_rank │ │ │ │ @@ -742,16 +742,16 @@ │ │ │ │ U fftw_mkproblem_rdft_0_d │ │ │ │ U fftw_mkproblem_rdft_d │ │ │ │ U fftw_mksolver │ │ │ │ U fftw_mktensor │ │ │ │ U fftw_mktensor_1d │ │ │ │ U fftw_mpi_any_true │ │ │ │ U fftw_mpi_is_local │ │ │ │ -000001c0 T fftw_mpi_rdft_serial_applicable │ │ │ │ -000001f0 T fftw_mpi_rdft_serial_register │ │ │ │ +000001ec T fftw_mpi_rdft_serial_applicable │ │ │ │ +00000224 T fftw_mpi_rdft_serial_register │ │ │ │ U fftw_mpi_rdft_solve │ │ │ │ U fftw_ops_cpy │ │ │ │ U fftw_plan_awake │ │ │ │ U fftw_plan_destroy_internal │ │ │ │ U fftw_solver_register │ │ │ │ 0000002c t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ @@ -761,109 +761,109 @@ │ │ │ │ rdft-rank-geq2.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ 00000004 r .LC1 │ │ │ │ 00000008 r .LC2 │ │ │ │ U MPI_Comm_rank │ │ │ │ U MPI_Comm_size │ │ │ │ 00000000 t apply │ │ │ │ -000002f8 t awake │ │ │ │ -00000064 t destroy │ │ │ │ +0000034c t awake │ │ │ │ +00000074 t destroy │ │ │ │ U fftw_mkplan_d │ │ │ │ U fftw_mkplan_rdft │ │ │ │ U fftw_mkproblem_rdft_d │ │ │ │ U fftw_mksolver │ │ │ │ U fftw_mktensor │ │ │ │ U fftw_mktensor_2d │ │ │ │ U fftw_mpi_any_true │ │ │ │ U fftw_mpi_block │ │ │ │ U fftw_mpi_is_local_after │ │ │ │ U fftw_mpi_mkdtensor │ │ │ │ U fftw_mpi_mkproblem_rdft_d │ │ │ │ -00000310 T fftw_mpi_rdft_rank_geq2_register │ │ │ │ +00000370 T fftw_mpi_rdft_rank_geq2_register │ │ │ │ U fftw_mpi_rdft_serial_applicable │ │ │ │ U fftw_mpi_rdft_solve │ │ │ │ U fftw_ops_add │ │ │ │ U fftw_plan_awake │ │ │ │ U fftw_plan_destroy_internal │ │ │ │ U fftw_solver_register │ │ │ │ U fftw_tensor_sz │ │ │ │ -00000078 t mkplan │ │ │ │ +0000008c t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -0000002c t print │ │ │ │ +0000003c t print │ │ │ │ 00000000 d sadt.1 │ │ │ │ │ │ │ │ rdft-rank-geq2-transposed.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ 00000004 r .LC1 │ │ │ │ 00000008 r .LC2 │ │ │ │ U MPI_Comm_rank │ │ │ │ U MPI_Comm_size │ │ │ │ 00000000 t apply │ │ │ │ -00000398 t awake │ │ │ │ -00000070 t destroy │ │ │ │ +000003f4 t awake │ │ │ │ +00000084 t destroy │ │ │ │ U fftw_mkplan_d │ │ │ │ U fftw_mkplan_rdft │ │ │ │ U fftw_mkproblem_rdft_1_d │ │ │ │ U fftw_mkproblem_rdft_d │ │ │ │ U fftw_mksolver │ │ │ │ U fftw_mktensor │ │ │ │ U fftw_mktensor_1d │ │ │ │ U fftw_mktensor_2d │ │ │ │ U fftw_mpi_any_true │ │ │ │ U fftw_mpi_block │ │ │ │ U fftw_mpi_is_local_after │ │ │ │ U fftw_mpi_mkproblem_transpose │ │ │ │ U fftw_mpi_num_blocks │ │ │ │ -000003b8 T fftw_mpi_rdft_rank_geq2_transposed_register │ │ │ │ +00000420 T fftw_mpi_rdft_rank_geq2_transposed_register │ │ │ │ U fftw_mpi_rdft_serial_applicable │ │ │ │ U fftw_mpi_rdft_solve │ │ │ │ U fftw_ops_add │ │ │ │ U fftw_ops_add2 │ │ │ │ U fftw_plan_awake │ │ │ │ U fftw_plan_destroy_internal │ │ │ │ U fftw_solver_register │ │ │ │ -0000008c t mkplan │ │ │ │ +000000a4 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -00000034 t print │ │ │ │ +00000048 t print │ │ │ │ 00000000 d sadt.1 │ │ │ │ │ │ │ │ rdft-rank1-bigvec.o: │ │ │ │ 00000000 r .LC1 │ │ │ │ 00000004 r .LC2 │ │ │ │ 00000008 r .LC3 │ │ │ │ U MPI_Comm_rank │ │ │ │ U MPI_Comm_size │ │ │ │ U __aeabi_idiv │ │ │ │ 00000000 t apply │ │ │ │ -000002b4 t awake │ │ │ │ -00000088 t destroy │ │ │ │ +00000308 t awake │ │ │ │ +000000a0 t destroy │ │ │ │ U fftw_mkplan_d │ │ │ │ U fftw_mkplan_rdft │ │ │ │ U fftw_mkproblem_rdft_1_d │ │ │ │ U fftw_mksolver │ │ │ │ U fftw_mktensor_1d │ │ │ │ U fftw_mktensor_2d │ │ │ │ U fftw_mpi_any_true │ │ │ │ U fftw_mpi_block │ │ │ │ U fftw_mpi_default_block │ │ │ │ U fftw_mpi_mkproblem_transpose │ │ │ │ -000002d4 T fftw_mpi_rdft_rank1_bigvec_register │ │ │ │ +00000334 T fftw_mpi_rdft_rank1_bigvec_register │ │ │ │ U fftw_mpi_rdft_serial_applicable │ │ │ │ U fftw_mpi_rdft_solve │ │ │ │ U fftw_mpi_rearrange_applicable │ │ │ │ U fftw_mpi_rearrange_ny │ │ │ │ U fftw_ops_add │ │ │ │ U fftw_ops_add2 │ │ │ │ U fftw_plan_awake │ │ │ │ U fftw_plan_destroy_internal │ │ │ │ U fftw_solver_register │ │ │ │ U memcpy │ │ │ │ -000000a4 t mkplan │ │ │ │ +000000c0 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -00000030 t print │ │ │ │ +0000003c t print │ │ │ │ 00000000 d sadt.1 │ │ │ │ │ │ │ │ rdft-problem.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ 00000014 r .LC1 │ │ │ │ 00000018 r .LC2 │ │ │ │ 00000020 r .LC3 │ │ │ │ @@ -879,122 +879,122 @@ │ │ │ │ U fftw_md5int │ │ │ │ U fftw_md5puts │ │ │ │ U fftw_mkproblem │ │ │ │ U fftw_mpi_dtensor_canonical │ │ │ │ U fftw_mpi_dtensor_destroy │ │ │ │ U fftw_mpi_dtensor_md5 │ │ │ │ U fftw_mpi_dtensor_print │ │ │ │ -0000016c T fftw_mpi_mkproblem_rdft │ │ │ │ -0000027c T fftw_mpi_mkproblem_rdft_d │ │ │ │ +000001b0 T fftw_mpi_mkproblem_rdft │ │ │ │ +000002ec T fftw_mpi_mkproblem_rdft_d │ │ │ │ U fftw_mpi_total_block │ │ │ │ -000000f0 t hash │ │ │ │ +00000120 t hash │ │ │ │ U memset │ │ │ │ 00000000 d padt │ │ │ │ -0000001c t print │ │ │ │ -000000bc t zero │ │ │ │ +00000020 t print │ │ │ │ +000000dc t zero │ │ │ │ │ │ │ │ rdft-solve.o: │ │ │ │ 00000000 T fftw_mpi_rdft_solve │ │ │ │ │ │ │ │ rdft2-serial.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ U MPI_Comm_rank │ │ │ │ -0000001c t apply_c2r │ │ │ │ +00000020 t apply_c2r │ │ │ │ 00000000 t apply_r2c │ │ │ │ -00000058 t awake │ │ │ │ -00000050 t destroy │ │ │ │ +0000005c t awake │ │ │ │ +00000054 t destroy │ │ │ │ U fftw_mkplan_d │ │ │ │ U fftw_mkplan_rdft │ │ │ │ U fftw_mkproblem_rdft2_d │ │ │ │ U fftw_mksolver │ │ │ │ U fftw_mktensor │ │ │ │ U fftw_mktensor_0d │ │ │ │ U fftw_mktensor_1d │ │ │ │ U fftw_mpi_any_true │ │ │ │ U fftw_mpi_is_local │ │ │ │ -0000020c T fftw_mpi_rdft2_serial_applicable │ │ │ │ -0000023c T fftw_mpi_rdft2_serial_register │ │ │ │ +00000250 T fftw_mpi_rdft2_serial_applicable │ │ │ │ +00000288 T fftw_mpi_rdft2_serial_register │ │ │ │ U fftw_mpi_rdft2_solve │ │ │ │ U fftw_ops_cpy │ │ │ │ U fftw_plan_awake │ │ │ │ U fftw_plan_destroy_internal │ │ │ │ U fftw_solver_register │ │ │ │ -00000060 t mkplan │ │ │ │ +00000064 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -0000003c t print │ │ │ │ +00000040 t print │ │ │ │ 00000000 d sadt.1 │ │ │ │ │ │ │ │ rdft2-rank-geq2.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ 00000004 r .LC1 │ │ │ │ 00000008 r .LC2 │ │ │ │ U MPI_Comm_rank │ │ │ │ U MPI_Comm_size │ │ │ │ -00000040 t apply_c2r │ │ │ │ +00000054 t apply_c2r │ │ │ │ 00000000 t apply_r2c │ │ │ │ -000003e4 t awake │ │ │ │ -000000a0 t destroy │ │ │ │ +00000450 t awake │ │ │ │ +000000c4 t destroy │ │ │ │ U fftw_mkplan_d │ │ │ │ U fftw_mkplan_rdft │ │ │ │ U fftw_mkproblem_rdft2_d │ │ │ │ U fftw_mksolver │ │ │ │ U fftw_mktensor │ │ │ │ U fftw_mktensor_2d │ │ │ │ U fftw_mpi_any_true │ │ │ │ U fftw_mpi_block │ │ │ │ U fftw_mpi_is_local_after │ │ │ │ U fftw_mpi_mkdtensor │ │ │ │ U fftw_mpi_mkproblem_dft_d │ │ │ │ -000003fc T fftw_mpi_rdft2_rank_geq2_register │ │ │ │ +00000474 T fftw_mpi_rdft2_rank_geq2_register │ │ │ │ U fftw_mpi_rdft2_serial_applicable │ │ │ │ U fftw_mpi_rdft2_solve │ │ │ │ U fftw_ops_add │ │ │ │ U fftw_plan_awake │ │ │ │ U fftw_plan_destroy_internal │ │ │ │ U fftw_solver_register │ │ │ │ U fftw_tensor_sz │ │ │ │ -000000b4 t mkplan │ │ │ │ +000000dc t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -00000068 t print │ │ │ │ +0000008c t print │ │ │ │ 00000000 d sadt.1 │ │ │ │ │ │ │ │ rdft2-rank-geq2-transposed.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ 00000004 r .LC1 │ │ │ │ 00000008 r .LC2 │ │ │ │ U MPI_Comm_rank │ │ │ │ U MPI_Comm_size │ │ │ │ -00000054 t apply_c2r │ │ │ │ +00000064 t apply_c2r │ │ │ │ 00000000 t apply_r2c │ │ │ │ -000005ac t awake │ │ │ │ -000000e4 t destroy │ │ │ │ +00000654 t awake │ │ │ │ +00000108 t destroy │ │ │ │ U fftw_mkplan_d │ │ │ │ U fftw_mkplan_rdft │ │ │ │ U fftw_mkproblem_dft_d │ │ │ │ U fftw_mkproblem_rdft2_d │ │ │ │ U fftw_mksolver │ │ │ │ U fftw_mktensor │ │ │ │ U fftw_mktensor_1d │ │ │ │ U fftw_mktensor_2d │ │ │ │ U fftw_mpi_any_true │ │ │ │ U fftw_mpi_block │ │ │ │ U fftw_mpi_is_local_after │ │ │ │ U fftw_mpi_mkproblem_transpose │ │ │ │ U fftw_mpi_num_blocks │ │ │ │ -000005cc T fftw_mpi_rdft2_rank_geq2_transposed_register │ │ │ │ +00000680 T fftw_mpi_rdft2_rank_geq2_transposed_register │ │ │ │ U fftw_mpi_rdft2_serial_applicable │ │ │ │ U fftw_mpi_rdft2_solve │ │ │ │ U fftw_ops_add │ │ │ │ U fftw_ops_add2 │ │ │ │ U fftw_plan_awake │ │ │ │ U fftw_plan_destroy_internal │ │ │ │ U fftw_solver_register │ │ │ │ -00000100 t mkplan │ │ │ │ +00000128 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -000000a8 t print │ │ │ │ +000000cc t print │ │ │ │ 00000000 d sadt.1 │ │ │ │ │ │ │ │ rdft2-problem.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ 00000018 r .LC1 │ │ │ │ 00000024 r .LC2 │ │ │ │ 0000002c r .LC3 │ │ │ │ @@ -1010,18 +1010,18 @@ │ │ │ │ U fftw_md5puts │ │ │ │ U fftw_mkproblem │ │ │ │ U fftw_mpi_dtensor_canonical │ │ │ │ U fftw_mpi_dtensor_copy │ │ │ │ U fftw_mpi_dtensor_destroy │ │ │ │ U fftw_mpi_dtensor_md5 │ │ │ │ U fftw_mpi_dtensor_print │ │ │ │ -00000144 T fftw_mpi_mkproblem_rdft2 │ │ │ │ -00000198 T fftw_mpi_mkproblem_rdft2_d │ │ │ │ +0000018c T fftw_mpi_mkproblem_rdft2 │ │ │ │ +00000200 T fftw_mpi_mkproblem_rdft2_d │ │ │ │ U fftw_mpi_total_block │ │ │ │ -000000e8 t hash │ │ │ │ +0000011c t hash │ │ │ │ U memset │ │ │ │ 00000000 d padt │ │ │ │ -0000001c t print │ │ │ │ -00000090 t zero │ │ │ │ +00000020 t print │ │ │ │ +000000ac t zero │ │ │ │ │ │ │ │ rdft2-solve.o: │ │ │ │ 00000000 T fftw_mpi_rdft2_solve │ │ │ ├── file list │ │ │ │ @@ -1,34 +1,34 @@ │ │ │ │ ---------- 0 0 0 3778 1970-01-01 00:00:00.000000 / │ │ │ │ ---------- 0 0 0 0 1970-01-01 00:00:00.000000 // │ │ │ │ -?rw-r--r-- 0 0 0 736 1970-01-01 00:00:00.000000 any-true.o │ │ │ │ -?rw-r--r-- 0 0 0 18152 1970-01-01 00:00:00.000000 api.o │ │ │ │ -?rw-r--r-- 0 0 0 2152 1970-01-01 00:00:00.000000 block.o │ │ │ │ -?rw-r--r-- 0 0 0 980 1970-01-01 00:00:00.000000 choose-radix.o │ │ │ │ +?rw-r--r-- 0 0 0 740 1970-01-01 00:00:00.000000 any-true.o │ │ │ │ +?rw-r--r-- 0 0 0 19752 1970-01-01 00:00:00.000000 api.o │ │ │ │ +?rw-r--r-- 0 0 0 2468 1970-01-01 00:00:00.000000 block.o │ │ │ │ +?rw-r--r-- 0 0 0 1000 1970-01-01 00:00:00.000000 choose-radix.o │ │ │ │ ?rw-r--r-- 0 0 0 2668 1970-01-01 00:00:00.000000 conf.o │ │ │ │ -?rw-r--r-- 0 0 0 2188 1970-01-01 00:00:00.000000 dtensor.o │ │ │ │ -?rw-r--r-- 0 0 0 1100 1970-01-01 00:00:00.000000 rearrange.o │ │ │ │ -?rw-r--r-- 0 0 0 1896 1970-01-01 00:00:00.000000 wisdom-api.o │ │ │ │ -?rw-r--r-- 0 0 0 5240 1970-01-01 00:00:00.000000 f03-wrap.o │ │ │ │ -?rw-r--r-- 0 0 0 3732 1970-01-01 00:00:00.000000 transpose-alltoall.o │ │ │ │ -?rw-r--r-- 0 0 0 5820 1970-01-01 00:00:00.000000 transpose-pairwise.o │ │ │ │ -?rw-r--r-- 0 0 0 4640 1970-01-01 00:00:00.000000 transpose-recurse.o │ │ │ │ -?rw-r--r-- 0 0 0 2124 1970-01-01 00:00:00.000000 transpose-problem.o │ │ │ │ +?rw-r--r-- 0 0 0 2392 1970-01-01 00:00:00.000000 dtensor.o │ │ │ │ +?rw-r--r-- 0 0 0 1140 1970-01-01 00:00:00.000000 rearrange.o │ │ │ │ +?rw-r--r-- 0 0 0 1920 1970-01-01 00:00:00.000000 wisdom-api.o │ │ │ │ +?rw-r--r-- 0 0 0 6044 1970-01-01 00:00:00.000000 f03-wrap.o │ │ │ │ +?rw-r--r-- 0 0 0 3876 1970-01-01 00:00:00.000000 transpose-alltoall.o │ │ │ │ +?rw-r--r-- 0 0 0 6144 1970-01-01 00:00:00.000000 transpose-pairwise.o │ │ │ │ +?rw-r--r-- 0 0 0 4812 1970-01-01 00:00:00.000000 transpose-recurse.o │ │ │ │ +?rw-r--r-- 0 0 0 2212 1970-01-01 00:00:00.000000 transpose-problem.o │ │ │ │ ?rw-r--r-- 0 0 0 628 1970-01-01 00:00:00.000000 transpose-solve.o │ │ │ │ -?rw-r--r-- 0 0 0 2628 1970-01-01 00:00:00.000000 dft-serial.o │ │ │ │ -?rw-r--r-- 0 0 0 3344 1970-01-01 00:00:00.000000 dft-rank-geq2.o │ │ │ │ -?rw-r--r-- 0 0 0 3700 1970-01-01 00:00:00.000000 dft-rank-geq2-transposed.o │ │ │ │ -?rw-r--r-- 0 0 0 4764 1970-01-01 00:00:00.000000 dft-rank1.o │ │ │ │ -?rw-r--r-- 0 0 0 3680 1970-01-01 00:00:00.000000 dft-rank1-bigvec.o │ │ │ │ -?rw-r--r-- 0 0 0 2652 1970-01-01 00:00:00.000000 dft-problem.o │ │ │ │ +?rw-r--r-- 0 0 0 2680 1970-01-01 00:00:00.000000 dft-serial.o │ │ │ │ +?rw-r--r-- 0 0 0 3472 1970-01-01 00:00:00.000000 dft-rank-geq2.o │ │ │ │ +?rw-r--r-- 0 0 0 3848 1970-01-01 00:00:00.000000 dft-rank-geq2-transposed.o │ │ │ │ +?rw-r--r-- 0 0 0 5044 1970-01-01 00:00:00.000000 dft-rank1.o │ │ │ │ +?rw-r--r-- 0 0 0 3824 1970-01-01 00:00:00.000000 dft-rank1-bigvec.o │ │ │ │ +?rw-r--r-- 0 0 0 2796 1970-01-01 00:00:00.000000 dft-problem.o │ │ │ │ ?rw-r--r-- 0 0 0 620 1970-01-01 00:00:00.000000 dft-solve.o │ │ │ │ -?rw-r--r-- 0 0 0 2700 1970-01-01 00:00:00.000000 rdft-serial.o │ │ │ │ -?rw-r--r-- 0 0 0 3220 1970-01-01 00:00:00.000000 rdft-rank-geq2.o │ │ │ │ -?rw-r--r-- 0 0 0 3564 1970-01-01 00:00:00.000000 rdft-rank-geq2-transposed.o │ │ │ │ -?rw-r--r-- 0 0 0 3540 1970-01-01 00:00:00.000000 rdft-rank1-bigvec.o │ │ │ │ -?rw-r--r-- 0 0 0 2740 1970-01-01 00:00:00.000000 rdft-problem.o │ │ │ │ +?rw-r--r-- 0 0 0 2756 1970-01-01 00:00:00.000000 rdft-serial.o │ │ │ │ +?rw-r--r-- 0 0 0 3336 1970-01-01 00:00:00.000000 rdft-rank-geq2.o │ │ │ │ +?rw-r--r-- 0 0 0 3688 1970-01-01 00:00:00.000000 rdft-rank-geq2-transposed.o │ │ │ │ +?rw-r--r-- 0 0 0 3664 1970-01-01 00:00:00.000000 rdft-rank1-bigvec.o │ │ │ │ +?rw-r--r-- 0 0 0 2868 1970-01-01 00:00:00.000000 rdft-problem.o │ │ │ │ ?rw-r--r-- 0 0 0 620 1970-01-01 00:00:00.000000 rdft-solve.o │ │ │ │ -?rw-r--r-- 0 0 0 2728 1970-01-01 00:00:00.000000 rdft2-serial.o │ │ │ │ -?rw-r--r-- 0 0 0 3500 1970-01-01 00:00:00.000000 rdft2-rank-geq2.o │ │ │ │ -?rw-r--r-- 0 0 0 4160 1970-01-01 00:00:00.000000 rdft2-rank-geq2-transposed.o │ │ │ │ -?rw-r--r-- 0 0 0 2652 1970-01-01 00:00:00.000000 rdft2-problem.o │ │ │ │ +?rw-r--r-- 0 0 0 2808 1970-01-01 00:00:00.000000 rdft2-serial.o │ │ │ │ +?rw-r--r-- 0 0 0 3640 1970-01-01 00:00:00.000000 rdft2-rank-geq2.o │ │ │ │ +?rw-r--r-- 0 0 0 4360 1970-01-01 00:00:00.000000 rdft2-rank-geq2-transposed.o │ │ │ │ +?rw-r--r-- 0 0 0 2784 1970-01-01 00:00:00.000000 rdft2-problem.o │ │ │ │ ?rw-r--r-- 0 0 0 624 1970-01-01 00:00:00.000000 rdft2-solve.o │ │ │ ├── any-true.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 336 (bytes into file) │ │ │ │ │ + Start of section headers: 340 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 10 │ │ │ │ │ Section header string table index: 9 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,19 +1,19 @@ │ │ │ │ │ -There are 10 section headers, starting at offset 0x150: │ │ │ │ │ +There are 10 section headers, starting at offset 0x154: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 00002c 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0000f8 000008 08 I 7 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000060 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000060 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .note.GNU-stack PROGBITS 00000000 000060 000000 00 0 0 1 │ │ │ │ │ - [ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 000060 000033 00 0 0 1 │ │ │ │ │ - [ 7] .symtab SYMTAB 00000000 000094 000040 10 8 2 4 │ │ │ │ │ - [ 8] .strtab STRTAB 00000000 0000d4 000024 00 0 0 1 │ │ │ │ │ - [ 9] .shstrtab STRTAB 00000000 000100 000050 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000030 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 0000fc 000008 08 I 7 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000064 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000064 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .note.GNU-stack PROGBITS 00000000 000064 000000 00 0 0 1 │ │ │ │ │ + [ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 000064 000033 00 0 0 1 │ │ │ │ │ + [ 7] .symtab SYMTAB 00000000 000098 000040 10 8 2 4 │ │ │ │ │ + [ 8] .strtab STRTAB 00000000 0000d8 000024 00 0 0 1 │ │ │ │ │ + [ 9] .shstrtab STRTAB 00000000 000104 000050 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,7 +1,7 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 4 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ 1: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 2: 00000001 42 FUNC GLOBAL DEFAULT 1 fftw_mpi_any_true │ │ │ │ │ + 2: 00000001 48 FUNC GLOBAL DEFAULT 1 fftw_mpi_any_true │ │ │ │ │ 3: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Allreduce │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,4 +1,4 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0xf8 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.text' at offset 0xfc contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -0000001e 0000030a R_ARM_THM_CALL 00000000 MPI_Allreduce │ │ │ │ │ +00000024 0000030a R_ARM_THM_CALL 00000000 MPI_Allreduce │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,25 +1,23 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftw_mpi_any_true(): │ │ │ │ │ - push {lr} │ │ │ │ │ - movs r2, #1 │ │ │ │ │ - movs r3, #7 │ │ │ │ │ + mov.w r3, #7 │ │ │ │ │ movt r3, #22528 @ 0x5800 │ │ │ │ │ + str.w lr, [sp, #-4]! │ │ │ │ │ sub sp, #28 │ │ │ │ │ - str r0, [sp, #12] │ │ │ │ │ - add r0, sp, #12 │ │ │ │ │ - str r1, [sp, #4] │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ + strd r3, r1, [sp] │ │ │ │ │ add r1, sp, #20 │ │ │ │ │ - str r3, [sp, #0] │ │ │ │ │ movw r3, #1029 @ 0x405 │ │ │ │ │ movt r3, #19456 @ 0x4c00 │ │ │ │ │ + str r0, [sp, #12] │ │ │ │ │ + add r0, sp, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Allreduce │ │ │ │ │ ldr r0, [sp, #20] │ │ │ │ │ add sp, #28 │ │ │ │ │ ldr.w pc, [sp], #4 │ │ │ │ │ - nop │ │ │ ├── api.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 17712 (bytes into file) │ │ │ │ │ + Start of section headers: 19312 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 11 │ │ │ │ │ Section header string table index: 10 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,20 +1,20 @@ │ │ │ │ │ -There are 11 section headers, starting at offset 0x4530: │ │ │ │ │ +There are 11 section headers, starting at offset 0x4b70: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 002864 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 003928 000ba8 08 I 8 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 002898 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 002898 000004 00 WA 0 0 4 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 002898 000036 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .note.GNU-stack PROGBITS 00000000 0028ce 000000 00 0 0 1 │ │ │ │ │ - [ 7] .ARM.attributes ARM_ATTRIBUTES 00000000 0028ce 000033 00 0 0 1 │ │ │ │ │ - [ 8] .symtab SYMTAB 00000000 002904 000870 10 9 65 4 │ │ │ │ │ - [ 9] .strtab STRTAB 00000000 003174 0007b2 00 0 0 1 │ │ │ │ │ - [10] .shstrtab STRTAB 00000000 0044d0 00005f 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 002ecc 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 003f90 000b80 08 I 8 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 002f00 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 002f00 000004 00 WA 0 0 4 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 002f00 000036 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .note.GNU-stack PROGBITS 00000000 002f36 000000 00 0 0 1 │ │ │ │ │ + [ 7] .ARM.attributes ARM_ATTRIBUTES 00000000 002f36 000033 00 0 0 1 │ │ │ │ │ + [ 8] .symtab SYMTAB 00000000 002f6c 000870 10 9 65 4 │ │ │ │ │ + [ 9] .strtab STRTAB 00000000 0037dc 0007b2 00 0 0 1 │ │ │ │ │ + [10] .shstrtab STRTAB 00000000 004b10 00005f 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,73 +1,73 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 135 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ 1: 00000000 0 SECTION LOCAL DEFAULT 4 .bss │ │ │ │ │ - 2: 00000001 62 FUNC LOCAL DEFAULT 1 bogosity_hook │ │ │ │ │ + 2: 00000001 70 FUNC LOCAL DEFAULT 1 bogosity_hook │ │ │ │ │ 3: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 4: 00000012 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 5: 00000016 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 6: 00000041 46 FUNC LOCAL DEFAULT 1 nowisdom_hook │ │ │ │ │ - 7: 0000004e 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 8: 00000052 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 9: 00000071 216 FUNC LOCAL DEFAULT 1 wisdom_ok_hook │ │ │ │ │ - 10: 0000008a 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 11: 0000008e 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 12: 00000149 106 FUNC LOCAL DEFAULT 1 cost_hook │ │ │ │ │ - 13: 0000015e 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 14: 00000162 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 15: 000001b5 146 FUNC LOCAL DEFAULT 1 local_size │ │ │ │ │ - 16: 00000249 422 FUNC LOCAL DEFAULT 1 default_sz.constprop.0 │ │ │ │ │ - 17: 000003f1 612 FUNC LOCAL DEFAULT 1 fftw_mpi_local_size_many_transposed.part.0.constprop.0 │ │ │ │ │ - 18: 00000655 282 FUNC LOCAL DEFAULT 1 default_sz.constprop.1 │ │ │ │ │ - 19: 00000771 614 FUNC LOCAL DEFAULT 1 fftw_mpi_local_size_many_transposed.part.0.constprop.1 │ │ │ │ │ - 20: 000009d9 166 FUNC LOCAL DEFAULT 1 default_sz.constprop.2 │ │ │ │ │ + 4: 00000016 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 5: 0000001a 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 6: 00000049 50 FUNC LOCAL DEFAULT 1 nowisdom_hook │ │ │ │ │ + 7: 00000058 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 8: 0000005c 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 9: 0000007d 254 FUNC LOCAL DEFAULT 1 wisdom_ok_hook │ │ │ │ │ + 10: 000000a4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 11: 000000a8 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 12: 0000017d 116 FUNC LOCAL DEFAULT 1 cost_hook │ │ │ │ │ + 13: 00000196 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 14: 0000019a 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 15: 000001f1 184 FUNC LOCAL DEFAULT 1 local_size │ │ │ │ │ + 16: 000002a9 466 FUNC LOCAL DEFAULT 1 default_sz.constprop.0 │ │ │ │ │ + 17: 0000047d 714 FUNC LOCAL DEFAULT 1 fftw_mpi_local_size_many_transposed.part.0.constprop.0 │ │ │ │ │ + 18: 00000749 324 FUNC LOCAL DEFAULT 1 default_sz.constprop.1 │ │ │ │ │ + 19: 0000088d 706 FUNC LOCAL DEFAULT 1 fftw_mpi_local_size_many_transposed.part.0.constprop.1 │ │ │ │ │ + 20: 00000b51 206 FUNC LOCAL DEFAULT 1 default_sz.constprop.2 │ │ │ │ │ 21: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 22: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ 23: 00000008 0 NOTYPE LOCAL DEFAULT 5 .LC1 │ │ │ │ │ - 24: 00000a81 372 FUNC LOCAL DEFAULT 1 fftw_mpi_local_size_guru.part.0.constprop.0 │ │ │ │ │ - 25: 00000bec 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 26: 00000bf4 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 27: 00000bf5 542 FUNC LOCAL DEFAULT 1 default_sz │ │ │ │ │ - 28: 00000e15 868 FUNC LOCAL DEFAULT 1 fftw_mpi_local_size_guru.part.0 │ │ │ │ │ - 29: 00001170 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 30: 00001178 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 31: 00001179 276 FUNC LOCAL DEFAULT 1 fftw_mpi_local_size_many_transposed.part.0 │ │ │ │ │ - 32: 0000128d 268 FUNC LOCAL DEFAULT 1 plan_guru_rdft2.constprop.0 │ │ │ │ │ - 33: 00001384 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 34: 00001398 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 35: 00001399 248 FUNC LOCAL DEFAULT 1 plan_guru_rdft2.constprop.1 │ │ │ │ │ - 36: 0000147c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 37: 00001490 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 38: 00001491 300 FUNC LOCAL DEFAULT 1 plan_guru_rdft2 │ │ │ │ │ - 39: 000015a8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 40: 000015bc 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 41: 000015f0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 42: 00001604 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 43: 00001614 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 44: 00001618 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 45: 00001914 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 46: 00001928 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 47: 000019e4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 48: 000019f8 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 49: 00001adc 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 50: 00001af0 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 51: 00001d00 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 52: 00001d14 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 53: 00001e20 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 54: 00001e34 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 55: 00001f60 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 56: 00001f74 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 57: 0000206c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 58: 00002080 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 59: 000022d4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 60: 000022e8 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 61: 00002430 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 62: 00002444 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 24: 00000c21 412 FUNC LOCAL DEFAULT 1 fftw_mpi_local_size_guru.part.0.constprop.0 │ │ │ │ │ + 25: 00000db4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 26: 00000dbc 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 27: 00000dbd 644 FUNC LOCAL DEFAULT 1 default_sz │ │ │ │ │ + 28: 00001041 984 FUNC LOCAL DEFAULT 1 fftw_mpi_local_size_guru.part.0 │ │ │ │ │ + 29: 00001410 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 30: 00001418 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 31: 00001419 318 FUNC LOCAL DEFAULT 1 fftw_mpi_local_size_many_transposed.part.0 │ │ │ │ │ + 32: 00001559 312 FUNC LOCAL DEFAULT 1 plan_guru_rdft2.constprop.0 │ │ │ │ │ + 33: 0000167c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 34: 00001690 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 35: 00001691 296 FUNC LOCAL DEFAULT 1 plan_guru_rdft2.constprop.1 │ │ │ │ │ + 36: 000017a4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 37: 000017b8 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 38: 000017b9 348 FUNC LOCAL DEFAULT 1 plan_guru_rdft2 │ │ │ │ │ + 39: 00001900 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 40: 00001914 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 41: 0000194c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 42: 00001960 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 43: 00001974 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 44: 00001978 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 45: 00001d28 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 46: 00001d3c 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 47: 00001e18 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 48: 00001e2c 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 49: 00001f2c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 50: 00001f40 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 51: 000021a8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 52: 000021bc 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 53: 000022e8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 54: 000022fc 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 55: 00002444 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 56: 00002458 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 57: 0000256c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 58: 00002580 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 59: 00002830 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 60: 00002844 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 61: 000029ac 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 62: 000029c0 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ 63: 00000000 0 NOTYPE LOCAL DEFAULT 4 $d │ │ │ │ │ 64: 00000000 4 OBJECT LOCAL DEFAULT 4 mpi_inited │ │ │ │ │ 65: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_any_true │ │ │ │ │ 66: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Bcast │ │ │ │ │ 67: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Allreduce │ │ │ │ │ 68: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_num_blocks_total │ │ │ │ │ 69: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_block_coords │ │ │ │ │ @@ -87,52 +87,52 @@ │ │ │ │ │ 83: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_is_prime │ │ │ │ │ 84: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_choose_radix │ │ │ │ │ 85: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_assertion_failed │ │ │ │ │ 86: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_mkproblem_rdft2_d │ │ │ │ │ 87: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mkapiplan │ │ │ │ │ 88: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_the_planner │ │ │ │ │ 89: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_conf_standard │ │ │ │ │ - 90: 000015bd 72 FUNC GLOBAL DEFAULT 1 fftw_mpi_init │ │ │ │ │ - 91: 00001605 20 FUNC GLOBAL DEFAULT 1 fftw_mpi_cleanup │ │ │ │ │ + 90: 00001915 76 FUNC GLOBAL DEFAULT 1 fftw_mpi_init │ │ │ │ │ + 91: 00001961 24 FUNC GLOBAL DEFAULT 1 fftw_mpi_cleanup │ │ │ │ │ 92: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_cleanup │ │ │ │ │ - 93: 00001619 44 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_guru │ │ │ │ │ - 94: 00001645 54 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_many_transposed │ │ │ │ │ - 95: 0000167d 64 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_many │ │ │ │ │ - 96: 000016bd 58 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_transposed │ │ │ │ │ - 97: 000016f9 62 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size │ │ │ │ │ - 98: 00001739 44 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_many_1d │ │ │ │ │ - 99: 00001765 46 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_1d │ │ │ │ │ - 100: 00001795 34 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_2d_transposed │ │ │ │ │ - 101: 000017b9 32 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_2d │ │ │ │ │ - 102: 000017d9 40 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_3d_transposed │ │ │ │ │ - 103: 00001801 38 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_3d │ │ │ │ │ - 104: 00001829 256 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_many_transpose │ │ │ │ │ + 93: 00001979 72 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_guru │ │ │ │ │ + 94: 000019c1 98 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_many_transposed │ │ │ │ │ + 95: 00001a25 88 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_many │ │ │ │ │ + 96: 00001a7d 66 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_transposed │ │ │ │ │ + 97: 00001ac1 90 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size │ │ │ │ │ + 98: 00001b1d 48 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_many_1d │ │ │ │ │ + 99: 00001b4d 52 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_1d │ │ │ │ │ + 100: 00001b81 38 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_2d_transposed │ │ │ │ │ + 101: 00001ba9 34 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_2d │ │ │ │ │ + 102: 00001bcd 44 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_3d_transposed │ │ │ │ │ + 103: 00001bf9 40 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_3d │ │ │ │ │ + 104: 00001c21 284 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_many_transpose │ │ │ │ │ 105: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_mkproblem_transpose │ │ │ │ │ - 106: 00001929 208 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_transpose │ │ │ │ │ - 107: 000019f9 248 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_guru_dft │ │ │ │ │ + 106: 00001d3d 240 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_transpose │ │ │ │ │ + 107: 00001e2d 276 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_guru_dft │ │ │ │ │ 108: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_mkproblem_dft_d │ │ │ │ │ - 109: 00001af1 150 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_many_dft │ │ │ │ │ - 110: 00001b89 152 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft │ │ │ │ │ - 111: 00001c21 244 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_1d │ │ │ │ │ - 112: 00001d15 288 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_2d │ │ │ │ │ - 113: 00001e35 320 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_3d │ │ │ │ │ - 114: 00001f75 268 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_guru_r2r │ │ │ │ │ + 109: 00001f41 176 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_many_dft │ │ │ │ │ + 110: 00001ff1 186 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft │ │ │ │ │ + 111: 000020ad 272 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_1d │ │ │ │ │ + 112: 000021bd 320 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_2d │ │ │ │ │ + 113: 000022fd 348 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_3d │ │ │ │ │ + 114: 00002459 296 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_guru_r2r │ │ │ │ │ 115: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_map_r2r_kind │ │ │ │ │ 116: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_mkproblem_rdft_d │ │ │ │ │ 117: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ifree0 │ │ │ │ │ - 118: 00002081 150 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_many_r2r │ │ │ │ │ - 119: 00002119 152 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_r2r │ │ │ │ │ - 120: 000021b1 312 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_r2r_2d │ │ │ │ │ - 121: 000022e9 348 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_r2r_3d │ │ │ │ │ - 122: 00002445 150 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_many_dft_r2c │ │ │ │ │ - 123: 000024dd 150 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_many_dft_c2r │ │ │ │ │ - 124: 00002575 152 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_r2c │ │ │ │ │ - 125: 0000260d 102 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_r2c_2d │ │ │ │ │ - 126: 00002675 108 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_r2c_3d │ │ │ │ │ - 127: 000026e1 152 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_c2r │ │ │ │ │ - 128: 00002779 106 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_c2r_2d │ │ │ │ │ - 129: 000027e5 112 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_c2r_3d │ │ │ │ │ - 130: 00002855 4 FUNC GLOBAL DEFAULT 1 fftw_mpi_execute_dft │ │ │ │ │ + 118: 00002581 176 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_many_r2r │ │ │ │ │ + 119: 00002631 186 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_r2r │ │ │ │ │ + 120: 000026ed 344 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_r2r_2d │ │ │ │ │ + 121: 00002845 380 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_r2r_3d │ │ │ │ │ + 122: 000029c1 178 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_many_dft_r2c │ │ │ │ │ + 123: 00002a75 178 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_many_dft_c2r │ │ │ │ │ + 124: 00002b29 188 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_r2c │ │ │ │ │ + 125: 00002be5 128 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_r2c_2d │ │ │ │ │ + 126: 00002c65 134 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_r2c_3d │ │ │ │ │ + 127: 00002ced 188 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_c2r │ │ │ │ │ + 128: 00002da9 134 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_c2r_2d │ │ │ │ │ + 129: 00002e31 140 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_c2r_3d │ │ │ │ │ + 130: 00002ebd 4 FUNC GLOBAL DEFAULT 1 fftw_mpi_execute_dft │ │ │ │ │ 131: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_execute_r2r │ │ │ │ │ - 132: 00002859 4 FUNC GLOBAL DEFAULT 1 fftw_mpi_execute_dft_r2c │ │ │ │ │ - 133: 0000285d 4 FUNC GLOBAL DEFAULT 1 fftw_mpi_execute_dft_c2r │ │ │ │ │ - 134: 00002861 4 FUNC GLOBAL DEFAULT 1 fftw_mpi_execute_r2r │ │ │ │ │ + 132: 00002ec1 4 FUNC GLOBAL DEFAULT 1 fftw_mpi_execute_dft_r2c │ │ │ │ │ + 133: 00002ec5 4 FUNC GLOBAL DEFAULT 1 fftw_mpi_execute_dft_c2r │ │ │ │ │ + 134: 00002ec9 4 FUNC GLOBAL DEFAULT 1 fftw_mpi_execute_r2r │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,376 +1,371 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x3928 contains 373 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x3f90 contains 368 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000028 0000410a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -000000be 0000410a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -000000e4 0000420a R_ARM_THM_CALL 00000000 MPI_Bcast │ │ │ │ │ -00000108 0000430a R_ARM_THM_CALL 00000000 MPI_Allreduce │ │ │ │ │ -0000018e 0000430a R_ARM_THM_CALL 00000000 MPI_Allreduce │ │ │ │ │ -000001c6 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -000001fa 0000450a R_ARM_THM_CALL 00000000 fftw_mpi_block_coords │ │ │ │ │ -00000228 0000460a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00000256 0000470a R_ARM_THM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ -0000025e 0000470a R_ARM_THM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ -00000300 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -0000030a 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000346 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -0000034e 00004a0a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_canonical │ │ │ │ │ -00000356 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -00000366 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -00000372 00004c0a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -0000037e 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000392 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -0000039e 00004c0a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -000003a8 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000003bc 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -000003c8 00004c0a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -00000400 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00000420 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00000446 00004e0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -0000044e 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000460 0000500a R_ARM_THM_CALL 00000000 fftw_mpi_is_block1d │ │ │ │ │ -000004a6 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ -000004ae 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ -000004b6 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -000004d4 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ -000004da 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ -000004ea 0000500a R_ARM_THM_CALL 00000000 fftw_mpi_is_block1d │ │ │ │ │ -00000518 00004c0a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -0000055a 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -00000566 0000460a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00000570 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ -000005a0 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -000005aa 0000460a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -000005b6 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ -000005c2 00004c0a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -000005de 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -0000061c 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ -00000664 0000470a R_ARM_THM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ -0000066c 0000470a R_ARM_THM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ -000006d6 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -000006e0 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000712 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -0000071a 00004a0a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_canonical │ │ │ │ │ -00000722 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -00000732 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -0000073e 00004c0a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -00000748 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -0000075c 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -00000768 00004c0a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -00000780 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00000798 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -000007c0 00004e0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000007c8 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000007da 0000500a R_ARM_THM_CALL 00000000 fftw_mpi_is_block1d │ │ │ │ │ -00000814 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ -0000081c 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ -00000824 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -00000842 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ -00000848 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ -00000858 0000500a R_ARM_THM_CALL 00000000 fftw_mpi_is_block1d │ │ │ │ │ -00000890 00004c0a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -000008da 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -000008e4 0000460a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -000008ee 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ -0000091e 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -00000928 0000460a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00000934 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ -00000940 00004c0a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -00000966 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -0000099e 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ -000009e2 0000470a R_ARM_THM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ -000009ea 0000470a R_ARM_THM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ -00000a1c 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -00000a24 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000a44 0000530a R_ARM_THM_CALL 00000000 fftw_is_prime │ │ │ │ │ -00000a52 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -00000a5a 00004a0a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_canonical │ │ │ │ │ -00000a62 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -00000a6e 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -00000a78 00004c0a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -00000a9a 00004e0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000aa2 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000adc 0000540a R_ARM_THM_CALL 00000000 fftw_mpi_choose_radix │ │ │ │ │ -00000ae8 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000b36 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ -00000b3e 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ -00000b46 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -00000b60 0000550a R_ARM_THM_CALL 00000000 fftw_assertion_failed │ │ │ │ │ -00000b6a 0000470a R_ARM_THM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ -00000b8c 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -00000ba6 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -00000bb6 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000bbe 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ -00000bc8 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ -00000be2 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ -00000bec 00001603 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -00000bf0 00001703 R_ARM_REL32 00000008 .LC1 │ │ │ │ │ -00000c02 0000470a R_ARM_THM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ -00000c0a 0000470a R_ARM_THM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ -00000cec 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -00000cf6 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000d34 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -00000d46 00004c0a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -00000d52 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000d8c 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -00000d94 00004a0a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_canonical │ │ │ │ │ -00000d9c 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -00000dd6 0000530a R_ARM_THM_CALL 00000000 fftw_is_prime │ │ │ │ │ -00000e26 00004e0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000e2e 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000e58 0000470a R_ARM_THM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ -00000e74 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -00000e8c 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -00000e9c 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000ea6 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ -00000ecc 0000540a R_ARM_THM_CALL 00000000 fftw_mpi_choose_radix │ │ │ │ │ -00000eda 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000f08 0000500a R_ARM_THM_CALL 00000000 fftw_mpi_is_block1d │ │ │ │ │ -00000f58 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ -00000f60 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ -00000f68 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -00000fb0 0000550a R_ARM_THM_CALL 00000000 fftw_assertion_failed │ │ │ │ │ -00000fbc 0000500a R_ARM_THM_CALL 00000000 fftw_mpi_is_block1d │ │ │ │ │ -00000fe8 00004c0a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -0000102a 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -00001034 0000460a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00001040 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00001048 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ -0000107c 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -00001086 0000460a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00001092 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -0000109a 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ -000010ac 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ -000010b8 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ -000010d0 00004c0a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -000010f8 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -00001134 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ -00001170 00001603 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -00001174 00001703 R_ARM_REL32 00000008 .LC1 │ │ │ │ │ -0000118e 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -000011ba 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00001224 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ -0000122a 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ -00001236 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -000012de 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000012fc 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -0000130a 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -0000132e 0000560a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_rdft2_d │ │ │ │ │ -00001338 0000570a R_ARM_THM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ -00001344 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -00001350 0000580a R_ARM_THM_CALL 00000000 fftw_the_planner │ │ │ │ │ -0000136c 0000590a R_ARM_THM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ -00001384 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -00001388 00000c03 R_ARM_REL32 00000149 cost_hook │ │ │ │ │ -0000138c 00000903 R_ARM_REL32 00000071 wisdom_ok_hook │ │ │ │ │ -00001390 00000603 R_ARM_REL32 00000041 nowisdom_hook │ │ │ │ │ -00001394 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ -000013d8 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000013f6 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -00001404 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -00001428 0000560a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_rdft2_d │ │ │ │ │ -00001432 0000570a R_ARM_THM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ -0000143c 0000580a R_ARM_THM_CALL 00000000 fftw_the_planner │ │ │ │ │ -00001458 0000590a R_ARM_THM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ -00001464 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -0000147c 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -00001480 00000c03 R_ARM_REL32 00000149 cost_hook │ │ │ │ │ -00001484 00000903 R_ARM_REL32 00000071 wisdom_ok_hook │ │ │ │ │ -00001488 00000603 R_ARM_REL32 00000041 nowisdom_hook │ │ │ │ │ -0000148c 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ -000014e8 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00001518 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -00001526 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -00001550 0000560a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_rdft2_d │ │ │ │ │ -0000155a 0000570a R_ARM_THM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ -00001566 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -00001572 0000580a R_ARM_THM_CALL 00000000 fftw_the_planner │ │ │ │ │ -0000158e 0000590a R_ARM_THM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ -000015a8 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -000015ac 00000c03 R_ARM_REL32 00000149 cost_hook │ │ │ │ │ -000015b0 00000903 R_ARM_REL32 00000071 wisdom_ok_hook │ │ │ │ │ -000015b4 00000603 R_ARM_REL32 00000041 nowisdom_hook │ │ │ │ │ -000015b8 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ -000015c8 0000580a R_ARM_THM_CALL 00000000 fftw_the_planner │ │ │ │ │ -000015e4 0000590a R_ARM_THM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ -000015f0 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -000015f4 00000c03 R_ARM_REL32 00000149 cost_hook │ │ │ │ │ -000015f8 00000903 R_ARM_REL32 00000071 wisdom_ok_hook │ │ │ │ │ -000015fc 00000603 R_ARM_REL32 00000041 nowisdom_hook │ │ │ │ │ -00001600 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ -00001606 00005c0a R_ARM_THM_CALL 00000000 fftw_cleanup │ │ │ │ │ -00001614 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -0000185c 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -0000186e 00004c0a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -0000187c 00004c0a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -000018a0 0000690a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ -000018ac 0000570a R_ARM_THM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ -000018be 0000580a R_ARM_THM_CALL 00000000 fftw_the_planner │ │ │ │ │ -000018da 0000590a R_ARM_THM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ -000018ea 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -000018f4 00004c0a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -00001904 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -00001914 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -00001918 00000c03 R_ARM_REL32 00000149 cost_hook │ │ │ │ │ -0000191c 00000903 R_ARM_REL32 00000071 wisdom_ok_hook │ │ │ │ │ -00001920 00000603 R_ARM_REL32 00000041 nowisdom_hook │ │ │ │ │ -00001924 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ -00001950 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00001958 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -00001962 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -0000196c 00004c0a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -0000197a 00004c0a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -0000199c 0000690a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ -000019a8 0000570a R_ARM_THM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ -000019ba 0000580a R_ARM_THM_CALL 00000000 fftw_the_planner │ │ │ │ │ -000019d6 0000590a R_ARM_THM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ -000019e4 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -000019e8 00000c03 R_ARM_REL32 00000149 cost_hook │ │ │ │ │ -000019ec 00000903 R_ARM_REL32 00000071 wisdom_ok_hook │ │ │ │ │ -000019f0 00000603 R_ARM_REL32 00000041 nowisdom_hook │ │ │ │ │ -000019f4 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ -00001a50 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00001a64 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -00001a72 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -00001a92 00006c0a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_dft_d │ │ │ │ │ -00001a9c 0000570a R_ARM_THM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ -00001aa8 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -00001ab4 0000580a R_ARM_THM_CALL 00000000 fftw_the_planner │ │ │ │ │ -00001ad0 0000590a R_ARM_THM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ -00001adc 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -00001ae0 00000c03 R_ARM_REL32 00000149 cost_hook │ │ │ │ │ -00001ae4 00000903 R_ARM_REL32 00000071 wisdom_ok_hook │ │ │ │ │ -00001ae8 00000603 R_ARM_REL32 00000041 nowisdom_hook │ │ │ │ │ -00001aec 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ -00001b08 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00001b6a 00006b0a R_ARM_THM_CALL 000019f9 fftw_mpi_plan_guru_dft │ │ │ │ │ -00001b72 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ -00001ba0 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00001c04 00006b0a R_ARM_THM_CALL 000019f9 fftw_mpi_plan_guru_dft │ │ │ │ │ -00001c0c 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ -00001c36 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00001c54 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00001c64 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -00001c72 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -00001c90 00006c0a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_dft_d │ │ │ │ │ -00001c9a 0000570a R_ARM_THM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ -00001ca2 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ -00001cb0 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -00001cb8 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ -00001cc4 0000580a R_ARM_THM_CALL 00000000 fftw_the_planner │ │ │ │ │ -00001ce0 0000590a R_ARM_THM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ -00001d00 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -00001d04 00000c03 R_ARM_REL32 00000149 cost_hook │ │ │ │ │ -00001d08 00000903 R_ARM_REL32 00000071 wisdom_ok_hook │ │ │ │ │ -00001d0c 00000603 R_ARM_REL32 00000041 nowisdom_hook │ │ │ │ │ -00001d10 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ -00001d26 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00001d86 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00001d98 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -00001da6 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -00001dc4 00006c0a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_dft_d │ │ │ │ │ +0000002e 0000410a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +000000da 0000410a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +00000104 0000420a R_ARM_THM_CALL 00000000 MPI_Bcast │ │ │ │ │ +0000012c 0000430a R_ARM_THM_CALL 00000000 MPI_Allreduce │ │ │ │ │ +000001cc 0000430a R_ARM_THM_CALL 00000000 MPI_Allreduce │ │ │ │ │ +0000020e 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +00000256 0000450a R_ARM_THM_CALL 00000000 fftw_mpi_block_coords │ │ │ │ │ +0000028c 0000460a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +000002c8 0000470a R_ARM_THM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ +000002d2 0000470a R_ARM_THM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ +00000378 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +00000382 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +000003be 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +000003c8 00004a0a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_canonical │ │ │ │ │ +000003d0 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +000003f2 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +000003fe 00004c0a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +0000040a 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +0000041e 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +0000042a 00004c0a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +00000434 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000448 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +00000454 00004c0a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +0000049e 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +000004c0 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +000004ea 00004e0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000004f2 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000508 0000500a R_ARM_THM_CALL 00000000 fftw_mpi_is_block1d │ │ │ │ │ +00000554 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ +0000055c 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ +00000564 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +00000582 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ +00000588 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ +000005ac 0000500a R_ARM_THM_CALL 00000000 fftw_mpi_is_block1d │ │ │ │ │ +000005de 00004c0a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +0000062e 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +0000063a 0000460a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00000644 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ +0000067a 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +00000684 0000460a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00000690 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ +0000069c 00004c0a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +000006bc 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +00000700 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ +0000076a 0000470a R_ARM_THM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ +00000774 0000470a R_ARM_THM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ +000007de 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +000007e8 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +0000081c 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +00000826 00004a0a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_canonical │ │ │ │ │ +0000082e 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +00000850 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +0000085c 00004c0a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +00000866 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +0000087a 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +00000886 00004c0a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +000008ae 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +000008c8 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +000008f4 00004e0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000008fc 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000912 0000500a R_ARM_THM_CALL 00000000 fftw_mpi_is_block1d │ │ │ │ │ +00000952 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ +0000095a 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ +00000962 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +00000980 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ +00000986 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ +000009aa 0000500a R_ARM_THM_CALL 00000000 fftw_mpi_is_block1d │ │ │ │ │ +000009e4 00004c0a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +00000a3a 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +00000a44 0000460a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00000a4e 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ +00000a84 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +00000a8e 0000460a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00000a9a 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ +00000aa6 00004c0a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +00000ace 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +00000b0a 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ +00000b6c 0000470a R_ARM_THM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ +00000b76 0000470a R_ARM_THM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ +00000ba6 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +00000bae 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000bd4 0000530a R_ARM_THM_CALL 00000000 fftw_is_prime │ │ │ │ │ +00000be2 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +00000bec 00004a0a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_canonical │ │ │ │ │ +00000bf4 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +00000c0e 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +00000c18 00004c0a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +00000c4a 00004e0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +00000c52 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000c8c 0000540a R_ARM_THM_CALL 00000000 fftw_mpi_choose_radix │ │ │ │ │ +00000c98 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000cea 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ +00000cf2 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ +00000cfa 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +00000d26 0000550a R_ARM_THM_CALL 00000000 fftw_assertion_failed │ │ │ │ │ +00000d32 0000470a R_ARM_THM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ +00000d50 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +00000d68 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +00000d7a 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000d84 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ +00000d8e 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ +00000daa 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ +00000db4 00001603 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +00000db8 00001703 R_ARM_REL32 00000008 .LC1 │ │ │ │ │ +00000dda 0000470a R_ARM_THM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ +00000de2 0000470a R_ARM_THM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ +00000ee0 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +00000eea 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000f2c 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +00000f3e 00004c0a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +00000f4a 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000f92 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +00000f9c 00004a0a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_canonical │ │ │ │ │ +00000fa4 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +00000ffe 0000530a R_ARM_THM_CALL 00000000 fftw_is_prime │ │ │ │ │ +00001062 00004e0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +0000106a 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00001098 0000470a R_ARM_THM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ +000010b6 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +000010ce 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +000010e0 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +000010e8 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ +00001118 0000540a R_ARM_THM_CALL 00000000 fftw_mpi_choose_radix │ │ │ │ │ +00001126 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00001158 0000500a R_ARM_THM_CALL 00000000 fftw_mpi_is_block1d │ │ │ │ │ +000011b6 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ +000011be 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ +000011c6 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +00001228 0000550a R_ARM_THM_CALL 00000000 fftw_assertion_failed │ │ │ │ │ +00001236 0000500a R_ARM_THM_CALL 00000000 fftw_mpi_is_block1d │ │ │ │ │ +00001264 00004c0a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +000012ae 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +000012b8 0000460a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +000012c6 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +000012ce 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ +00001308 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +00001312 0000460a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00001320 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00001328 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ +0000133c 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ +0000134a 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ +00001362 00004c0a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +0000138e 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +000013d2 0000510a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ +00001410 00001603 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +00001414 00001703 R_ARM_REL32 00000008 .LC1 │ │ │ │ │ +00001440 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +0000146e 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +000014da 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ +000014e0 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ +000014fe 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +000015b6 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000015dc 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +000015ec 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +00001616 0000560a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_rdft2_d │ │ │ │ │ +00001622 0000570a R_ARM_THM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ +0000162a 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +00001646 0000580a R_ARM_THM_CALL 00000000 fftw_the_planner │ │ │ │ │ +00001662 0000590a R_ARM_THM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ +0000167c 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +00001680 00000c03 R_ARM_REL32 0000017d cost_hook │ │ │ │ │ +00001684 00000903 R_ARM_REL32 0000007d wisdom_ok_hook │ │ │ │ │ +00001688 00000603 R_ARM_REL32 00000049 nowisdom_hook │ │ │ │ │ +0000168c 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ +000016dc 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00001702 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +00001712 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +0000173c 0000560a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_rdft2_d │ │ │ │ │ +00001748 0000570a R_ARM_THM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ +0000174e 0000580a R_ARM_THM_CALL 00000000 fftw_the_planner │ │ │ │ │ +0000176a 0000590a R_ARM_THM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ +00001778 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +000017a4 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +000017a8 00000c03 R_ARM_REL32 0000017d cost_hook │ │ │ │ │ +000017ac 00000903 R_ARM_REL32 0000007d wisdom_ok_hook │ │ │ │ │ +000017b0 00000603 R_ARM_REL32 00000049 nowisdom_hook │ │ │ │ │ +000017b4 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ +0000181c 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00001856 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +00001866 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +00001896 0000560a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_rdft2_d │ │ │ │ │ +000018a2 0000570a R_ARM_THM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ +000018aa 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +000018c6 0000580a R_ARM_THM_CALL 00000000 fftw_the_planner │ │ │ │ │ +000018e2 0000590a R_ARM_THM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ +00001900 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +00001904 00000c03 R_ARM_REL32 0000017d cost_hook │ │ │ │ │ +00001908 00000903 R_ARM_REL32 0000007d wisdom_ok_hook │ │ │ │ │ +0000190c 00000603 R_ARM_REL32 00000049 nowisdom_hook │ │ │ │ │ +00001910 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ +00001922 0000580a R_ARM_THM_CALL 00000000 fftw_the_planner │ │ │ │ │ +0000193e 0000590a R_ARM_THM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ +0000194c 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +00001950 00000c03 R_ARM_REL32 0000017d cost_hook │ │ │ │ │ +00001954 00000903 R_ARM_REL32 0000007d wisdom_ok_hook │ │ │ │ │ +00001958 00000603 R_ARM_REL32 00000049 nowisdom_hook │ │ │ │ │ +0000195c 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ +00001964 00005c0a R_ARM_THM_CALL 00000000 fftw_cleanup │ │ │ │ │ +00001974 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +00001c60 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00001c72 00004c0a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +00001c80 00004c0a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +00001ca6 0000690a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ +00001cb2 0000570a R_ARM_THM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ +00001cd0 0000580a R_ARM_THM_CALL 00000000 fftw_the_planner │ │ │ │ │ +00001cec 0000590a R_ARM_THM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ +00001cfe 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +00001d08 00004c0a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +00001d18 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +00001d28 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +00001d2c 00000c03 R_ARM_REL32 0000017d cost_hook │ │ │ │ │ +00001d30 00000903 R_ARM_REL32 0000007d wisdom_ok_hook │ │ │ │ │ +00001d34 00000603 R_ARM_REL32 00000049 nowisdom_hook │ │ │ │ │ +00001d38 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ +00001d70 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00001d78 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +00001d82 00004b0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +00001d8c 00004c0a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +00001d9a 00004c0a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +00001dc2 0000690a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ 00001dce 0000570a R_ARM_THM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ -00001dd6 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ -00001de4 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -00001dec 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ -00001df8 0000580a R_ARM_THM_CALL 00000000 fftw_the_planner │ │ │ │ │ -00001e14 0000590a R_ARM_THM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ -00001e20 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -00001e24 00000c03 R_ARM_REL32 00000149 cost_hook │ │ │ │ │ -00001e28 00000903 R_ARM_REL32 00000071 wisdom_ok_hook │ │ │ │ │ -00001e2c 00000603 R_ARM_REL32 00000041 nowisdom_hook │ │ │ │ │ -00001e30 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ -00001e48 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00001ec6 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00001ed8 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -00001ee6 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -00001f06 00006c0a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_dft_d │ │ │ │ │ -00001f10 0000570a R_ARM_THM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ -00001f18 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ -00001f26 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -00001f2e 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ -00001f3a 0000580a R_ARM_THM_CALL 00000000 fftw_the_planner │ │ │ │ │ -00001f56 0000590a R_ARM_THM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ -00001f60 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -00001f64 00000c03 R_ARM_REL32 00000149 cost_hook │ │ │ │ │ -00001f68 00000903 R_ARM_REL32 00000071 wisdom_ok_hook │ │ │ │ │ -00001f6c 00000603 R_ARM_REL32 00000041 nowisdom_hook │ │ │ │ │ -00001f70 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ -00001fcc 0000730a R_ARM_THM_CALL 00000000 fftw_map_r2r_kind │ │ │ │ │ -00001fd6 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00001fea 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -00001ff8 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -00002016 0000740a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_rdft_d │ │ │ │ │ -00002020 0000570a R_ARM_THM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ -00002028 0000750a R_ARM_THM_CALL 00000000 fftw_ifree0 │ │ │ │ │ -00002036 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -00002044 0000580a R_ARM_THM_CALL 00000000 fftw_the_planner │ │ │ │ │ -00002060 0000590a R_ARM_THM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ -0000206c 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -00002070 00000c03 R_ARM_REL32 00000149 cost_hook │ │ │ │ │ -00002074 00000903 R_ARM_REL32 00000071 wisdom_ok_hook │ │ │ │ │ -00002078 00000603 R_ARM_REL32 00000041 nowisdom_hook │ │ │ │ │ -0000207c 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ -00002098 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -000020fa 0000720a R_ARM_THM_CALL 00001f75 fftw_mpi_plan_guru_r2r │ │ │ │ │ -00002102 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ -00002130 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00002194 0000720a R_ARM_THM_CALL 00001f75 fftw_mpi_plan_guru_r2r │ │ │ │ │ -0000219c 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ -000021ca 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -0000222a 0000730a R_ARM_THM_CALL 00000000 fftw_map_r2r_kind │ │ │ │ │ -00002234 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00002246 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -00002254 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -00002270 0000740a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_rdft_d │ │ │ │ │ -0000227a 0000570a R_ARM_THM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ -00002282 0000750a R_ARM_THM_CALL 00000000 fftw_ifree0 │ │ │ │ │ -00002288 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ -00002296 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -0000229e 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ -000022aa 0000580a R_ARM_THM_CALL 00000000 fftw_the_planner │ │ │ │ │ -000022c6 0000590a R_ARM_THM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ -000022d4 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -000022d8 00000c03 R_ARM_REL32 00000149 cost_hook │ │ │ │ │ -000022dc 00000903 R_ARM_REL32 00000071 wisdom_ok_hook │ │ │ │ │ -000022e0 00000603 R_ARM_REL32 00000041 nowisdom_hook │ │ │ │ │ -000022e4 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ -00002308 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00002386 0000730a R_ARM_THM_CALL 00000000 fftw_map_r2r_kind │ │ │ │ │ -00002390 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000023a2 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +00001dec 0000580a R_ARM_THM_CALL 00000000 fftw_the_planner │ │ │ │ │ +00001e08 0000590a R_ARM_THM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ +00001e18 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +00001e1c 00000c03 R_ARM_REL32 0000017d cost_hook │ │ │ │ │ +00001e20 00000903 R_ARM_REL32 0000007d wisdom_ok_hook │ │ │ │ │ +00001e24 00000603 R_ARM_REL32 00000049 nowisdom_hook │ │ │ │ │ +00001e28 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ +00001e8c 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00001ea4 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +00001eb4 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +00001ed6 00006c0a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_dft_d │ │ │ │ │ +00001ee0 0000570a R_ARM_THM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ +00001ee8 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +00001f00 0000580a R_ARM_THM_CALL 00000000 fftw_the_planner │ │ │ │ │ +00001f1c 0000590a R_ARM_THM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ +00001f2c 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +00001f30 00000c03 R_ARM_REL32 0000017d cost_hook │ │ │ │ │ +00001f34 00000903 R_ARM_REL32 0000007d wisdom_ok_hook │ │ │ │ │ +00001f38 00000603 R_ARM_REL32 00000049 nowisdom_hook │ │ │ │ │ +00001f3c 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ +00001f66 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00001fc6 00006b0a R_ARM_THM_CALL 00001e2d fftw_mpi_plan_guru_dft │ │ │ │ │ +00001fce 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ +00002016 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +0000207e 00006b0a R_ARM_THM_CALL 00001e2d fftw_mpi_plan_guru_dft │ │ │ │ │ +00002086 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ +000020ce 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +000020f0 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00002102 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +00002112 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +00002134 00006c0a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_dft_d │ │ │ │ │ +0000213e 0000570a R_ARM_THM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ +00002148 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +00002152 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ +0000216c 0000580a R_ARM_THM_CALL 00000000 fftw_the_planner │ │ │ │ │ +00002188 0000590a R_ARM_THM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ +000021a8 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +000021ac 00000c03 R_ARM_REL32 0000017d cost_hook │ │ │ │ │ +000021b0 00000903 R_ARM_REL32 0000007d wisdom_ok_hook │ │ │ │ │ +000021b4 00000603 R_ARM_REL32 00000049 nowisdom_hook │ │ │ │ │ +000021b8 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ +000021dc 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +0000223c 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00002252 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +00002262 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +00002284 00006c0a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_dft_d │ │ │ │ │ +0000228e 0000570a R_ARM_THM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ +00002298 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +000022a2 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ +000022bc 0000580a R_ARM_THM_CALL 00000000 fftw_the_planner │ │ │ │ │ +000022d8 0000590a R_ARM_THM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ +000022e8 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +000022ec 00000c03 R_ARM_REL32 0000017d cost_hook │ │ │ │ │ +000022f0 00000903 R_ARM_REL32 0000007d wisdom_ok_hook │ │ │ │ │ +000022f4 00000603 R_ARM_REL32 00000049 nowisdom_hook │ │ │ │ │ +000022f8 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ +0000231e 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +0000239a 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ 000023b0 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ -000023ce 0000740a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_rdft_d │ │ │ │ │ -000023d8 0000570a R_ARM_THM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ -000023e0 0000750a R_ARM_THM_CALL 00000000 fftw_ifree0 │ │ │ │ │ -000023e6 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ -000023f4 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -000023fc 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ -00002408 0000580a R_ARM_THM_CALL 00000000 fftw_the_planner │ │ │ │ │ -00002424 0000590a R_ARM_THM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ -00002430 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -00002434 00000c03 R_ARM_REL32 00000149 cost_hook │ │ │ │ │ -00002438 00000903 R_ARM_REL32 00000071 wisdom_ok_hook │ │ │ │ │ -0000243c 00000603 R_ARM_REL32 00000041 nowisdom_hook │ │ │ │ │ -00002440 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ -0000245c 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -000024c6 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ -000024f4 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -0000255e 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ -0000258c 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -000025f8 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ -00002620 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00002666 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ -00002688 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -000026d4 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ -000026f8 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00002764 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ -0000278c 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -000027d6 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ -000027f8 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00002848 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ -0000005c 0000411e R_ARM_THM_JUMP24 00000000 fftw_mpi_any_true │ │ │ │ │ -00002854 0000831e R_ARM_THM_JUMP24 00000000 fftw_execute_r2r │ │ │ │ │ -00002858 0000831e R_ARM_THM_JUMP24 00000000 fftw_execute_r2r │ │ │ │ │ -0000285c 0000831e R_ARM_THM_JUMP24 00000000 fftw_execute_r2r │ │ │ │ │ -00002860 0000831e R_ARM_THM_JUMP24 00000000 fftw_execute_r2r │ │ │ │ │ +000023c0 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +000023e2 00006c0a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_dft_d │ │ │ │ │ +000023ec 0000570a R_ARM_THM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ +000023f6 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +00002400 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ +0000241a 0000580a R_ARM_THM_CALL 00000000 fftw_the_planner │ │ │ │ │ +00002436 0000590a R_ARM_THM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ +00002444 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +00002448 00000c03 R_ARM_REL32 0000017d cost_hook │ │ │ │ │ +0000244c 00000903 R_ARM_REL32 0000007d wisdom_ok_hook │ │ │ │ │ +00002450 00000603 R_ARM_REL32 00000049 nowisdom_hook │ │ │ │ │ +00002454 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ +000024b8 0000730a R_ARM_THM_CALL 00000000 fftw_map_r2r_kind │ │ │ │ │ +000024c2 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000024da 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +000024ea 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +0000250a 0000740a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_rdft_d │ │ │ │ │ +00002516 0000570a R_ARM_THM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ +0000251e 0000750a R_ARM_THM_CALL 00000000 fftw_ifree0 │ │ │ │ │ +00002526 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +00002540 0000580a R_ARM_THM_CALL 00000000 fftw_the_planner │ │ │ │ │ +0000255c 0000590a R_ARM_THM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ +0000256c 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +00002570 00000c03 R_ARM_REL32 0000017d cost_hook │ │ │ │ │ +00002574 00000903 R_ARM_REL32 0000007d wisdom_ok_hook │ │ │ │ │ +00002578 00000603 R_ARM_REL32 00000049 nowisdom_hook │ │ │ │ │ +0000257c 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ +000025a6 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00002606 0000720a R_ARM_THM_CALL 00002459 fftw_mpi_plan_guru_r2r │ │ │ │ │ +0000260e 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ +00002656 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +000026be 0000720a R_ARM_THM_CALL 00002459 fftw_mpi_plan_guru_r2r │ │ │ │ │ +000026c6 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ +00002714 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00002776 0000730a R_ARM_THM_CALL 00000000 fftw_map_r2r_kind │ │ │ │ │ +00002780 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00002796 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +000027a6 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +000027c6 0000740a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_rdft_d │ │ │ │ │ +000027d2 0000570a R_ARM_THM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ +000027da 0000750a R_ARM_THM_CALL 00000000 fftw_ifree0 │ │ │ │ │ +000027e2 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +000027ec 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ +00002806 0000580a R_ARM_THM_CALL 00000000 fftw_the_planner │ │ │ │ │ +00002822 0000590a R_ARM_THM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ +00002830 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +00002834 00000c03 R_ARM_REL32 0000017d cost_hook │ │ │ │ │ +00002838 00000903 R_ARM_REL32 0000007d wisdom_ok_hook │ │ │ │ │ +0000283c 00000603 R_ARM_REL32 00000049 nowisdom_hook │ │ │ │ │ +00002840 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ +00002872 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +000028f2 0000730a R_ARM_THM_CALL 00000000 fftw_map_r2r_kind │ │ │ │ │ +000028fc 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00002912 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +00002922 0000440a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks_total │ │ │ │ │ +00002942 0000740a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_rdft_d │ │ │ │ │ +0000294e 0000570a R_ARM_THM_CALL 00000000 fftw_mkapiplan │ │ │ │ │ +00002956 0000750a R_ARM_THM_CALL 00000000 fftw_ifree0 │ │ │ │ │ +0000295e 0000490a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +00002968 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ +00002982 0000580a R_ARM_THM_CALL 00000000 fftw_the_planner │ │ │ │ │ +0000299e 0000590a R_ARM_THM_CALL 00000000 fftw_mpi_conf_standard │ │ │ │ │ +000029ac 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +000029b0 00000c03 R_ARM_REL32 0000017d cost_hook │ │ │ │ │ +000029b4 00000903 R_ARM_REL32 0000007d wisdom_ok_hook │ │ │ │ │ +000029b8 00000603 R_ARM_REL32 00000049 nowisdom_hook │ │ │ │ │ +000029bc 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ +000029e6 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00002a50 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ +00002a9a 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00002b04 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ +00002b4e 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00002bc0 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ +00002c06 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00002c4a 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ +00002c86 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00002cd0 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ +00002d12 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00002d84 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ +00002dca 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00002e14 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ +00002e52 00004d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00002ea2 0000520a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ +00000068 0000411e R_ARM_THM_JUMP24 00000000 fftw_mpi_any_true │ │ │ │ │ +00002ebc 0000831e R_ARM_THM_JUMP24 00000000 fftw_execute_r2r │ │ │ │ │ +00002ec0 0000831e R_ARM_THM_JUMP24 00000000 fftw_execute_r2r │ │ │ │ │ +00002ec4 0000831e R_ARM_THM_JUMP24 00000000 fftw_execute_r2r │ │ │ │ │ +00002ec8 0000831e R_ARM_THM_JUMP24 00000000 fftw_execute_r2r │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -2,300 +2,311 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ bogosity_hook(): │ │ │ │ │ ldr r3, [r1, #0] │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r3, [r3, #0] │ │ │ │ │ - subs r3, #4 │ │ │ │ │ + sub.w r3, r3, #4 │ │ │ │ │ cmp r3, #3 │ │ │ │ │ - bhi.n 2e │ │ │ │ │ + bhi.n 34 │ │ │ │ │ tbb [pc, r3] │ │ │ │ │ - .short 0x1002 │ │ │ │ │ - .short 0x1202 │ │ │ │ │ + .short 0x1102 │ │ │ │ │ + .short 0x1302 │ │ │ │ │ ldr r1, [r1, #28] │ │ │ │ │ cmp.w r1, #67108864 @ 0x4000000 │ │ │ │ │ - beq.n 2e │ │ │ │ │ + beq.n 34 │ │ │ │ │ sub.w r0, r4, #2 │ │ │ │ │ clz r0, r0 │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_any_true │ │ │ │ │ - cbnz r0, 3a │ │ │ │ │ + cbnz r0, 40 │ │ │ │ │ mov r0, r4 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ ldr r1, [r1, #24] │ │ │ │ │ - b.n 18 │ │ │ │ │ + b.n 1c │ │ │ │ │ ldr r1, [r1, #36] @ 0x24 │ │ │ │ │ - b.n 18 │ │ │ │ │ - movs r0, #2 │ │ │ │ │ + b.n 1c │ │ │ │ │ + mov.w r0, #2 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -00000040 : │ │ │ │ │ +00000048 : │ │ │ │ │ nowisdom_hook(): │ │ │ │ │ ldr r3, [r0, #0] │ │ │ │ │ ldr r3, [r3, #0] │ │ │ │ │ - subs r3, #4 │ │ │ │ │ + sub.w r3, r3, #4 │ │ │ │ │ cmp r3, #3 │ │ │ │ │ - bhi.n 68 │ │ │ │ │ + bhi.n 74 │ │ │ │ │ tbb [pc, r3] │ │ │ │ │ - .short 0x0902 │ │ │ │ │ - .short 0x0e02 │ │ │ │ │ + .word 0x0f020a02 │ │ │ │ │ ldr r1, [r0, #28] │ │ │ │ │ cmp.w r1, #67108864 @ 0x4000000 │ │ │ │ │ - beq.n 68 │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + beq.n 74 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_mpi_any_true │ │ │ │ │ ldr r1, [r0, #24] │ │ │ │ │ cmp.w r1, #67108864 @ 0x4000000 │ │ │ │ │ - bne.n 5a │ │ │ │ │ + bne.n 64 │ │ │ │ │ bx lr │ │ │ │ │ ldr r1, [r0, #36] @ 0x24 │ │ │ │ │ - b.n 54 │ │ │ │ │ + b.n 5e │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -00000070 : │ │ │ │ │ +0000007c : │ │ │ │ │ wisdom_ok_hook(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, r5, [sp, #-32]! │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ + strd r8, r9, [sp, #16] │ │ │ │ │ + strd sl, lr, [sp, #24] │ │ │ │ │ sub sp, #48 @ 0x30 │ │ │ │ │ add r3, sp, #8 │ │ │ │ │ stmia.w r3, {r1, r2} │ │ │ │ │ ldr r3, [r0, #0] │ │ │ │ │ ldr r3, [r3, #0] │ │ │ │ │ - subs r3, #4 │ │ │ │ │ + sub.w r3, r3, #4 │ │ │ │ │ cmp r3, #3 │ │ │ │ │ - bhi.n 11c │ │ │ │ │ + bhi.n 14e │ │ │ │ │ tbb [pc, r3] │ │ │ │ │ - .short 0x4502 │ │ │ │ │ - .short 0x4d02 │ │ │ │ │ + .word 0x58025102 │ │ │ │ │ ldr r4, [r0, #28] │ │ │ │ │ cmp.w r4, #67108864 @ 0x4000000 │ │ │ │ │ - beq.n 11c │ │ │ │ │ - ldr r3, [sp, #12] │ │ │ │ │ + beq.n 14e │ │ │ │ │ + ldrd r6, r3, [sp, #8] │ │ │ │ │ mov r1, r4 │ │ │ │ │ - ldr r6, [sp, #8] │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ ldrb.w r7, [sp, #10] │ │ │ │ │ ldrh.w r8, [sp, #10] │ │ │ │ │ ubfx r9, r3, #0, #20 │ │ │ │ │ ldrh.w r3, [sp, #14] │ │ │ │ │ ubfx r6, r6, #0, #20 │ │ │ │ │ ubfx r7, r7, #4, #3 │ │ │ │ │ ubfx r8, r8, #7, #9 │ │ │ │ │ ubfx sl, r3, #4, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_any_true │ │ │ │ │ mov r5, r0 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ - cbnz r5, 10e │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ + cbnz r5, 132 │ │ │ │ │ mov r3, r5 │ │ │ │ │ - movs r1, #5 │ │ │ │ │ - add r0, sp, #24 │ │ │ │ │ - str r4, [sp, #0] │ │ │ │ │ movw r2, #1030 @ 0x406 │ │ │ │ │ movt r2, #19456 @ 0x4c00 │ │ │ │ │ + mov.w r1, #5 │ │ │ │ │ + str r4, [sp, #0] │ │ │ │ │ + add r0, sp, #24 │ │ │ │ │ strd r6, r7, [sp, #24] │ │ │ │ │ strd r8, r9, [sp, #32] │ │ │ │ │ str.w sl, [sp, #40] @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Bcast │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ cmp r6, r3 │ │ │ │ │ - beq.n 128 │ │ │ │ │ - movs r3, #5 │ │ │ │ │ + beq.n 158 │ │ │ │ │ + mov.w r3, #5 │ │ │ │ │ movt r3, #22528 @ 0x5800 │ │ │ │ │ - movs r2, #1 │ │ │ │ │ - str r3, [sp, #0] │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ add r1, sp, #20 │ │ │ │ │ add r0, sp, #16 │ │ │ │ │ - str r4, [sp, #4] │ │ │ │ │ + strd r3, r4, [sp] │ │ │ │ │ movw r3, #1029 @ 0x405 │ │ │ │ │ movt r3, #19456 @ 0x4c00 │ │ │ │ │ str r5, [sp, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Allreduce │ │ │ │ │ ldr r0, [sp, #20] │ │ │ │ │ add sp, #48 @ 0x30 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldmia.w sp!, {sl, pc} │ │ │ │ │ ldr r4, [r0, #24] │ │ │ │ │ cmp.w r4, #67108864 @ 0x4000000 │ │ │ │ │ - bne.n 96 │ │ │ │ │ - movs r0, #1 │ │ │ │ │ - add sp, #48 @ 0x30 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ + bne.n b0 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ + b.n 132 │ │ │ │ │ ldr r4, [r0, #36] @ 0x24 │ │ │ │ │ - b.n 90 │ │ │ │ │ + b.n aa │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ cmp r7, r3 │ │ │ │ │ - bne.n ee │ │ │ │ │ + bne.n 10e │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ cmp r8, r3 │ │ │ │ │ - bne.n ee │ │ │ │ │ + bne.n 10e │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ cmp r9, r3 │ │ │ │ │ - itttt eq │ │ │ │ │ - ldreq r5, [sp, #40] @ 0x28 │ │ │ │ │ - subeq.w r5, r5, sl │ │ │ │ │ - clzeq r5, r5 │ │ │ │ │ - lsreq r5, r5, #5 │ │ │ │ │ - b.n ee │ │ │ │ │ + bne.n 10e │ │ │ │ │ + ldr r5, [sp, #40] @ 0x28 │ │ │ │ │ + sub.w r5, r5, sl │ │ │ │ │ + clz r5, r5 │ │ │ │ │ + mov.w r5, r5, lsr #5 │ │ │ │ │ + b.n 10e │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -00000148 : │ │ │ │ │ +0000017c : │ │ │ │ │ cost_hook(): │ │ │ │ │ ldr r3, [r0, #0] │ │ │ │ │ - push {lr} │ │ │ │ │ - ldr r3, [r3, #0] │ │ │ │ │ + str.w lr, [sp, #-4]! │ │ │ │ │ sub sp, #28 │ │ │ │ │ - subs r3, #4 │ │ │ │ │ + ldr r3, [r3, #0] │ │ │ │ │ vstr d0, [sp, #8] │ │ │ │ │ + sub.w r3, r3, #4 │ │ │ │ │ cmp r3, #3 │ │ │ │ │ - bhi.n 1a4 │ │ │ │ │ + bhi.n 1e2 │ │ │ │ │ tbb [pc, r3] │ │ │ │ │ - .short 0x1f02 │ │ │ │ │ - .short 0x2802 │ │ │ │ │ + .short 0x2202 │ │ │ │ │ + .short 0x2b02 │ │ │ │ │ ldr r2, [r0, #28] │ │ │ │ │ cmp.w r2, #67108864 @ 0x4000000 │ │ │ │ │ - beq.n 1a4 │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + beq.n 1e2 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ movt r3, #22528 @ 0x5800 │ │ │ │ │ - movs r0, #3 │ │ │ │ │ + mov.w r0, #3 │ │ │ │ │ movt r0, #22528 @ 0x5800 │ │ │ │ │ cmp r1, #0 │ │ │ │ │ it eq │ │ │ │ │ moveq r3, r0 │ │ │ │ │ add r1, sp, #16 │ │ │ │ │ - strd r3, r2, [sp] │ │ │ │ │ add r0, sp, #8 │ │ │ │ │ - movs r2, #1 │ │ │ │ │ + strd r3, r2, [sp] │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ movw r3, #2059 @ 0x80b │ │ │ │ │ movt r3, #19456 @ 0x4c00 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Allreduce │ │ │ │ │ vldr d0, [sp, #16] │ │ │ │ │ add sp, #28 │ │ │ │ │ ldr.w pc, [sp], #4 │ │ │ │ │ ldr r2, [r0, #24] │ │ │ │ │ cmp.w r2, #67108864 @ 0x4000000 │ │ │ │ │ - bne.n 16a │ │ │ │ │ + bne.n 1a2 │ │ │ │ │ vldr d0, [sp, #8] │ │ │ │ │ add sp, #28 │ │ │ │ │ ldr.w pc, [sp], #4 │ │ │ │ │ ldr r2, [r0, #36] @ 0x24 │ │ │ │ │ - b.n 164 │ │ │ │ │ - nop │ │ │ │ │ + b.n 19c │ │ │ │ │ │ │ │ │ │ -000001b4 : │ │ │ │ │ +000001f0 : │ │ │ │ │ local_size(): │ │ │ │ │ - stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + strd r3, r4, [sp, #-32]! │ │ │ │ │ + mov r4, r3 │ │ │ │ │ + strd r5, r6, [sp, #8] │ │ │ │ │ mov r6, r1 │ │ │ │ │ - mov r7, r0 │ │ │ │ │ mov r1, r2 │ │ │ │ │ + strd r7, r8, [sp, #16] │ │ │ │ │ + mov r7, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ ldr r5, [sp, #32] │ │ │ │ │ mov r8, r2 │ │ │ │ │ - mov r4, r3 │ │ │ │ │ + strd r9, lr, [sp, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ cmp r0, r7 │ │ │ │ │ - bgt.n 1f2 │ │ │ │ │ + bgt.n 24e │ │ │ │ │ ldr r3, [r6, #0] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 1ee │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + ble.n 23c │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ sub.w ip, r5, #4 │ │ │ │ │ - subs r3, r4, #4 │ │ │ │ │ + sub.w r3, r4, #4 │ │ │ │ │ mov r0, r2 │ │ │ │ │ str.w r0, [ip, #4]! │ │ │ │ │ - adds r2, #1 │ │ │ │ │ + add.w r2, r2, #1 │ │ │ │ │ str.w r0, [r3, #4]! │ │ │ │ │ ldr r1, [r6, #0] │ │ │ │ │ cmp r1, r2 │ │ │ │ │ - bgt.n 1de │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + bgt.n 22a │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + ldrd r5, r6, [sp, #8] │ │ │ │ │ + ldrd r7, r8, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldmia.w sp!, {r9, pc} │ │ │ │ │ mov r3, r5 │ │ │ │ │ mov r2, r7 │ │ │ │ │ mov r1, r8 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block_coords │ │ │ │ │ ldr r3, [r6, #0] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 1ee │ │ │ │ │ + ble.n 23c │ │ │ │ │ mov.w r8, r8, lsl #2 │ │ │ │ │ - subs r5, #4 │ │ │ │ │ + sub.w r5, r5, #4 │ │ │ │ │ + sub.w r4, r4, #4 │ │ │ │ │ + mov.w r9, #0 │ │ │ │ │ add.w r7, r6, r8 │ │ │ │ │ - subs r4, #4 │ │ │ │ │ rsb r8, r8, #4 │ │ │ │ │ - mov.w r9, #0 │ │ │ │ │ ldr.w r2, [r5, #4]! │ │ │ │ │ add.w r9, r9, #1 │ │ │ │ │ - ldr r1, [r7, #8] │ │ │ │ │ ldr.w r0, [r7, r8] │ │ │ │ │ - adds r7, #12 │ │ │ │ │ + add.w r7, r7, #12 │ │ │ │ │ + ldr.w r1, [r7, #-4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ str.w r0, [r4, #4]! │ │ │ │ │ ldr.w r2, [r7, #-4] │ │ │ │ │ ldr r3, [r5, #0] │ │ │ │ │ mul.w r3, r2, r3 │ │ │ │ │ str r3, [r5, #0] │ │ │ │ │ ldr r3, [r6, #0] │ │ │ │ │ cmp r9, r3 │ │ │ │ │ - blt.n 218 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ - nop │ │ │ │ │ + blt.n 278 │ │ │ │ │ + b.n 23c │ │ │ │ │ │ │ │ │ │ -00000248 : │ │ │ │ │ +000002a8 : │ │ │ │ │ default_sz.constprop.0(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - movs r0, #3 │ │ │ │ │ - sub sp, #12 │ │ │ │ │ + mov.w r0, #3 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ mov sl, r1 │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #12 │ │ │ │ │ str r2, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkdtensor │ │ │ │ │ mov r5, r0 │ │ │ │ │ - movs r0, #3 │ │ │ │ │ + mov.w r0, #3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkdtensor │ │ │ │ │ + add.w r1, r0, #4 │ │ │ │ │ add.w r2, r4, #24 │ │ │ │ │ - adds r1, r0, #4 │ │ │ │ │ add.w r3, r0, #28 │ │ │ │ │ mov r6, r0 │ │ │ │ │ cmp r4, r3 │ │ │ │ │ it cc │ │ │ │ │ cmpcc r1, r2 │ │ │ │ │ - bcc.w 3ce │ │ │ │ │ - ldrd r0, r2, [r4, #12] │ │ │ │ │ - ldr r3, [r4, #0] │ │ │ │ │ - ldrd r1, r7, [r4, #4] │ │ │ │ │ - ldr.w ip, [r4, #20] │ │ │ │ │ - strd r2, ip, [r6, #20] │ │ │ │ │ + bcc.w 45a │ │ │ │ │ + ldrd r3, r1, [r4] │ │ │ │ │ + ldrd r7, r0, [r4, #8] │ │ │ │ │ + ldrd r2, ip, [r4, #16] │ │ │ │ │ strd r3, r1, [r6, #4] │ │ │ │ │ strd r7, r0, [r6, #12] │ │ │ │ │ + strd r2, ip, [r6, #20] │ │ │ │ │ ldrd r0, r2, [r4, #24] │ │ │ │ │ ldr r3, [r4, #32] │ │ │ │ │ strd r0, r2, [r6, #28] │ │ │ │ │ - ldr r2, [sp, #4] │ │ │ │ │ str r3, [r6, #36] @ 0x24 │ │ │ │ │ ldr r0, [r4, #0] │ │ │ │ │ ldr r1, [r4, #12] │ │ │ │ │ + ldr r2, [sp, #4] │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ str r0, [r5, #4] │ │ │ │ │ str r1, [r5, #16] │ │ │ │ │ - cbz r2, 2b4 │ │ │ │ │ + cbz r2, 32c │ │ │ │ │ add.w r3, r3, r3, lsr #31 │ │ │ │ │ - asrs r3, r3, #1 │ │ │ │ │ - adds r3, #1 │ │ │ │ │ + mov.w r3, r3, asr #1 │ │ │ │ │ + add.w r3, r3, #1 │ │ │ │ │ ldr r2, [r4, #4] │ │ │ │ │ str r3, [r5, #28] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ it eq │ │ │ │ │ moveq r2, r0 │ │ │ │ │ str r2, [r5, #8] │ │ │ │ │ ldr r2, [r4, #8] │ │ │ │ │ @@ -315,191 +326,201 @@ │ │ │ │ │ str r2, [r5, #24] │ │ │ │ │ ldr r2, [r4, #28] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ it eq │ │ │ │ │ moveq r2, r3 │ │ │ │ │ ldr r3, [r4, #32] │ │ │ │ │ str r2, [r5, #32] │ │ │ │ │ - cbnz r3, 2ee │ │ │ │ │ + cbnz r3, 366 │ │ │ │ │ ldr r3, [r5, #28] │ │ │ │ │ add.w fp, r6, #8 │ │ │ │ │ add.w r9, r5, #8 │ │ │ │ │ - mov.w r8, #0 │ │ │ │ │ str r3, [r5, #36] @ 0x24 │ │ │ │ │ + mov.w r8, #0 │ │ │ │ │ mov r1, r8 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r7, r0 │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble.n 328 │ │ │ │ │ + ble.n 3a0 │ │ │ │ │ ldr.w r2, [fp] │ │ │ │ │ - cbz r2, 362 │ │ │ │ │ + cbz r2, 3ee │ │ │ │ │ ldr.w r2, [fp, #12] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - beq.n 38e │ │ │ │ │ + beq.n 41a │ │ │ │ │ ldr.w r2, [fp, #24] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - beq.n 3b8 │ │ │ │ │ + beq.n 444 │ │ │ │ │ add.w r2, r8, #1 │ │ │ │ │ add.w fp, fp, #4 │ │ │ │ │ + cmp r2, #2 │ │ │ │ │ add.w r9, r9, #4 │ │ │ │ │ mov.w r8, #1 │ │ │ │ │ - cmp r2, #2 │ │ │ │ │ - bne.n 2fc │ │ │ │ │ + bne.n 374 │ │ │ │ │ ldr r3, [sp, #4] │ │ │ │ │ - cbz r3, 344 │ │ │ │ │ + cbz r3, 3bc │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ str r3, [r5, #28] │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_canonical │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, #12 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [r5, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_default_block │ │ │ │ │ - str.w r0, [r9] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + str.w r0, [r9] │ │ │ │ │ ldr r0, [r5, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks │ │ │ │ │ mul.w r7, r0, r7 │ │ │ │ │ mov r0, sl │ │ │ │ │ mov r1, r7 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble.n 328 │ │ │ │ │ + ble.n 3a0 │ │ │ │ │ ldr.w r2, [fp, #12] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - bne.n 320 │ │ │ │ │ + bne.n 398 │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [r5, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_default_block │ │ │ │ │ - str.w r0, [r9, #12] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + str.w r0, [r9, #12] │ │ │ │ │ ldr r0, [r5, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks │ │ │ │ │ mul.w r1, r0, r7 │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble.n 328 │ │ │ │ │ + ble.n 3a0 │ │ │ │ │ ldr.w r2, [fp, #24] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - bne.n 328 │ │ │ │ │ + bne.n 3a0 │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [r5, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_default_block │ │ │ │ │ - str.w r0, [r9, #24] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + str.w r0, [r9, #24] │ │ │ │ │ ldr r0, [r5, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks │ │ │ │ │ - b.n 328 │ │ │ │ │ - ldrd r9, r8, [r4, #4] │ │ │ │ │ - ldrd lr, ip, [r4, #12] │ │ │ │ │ - ldrd r7, r0, [r4, #20] │ │ │ │ │ - ldr r1, [r4, #0] │ │ │ │ │ - ldrd r2, r3, [r4, #28] │ │ │ │ │ + b.n 3a0 │ │ │ │ │ + ldrd r1, r9, [r4] │ │ │ │ │ + ldrd r8, lr, [r4, #8] │ │ │ │ │ + ldrd ip, r7, [r4, #16] │ │ │ │ │ + ldrd r0, r2, [r4, #24] │ │ │ │ │ + ldr r3, [r4, #32] │ │ │ │ │ strd r1, r9, [r6, #4] │ │ │ │ │ strd r8, lr, [r6, #12] │ │ │ │ │ strd ip, r7, [r6, #20] │ │ │ │ │ - b.n 298 │ │ │ │ │ + b.n 30c │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -000003f0 : │ │ │ │ │ +0000047c : │ │ │ │ │ fftw_mpi_local_size_many_transposed.part.0.constprop.0(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r6, r0 │ │ │ │ │ - movs r0, #36 @ 0x24 │ │ │ │ │ - sub sp, #68 @ 0x44 │ │ │ │ │ + mov.w r0, #36 @ 0x24 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r8, r1 │ │ │ │ │ mov r7, r2 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #68 @ 0x44 │ │ │ │ │ mov fp, r3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_malloc_plain │ │ │ │ │ ldr r3, [r6, #0] │ │ │ │ │ - strd r3, r3, [r0, #4] │ │ │ │ │ mov r5, r0 │ │ │ │ │ - str r3, [r0, #0] │ │ │ │ │ + strd r3, r3, [r0] │ │ │ │ │ + str r3, [r0, #8] │ │ │ │ │ ldr r3, [r6, #4] │ │ │ │ │ - strd r3, r3, [r0, #16] │ │ │ │ │ - str r3, [r0, #12] │ │ │ │ │ + strd r3, r3, [r0, #12] │ │ │ │ │ + str r3, [r0, #20] │ │ │ │ │ ldr r3, [r6, #8] │ │ │ │ │ - strd r3, r3, [r0, #28] │ │ │ │ │ - str r3, [r0, #24] │ │ │ │ │ - movs r0, #48 @ 0x30 │ │ │ │ │ + strd r3, r3, [r0, #24] │ │ │ │ │ + str r3, [r0, #32] │ │ │ │ │ + mov.w r0, #48 @ 0x30 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_malloc_plain │ │ │ │ │ - movs r3, #0 │ │ │ │ │ - str r3, [r5, #4] │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ add r1, sp, #32 │ │ │ │ │ mov r4, r0 │ │ │ │ │ add.w r9, r0, #24 │ │ │ │ │ - ldr r2, [r6, #4] │ │ │ │ │ + str r3, [r5, #4] │ │ │ │ │ add.w sl, r0, #36 @ 0x24 │ │ │ │ │ + ldr r2, [r6, #4] │ │ │ │ │ cmp r2, r8 │ │ │ │ │ - ite gt │ │ │ │ │ + it gt │ │ │ │ │ strgt.w r8, [r5, #20] │ │ │ │ │ - strle r3, [r5, #8] │ │ │ │ │ add.w r8, r0, #12 │ │ │ │ │ mov r0, r7 │ │ │ │ │ + it le │ │ │ │ │ + strle r3, [r5, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ add r1, sp, #36 @ 0x24 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ - bl 248 │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + bl 2a8 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r6, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_is_block1d │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.n 4e6 │ │ │ │ │ - movs r7, #1 │ │ │ │ │ + bne.n 5a6 │ │ │ │ │ + mov.w r7, #1 │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ mov r3, r4 │ │ │ │ │ mov r1, r6 │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ str.w r8, [sp] │ │ │ │ │ - bl 1b4 │ │ │ │ │ + bl 1f0 │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ mov r3, r9 │ │ │ │ │ mov r1, r6 │ │ │ │ │ - movs r2, #1 │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ str.w sl, [sp] │ │ │ │ │ - bl 1b4 │ │ │ │ │ - ldr r2, [r4, #32] │ │ │ │ │ + bl 1f0 │ │ │ │ │ ldrd r3, r0, [r4] │ │ │ │ │ + ldrd r1, r2, [r4, #28] │ │ │ │ │ mul.w r0, r3, r0 │ │ │ │ │ - ldrd r3, r1, [r4, #24] │ │ │ │ │ + ldr r3, [r4, #24] │ │ │ │ │ mul.w r1, r3, r1 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ mul.w r1, r2, r1 │ │ │ │ │ mul.w r0, r3, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_imax │ │ │ │ │ mov r1, r0 │ │ │ │ │ @@ -507,105 +528,112 @@ │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_imax │ │ │ │ │ mov r7, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ ldr r3, [r4, #0] │ │ │ │ │ - str.w r3, [fp] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ + str.w r3, [fp] │ │ │ │ │ ldr r2, [r4, #12] │ │ │ │ │ + ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ str r2, [r3, #0] │ │ │ │ │ - ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ ldr r2, [r4, #28] │ │ │ │ │ + ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ str r2, [r3, #0] │ │ │ │ │ - ldr r3, [sp, #112] @ 0x70 │ │ │ │ │ ldr r2, [r4, #40] @ 0x28 │ │ │ │ │ + ldr r3, [sp, #112] @ 0x70 │ │ │ │ │ str r2, [r3, #0] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ifree │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ifree │ │ │ │ │ mov r0, r7 │ │ │ │ │ add sp, #68 @ 0x44 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_is_block1d │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n 468 │ │ │ │ │ - adds r3, r6, #4 │ │ │ │ │ + beq.n 510 │ │ │ │ │ + ldrd r2, r3, [r6, #4] │ │ │ │ │ add.w r7, r6, #16 │ │ │ │ │ - ldmia.w r3, {r0, r1, r2} │ │ │ │ │ - add r3, sp, #40 @ 0x28 │ │ │ │ │ - stmia.w r3, {r0, r1, r2} │ │ │ │ │ - add r3, sp, #64 @ 0x40 │ │ │ │ │ - ldmia.w r7, {r0, r1, r2} │ │ │ │ │ - stmdb r3, {r0, r1, r2} │ │ │ │ │ - movs r2, #0 │ │ │ │ │ - strd r2, r4, [sp, #12] │ │ │ │ │ + str r4, [sp, #16] │ │ │ │ │ mov r4, r6 │ │ │ │ │ + strd r2, r3, [sp, #40] @ 0x28 │ │ │ │ │ + ldr r3, [r6, #12] │ │ │ │ │ + str r3, [sp, #48] @ 0x30 │ │ │ │ │ + ldrd r2, r3, [r6, #16] │ │ │ │ │ + strd r2, r3, [sp, #52] @ 0x34 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ + ldr r3, [r7, #8] │ │ │ │ │ + str r2, [sp, #12] │ │ │ │ │ + str r3, [sp, #60] @ 0x3c │ │ │ │ │ ldrd r0, r1, [r4, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - beq.n 5be │ │ │ │ │ + beq.n 698 │ │ │ │ │ ldr r2, [sp, #12] │ │ │ │ │ - movs r3, #1 │ │ │ │ │ - adds r4, #12 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + add.w r4, r4, #12 │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ - adds r2, #1 │ │ │ │ │ + add.w r2, r2, #1 │ │ │ │ │ cmp r2, #2 │ │ │ │ │ - bne.n 514 │ │ │ │ │ + bne.n 5da │ │ │ │ │ ldr r4, [sp, #16] │ │ │ │ │ str r3, [sp, #16] │ │ │ │ │ ldr r0, [r6, #0] │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble.w 650 │ │ │ │ │ + ble.w 740 │ │ │ │ │ add.w r0, r0, r0, lsl #1 │ │ │ │ │ - movs r2, #0 │ │ │ │ │ - subs r0, #3 │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + sub.w r0, r0, #3 │ │ │ │ │ ldr.w r1, [r7, r2, lsl #2] │ │ │ │ │ - adds r2, #3 │ │ │ │ │ + add.w r2, r2, #3 │ │ │ │ │ cmp r0, r2 │ │ │ │ │ mul.w r3, r1, r3 │ │ │ │ │ - bne.n 544 │ │ │ │ │ - ldr r7, [r6, #4] │ │ │ │ │ - mov r0, r3 │ │ │ │ │ + bne.n 616 │ │ │ │ │ ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ + mov r0, r3 │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ + ldr r7, [r6, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_default_block │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r2, [sp, #32] │ │ │ │ │ mov r0, r3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ mul.w r1, r0, r7 │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_imax │ │ │ │ │ - str r0, [sp, #12] │ │ │ │ │ ldrd r1, r7, [r6] │ │ │ │ │ + str r0, [sp, #12] │ │ │ │ │ cmp r1, #2 │ │ │ │ │ - ble.n 598 │ │ │ │ │ + ble.n 672 │ │ │ │ │ add.w r1, r1, r1, lsl #1 │ │ │ │ │ - movs r3, #0 │ │ │ │ │ - subs r1, #6 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ add.w r0, r6, #28 │ │ │ │ │ + sub.w r1, r1, #6 │ │ │ │ │ ldr.w r2, [r0, r3, lsl #2] │ │ │ │ │ - adds r3, #3 │ │ │ │ │ + add.w r3, r3, #3 │ │ │ │ │ cmp r3, r1 │ │ │ │ │ mul.w r7, r2, r7 │ │ │ │ │ - bne.n 58a │ │ │ │ │ + bne.n 662 │ │ │ │ │ ldr r3, [r6, #16] │ │ │ │ │ mov r0, r7 │ │ │ │ │ ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ str r3, [sp, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_default_block │ │ │ │ │ ldr r2, [sp, #32] │ │ │ │ │ @@ -615,375 +643,389 @@ │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ ldr r3, [sp, #16] │ │ │ │ │ mul.w r1, r0, r3 │ │ │ │ │ ldr r0, [sp, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_imax │ │ │ │ │ mov r7, r0 │ │ │ │ │ - b.n 46a │ │ │ │ │ - ldr r1, [r4, #12] │ │ │ │ │ + b.n 514 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ + ldr r1, [r4, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - bne.n 520 │ │ │ │ │ - ldr r3, [sp, #12] │ │ │ │ │ - ldr r4, [sp, #16] │ │ │ │ │ - negs r3, r3 │ │ │ │ │ + bne.n 5e6 │ │ │ │ │ + ldrd r3, r4, [sp, #12] │ │ │ │ │ ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ + rsb r3, r3, #0 │ │ │ │ │ and.w r3, r3, #12 │ │ │ │ │ - str r0, [sp, #16] │ │ │ │ │ - adds r2, r6, r3 │ │ │ │ │ - str r2, [sp, #20] │ │ │ │ │ + add.w r2, r6, r3 │ │ │ │ │ + strd r0, r2, [sp, #16] │ │ │ │ │ ldr r0, [r2, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_default_block │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ ldr r2, [sp, #20] │ │ │ │ │ eor.w r1, r3, #1 │ │ │ │ │ - subs r3, #1 │ │ │ │ │ + add.w r3, r3, #4294967295 @ 0xffffffff │ │ │ │ │ and.w r3, r3, #12 │ │ │ │ │ str r1, [sp, #28] │ │ │ │ │ - adds r1, r6, r3 │ │ │ │ │ + add.w r1, r6, r3 │ │ │ │ │ str r0, [r2, #8] │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ + ldr r3, [r1, #4] │ │ │ │ │ str r1, [sp, #24] │ │ │ │ │ - movs r2, #0 │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ - ldr r3, [r1, #4] │ │ │ │ │ str r3, [r1, #8] │ │ │ │ │ mov r3, r4 │ │ │ │ │ mov r1, r6 │ │ │ │ │ str.w r8, [sp] │ │ │ │ │ - bl 1b4 │ │ │ │ │ - ldr r1, [r4, #8] │ │ │ │ │ + bl 1f0 │ │ │ │ │ ldrd r2, r3, [r4] │ │ │ │ │ + ldr r1, [r4, #8] │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ mul.w r3, r2, r3 │ │ │ │ │ mul.w r1, r3, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_imax │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ - mov.w ip, #12 │ │ │ │ │ str r0, [sp, #16] │ │ │ │ │ add r0, sp, #64 @ 0x40 │ │ │ │ │ - mla r2, ip, r3, r0 │ │ │ │ │ - ldr r3, [sp, #20] │ │ │ │ │ - subs r2, #24 │ │ │ │ │ - adds r3, #4 │ │ │ │ │ - ldmia r2, {r0, r1, r2} │ │ │ │ │ - stmia.w r3, {r0, r1, r2} │ │ │ │ │ - ldr r3, [sp, #28] │ │ │ │ │ - add r2, sp, #64 @ 0x40 │ │ │ │ │ - ldr r1, [sp, #24] │ │ │ │ │ - mla r2, ip, r3, r2 │ │ │ │ │ - adds r3, r1, #4 │ │ │ │ │ - subs r2, #24 │ │ │ │ │ - ldmia r2, {r0, r1, r2} │ │ │ │ │ - stmia.w r3, {r0, r1, r2} │ │ │ │ │ - b.n 532 │ │ │ │ │ - movs r3, #1 │ │ │ │ │ - b.n 552 │ │ │ │ │ + ldr r2, [sp, #20] │ │ │ │ │ + add.w r3, r3, r3, lsl #1 │ │ │ │ │ + add.w r3, r0, r3, lsl #2 │ │ │ │ │ + ldrd r0, r1, [r3, #-24] │ │ │ │ │ + ldr.w r3, [r3, #-16] │ │ │ │ │ + strd r0, r1, [r2, #4] │ │ │ │ │ + add r0, sp, #64 @ 0x40 │ │ │ │ │ + str r3, [r2, #12] │ │ │ │ │ + ldrd r2, r3, [sp, #24] │ │ │ │ │ + add.w r3, r3, r3, lsl #1 │ │ │ │ │ + add.w r3, r0, r3, lsl #2 │ │ │ │ │ + ldrd r0, r1, [r3, #-24] │ │ │ │ │ + ldr.w r3, [r3, #-16] │ │ │ │ │ + strd r0, r1, [r2, #4] │ │ │ │ │ + str r3, [r2, #12] │ │ │ │ │ + b.n 5fe │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + b.n 626 │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -00000654 : │ │ │ │ │ +00000748 : │ │ │ │ │ default_sz.constprop.1(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r6, r0 │ │ │ │ │ - movs r0, #2 │ │ │ │ │ - sub sp, #12 │ │ │ │ │ - mov r9, r1 │ │ │ │ │ + mov.w r0, #2 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r7, r2 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + mov r9, r1 │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #12 │ │ │ │ │ str r2, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkdtensor │ │ │ │ │ mov r4, r0 │ │ │ │ │ - movs r0, #2 │ │ │ │ │ + mov.w r0, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkdtensor │ │ │ │ │ - ldr r2, [r6, #0] │ │ │ │ │ - ldr r1, [r6, #4] │ │ │ │ │ + ldrd r2, r1, [r6] │ │ │ │ │ mov r5, r0 │ │ │ │ │ - ldr.w lr, [r6, #8] │ │ │ │ │ - ldr r3, [r6, #12] │ │ │ │ │ - str r2, [r0, #4] │ │ │ │ │ - str r1, [r0, #8] │ │ │ │ │ - str.w lr, [r0, #12] │ │ │ │ │ - str r3, [r0, #16] │ │ │ │ │ + ldrd lr, r3, [r6, #8] │ │ │ │ │ + strd r2, r1, [r0, #4] │ │ │ │ │ + strd lr, r3, [r0, #12] │ │ │ │ │ ldrd ip, r0, [r6, #16] │ │ │ │ │ mov r8, r0 │ │ │ │ │ mov sl, ip │ │ │ │ │ - cbz r7, 698 │ │ │ │ │ + cbz r7, 7a0 │ │ │ │ │ add.w r3, r3, r3, lsr #31 │ │ │ │ │ - asrs r3, r3, #1 │ │ │ │ │ - adds r3, #1 │ │ │ │ │ - strd ip, r0, [r5, #20] │ │ │ │ │ + mov.w r3, r3, asr #1 │ │ │ │ │ + add.w r3, r3, #1 │ │ │ │ │ cmp r1, #0 │ │ │ │ │ it eq │ │ │ │ │ moveq r1, r2 │ │ │ │ │ - str r2, [r4, #4] │ │ │ │ │ + strd ip, r0, [r5, #20] │ │ │ │ │ + strd r2, r1, [r4, #4] │ │ │ │ │ cmp.w lr, #0 │ │ │ │ │ it ne │ │ │ │ │ movne r2, lr │ │ │ │ │ cmp.w ip, #0 │ │ │ │ │ - str r3, [r4, #16] │ │ │ │ │ it eq │ │ │ │ │ moveq sl, r3 │ │ │ │ │ - str r1, [r4, #8] │ │ │ │ │ str r2, [r4, #12] │ │ │ │ │ + str r3, [r4, #16] │ │ │ │ │ str.w sl, [r4, #20] │ │ │ │ │ - cbnz r0, 6c2 │ │ │ │ │ + cbnz r0, 7ca │ │ │ │ │ mov r8, r3 │ │ │ │ │ - str.w r8, [r4, #24] │ │ │ │ │ add.w fp, r5, #8 │ │ │ │ │ - add.w r8, r4, #8 │ │ │ │ │ mov.w sl, #0 │ │ │ │ │ + str.w r8, [r4, #24] │ │ │ │ │ + add.w r8, r4, #8 │ │ │ │ │ mov r1, sl │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r7, r0 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble.n 6f4 │ │ │ │ │ + ble.n 7fe │ │ │ │ │ ldr.w r2, [fp] │ │ │ │ │ - cbz r2, 72e │ │ │ │ │ + cbz r2, 84c │ │ │ │ │ ldr.w r2, [fp, #12] │ │ │ │ │ - cbz r2, 758 │ │ │ │ │ + cmp r2, #0 │ │ │ │ │ + beq.n 876 │ │ │ │ │ add.w r2, sl, #1 │ │ │ │ │ add.w fp, fp, #4 │ │ │ │ │ + cmp r2, #2 │ │ │ │ │ add.w r8, r8, #4 │ │ │ │ │ mov.w sl, #1 │ │ │ │ │ - cmp r2, #2 │ │ │ │ │ - bne.n 6d2 │ │ │ │ │ + bne.n 7da │ │ │ │ │ ldr r3, [sp, #4] │ │ │ │ │ - cbz r3, 710 │ │ │ │ │ + cbz r3, 81a │ │ │ │ │ ldr r3, [r6, #12] │ │ │ │ │ str r3, [r4, #16] │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_canonical │ │ │ │ │ mov r5, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ mov r0, r5 │ │ │ │ │ add sp, #12 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_default_block │ │ │ │ │ - str.w r0, [r8] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + str.w r0, [r8] │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks │ │ │ │ │ mul.w r1, r7, r0 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble.n 6f4 │ │ │ │ │ + ble.n 7fe │ │ │ │ │ ldr.w r2, [fp, #12] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - bne.n 6f4 │ │ │ │ │ + bne.n 7fe │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [r4, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_default_block │ │ │ │ │ - str.w r0, [r8, #12] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + str.w r0, [r8, #12] │ │ │ │ │ ldr r0, [r4, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks │ │ │ │ │ - b.n 6f4 │ │ │ │ │ - nop │ │ │ │ │ + b.n 7fe │ │ │ │ │ │ │ │ │ │ -00000770 : │ │ │ │ │ +0000088c : │ │ │ │ │ fftw_mpi_local_size_many_transposed.part.0.constprop.1(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r6, r0 │ │ │ │ │ - movs r0, #24 │ │ │ │ │ - sub sp, #68 @ 0x44 │ │ │ │ │ + mov.w r0, #24 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r8, r1 │ │ │ │ │ mov r7, r2 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ mov r9, r3 │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #68 @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_malloc_plain │ │ │ │ │ ldr r3, [r6, #0] │ │ │ │ │ - strd r3, r3, [r0, #4] │ │ │ │ │ mov r5, r0 │ │ │ │ │ - str r3, [r0, #0] │ │ │ │ │ + strd r3, r3, [r0] │ │ │ │ │ + str r3, [r0, #8] │ │ │ │ │ ldr r3, [r6, #4] │ │ │ │ │ - strd r3, r3, [r0, #16] │ │ │ │ │ - str r3, [r0, #12] │ │ │ │ │ - movs r0, #32 │ │ │ │ │ + strd r3, r3, [r0, #12] │ │ │ │ │ + str r3, [r0, #20] │ │ │ │ │ + mov.w r0, #32 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_malloc_plain │ │ │ │ │ - movs r3, #0 │ │ │ │ │ - str r3, [r5, #4] │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ add r1, sp, #32 │ │ │ │ │ mov r4, r0 │ │ │ │ │ add.w sl, r0, #24 │ │ │ │ │ + str r3, [r5, #4] │ │ │ │ │ ldr r2, [r6, #4] │ │ │ │ │ cmp r2, r8 │ │ │ │ │ - ite gt │ │ │ │ │ - strgt.w r8, [r5, #20] │ │ │ │ │ + it le │ │ │ │ │ strle r3, [r5, #8] │ │ │ │ │ - add.w r8, r0, #8 │ │ │ │ │ add.w r3, r0, #16 │ │ │ │ │ + it gt │ │ │ │ │ + strgt.w r8, [r5, #20] │ │ │ │ │ + add.w r8, r0, #8 │ │ │ │ │ mov r0, r7 │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ add r1, sp, #36 @ 0x24 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ - bl 654 │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + bl 748 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r6, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_is_block1d │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.n 854 │ │ │ │ │ - movs r7, #1 │ │ │ │ │ + bne.n 9a4 │ │ │ │ │ + mov.w r7, #1 │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ mov r3, r4 │ │ │ │ │ mov r1, r6 │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ str.w r8, [sp] │ │ │ │ │ - bl 1b4 │ │ │ │ │ + bl 1f0 │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ - ldr r0, [sp, #32] │ │ │ │ │ mov r1, r6 │ │ │ │ │ - movs r2, #1 │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ str.w sl, [sp] │ │ │ │ │ - bl 1b4 │ │ │ │ │ - ldrd r1, r2, [r4, #16] │ │ │ │ │ + ldr r0, [sp, #32] │ │ │ │ │ + bl 1f0 │ │ │ │ │ ldrd r3, r0, [r4] │ │ │ │ │ - mul.w r1, r2, r1 │ │ │ │ │ + ldrd r1, r2, [r4, #16] │ │ │ │ │ mul.w r0, r3, r0 │ │ │ │ │ + mul.w r1, r2, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_imax │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_imax │ │ │ │ │ mov r7, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ ldr r3, [r4, #0] │ │ │ │ │ - str.w r3, [r9] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ + str.w r3, [r9] │ │ │ │ │ ldr r2, [r4, #8] │ │ │ │ │ + ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ str r2, [r3, #0] │ │ │ │ │ - ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ ldr r2, [r4, #20] │ │ │ │ │ + ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ str r2, [r3, #0] │ │ │ │ │ - ldr r3, [sp, #112] @ 0x70 │ │ │ │ │ ldr r2, [r4, #28] │ │ │ │ │ + ldr r3, [sp, #112] @ 0x70 │ │ │ │ │ str r2, [r3, #0] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ifree │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ifree │ │ │ │ │ mov r0, r7 │ │ │ │ │ add sp, #68 @ 0x44 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_is_block1d │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n 7e2 │ │ │ │ │ - adds r3, r6, #4 │ │ │ │ │ + beq.n 91a │ │ │ │ │ + ldrd r2, r3, [r6, #4] │ │ │ │ │ add.w r7, r6, #16 │ │ │ │ │ mov.w fp, #0 │ │ │ │ │ str r4, [sp, #16] │ │ │ │ │ mov r4, r6 │ │ │ │ │ - ldmia.w r3, {r0, r1, r2} │ │ │ │ │ - add r3, sp, #40 @ 0x28 │ │ │ │ │ - stmia.w r3, {r0, r1, r2} │ │ │ │ │ - add r3, sp, #64 @ 0x40 │ │ │ │ │ - ldmia.w r7, {r0, r1, r2} │ │ │ │ │ - stmdb r3, {r0, r1, r2} │ │ │ │ │ + strd r2, r3, [sp, #40] @ 0x28 │ │ │ │ │ + ldr r3, [r6, #12] │ │ │ │ │ + str r3, [sp, #48] @ 0x30 │ │ │ │ │ + ldrd r2, r3, [r6, #16] │ │ │ │ │ + strd r2, r3, [sp, #52] @ 0x34 │ │ │ │ │ + ldr r3, [r6, #24] │ │ │ │ │ + str r3, [sp, #60] @ 0x3c │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r7, r6 │ │ │ │ │ mov r6, r5 │ │ │ │ │ mov r5, fp │ │ │ │ │ mov fp, r3 │ │ │ │ │ ldrd r0, r1, [r4, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - beq.n 93c │ │ │ │ │ - adds r2, r5, #1 │ │ │ │ │ - adds r4, #12 │ │ │ │ │ - movs r5, #1 │ │ │ │ │ + beq.n aa2 │ │ │ │ │ + add.w r2, r5, #1 │ │ │ │ │ + add.w r4, r4, #12 │ │ │ │ │ cmp r2, #2 │ │ │ │ │ - bne.n 88c │ │ │ │ │ + mov.w r5, #1 │ │ │ │ │ + bne.n 9e0 │ │ │ │ │ mov r3, fp │ │ │ │ │ mov fp, r5 │ │ │ │ │ + ldr r4, [sp, #16] │ │ │ │ │ mov r5, r6 │ │ │ │ │ mov r6, r7 │ │ │ │ │ mov r7, r3 │ │ │ │ │ - ldr r4, [sp, #16] │ │ │ │ │ str.w fp, [sp, #16] │ │ │ │ │ ldr r1, [r6, #0] │ │ │ │ │ cmp r1, #1 │ │ │ │ │ - ble.w 9d0 │ │ │ │ │ + ble.w b48 │ │ │ │ │ add.w r1, r1, r1, lsl #1 │ │ │ │ │ - movs r3, #0 │ │ │ │ │ - subs r1, #3 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ mov.w fp, #1 │ │ │ │ │ + sub.w r1, r1, #3 │ │ │ │ │ ldr.w r2, [r7, r3, lsl #2] │ │ │ │ │ - adds r3, #3 │ │ │ │ │ + add.w r3, r3, #3 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ mul.w fp, r2, fp │ │ │ │ │ - bne.n 8c6 │ │ │ │ │ + bne.n a24 │ │ │ │ │ ldr r7, [r6, #4] │ │ │ │ │ mov r0, fp │ │ │ │ │ ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_default_block │ │ │ │ │ ldr r2, [sp, #32] │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ mul.w r1, r0, r7 │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_imax │ │ │ │ │ - mov fp, r0 │ │ │ │ │ ldrd r1, r7, [r6] │ │ │ │ │ + mov fp, r0 │ │ │ │ │ cmp r1, #2 │ │ │ │ │ - ble.n 916 │ │ │ │ │ + ble.n a7c │ │ │ │ │ add.w r1, r1, r1, lsl #1 │ │ │ │ │ - movs r3, #0 │ │ │ │ │ - subs r1, #6 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ add.w r0, r6, #28 │ │ │ │ │ + sub.w r1, r1, #6 │ │ │ │ │ ldr.w r2, [r0, r3, lsl #2] │ │ │ │ │ - adds r3, #3 │ │ │ │ │ + add.w r3, r3, #3 │ │ │ │ │ cmp r3, r1 │ │ │ │ │ mul.w r7, r2, r7 │ │ │ │ │ - bne.n 908 │ │ │ │ │ + bne.n a6c │ │ │ │ │ ldr r3, [r6, #16] │ │ │ │ │ mov r0, r7 │ │ │ │ │ ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ str r3, [sp, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_default_block │ │ │ │ │ ldr r2, [sp, #32] │ │ │ │ │ @@ -993,414 +1035,431 @@ │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ ldr r3, [sp, #16] │ │ │ │ │ mul.w r1, r0, r3 │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_imax │ │ │ │ │ mov r7, r0 │ │ │ │ │ - b.n 7e4 │ │ │ │ │ - ldr r1, [r4, #12] │ │ │ │ │ + b.n 91e │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ + ldr r1, [r4, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - bne.n 898 │ │ │ │ │ + bne.n 9ec │ │ │ │ │ mov r3, fp │ │ │ │ │ mov fp, r5 │ │ │ │ │ + ldr r4, [sp, #16] │ │ │ │ │ mov r5, r6 │ │ │ │ │ mov r6, r7 │ │ │ │ │ mov r7, r3 │ │ │ │ │ rsb r3, fp, #0 │ │ │ │ │ - and.w r3, r3, #12 │ │ │ │ │ - ldr r4, [sp, #16] │ │ │ │ │ - adds r3, r6, r3 │ │ │ │ │ ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ - str r0, [sp, #16] │ │ │ │ │ - str r3, [sp, #20] │ │ │ │ │ - ldr r0, [r3, #4] │ │ │ │ │ + and.w r3, r3, #12 │ │ │ │ │ + add.w r2, r6, r3 │ │ │ │ │ + strd r0, r2, [sp, #16] │ │ │ │ │ + ldr r0, [r2, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_default_block │ │ │ │ │ - ldr r3, [sp, #20] │ │ │ │ │ - eor.w r2, fp, #1 │ │ │ │ │ - str r2, [sp, #28] │ │ │ │ │ - mov r1, r6 │ │ │ │ │ - str r0, [r3, #8] │ │ │ │ │ + ldr r2, [sp, #20] │ │ │ │ │ + eor.w r3, fp, #1 │ │ │ │ │ + str r3, [sp, #28] │ │ │ │ │ add.w r3, fp, #4294967295 @ 0xffffffff │ │ │ │ │ and.w r3, r3, #12 │ │ │ │ │ + add.w r1, r6, r3 │ │ │ │ │ + str r0, [r2, #8] │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ + ldr r3, [r1, #4] │ │ │ │ │ + str r1, [sp, #24] │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ - adds r2, r6, r3 │ │ │ │ │ - str r2, [sp, #24] │ │ │ │ │ - ldr r3, [r2, #4] │ │ │ │ │ - str r3, [r2, #8] │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + str r3, [r1, #8] │ │ │ │ │ mov r3, r4 │ │ │ │ │ + mov r1, r6 │ │ │ │ │ str.w r8, [sp] │ │ │ │ │ - bl 1b4 │ │ │ │ │ - ldr r0, [sp, #16] │ │ │ │ │ + bl 1f0 │ │ │ │ │ ldrd r1, r3, [r4] │ │ │ │ │ + ldr r0, [sp, #16] │ │ │ │ │ mul.w r1, r3, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_imax │ │ │ │ │ - mov.w ip, #12 │ │ │ │ │ + add.w r3, fp, fp, lsl #1 │ │ │ │ │ str r0, [sp, #16] │ │ │ │ │ add r0, sp, #64 @ 0x40 │ │ │ │ │ - ldr r3, [sp, #20] │ │ │ │ │ - mla r2, ip, fp, r0 │ │ │ │ │ - adds r3, #4 │ │ │ │ │ - subs r2, #24 │ │ │ │ │ - ldmia r2, {r0, r1, r2} │ │ │ │ │ - stmia.w r3, {r0, r1, r2} │ │ │ │ │ - ldr r1, [sp, #28] │ │ │ │ │ + ldr r2, [sp, #20] │ │ │ │ │ + add.w r3, r0, r3, lsl #2 │ │ │ │ │ + ldrd r0, r1, [r3, #-24] │ │ │ │ │ + ldr.w r3, [r3, #-16] │ │ │ │ │ + strd r0, r1, [r2, #4] │ │ │ │ │ add r0, sp, #64 @ 0x40 │ │ │ │ │ - ldr r3, [sp, #24] │ │ │ │ │ - adds r3, #4 │ │ │ │ │ - mla r2, ip, r1, r0 │ │ │ │ │ - subs r2, #24 │ │ │ │ │ - ldmia r2, {r0, r1, r2} │ │ │ │ │ - stmia.w r3, {r0, r1, r2} │ │ │ │ │ - b.n 8b2 │ │ │ │ │ + str r3, [r2, #12] │ │ │ │ │ + ldrd r2, r3, [sp, #24] │ │ │ │ │ + add.w r3, r3, r3, lsl #1 │ │ │ │ │ + add.w r3, r0, r3, lsl #2 │ │ │ │ │ + ldrd r0, r1, [r3, #-24] │ │ │ │ │ + ldr.w r3, [r3, #-16] │ │ │ │ │ + strd r0, r1, [r2, #4] │ │ │ │ │ + str r3, [r2, #12] │ │ │ │ │ + b.n a0c │ │ │ │ │ mov.w fp, #1 │ │ │ │ │ - b.n 8d4 │ │ │ │ │ + b.n a34 │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -000009d8 : │ │ │ │ │ +00000b50 : │ │ │ │ │ default_sz.constprop.2(): │ │ │ │ │ - stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + strd r3, r4, [sp, #-32]! │ │ │ │ │ + strd r5, r6, [sp, #8] │ │ │ │ │ mov r5, r0 │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ + strd r7, r8, [sp, #16] │ │ │ │ │ mov r8, r1 │ │ │ │ │ + mov.w r7, #0 │ │ │ │ │ + strd r9, lr, [sp, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkdtensor │ │ │ │ │ mov r4, r0 │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkdtensor │ │ │ │ │ - movs r7, #0 │ │ │ │ │ ldrd r3, r2, [r5] │ │ │ │ │ - strd r3, r2, [r0, #4] │ │ │ │ │ mov r6, r0 │ │ │ │ │ add.w r9, r0, #8 │ │ │ │ │ - ldr r1, [r5, #8] │ │ │ │ │ - add.w r5, r4, #8 │ │ │ │ │ - str r1, [r0, #12] │ │ │ │ │ + strd r3, r2, [r0, #4] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ it eq │ │ │ │ │ moveq r2, r3 │ │ │ │ │ - str r3, [r4, #4] │ │ │ │ │ + ldr r1, [r5, #8] │ │ │ │ │ + add.w r5, r4, #8 │ │ │ │ │ + str r1, [r0, #12] │ │ │ │ │ + strd r3, r2, [r4, #4] │ │ │ │ │ cmp r1, #0 │ │ │ │ │ it ne │ │ │ │ │ movne r3, r1 │ │ │ │ │ - str r2, [r4, #8] │ │ │ │ │ str r3, [r4, #12] │ │ │ │ │ mov r1, r7 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ - mov r1, r0 │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble.n a34 │ │ │ │ │ + mov r1, r0 │ │ │ │ │ + ble.n bbe │ │ │ │ │ ldr.w r3, [r9] │ │ │ │ │ - cbz r3, a6c │ │ │ │ │ - adds r3, r7, #1 │ │ │ │ │ - adds r5, #4 │ │ │ │ │ - add.w r9, r9, #4 │ │ │ │ │ - movs r7, #1 │ │ │ │ │ + cbz r3, c0c │ │ │ │ │ + add.w r3, r7, #1 │ │ │ │ │ + add.w r5, r5, #4 │ │ │ │ │ cmp r3, #2 │ │ │ │ │ - bne.n a18 │ │ │ │ │ + add.w r9, r9, #4 │ │ │ │ │ + mov.w r7, #1 │ │ │ │ │ + bne.n ba2 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_is_prime │ │ │ │ │ - cbz r0, a50 │ │ │ │ │ + cbz r0, be0 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ strd r3, r3, [r4, #8] │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_canonical │ │ │ │ │ mov r5, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ mov r0, r5 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r5, r6, [sp, #8] │ │ │ │ │ + ldrd r7, r8, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldmia.w sp!, {r9, pc} │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_default_block │ │ │ │ │ - str r0, [r5, #0] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + str r0, [r5, #0] │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks │ │ │ │ │ - b.n a34 │ │ │ │ │ + b.n bbe │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -00000a80 : │ │ │ │ │ +00000c20 : │ │ │ │ │ fftw_mpi_local_size_guru.part.0.constprop.0(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r2 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r6, r0 │ │ │ │ │ - sub sp, #44 @ 0x2c │ │ │ │ │ - mov r0, r2 │ │ │ │ │ mov r5, r1 │ │ │ │ │ - add r1, sp, #16 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + mov r0, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #44 @ 0x2c │ │ │ │ │ + add r1, sp, #16 │ │ │ │ │ ldr.w r9, [sp, #84] @ 0x54 │ │ │ │ │ ldrd sl, r8, [sp, #92] @ 0x5c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ add r1, sp, #20 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ mov r0, r6 │ │ │ │ │ - bl 9d8 │ │ │ │ │ + bl b50 │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ mov r4, r0 │ │ │ │ │ cmp r5, r3 │ │ │ │ │ - blt.n abc │ │ │ │ │ - movs.w r6, r8, lsr #27 │ │ │ │ │ - beq.n b68 │ │ │ │ │ + blt.n c6c │ │ │ │ │ + movs.w fp, r8, lsr #27 │ │ │ │ │ + beq.n d2e │ │ │ │ │ add.w r2, sl, #1 │ │ │ │ │ bics.w r2, r2, #2 │ │ │ │ │ - bne.n b54 │ │ │ │ │ + bne.n d1a │ │ │ │ │ add r2, sp, #32 │ │ │ │ │ + strd r8, sl, [sp] │ │ │ │ │ + mov.w sl, #1 │ │ │ │ │ str r2, [sp, #12] │ │ │ │ │ add r2, sp, #24 │ │ │ │ │ - strd sl, r2, [sp, #4] │ │ │ │ │ - adds r2, r4, #4 │ │ │ │ │ - str.w r8, [sp] │ │ │ │ │ - mov.w sl, #1 │ │ │ │ │ + str r2, [sp, #8] │ │ │ │ │ + add.w r2, r4, #4 │ │ │ │ │ ldmia r2, {r0, r1, r2} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_choose_radix │ │ │ │ │ mov r6, r0 │ │ │ │ │ - cbz r0, b10 │ │ │ │ │ + cbz r0, cc0 │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ ldr r1, [sp, #24] │ │ │ │ │ - mov fp, r0 │ │ │ │ │ tst.w r8, #134217728 @ 0x8000000 │ │ │ │ │ + mov fp, r0 │ │ │ │ │ mul.w r1, r1, r0 │ │ │ │ │ - beq.n bd8 │ │ │ │ │ + beq.n d9e │ │ │ │ │ mov.w sl, #1 │ │ │ │ │ str r1, [r4, #8] │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ tst.w r8, #268435456 @ 0x10000000 │ │ │ │ │ mul.w r1, r3, r6 │ │ │ │ │ it ne │ │ │ │ │ strne r1, [r4, #12] │ │ │ │ │ - beq.n bc6 │ │ │ │ │ - ldr r3, [sp, #80] @ 0x50 │ │ │ │ │ - mov r1, r4 │ │ │ │ │ + beq.n d8c │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + mov r1, r4 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ + ldr r3, [sp, #80] @ 0x50 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ mov r3, r7 │ │ │ │ │ - bl 1b4 │ │ │ │ │ - ldr r3, [sp, #88] @ 0x58 │ │ │ │ │ - movs r2, #1 │ │ │ │ │ + bl 1f0 │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ mov r1, r4 │ │ │ │ │ + ldr r3, [sp, #88] @ 0x58 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ mov r3, r9 │ │ │ │ │ - bl 1b4 │ │ │ │ │ + bl 1f0 │ │ │ │ │ ldr.w r1, [r9] │ │ │ │ │ ldr r0, [r7, #0] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_imax │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_imax │ │ │ │ │ mov r6, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ mul.w r0, r6, r5 │ │ │ │ │ add sp, #44 @ 0x2c │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ - ldr r2, [pc, #148] @ (bec ) │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + ldr r2, [pc, #152] @ (db4 ) │ │ │ │ │ movw r1, #323 @ 0x143 │ │ │ │ │ - ldr r0, [pc, #148] @ (bf0 ) │ │ │ │ │ + ldr r0, [pc, #148] @ (db8 ) │ │ │ │ │ add r2, pc │ │ │ │ │ add r0, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_assertion_failed │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ - b.n ac6 │ │ │ │ │ - movs r0, #2 │ │ │ │ │ + b.n c76 │ │ │ │ │ + mov.w r0, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkdtensor │ │ │ │ │ - adds r2, r4, #4 │ │ │ │ │ - adds r3, r0, #4 │ │ │ │ │ - mov r8, r0 │ │ │ │ │ - ldmia r2, {r0, r1, r2} │ │ │ │ │ - stmia.w r3, {r0, r1, r2} │ │ │ │ │ + ldrd r2, r3, [r4, #4] │ │ │ │ │ + mov r6, r0 │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ - ldr r3, [r4, #4] │ │ │ │ │ + strd r2, r3, [r0, #4] │ │ │ │ │ mov r0, r5 │ │ │ │ │ - str.w r3, [r8, #8] │ │ │ │ │ - str.w r5, [r8, #24] │ │ │ │ │ - str.w r5, [r8, #16] │ │ │ │ │ + ldr r3, [r4, #12] │ │ │ │ │ + str r3, [r6, #12] │ │ │ │ │ + ldr r3, [r4, #4] │ │ │ │ │ + str r3, [r6, #8] │ │ │ │ │ + str r5, [r6, #16] │ │ │ │ │ + str r5, [r6, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_default_block │ │ │ │ │ - mov r2, r6 │ │ │ │ │ - mov r1, r8 │ │ │ │ │ - str.w r0, [r8, #20] │ │ │ │ │ add r3, sp, #32 │ │ │ │ │ + mov r2, fp │ │ │ │ │ + str r0, [r6, #20] │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ + mov r1, r6 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ add r3, sp, #24 │ │ │ │ │ - bl 1b4 │ │ │ │ │ - mov r0, r8 │ │ │ │ │ + bl 1f0 │ │ │ │ │ + mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ - mov r1, r5 │ │ │ │ │ ldrd r0, r3, [sp, #24] │ │ │ │ │ + mov r1, r5 │ │ │ │ │ mla r0, r3, r0, r5 │ │ │ │ │ - subs r0, #1 │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ mov r1, r0 │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_imax │ │ │ │ │ mov sl, r0 │ │ │ │ │ - b.n b10 │ │ │ │ │ + b.n cc0 │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_imax │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ mov sl, r0 │ │ │ │ │ mul.w r3, fp, r3 │ │ │ │ │ str r3, [r4, #12] │ │ │ │ │ - b.n b10 │ │ │ │ │ + b.n cc0 │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ mul.w r3, r6, r3 │ │ │ │ │ str r3, [r4, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_imax │ │ │ │ │ mov sl, r0 │ │ │ │ │ - b.n b00 │ │ │ │ │ + b.n cb0 │ │ │ │ │ nop │ │ │ │ │ - .word 0x0000008c │ │ │ │ │ - R_ARM_REL32 .LC0 │ │ │ │ │ .word 0x0000008e │ │ │ │ │ + R_ARM_REL32 .LC0 │ │ │ │ │ + .word 0x00000090 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ │ │ │ │ │ -00000bf4 : │ │ │ │ │ +00000dbc : │ │ │ │ │ default_sz(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - mov r7, r0 │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r1 │ │ │ │ │ - sub sp, #20 │ │ │ │ │ - mov sl, r2 │ │ │ │ │ mov r6, r3 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + mov r7, r0 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + mov sl, r2 │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #20 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkdtensor │ │ │ │ │ mov r9, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkdtensor │ │ │ │ │ cmp r7, #0 │ │ │ │ │ str r0, [sp, #0] │ │ │ │ │ - ble.w da8 │ │ │ │ │ - subs r4, r7, #1 │ │ │ │ │ + ble.w fc2 │ │ │ │ │ + add.w r4, r7, #4294967295 @ 0xffffffff │ │ │ │ │ cmp r4, #2 │ │ │ │ │ - bls.w de8 │ │ │ │ │ + bls.w 1010 │ │ │ │ │ mov r3, r0 │ │ │ │ │ - adds r1, r0, #4 │ │ │ │ │ - adds r3, #28 │ │ │ │ │ + add.w r1, r0, #4 │ │ │ │ │ + add.w r3, r3, #28 │ │ │ │ │ add.w r0, r5, #24 │ │ │ │ │ cmp r1, r0 │ │ │ │ │ it cc │ │ │ │ │ cmpcc r5, r3 │ │ │ │ │ - bcc.w de8 │ │ │ │ │ - mov.w ip, r7, lsr #1 │ │ │ │ │ - movs r0, #24 │ │ │ │ │ + bcc.w 1010 │ │ │ │ │ + bic.w ip, r7, #1 │ │ │ │ │ mov r3, r5 │ │ │ │ │ + str r7, [sp, #4] │ │ │ │ │ + add.w ip, ip, r7, lsr #1 │ │ │ │ │ mov lr, r5 │ │ │ │ │ mov r8, r6 │ │ │ │ │ mov fp, r4 │ │ │ │ │ - mla ip, r0, ip, r5 │ │ │ │ │ - str r7, [sp, #4] │ │ │ │ │ - ldr r2, [r3, #20] │ │ │ │ │ - ldr r7, [r3, #0] │ │ │ │ │ - ldrd r6, r5, [r3, #4] │ │ │ │ │ - ldrd r4, r0, [r3, #12] │ │ │ │ │ - adds r3, #24 │ │ │ │ │ - strd r7, r6, [r1] │ │ │ │ │ + add.w ip, r5, ip, lsl #3 │ │ │ │ │ + ldrd r7, r6, [r3] │ │ │ │ │ + ldrd r5, r4, [r3, #8] │ │ │ │ │ + ldrd r0, r2, [r3, #16] │ │ │ │ │ + add.w r3, r3, #24 │ │ │ │ │ cmp r3, ip │ │ │ │ │ + strd r7, r6, [r1] │ │ │ │ │ strd r5, r4, [r1, #8] │ │ │ │ │ strd r0, r2, [r1, #16] │ │ │ │ │ add.w r1, r1, #24 │ │ │ │ │ - bne.n c46 │ │ │ │ │ + bne.n e26 │ │ │ │ │ ldr r7, [sp, #4] │ │ │ │ │ mov r5, lr │ │ │ │ │ mov r6, r8 │ │ │ │ │ mov r4, fp │ │ │ │ │ + lsls r2, r7, #31 │ │ │ │ │ bic.w r3, r7, #1 │ │ │ │ │ - cmp r7, r3 │ │ │ │ │ - beq.n c92 │ │ │ │ │ - movs r1, #12 │ │ │ │ │ - mul.w r3, r1, r3 │ │ │ │ │ - adds r1, r5, r3 │ │ │ │ │ + bpl.n e78 │ │ │ │ │ + add.w r3, r3, r3, lsl #1 │ │ │ │ │ + mov.w r3, r3, lsl #2 │ │ │ │ │ + add.w r1, r5, r3 │ │ │ │ │ ldr.w lr, [lr, r3] │ │ │ │ │ ldrd r2, r0, [r1, #4] │ │ │ │ │ ldr r1, [sp, #0] │ │ │ │ │ add r3, r1 │ │ │ │ │ strd lr, r2, [r3, #4] │ │ │ │ │ str r0, [r3, #12] │ │ │ │ │ - add.w ip, r7, r7, lsl #1 │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + mov.w ip, r7, lsl #1 │ │ │ │ │ + add.w lr, ip, r7 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ add.w r0, r9, #4 │ │ │ │ │ ldr.w r3, [r5, r1, lsl #2] │ │ │ │ │ str.w r3, [r0, r1, lsl #2] │ │ │ │ │ - adds r1, #3 │ │ │ │ │ - cmp r1, ip │ │ │ │ │ - bne.n c9c │ │ │ │ │ + add.w r1, r1, #3 │ │ │ │ │ + cmp r1, lr │ │ │ │ │ + bne.n e88 │ │ │ │ │ cmp r6, #0 │ │ │ │ │ - bne.n dae │ │ │ │ │ - movs r4, #12 │ │ │ │ │ + bne.w fd0 │ │ │ │ │ + add.w r4, ip, r7 │ │ │ │ │ mov r0, r5 │ │ │ │ │ + add.w r4, r9, r4, lsl #2 │ │ │ │ │ mov r3, r9 │ │ │ │ │ - mla r4, r4, r7, r9 │ │ │ │ │ ldr r2, [r0, #4] │ │ │ │ │ - cbnz r2, cbe │ │ │ │ │ + cbnz r2, eb0 │ │ │ │ │ ldr r2, [r3, #4] │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ ldr r2, [r0, #8] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - bne.n d5a │ │ │ │ │ + bne.n f52 │ │ │ │ │ ldr r2, [r3, #4] │ │ │ │ │ - adds r0, #12 │ │ │ │ │ + add.w r0, r0, #12 │ │ │ │ │ str.w r2, [r3, #12]! │ │ │ │ │ cmp r3, r4 │ │ │ │ │ - bne.n cb8 │ │ │ │ │ - mov.w fp, #0 │ │ │ │ │ + bne.n eaa │ │ │ │ │ cmp r7, #0 │ │ │ │ │ - str r5, [sp, #8] │ │ │ │ │ - mov r5, sl │ │ │ │ │ + mov.w fp, #0 │ │ │ │ │ str r6, [sp, #12] │ │ │ │ │ - mov r6, fp │ │ │ │ │ ite le │ │ │ │ │ movle r3, #0 │ │ │ │ │ movgt r3, #1 │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ + mov r6, fp │ │ │ │ │ + strd r3, r5, [sp, #4] │ │ │ │ │ + mov r5, sl │ │ │ │ │ mov r1, r6 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov fp, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ @@ -1408,30 +1467,30 @@ │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [sp, #4] │ │ │ │ │ cmp r1, #1 │ │ │ │ │ ite le │ │ │ │ │ movle r0, #0 │ │ │ │ │ andgt.w r0, r0, #1 │ │ │ │ │ - cbz r0, d66 │ │ │ │ │ + cbz r0, f60 │ │ │ │ │ ldr r3, [sp, #0] │ │ │ │ │ mov sl, r9 │ │ │ │ │ - movs r4, #0 │ │ │ │ │ + mov.w r4, #0 │ │ │ │ │ add.w r8, r3, r6, lsl #2 │ │ │ │ │ - b.n d28 │ │ │ │ │ - adds r4, #1 │ │ │ │ │ + b.n f20 │ │ │ │ │ + add.w r4, r4, #1 │ │ │ │ │ add.w r8, r8, #12 │ │ │ │ │ - add.w sl, sl, #12 │ │ │ │ │ cmp r7, r4 │ │ │ │ │ it gt │ │ │ │ │ cmpgt r1, #1 │ │ │ │ │ - ble.n d66 │ │ │ │ │ + add.w sl, sl, #12 │ │ │ │ │ + ble.n f60 │ │ │ │ │ ldr.w r3, [r8, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.n d16 │ │ │ │ │ + bne.n f0c │ │ │ │ │ ldr.w r0, [sl, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_default_block │ │ │ │ │ add.w r3, sl, #8 │ │ │ │ │ mov r1, r0 │ │ │ │ │ str.w r0, [r3, r6, lsl #2] │ │ │ │ │ ldr.w r0, [sl, #4] │ │ │ │ │ @@ -1439,3099 +1498,3278 @@ │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks │ │ │ │ │ mul.w fp, r0, fp │ │ │ │ │ mov r0, r5 │ │ │ │ │ mov r1, fp │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ mov r1, r0 │ │ │ │ │ - b.n d16 │ │ │ │ │ + b.n f0c │ │ │ │ │ str.w r2, [r3, #12]! │ │ │ │ │ - adds r0, #12 │ │ │ │ │ cmp r3, r4 │ │ │ │ │ - bne.n cb8 │ │ │ │ │ - b.n cd2 │ │ │ │ │ - adds r1, r6, #1 │ │ │ │ │ - movs r6, #1 │ │ │ │ │ + add.w r0, r0, #12 │ │ │ │ │ + bne.n eaa │ │ │ │ │ + b.n ec6 │ │ │ │ │ + add.w r1, r6, #1 │ │ │ │ │ + mov.w r6, #1 │ │ │ │ │ cmp r1, #2 │ │ │ │ │ - bne.n ce8 │ │ │ │ │ + bne.n edc │ │ │ │ │ ldrd r5, r6, [sp, #8] │ │ │ │ │ - cbz r6, d86 │ │ │ │ │ - movs r1, #12 │ │ │ │ │ - subs r3, r7, #1 │ │ │ │ │ - mla r3, r1, r3, r9 │ │ │ │ │ - mla r1, r1, r7, r5 │ │ │ │ │ + cbz r6, f8c │ │ │ │ │ + add.w r1, r7, r7, lsl #1 │ │ │ │ │ + add.w r3, r7, #4294967295 @ 0xffffffff │ │ │ │ │ + add.w r3, r3, r3, lsl #1 │ │ │ │ │ + add.w r1, r5, r1, lsl #2 │ │ │ │ │ + add.w r3, r9, r3, lsl #2 │ │ │ │ │ ldr.w r1, [r1, #-12] │ │ │ │ │ str r1, [r3, #4] │ │ │ │ │ cmp r7, #1 │ │ │ │ │ - beq.n dd2 │ │ │ │ │ + beq.n ffa │ │ │ │ │ ldr r0, [sp, #0] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_canonical │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, #20 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ - subs r4, r7, #1 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + mov.w ip, r7, lsl #1 │ │ │ │ │ + add.w r4, r7, #4294967295 @ 0xffffffff │ │ │ │ │ cmp r6, #0 │ │ │ │ │ - beq.n cd2 │ │ │ │ │ - movs r3, #12 │ │ │ │ │ + beq.w ec6 │ │ │ │ │ + add.w r3, ip, r7 │ │ │ │ │ + add.w r4, r4, r4, lsl #1 │ │ │ │ │ cmp r7, #0 │ │ │ │ │ - mla r4, r3, r4, r9 │ │ │ │ │ - mla r3, r3, r7, r5 │ │ │ │ │ + add.w r3, r5, r3, lsl #2 │ │ │ │ │ + add.w r4, r9, r4, lsl #2 │ │ │ │ │ ldr.w r3, [r3, #-12] │ │ │ │ │ add.w r3, r3, r3, lsr #31 │ │ │ │ │ mov.w r3, r3, asr #1 │ │ │ │ │ add.w r3, r3, #1 │ │ │ │ │ str r3, [r4, #4] │ │ │ │ │ - bgt.w cae │ │ │ │ │ - b.n cd2 │ │ │ │ │ + bgt.w e9e │ │ │ │ │ + b.n ec6 │ │ │ │ │ ldr.w r0, [r9, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_is_prime │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n d8a │ │ │ │ │ + beq.n f90 │ │ │ │ │ ldr.w r3, [r9, #4] │ │ │ │ │ strd r3, r3, [r9, #8] │ │ │ │ │ - b.n d8a │ │ │ │ │ + b.n f90 │ │ │ │ │ ldr r3, [sp, #0] │ │ │ │ │ - mov.w ip, #12 │ │ │ │ │ + mov.w ip, r7, lsl #1 │ │ │ │ │ mov r0, r5 │ │ │ │ │ - mov lr, r4 │ │ │ │ │ + mov r8, r4 │ │ │ │ │ + add.w lr, ip, r7 │ │ │ │ │ + add.w lr, r3, lr, lsl #2 │ │ │ │ │ mov r1, r3 │ │ │ │ │ - mla ip, ip, r7, r3 │ │ │ │ │ - ldrd r2, r3, [r0, #4] │ │ │ │ │ - adds r0, #12 │ │ │ │ │ - ldr.w r4, [r0, #-12] │ │ │ │ │ + ldrd r4, r2, [r0] │ │ │ │ │ + add.w r0, r0, #12 │ │ │ │ │ + ldr.w r3, [r0, #-4] │ │ │ │ │ strd r4, r2, [r1, #4] │ │ │ │ │ str.w r3, [r1, #12]! │ │ │ │ │ - cmp r1, ip │ │ │ │ │ - bne.n df8 │ │ │ │ │ - mov r4, lr │ │ │ │ │ - b.n c92 │ │ │ │ │ - nop │ │ │ │ │ + cmp r1, lr │ │ │ │ │ + bne.n 1024 │ │ │ │ │ + mov r4, r8 │ │ │ │ │ + b.n e7c │ │ │ │ │ │ │ │ │ │ -00000e14 : │ │ │ │ │ +00001040 : │ │ │ │ │ fftw_mpi_local_size_guru.part.0(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - mov r5, r3 │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - sub sp, #68 @ 0x44 │ │ │ │ │ mov r0, r3 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + mov r5, r3 │ │ │ │ │ + mov r6, r2 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r7, r1 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #68 @ 0x44 │ │ │ │ │ add r1, sp, #24 │ │ │ │ │ - mov r6, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ add r1, sp, #28 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r2, [sp, #28] │ │ │ │ │ - movs r3, #0 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ mov r1, r7 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - bl bf4 │ │ │ │ │ + bl dbc │ │ │ │ │ cmp r4, #1 │ │ │ │ │ mov r5, r0 │ │ │ │ │ - bgt.n f06 │ │ │ │ │ - bne.w f76 │ │ │ │ │ + bgt.n 1154 │ │ │ │ │ + bne.w 11e6 │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ cmp r6, r3 │ │ │ │ │ - blt.n eae │ │ │ │ │ + blt.n 10f4 │ │ │ │ │ ldr r2, [sp, #124] @ 0x7c │ │ │ │ │ movs.w r8, r2, lsr #27 │ │ │ │ │ - bne.n eae │ │ │ │ │ - movs r0, #2 │ │ │ │ │ + bne.n 10f4 │ │ │ │ │ + mov.w r0, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkdtensor │ │ │ │ │ - adds r2, r5, #4 │ │ │ │ │ - adds r3, r0, #4 │ │ │ │ │ + ldrd r2, r3, [r5, #4] │ │ │ │ │ mov r7, r0 │ │ │ │ │ - ldmia r2, {r0, r1, r2} │ │ │ │ │ - stmia.w r3, {r0, r1, r2} │ │ │ │ │ ldr r1, [sp, #28] │ │ │ │ │ - ldr r3, [r5, #4] │ │ │ │ │ + strd r2, r3, [r0, #4] │ │ │ │ │ mov r0, r6 │ │ │ │ │ + ldr r3, [r5, #12] │ │ │ │ │ + str r3, [r7, #12] │ │ │ │ │ + ldr r3, [r5, #4] │ │ │ │ │ str r3, [r7, #8] │ │ │ │ │ - str r6, [r7, #24] │ │ │ │ │ str r6, [r7, #16] │ │ │ │ │ + str r6, [r7, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_default_block │ │ │ │ │ + add r3, sp, #40 @ 0x28 │ │ │ │ │ mov r1, r7 │ │ │ │ │ str r0, [r7, #20] │ │ │ │ │ - mov r2, r8 │ │ │ │ │ ldr r0, [sp, #24] │ │ │ │ │ - add r3, sp, #40 @ 0x28 │ │ │ │ │ + mov r2, r8 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ add r3, sp, #32 │ │ │ │ │ - bl 1b4 │ │ │ │ │ + bl 1f0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ - mov r1, r6 │ │ │ │ │ ldrd r3, r2, [sp, #32] │ │ │ │ │ + mov r1, r6 │ │ │ │ │ mla r3, r2, r3, r6 │ │ │ │ │ - subs r0, r3, #1 │ │ │ │ │ + add.w r0, r3, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - movs r4, #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_imax │ │ │ │ │ mov r7, r0 │ │ │ │ │ - b.n f14 │ │ │ │ │ + mov.w r4, #4 │ │ │ │ │ + b.n 1168 │ │ │ │ │ ldr r2, [sp, #120] @ 0x78 │ │ │ │ │ - adds r2, #1 │ │ │ │ │ + add.w r2, r2, #1 │ │ │ │ │ bics.w r2, r2, #2 │ │ │ │ │ - bne.n fa4 │ │ │ │ │ + bne.w 121c │ │ │ │ │ add r2, sp, #40 @ 0x28 │ │ │ │ │ str r2, [sp, #12] │ │ │ │ │ add r2, sp, #32 │ │ │ │ │ str r2, [sp, #8] │ │ │ │ │ ldr r2, [sp, #120] @ 0x78 │ │ │ │ │ str r2, [sp, #4] │ │ │ │ │ ldr r2, [sp, #124] @ 0x7c │ │ │ │ │ str r2, [sp, #0] │ │ │ │ │ - adds r2, r5, #4 │ │ │ │ │ + add.w r2, r5, #4 │ │ │ │ │ ldmia r2, {r0, r1, r2} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_choose_radix │ │ │ │ │ mov r8, r0 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n f9e │ │ │ │ │ + beq.n 1214 │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [r5, #4] │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ mov r9, r0 │ │ │ │ │ mul.w r1, r3, r0 │ │ │ │ │ ldr r3, [sp, #124] @ 0x7c │ │ │ │ │ lsls r2, r3, #4 │ │ │ │ │ - bpl.w 10a2 │ │ │ │ │ + bpl.w 1330 │ │ │ │ │ mov r7, r4 │ │ │ │ │ str r1, [r5, #8] │ │ │ │ │ ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ mul.w r1, r3, r8 │ │ │ │ │ ldr r3, [sp, #124] @ 0x7c │ │ │ │ │ lsls r3, r3, #3 │ │ │ │ │ - bpl.w 10b4 │ │ │ │ │ - lsls r4, r4, #2 │ │ │ │ │ + bpl.w 1344 │ │ │ │ │ + mov.w r4, r4, lsl #2 │ │ │ │ │ str r1, [r5, #12] │ │ │ │ │ - b.n f14 │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + b.n 1168 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_is_block1d │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.n fb8 │ │ │ │ │ - movs r7, #1 │ │ │ │ │ - lsls r4, r4, #2 │ │ │ │ │ - ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + bne.n 1230 │ │ │ │ │ + mov.w r4, r4, lsl #2 │ │ │ │ │ + mov.w r7, #1 │ │ │ │ │ ldr r0, [sp, #24] │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ mov r1, r5 │ │ │ │ │ + ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ - bl 1b4 │ │ │ │ │ - ldr r3, [sp, #116] @ 0x74 │ │ │ │ │ + bl 1f0 │ │ │ │ │ ldr r0, [sp, #24] │ │ │ │ │ mov r1, r5 │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ + ldr r3, [sp, #116] @ 0x74 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - movs r2, #1 │ │ │ │ │ ldr r3, [sp, #112] @ 0x70 │ │ │ │ │ - bl 1b4 │ │ │ │ │ + bl 1f0 │ │ │ │ │ ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ - movs r0, #1 │ │ │ │ │ - adds r1, r3, r4 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ + add.w r1, r3, r4 │ │ │ │ │ ldr.w r2, [r3], #4 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ mul.w r0, r2, r0 │ │ │ │ │ - bne.n f3a │ │ │ │ │ + bne.n 1196 │ │ │ │ │ ldr r3, [sp, #112] @ 0x70 │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ add r4, r3 │ │ │ │ │ ldr.w r2, [r3], #4 │ │ │ │ │ cmp r4, r3 │ │ │ │ │ mul.w r1, r2, r1 │ │ │ │ │ - bne.n f4c │ │ │ │ │ + bne.n 11aa │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_imax │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_imax │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ mul.w r0, r4, r6 │ │ │ │ │ add sp, #68 @ 0x44 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ mov r1, r0 │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ + mov.w r7, #1 │ │ │ │ │ ldr r0, [sp, #24] │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - movs r7, #1 │ │ │ │ │ ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ - bl 1b4 │ │ │ │ │ - ldr r3, [sp, #116] @ 0x74 │ │ │ │ │ + bl 1f0 │ │ │ │ │ ldr r0, [sp, #24] │ │ │ │ │ mov r1, r5 │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ + ldr r3, [sp, #116] @ 0x74 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - movs r2, #1 │ │ │ │ │ ldr r3, [sp, #112] @ 0x70 │ │ │ │ │ - bl 1b4 │ │ │ │ │ + bl 1f0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ mov r1, r7 │ │ │ │ │ - b.n f58 │ │ │ │ │ + b.n 11b6 │ │ │ │ │ mov r7, r4 │ │ │ │ │ - lsls r4, r4, #2 │ │ │ │ │ - b.n f14 │ │ │ │ │ - ldr r2, [pc, #456] @ (1170 ) │ │ │ │ │ + mov.w r4, r4, lsl #2 │ │ │ │ │ + b.n 1168 │ │ │ │ │ + ldr r2, [pc, #496] @ (1410 ) │ │ │ │ │ movw r1, #323 @ 0x143 │ │ │ │ │ - ldr r0, [pc, #456] @ (1174 ) │ │ │ │ │ + ldr r0, [pc, #496] @ (1414 ) │ │ │ │ │ add r2, pc │ │ │ │ │ add r0, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_assertion_failed │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ - b.n eb8 │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + b.n 1102 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_is_block1d │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n f10 │ │ │ │ │ - adds r3, r5, #4 │ │ │ │ │ + beq.n 1160 │ │ │ │ │ + ldrd r2, r3, [r5, #4] │ │ │ │ │ add.w r7, r5, #16 │ │ │ │ │ mov sl, r5 │ │ │ │ │ mov.w r8, #0 │ │ │ │ │ - ldmia.w r3, {r0, r1, r2} │ │ │ │ │ - add r3, sp, #40 @ 0x28 │ │ │ │ │ - stmia.w r3, {r0, r1, r2} │ │ │ │ │ - add r3, sp, #64 @ 0x40 │ │ │ │ │ - ldmia.w r7, {r0, r1, r2} │ │ │ │ │ - stmdb r3, {r0, r1, r2} │ │ │ │ │ + strd r2, r3, [sp, #40] @ 0x28 │ │ │ │ │ + ldr r3, [r5, #12] │ │ │ │ │ + str r3, [sp, #48] @ 0x30 │ │ │ │ │ + ldrd r2, r3, [r5, #16] │ │ │ │ │ + strd r2, r3, [sp, #52] @ 0x34 │ │ │ │ │ + ldr r3, [r7, #8] │ │ │ │ │ + str r3, [sp, #60] @ 0x3c │ │ │ │ │ ldrd r0, r1, [sl, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - beq.n 10c8 │ │ │ │ │ + beq.n 135a │ │ │ │ │ add.w r3, r8, #1 │ │ │ │ │ add.w sl, sl, #12 │ │ │ │ │ - mov.w r8, #1 │ │ │ │ │ cmp r3, #2 │ │ │ │ │ - bne.n fe4 │ │ │ │ │ + mov.w r8, #1 │ │ │ │ │ + bne.n 1260 │ │ │ │ │ + mov.w r4, r4, lsl #2 │ │ │ │ │ mov r9, r8 │ │ │ │ │ - lsls r4, r4, #2 │ │ │ │ │ ldr r1, [r5, #0] │ │ │ │ │ cmp r1, #1 │ │ │ │ │ - ble.w 116a │ │ │ │ │ + ble.w 140c │ │ │ │ │ add.w r1, r1, r1, lsl #1 │ │ │ │ │ mov r8, r6 │ │ │ │ │ - subs r1, #3 │ │ │ │ │ - movs r3, #0 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ + sub.w r1, r1, #3 │ │ │ │ │ ldr.w r2, [r7, r3, lsl #2] │ │ │ │ │ - adds r3, #3 │ │ │ │ │ + add.w r3, r3, #3 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ mul.w r8, r2, r8 │ │ │ │ │ - bne.n 1016 │ │ │ │ │ + bne.n 1298 │ │ │ │ │ ldr r7, [r5, #4] │ │ │ │ │ mov r0, r8 │ │ │ │ │ ldr r1, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_default_block │ │ │ │ │ ldr r2, [sp, #24] │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ mla r0, r0, r7, r6 │ │ │ │ │ mov r1, r6 │ │ │ │ │ - subs r0, #1 │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_imax │ │ │ │ │ - ldr r7, [r5, #4] │ │ │ │ │ - ldr r1, [r5, #0] │ │ │ │ │ + ldrd r1, r7, [r5] │ │ │ │ │ mov r8, r0 │ │ │ │ │ cmp r1, #2 │ │ │ │ │ mul.w r7, r6, r7 │ │ │ │ │ - ble.n 1074 │ │ │ │ │ + ble.n 1300 │ │ │ │ │ add.w r1, r1, r1, lsl #1 │ │ │ │ │ - movs r3, #0 │ │ │ │ │ - subs r1, #6 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ add.w r0, r5, #28 │ │ │ │ │ + sub.w r1, r1, #6 │ │ │ │ │ ldr.w r2, [r0, r3, lsl #2] │ │ │ │ │ - adds r3, #3 │ │ │ │ │ + add.w r3, r3, #3 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ mul.w r7, r2, r7 │ │ │ │ │ - bne.n 1066 │ │ │ │ │ + bne.n 12f0 │ │ │ │ │ ldr.w r9, [r5, #16] │ │ │ │ │ mov r0, r7 │ │ │ │ │ ldr r1, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_default_block │ │ │ │ │ ldr r2, [sp, #24] │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ mla r0, r0, r9, r6 │ │ │ │ │ mov r1, r6 │ │ │ │ │ - subs r0, #1 │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_imax │ │ │ │ │ mov r7, r0 │ │ │ │ │ - b.n f14 │ │ │ │ │ + b.n 1168 │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ mul.w r3, r8, r3 │ │ │ │ │ str r3, [r5, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_imax │ │ │ │ │ mov r7, r0 │ │ │ │ │ - b.n ef2 │ │ │ │ │ + b.n 113e │ │ │ │ │ mov r0, r7 │ │ │ │ │ - lsls r4, r4, #2 │ │ │ │ │ + mov.w r4, r4, lsl #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_imax │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ mov r7, r0 │ │ │ │ │ mul.w r3, r9, r3 │ │ │ │ │ str r3, [r5, #12] │ │ │ │ │ - b.n f14 │ │ │ │ │ - ldr.w r1, [sl, #12] │ │ │ │ │ + b.n 1168 │ │ │ │ │ ldr.w r0, [sl, #4] │ │ │ │ │ + ldr.w r1, [sl, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks │ │ │ │ │ - mov r9, r0 │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - bne.n ff0 │ │ │ │ │ + mov r9, r0 │ │ │ │ │ + bne.w 126c │ │ │ │ │ rsb r3, r8, #0 │ │ │ │ │ + ldr r1, [sp, #28] │ │ │ │ │ add.w sl, r8, #4294967295 @ 0xffffffff │ │ │ │ │ and.w r3, r3, #12 │ │ │ │ │ and.w sl, sl, #12 │ │ │ │ │ + mov.w r4, r4, lsl #2 │ │ │ │ │ add.w fp, r5, r3 │ │ │ │ │ - ldr r1, [sp, #28] │ │ │ │ │ add sl, r5 │ │ │ │ │ - lsls r4, r4, #2 │ │ │ │ │ ldr.w r0, [fp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_default_block │ │ │ │ │ - str.w r0, [fp, #8] │ │ │ │ │ eor.w r3, r8, #1 │ │ │ │ │ + str.w r0, [fp, #8] │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ + ldr r0, [sp, #24] │ │ │ │ │ + mov r1, r5 │ │ │ │ │ str r3, [sp, #20] │ │ │ │ │ ldr.w r3, [sl, #4] │ │ │ │ │ - movs r2, #0 │ │ │ │ │ str.w r3, [sl, #8] │ │ │ │ │ - mov r1, r5 │ │ │ │ │ ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - ldr r0, [sp, #24] │ │ │ │ │ ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ - bl 1b4 │ │ │ │ │ + bl 1f0 │ │ │ │ │ ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ mov r2, r3 │ │ │ │ │ add r2, r4 │ │ │ │ │ ldr.w r1, [r3], #4 │ │ │ │ │ cmp r2, r3 │ │ │ │ │ mul.w r9, r1, r9 │ │ │ │ │ - bne.n 1124 │ │ │ │ │ + bne.n 13bc │ │ │ │ │ mov r1, r9 │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + add.w r8, r8, r8, lsl #1 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_imax │ │ │ │ │ - mov.w ip, #12 │ │ │ │ │ add r3, sp, #64 @ 0x40 │ │ │ │ │ - add.w fp, fp, #4 │ │ │ │ │ mov r9, r0 │ │ │ │ │ - add.w sl, sl, #4 │ │ │ │ │ - mla r3, ip, r8, r3 │ │ │ │ │ - subs r3, #24 │ │ │ │ │ - ldmia.w r3, {r0, r1, r2} │ │ │ │ │ - stmia.w fp, {r0, r1, r2} │ │ │ │ │ - ldr r3, [sp, #20] │ │ │ │ │ + add.w r3, r3, r8, lsl #2 │ │ │ │ │ add r2, sp, #64 @ 0x40 │ │ │ │ │ - mla r3, ip, r3, r2 │ │ │ │ │ - subs r3, #24 │ │ │ │ │ - ldmia.w r3, {r0, r1, r2} │ │ │ │ │ - stmia.w sl, {r0, r1, r2} │ │ │ │ │ - b.n 1004 │ │ │ │ │ + ldrd r0, r1, [r3, #-24] │ │ │ │ │ + strd r0, r1, [fp, #4] │ │ │ │ │ + ldr.w r3, [r3, #-16] │ │ │ │ │ + str.w r3, [fp, #12] │ │ │ │ │ + ldr r3, [sp, #20] │ │ │ │ │ + add.w r3, r3, r3, lsl #1 │ │ │ │ │ + add.w r3, r2, r3, lsl #2 │ │ │ │ │ + ldrd r0, r1, [r3, #-24] │ │ │ │ │ + strd r0, r1, [sl, #4] │ │ │ │ │ + ldr.w r3, [r3, #-16] │ │ │ │ │ + str.w r3, [sl, #12] │ │ │ │ │ + b.n 1282 │ │ │ │ │ mov r8, r6 │ │ │ │ │ - b.n 1024 │ │ │ │ │ - nop │ │ │ │ │ - .word 0x000001c0 │ │ │ │ │ + b.n 12a8 │ │ │ │ │ + .word 0x000001e8 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ - .word 0x000001c2 │ │ │ │ │ + .word 0x000001ea │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ │ │ │ │ │ -00001178 : │ │ │ │ │ +00001418 : │ │ │ │ │ fftw_mpi_local_size_many_transposed.part.0(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - movs r7, #12 │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - sub sp, #28 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + add.w r7, r0, r0, lsl #1 │ │ │ │ │ mov r8, r1 │ │ │ │ │ - mul.w r7, r0, r7 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ mov sl, r2 │ │ │ │ │ mov r9, r3 │ │ │ │ │ + mov.w r7, r7, lsl #2 │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #28 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_malloc_plain │ │ │ │ │ cmp r4, #0 │ │ │ │ │ mov r6, r0 │ │ │ │ │ mov.w r0, r4, lsl #4 │ │ │ │ │ - ble.n 1236 │ │ │ │ │ + ble.n 14fe │ │ │ │ │ mov.w fp, r4, lsl #2 │ │ │ │ │ mov r5, r8 │ │ │ │ │ mov r3, r6 │ │ │ │ │ add.w ip, r8, fp │ │ │ │ │ ldr.w r2, [r5], #4 │ │ │ │ │ - str r2, [r3, #8] │ │ │ │ │ - strd r2, r2, [r3] │ │ │ │ │ cmp ip, r5 │ │ │ │ │ + strd r2, r2, [r3] │ │ │ │ │ add.w r3, r3, #12 │ │ │ │ │ - bne.n 11a8 │ │ │ │ │ + str.w r2, [r3, #-4] │ │ │ │ │ + bne.n 145a │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_malloc_plain │ │ │ │ │ cmp r4, #1 │ │ │ │ │ mov r5, r0 │ │ │ │ │ str.w r9, [r6, #4] │ │ │ │ │ - beq.n 1244 │ │ │ │ │ + beq.n 150c │ │ │ │ │ ldr.w r3, [r8, #4] │ │ │ │ │ add r7, r5 │ │ │ │ │ ldr r2, [sp, #64] @ 0x40 │ │ │ │ │ cmp r3, r2 │ │ │ │ │ - itee le │ │ │ │ │ - strle.w r9, [r6, #8] │ │ │ │ │ + itet gt │ │ │ │ │ movgt r3, r2 │ │ │ │ │ + strle.w r9, [r6, #8] │ │ │ │ │ strgt r3, [r6, #20] │ │ │ │ │ add.w r3, r0, fp │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add.w r2, r3, fp │ │ │ │ │ - strd r0, r0, [sp, #16] │ │ │ │ │ add.w r1, r2, fp │ │ │ │ │ - mov r0, r4 │ │ │ │ │ + strd r5, r3, [sp] │ │ │ │ │ + ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ strd r2, r1, [sp, #8] │ │ │ │ │ mov r2, sl │ │ │ │ │ - strd r5, r3, [sp] │ │ │ │ │ mov r1, r6 │ │ │ │ │ - ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ - bl e14 │ │ │ │ │ - ldr r2, [sp, #72] @ 0x48 │ │ │ │ │ + strd r0, r0, [sp, #16] │ │ │ │ │ + mov r0, r4 │ │ │ │ │ + bl 1040 │ │ │ │ │ ldr r3, [r5, #0] │ │ │ │ │ mov r8, r0 │ │ │ │ │ + ldr r2, [sp, #72] @ 0x48 │ │ │ │ │ str r3, [r2, #0] │ │ │ │ │ - ldr r2, [sp, #76] @ 0x4c │ │ │ │ │ ldr.w r3, [r5, r4, lsl #2] │ │ │ │ │ add.w r4, r5, r4, lsl #3 │ │ │ │ │ + ldr r2, [sp, #76] @ 0x4c │ │ │ │ │ str r3, [r2, #0] │ │ │ │ │ - ldr r2, [sp, #80] @ 0x50 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ + ldr r2, [sp, #80] @ 0x50 │ │ │ │ │ str r3, [r2, #0] │ │ │ │ │ ldr r2, [r7, #4] │ │ │ │ │ - ldr r3, [sp, #84] @ 0x54 │ │ │ │ │ mov r0, r5 │ │ │ │ │ + ldr r3, [sp, #84] @ 0x54 │ │ │ │ │ str r2, [r3, #0] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ifree │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ifree │ │ │ │ │ mov r0, r8 │ │ │ │ │ add sp, #28 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_malloc_plain │ │ │ │ │ mov.w fp, r4, lsl #2 │ │ │ │ │ mov r5, r0 │ │ │ │ │ str.w r9, [r6, #4] │ │ │ │ │ add.w r3, r5, fp │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ str.w r9, [r6, #8] │ │ │ │ │ add.w r2, r3, fp │ │ │ │ │ - movs r0, #0 │ │ │ │ │ add.w r1, r2, fp │ │ │ │ │ - strd r0, r0, [sp, #16] │ │ │ │ │ + strd r5, r3, [sp] │ │ │ │ │ + ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ strd r2, r1, [sp, #8] │ │ │ │ │ - mov r0, r4 │ │ │ │ │ mov r2, sl │ │ │ │ │ - strd r5, r3, [sp] │ │ │ │ │ mov r1, r6 │ │ │ │ │ - ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ - bl e14 │ │ │ │ │ - ldr r2, [sp, #72] @ 0x48 │ │ │ │ │ + strd r0, r0, [sp, #16] │ │ │ │ │ + mov r0, r4 │ │ │ │ │ + bl 1040 │ │ │ │ │ ldr r3, [r5, #0] │ │ │ │ │ mov r8, r0 │ │ │ │ │ + ldr r2, [sp, #72] @ 0x48 │ │ │ │ │ str r3, [r2, #0] │ │ │ │ │ - ldr r2, [sp, #76] @ 0x4c │ │ │ │ │ ldr.w r3, [r5, r4, lsl #2] │ │ │ │ │ + ldr r2, [sp, #76] @ 0x4c │ │ │ │ │ str r3, [r2, #0] │ │ │ │ │ ldr r3, [sp, #72] @ 0x48 │ │ │ │ │ ldr r2, [sp, #80] @ 0x50 │ │ │ │ │ ldr r3, [r3, #0] │ │ │ │ │ str r3, [r2, #0] │ │ │ │ │ ldr r3, [sp, #76] @ 0x4c │ │ │ │ │ ldr r2, [r3, #0] │ │ │ │ │ - b.n 121e │ │ │ │ │ + b.n 14d4 │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -0000128c : │ │ │ │ │ +00001558 : │ │ │ │ │ plan_guru_rdft2.constprop.0(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r6, r3 │ │ │ │ │ - ldr r5, [pc, #240] @ (1384 ) │ │ │ │ │ + ldr r5, [pc, #276] @ (167c ) │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + mov r8, r2 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ sub sp, #28 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - add r5, pc │ │ │ │ │ mov r9, r1 │ │ │ │ │ - mov r8, r2 │ │ │ │ │ + add r5, pc │ │ │ │ │ ldr r3, [r5, #0] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq.n 1350 │ │ │ │ │ + beq.n 1646 │ │ │ │ │ ldr r3, [r4, #0] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 1348 │ │ │ │ │ + ble.n 162e │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1348 │ │ │ │ │ + blt.n 162e │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1348 │ │ │ │ │ + blt.n 162e │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 1348 │ │ │ │ │ + ble.n 162e │ │ │ │ │ ldr r3, [r4, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1348 │ │ │ │ │ + blt.n 162e │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1348 │ │ │ │ │ + blt.n 162e │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 1348 │ │ │ │ │ + ble.n 162e │ │ │ │ │ ldr r3, [r4, #28] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1348 │ │ │ │ │ + blt.n 162e │ │ │ │ │ ldr r3, [r4, #32] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1348 │ │ │ │ │ + blt.n 162e │ │ │ │ │ add r1, sp, #20 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ - movs r2, #1 │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - bl 248 │ │ │ │ │ + bl 2a8 │ │ │ │ │ ldr r5, [r4, #24] │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r7, r0 │ │ │ │ │ add.w r5, r5, r5, lsr #31 │ │ │ │ │ - asrs r5, r5, #1 │ │ │ │ │ - adds r5, #1 │ │ │ │ │ + mov.w r5, r5, asr #1 │ │ │ │ │ + add.w r5, r5, #1 │ │ │ │ │ str r5, [r0, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 1342 │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + bgt.n 1628 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 1342 │ │ │ │ │ + bgt.n 1628 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ ldr r2, [sp, #56] @ 0x38 │ │ │ │ │ str r3, [r7, #28] │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ - lsrs r3, r3, #27 │ │ │ │ │ + mov.w r3, r3, lsr #27 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ - cbnz r2, 1376 │ │ │ │ │ - strd r6, r2, [sp] │ │ │ │ │ - mov r3, r8 │ │ │ │ │ + cbnz r2, 166e │ │ │ │ │ + mov r3, r2 │ │ │ │ │ mov r2, r9 │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + strd r6, r3, [sp] │ │ │ │ │ + mov r3, r8 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkproblem_rdft2_d │ │ │ │ │ ldr r1, [sp, #60] @ 0x3c │ │ │ │ │ mov r2, r0 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkapiplan │ │ │ │ │ - add sp, #28 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + b.n 1632 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add sp, #28 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_the_planner │ │ │ │ │ - ldr r2, [pc, #48] @ (1388 ) │ │ │ │ │ + ldr r2, [pc, #52] @ (1680 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #48] @ (138c ) │ │ │ │ │ + ldr r2, [pc, #48] @ (1684 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #44] @ (1390 ) │ │ │ │ │ + ldr r2, [pc, #48] @ (1688 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #44] @ (1394 ) │ │ │ │ │ + ldr r2, [pc, #44] @ (168c ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_conf_standard │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ str r3, [r5, #0] │ │ │ │ │ - b.n 12a4 │ │ │ │ │ - movs r3, #4 │ │ │ │ │ + b.n 157c │ │ │ │ │ + mov.w r3, #4 │ │ │ │ │ mov r2, r8 │ │ │ │ │ strd r6, r3, [sp] │ │ │ │ │ mov r3, r9 │ │ │ │ │ - b.n 132a │ │ │ │ │ - nop │ │ │ │ │ - .word 0x000000e8 │ │ │ │ │ + b.n 1610 │ │ │ │ │ + .word 0x00000104 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0x0000002e │ │ │ │ │ + .word 0x00000030 │ │ │ │ │ R_ARM_REL32 cost_hook │ │ │ │ │ - .word 0x0000002c │ │ │ │ │ + .word 0x0000002e │ │ │ │ │ R_ARM_REL32 wisdom_ok_hook │ │ │ │ │ - .word 0x0000002a │ │ │ │ │ + .word 0x0000002c │ │ │ │ │ R_ARM_REL32 nowisdom_hook │ │ │ │ │ - .word 0x00000028 │ │ │ │ │ + .word 0x0000002a │ │ │ │ │ R_ARM_REL32 bogosity_hook │ │ │ │ │ │ │ │ │ │ -00001398 : │ │ │ │ │ +00001690 : │ │ │ │ │ plan_guru_rdft2.constprop.1(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + ldr r5, [pc, #264] @ (17a4 ) │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r7, r3 │ │ │ │ │ - ldr r5, [pc, #220] @ (147c ) │ │ │ │ │ + mov r8, r2 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ sub sp, #28 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - add r5, pc │ │ │ │ │ mov r9, r1 │ │ │ │ │ - mov r8, r2 │ │ │ │ │ + add r5, pc │ │ │ │ │ ldr r3, [r5, #0] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq.n 143c │ │ │ │ │ + beq.n 174e │ │ │ │ │ ldr r3, [r4, #0] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 1468 │ │ │ │ │ + ble.n 177c │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1468 │ │ │ │ │ + blt.n 177c │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1468 │ │ │ │ │ + blt.n 177c │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 1468 │ │ │ │ │ + ble.n 177c │ │ │ │ │ ldr r3, [r4, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1468 │ │ │ │ │ + blt.n 177c │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1468 │ │ │ │ │ + blt.n 177c │ │ │ │ │ add r1, sp, #20 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ - movs r2, #1 │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - bl 654 │ │ │ │ │ + bl 748 │ │ │ │ │ ldr r5, [r4, #12] │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r6, r0 │ │ │ │ │ add.w r5, r5, r5, lsr #31 │ │ │ │ │ - asrs r5, r5, #1 │ │ │ │ │ - adds r5, #1 │ │ │ │ │ + mov.w r5, r5, asr #1 │ │ │ │ │ + add.w r5, r5, #1 │ │ │ │ │ str r5, [r0, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 1462 │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + bgt.n 1776 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 1462 │ │ │ │ │ + bgt.n 1776 │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ ldr r2, [sp, #56] @ 0x38 │ │ │ │ │ str r3, [r6, #16] │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ - lsrs r3, r3, #27 │ │ │ │ │ + mov.w r3, r3, lsr #27 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ - cbnz r2, 1470 │ │ │ │ │ - strd r7, r2, [sp] │ │ │ │ │ - mov r3, r8 │ │ │ │ │ + cbnz r2, 1794 │ │ │ │ │ + mov r3, r2 │ │ │ │ │ mov r2, r9 │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + strd r7, r3, [sp] │ │ │ │ │ + mov r3, r8 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkproblem_rdft2_d │ │ │ │ │ ldr r1, [sp, #60] @ 0x3c │ │ │ │ │ mov r2, r0 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkapiplan │ │ │ │ │ - add sp, #28 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + b.n 1780 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_the_planner │ │ │ │ │ - ldr r2, [pc, #60] @ (1480 ) │ │ │ │ │ + ldr r2, [pc, #84] @ (17a8 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #60] @ (1484 ) │ │ │ │ │ + ldr r2, [pc, #80] @ (17ac ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #56] @ (1488 ) │ │ │ │ │ + ldr r2, [pc, #80] @ (17b0 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #56] @ (148c ) │ │ │ │ │ + ldr r2, [pc, #76] @ (17b4 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_conf_standard │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ str r3, [r5, #0] │ │ │ │ │ - b.n 13b0 │ │ │ │ │ + b.n 16b4 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add sp, #28 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ - movs r3, #4 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + mov.w r3, #4 │ │ │ │ │ mov r2, r8 │ │ │ │ │ strd r7, r3, [sp] │ │ │ │ │ mov r3, r9 │ │ │ │ │ - b.n 1424 │ │ │ │ │ - .word 0x000000d4 │ │ │ │ │ + b.n 1736 │ │ │ │ │ + nop │ │ │ │ │ + .word 0x000000f4 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0x0000003a │ │ │ │ │ + .word 0x00000050 │ │ │ │ │ R_ARM_REL32 cost_hook │ │ │ │ │ - .word 0x00000038 │ │ │ │ │ + .word 0x0000004e │ │ │ │ │ R_ARM_REL32 wisdom_ok_hook │ │ │ │ │ - .word 0x00000036 │ │ │ │ │ + .word 0x0000004c │ │ │ │ │ R_ARM_REL32 nowisdom_hook │ │ │ │ │ - .word 0x00000034 │ │ │ │ │ + .word 0x0000004a │ │ │ │ │ R_ARM_REL32 bogosity_hook │ │ │ │ │ │ │ │ │ │ -00001490 : │ │ │ │ │ +000017b8 : │ │ │ │ │ plan_guru_rdft2(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - mov r7, r3 │ │ │ │ │ - ldr.w r8, [pc, #272] @ 15a8 │ │ │ │ │ - sub sp, #28 │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - add r8, pc │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r6, r1 │ │ │ │ │ mov r5, r2 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + mov r7, r3 │ │ │ │ │ + ldr.w r8, [pc, #304] @ 1900 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ + sub sp, #28 │ │ │ │ │ + add r8, pc │ │ │ │ │ ldr.w r3, [r8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq.n 1572 │ │ │ │ │ + beq.n 18c6 │ │ │ │ │ cmp r4, #1 │ │ │ │ │ ite gt │ │ │ │ │ movgt.w lr, #0 │ │ │ │ │ movle.w lr, #1 │ │ │ │ │ orrs.w lr, lr, r5, lsr #31 │ │ │ │ │ - bne.n 156a │ │ │ │ │ + bne.n 18ae │ │ │ │ │ mov ip, r6 │ │ │ │ │ ldr.w r3, [ip] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 156a │ │ │ │ │ + ble.n 18ae │ │ │ │ │ ldr.w r3, [ip, #4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 156a │ │ │ │ │ + blt.n 18ae │ │ │ │ │ ldr.w r3, [ip, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 156a │ │ │ │ │ + blt.n 18ae │ │ │ │ │ add.w lr, lr, #1 │ │ │ │ │ add.w ip, ip, #12 │ │ │ │ │ cmp r4, lr │ │ │ │ │ - bgt.n 14c0 │ │ │ │ │ - add r1, sp, #20 │ │ │ │ │ + bgt.n 17f4 │ │ │ │ │ ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ + add r1, sp, #20 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ + mov r0, r4 │ │ │ │ │ + add.w r4, r4, r4, lsl #1 │ │ │ │ │ ldr r2, [sp, #20] │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ mov r1, r6 │ │ │ │ │ - mov r0, r4 │ │ │ │ │ - bl bf4 │ │ │ │ │ - movs r3, #12 │ │ │ │ │ - movs r1, #0 │ │ │ │ │ - mov r8, r0 │ │ │ │ │ - mul.w r4, r3, r4 │ │ │ │ │ + mov.w r4, r4, lsl #2 │ │ │ │ │ + bl dbc │ │ │ │ │ sub.w r9, r4, #12 │ │ │ │ │ add r4, r0 │ │ │ │ │ ldr.w r3, [r6, r9] │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ + mov r8, r0 │ │ │ │ │ add.w r3, r3, r3, lsr #31 │ │ │ │ │ - asrs r3, r3, #1 │ │ │ │ │ - adds r3, #1 │ │ │ │ │ + mov.w r3, r3, asr #1 │ │ │ │ │ + add.w r3, r3, #1 │ │ │ │ │ str.w r3, [r4, #-8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 1564 │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + bgt.n 18a8 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 1564 │ │ │ │ │ + bgt.n 18a8 │ │ │ │ │ ldr.w r3, [r6, r9] │ │ │ │ │ ldr r2, [sp, #64] @ 0x40 │ │ │ │ │ str.w r3, [r4, #-8] │ │ │ │ │ ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ - lsrs r3, r3, #27 │ │ │ │ │ + mov.w r3, r3, lsr #27 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ - cbnz r2, 159a │ │ │ │ │ + cmp r2, #0 │ │ │ │ │ + bne.n 18f0 │ │ │ │ │ + mov r3, r2 │ │ │ │ │ + mov r2, r7 │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ - str r2, [sp, #4] │ │ │ │ │ - mov r2, r7 │ │ │ │ │ mov r1, r5 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkproblem_rdft2_d │ │ │ │ │ ldr r1, [sp, #68] @ 0x44 │ │ │ │ │ mov r2, r0 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkapiplan │ │ │ │ │ - add sp, #28 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + b.n 18b2 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add sp, #28 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_the_planner │ │ │ │ │ - ldr r2, [pc, #52] @ (15ac ) │ │ │ │ │ + ldr r2, [pc, #56] @ (1904 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #48] @ (15b0 ) │ │ │ │ │ + ldr r2, [pc, #52] @ (1908 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #48] @ (15b4 ) │ │ │ │ │ + ldr r2, [pc, #52] @ (190c ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #44] @ (15b8 ) │ │ │ │ │ + ldr r2, [pc, #48] @ (1910 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_conf_standard │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ str.w r3, [r8] │ │ │ │ │ - b.n 14ac │ │ │ │ │ - movs r3, #4 │ │ │ │ │ + b.n 17e0 │ │ │ │ │ + mov.w r3, #4 │ │ │ │ │ + ldr r2, [sp, #56] @ 0x38 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ mov r3, r7 │ │ │ │ │ - ldr r2, [sp, #56] @ 0x38 │ │ │ │ │ - b.n 154c │ │ │ │ │ - .word 0x00000106 │ │ │ │ │ + b.n 1892 │ │ │ │ │ + .word 0x00000126 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0x00000030 │ │ │ │ │ + .word 0x00000034 │ │ │ │ │ R_ARM_REL32 cost_hook │ │ │ │ │ - .word 0x0000002e │ │ │ │ │ + .word 0x00000032 │ │ │ │ │ R_ARM_REL32 wisdom_ok_hook │ │ │ │ │ - .word 0x0000002c │ │ │ │ │ + .word 0x00000030 │ │ │ │ │ R_ARM_REL32 nowisdom_hook │ │ │ │ │ - .word 0x0000002a │ │ │ │ │ + .word 0x0000002e │ │ │ │ │ R_ARM_REL32 bogosity_hook │ │ │ │ │ │ │ │ │ │ -000015bc : │ │ │ │ │ +00001914 : │ │ │ │ │ fftw_mpi_init(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ - ldr r4, [pc, #48] @ (15f0 ) │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ + ldr r4, [pc, #48] @ (194c ) │ │ │ │ │ add r4, pc │ │ │ │ │ ldr r3, [r4, #0] │ │ │ │ │ - cbz r3, 15c8 │ │ │ │ │ + cbz r3, 1922 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_the_planner │ │ │ │ │ - ldr r2, [pc, #36] @ (15f4 ) │ │ │ │ │ + ldr r2, [pc, #40] @ (1950 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #36] @ (15f8 ) │ │ │ │ │ + ldr r2, [pc, #36] @ (1954 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #32] @ (15fc ) │ │ │ │ │ + ldr r2, [pc, #36] @ (1958 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #32] @ (1600 ) │ │ │ │ │ + ldr r2, [pc, #32] @ (195c ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_conf_standard │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ str r3, [r4, #0] │ │ │ │ │ pop {r4, pc} │ │ │ │ │ nop │ │ │ │ │ - .word 0x0000002c │ │ │ │ │ + .word 0x0000002e │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0x00000022 │ │ │ │ │ + .word 0x00000024 │ │ │ │ │ R_ARM_REL32 cost_hook │ │ │ │ │ - .word 0x00000020 │ │ │ │ │ + .word 0x00000022 │ │ │ │ │ R_ARM_REL32 wisdom_ok_hook │ │ │ │ │ - .word 0x0000001e │ │ │ │ │ + .word 0x00000020 │ │ │ │ │ R_ARM_REL32 nowisdom_hook │ │ │ │ │ - .word 0x0000001c │ │ │ │ │ + .word 0x0000001e │ │ │ │ │ R_ARM_REL32 bogosity_hook │ │ │ │ │ │ │ │ │ │ -00001604 : │ │ │ │ │ +00001960 : │ │ │ │ │ fftw_mpi_cleanup(): │ │ │ │ │ - push {r3, lr} │ │ │ │ │ + strd r3, lr, [sp, #-8]! │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_cleanup │ │ │ │ │ - ldr r3, [pc, #8] @ (1614 ) │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + ldr r3, [pc, #8] @ (1974 ) │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ add r3, pc │ │ │ │ │ str r2, [r3, #0] │ │ │ │ │ pop {r3, pc} │ │ │ │ │ .word 0x00000002 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ │ │ │ │ │ -00001618 : │ │ │ │ │ +00001978 : │ │ │ │ │ fftw_mpi_local_size_guru(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ ldrd r4, r5, [sp, #24] │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ ldrd r6, r7, [sp, #32] │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ ldrd lr, r8, [sp, #40] @ 0x28 │ │ │ │ │ - cbnz r0, 1630 │ │ │ │ │ + cbnz r0, 19a2 │ │ │ │ │ mov r0, r2 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, pc} │ │ │ │ │ - strd lr, r8, [sp, #40] @ 0x28 │ │ │ │ │ - strd r6, r7, [sp, #32] │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + ldmia.w sp!, {r8, pc} │ │ │ │ │ strd r4, r5, [sp, #24] │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ - b.w e14 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + strd r6, r7, [sp, #32] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + strd lr, r8, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r8, lr, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + b.w 1040 │ │ │ │ │ │ │ │ │ │ -00001644 : │ │ │ │ │ +000019c0 : │ │ │ │ │ fftw_mpi_local_size_many_transposed(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - ldrd r8, r9, [sp, #28] │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ ldrd r5, r6, [sp, #36] @ 0x24 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ + ldrd r8, r9, [sp, #28] │ │ │ │ │ ldrd r7, lr, [sp, #44] @ 0x2c │ │ │ │ │ - cbnz r0, 1668 │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + cbnz r0, 1a02 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + mov r0, r2 │ │ │ │ │ str r3, [r7, #0] │ │ │ │ │ str r3, [r5, #0] │ │ │ │ │ - str.w r0, [lr] │ │ │ │ │ - str r0, [r6, #0] │ │ │ │ │ - mov r0, r2 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ - strd r7, lr, [sp, #44] @ 0x2c │ │ │ │ │ - strd r5, r6, [sp, #36] @ 0x24 │ │ │ │ │ + str.w r4, [lr] │ │ │ │ │ + str r4, [r6, #0] │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ strd r8, r9, [sp, #28] │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - b.n 1178 │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + strd r5, r6, [sp, #36] @ 0x24 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + strd r7, lr, [sp, #44] @ 0x2c │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w lr, [sp], #4 │ │ │ │ │ + b.n 1418 │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -0000167c : │ │ │ │ │ +00001a24 : │ │ │ │ │ fftw_mpi_local_size_many(): │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - push {r4, r5, lr} │ │ │ │ │ + str.w r4, [sp, #-12]! │ │ │ │ │ + strd r5, lr, [sp, #4] │ │ │ │ │ sub sp, #36 @ 0x24 │ │ │ │ │ - it gt │ │ │ │ │ - ldrgt r4, [r1, #4] │ │ │ │ │ - ble.n 16a6 │ │ │ │ │ + ble.n 1a5a │ │ │ │ │ + ldr r4, [r1, #4] │ │ │ │ │ add r5, sp, #28 │ │ │ │ │ + str r4, [sp, #0] │ │ │ │ │ str r5, [sp, #20] │ │ │ │ │ add r5, sp, #24 │ │ │ │ │ str r5, [sp, #16] │ │ │ │ │ ldr r5, [sp, #56] @ 0x38 │ │ │ │ │ str r5, [sp, #12] │ │ │ │ │ ldr r5, [sp, #52] @ 0x34 │ │ │ │ │ str r5, [sp, #8] │ │ │ │ │ ldr r5, [sp, #48] @ 0x30 │ │ │ │ │ - strd r4, r5, [sp] │ │ │ │ │ - bl 1178 │ │ │ │ │ + str r5, [sp, #4] │ │ │ │ │ + bl 1418 │ │ │ │ │ add sp, #36 @ 0x24 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ - cbnz r0, 16b8 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + cbnz r0, 1a76 │ │ │ │ │ ldr r1, [sp, #52] @ 0x34 │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ str r3, [r1, #0] │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ str r0, [r3, #0] │ │ │ │ │ mov r0, r2 │ │ │ │ │ add sp, #36 @ 0x24 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ - movs r4, #0 │ │ │ │ │ - b.n 1688 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + mov.w r4, #0 │ │ │ │ │ + b.n 1a34 │ │ │ │ │ │ │ │ │ │ -000016bc : │ │ │ │ │ +00001a7c : │ │ │ │ │ fftw_mpi_local_size_transposed(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ sub sp, #24 │ │ │ │ │ - cbnz r0, 16d8 │ │ │ │ │ + cbnz r0, 1a9c │ │ │ │ │ ldr r2, [sp, #36] @ 0x24 │ │ │ │ │ mov r4, r0 │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ str r0, [r2, #0] │ │ │ │ │ str r0, [r3, #0] │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ str r4, [r3, #0] │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ str r4, [r3, #0] │ │ │ │ │ add sp, #24 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ ldr r4, [sp, #40] @ 0x28 │ │ │ │ │ + strd r2, r3, [sp, #4] │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ + str r3, [sp, #0] │ │ │ │ │ str r4, [sp, #20] │ │ │ │ │ ldr r4, [sp, #36] @ 0x24 │ │ │ │ │ str r4, [sp, #16] │ │ │ │ │ ldr r4, [sp, #32] │ │ │ │ │ - strd r3, r4, [sp, #8] │ │ │ │ │ - movs r3, #0 │ │ │ │ │ - str r2, [sp, #4] │ │ │ │ │ - movs r2, #1 │ │ │ │ │ - str r3, [sp, #0] │ │ │ │ │ - bl 1178 │ │ │ │ │ + str r4, [sp, #12] │ │ │ │ │ + bl 1418 │ │ │ │ │ add sp, #24 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -000016f8 : │ │ │ │ │ +00001ac0 : │ │ │ │ │ fftw_mpi_local_size(): │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - push {r4, r5, lr} │ │ │ │ │ + str.w r4, [sp, #-12]! │ │ │ │ │ + strd r5, lr, [sp, #4] │ │ │ │ │ sub sp, #36 @ 0x24 │ │ │ │ │ - it gt │ │ │ │ │ - ldrgt r4, [r1, #4] │ │ │ │ │ - ble.n 1722 │ │ │ │ │ + ble.n 1afa │ │ │ │ │ + ldr r4, [r1, #4] │ │ │ │ │ add r5, sp, #28 │ │ │ │ │ + strd r4, r2, [sp] │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ + str r3, [sp, #8] │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ str r5, [sp, #20] │ │ │ │ │ add r5, sp, #24 │ │ │ │ │ str r5, [sp, #16] │ │ │ │ │ ldr r5, [sp, #48] @ 0x30 │ │ │ │ │ - strd r3, r5, [sp, #8] │ │ │ │ │ - movs r3, #0 │ │ │ │ │ - strd r4, r2, [sp] │ │ │ │ │ - movs r2, #1 │ │ │ │ │ - bl 1178 │ │ │ │ │ + str r5, [sp, #12] │ │ │ │ │ + bl 1418 │ │ │ │ │ add sp, #36 @ 0x24 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ - cbnz r0, 1732 │ │ │ │ │ - movs r2, #1 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + cbnz r0, 1b14 │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ str r2, [r3, #0] │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ str r0, [r3, #0] │ │ │ │ │ mov r0, r2 │ │ │ │ │ add sp, #36 @ 0x24 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ - movs r4, #0 │ │ │ │ │ - b.n 1704 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + mov.w r4, #0 │ │ │ │ │ + b.n 1ad0 │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -00001738 : │ │ │ │ │ +00001b1c : │ │ │ │ │ fftw_mpi_local_size_many_1d(): │ │ │ │ │ - push {lr} │ │ │ │ │ + str.w lr, [sp, #-4]! │ │ │ │ │ sub sp, #44 @ 0x2c │ │ │ │ │ - str r0, [sp, #28] │ │ │ │ │ - movs r0, #0 │ │ │ │ │ - strd r0, r0, [sp, #32] │ │ │ │ │ - ldr r0, [sp, #48] @ 0x30 │ │ │ │ │ - strd r3, r0, [sp, #12] │ │ │ │ │ - add r0, sp, #28 │ │ │ │ │ + str r3, [sp, #12] │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ + str r0, [sp, #28] │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ + strd r0, r0, [sp, #32] │ │ │ │ │ + ldr r0, [sp, #48] @ 0x30 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - bl a80 │ │ │ │ │ + str r0, [sp, #16] │ │ │ │ │ + add r0, sp, #28 │ │ │ │ │ + bl c20 │ │ │ │ │ add sp, #44 @ 0x2c │ │ │ │ │ ldr.w pc, [sp], #4 │ │ │ │ │ │ │ │ │ │ -00001764 : │ │ │ │ │ +00001b4c : │ │ │ │ │ fftw_mpi_local_size_1d(): │ │ │ │ │ - push {lr} │ │ │ │ │ + str.w lr, [sp, #-4]! │ │ │ │ │ sub sp, #44 @ 0x2c │ │ │ │ │ strd r2, r3, [sp, #12] │ │ │ │ │ mov r2, r1 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ - movs r1, #1 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ + str r0, [sp, #28] │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - str r0, [sp, #28] │ │ │ │ │ - movs r0, #0 │ │ │ │ │ - str r3, [sp, #0] │ │ │ │ │ strd r0, r0, [sp, #32] │ │ │ │ │ add r0, sp, #28 │ │ │ │ │ + str r3, [sp, #0] │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ - bl a80 │ │ │ │ │ + bl c20 │ │ │ │ │ add sp, #44 @ 0x2c │ │ │ │ │ ldr.w pc, [sp], #4 │ │ │ │ │ - nop │ │ │ │ │ │ │ │ │ │ -00001794 : │ │ │ │ │ +00001b80 : │ │ │ │ │ fftw_mpi_local_size_2d_transposed(): │ │ │ │ │ - push {lr} │ │ │ │ │ + str.w lr, [sp, #-4]! │ │ │ │ │ sub sp, #28 │ │ │ │ │ strd r0, r1, [sp, #16] │ │ │ │ │ add r0, sp, #16 │ │ │ │ │ ldr r1, [sp, #40] @ 0x28 │ │ │ │ │ str r1, [sp, #8] │ │ │ │ │ ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ str r1, [sp, #4] │ │ │ │ │ ldr r1, [sp, #32] │ │ │ │ │ str r1, [sp, #0] │ │ │ │ │ - movs r1, #0 │ │ │ │ │ - bl 770 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ + bl 88c │ │ │ │ │ add sp, #28 │ │ │ │ │ ldr.w pc, [sp], #4 │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -000017b8 : │ │ │ │ │ +00001ba8 : │ │ │ │ │ fftw_mpi_local_size_2d(): │ │ │ │ │ - push {lr} │ │ │ │ │ + str.w lr, [sp, #-4]! │ │ │ │ │ sub sp, #36 @ 0x24 │ │ │ │ │ strd r0, r1, [sp, #24] │ │ │ │ │ add r0, sp, #20 │ │ │ │ │ str r0, [sp, #8] │ │ │ │ │ add r0, sp, #16 │ │ │ │ │ str r0, [sp, #4] │ │ │ │ │ ldr r0, [sp, #40] @ 0x28 │ │ │ │ │ str r0, [sp, #0] │ │ │ │ │ add r0, sp, #24 │ │ │ │ │ - bl 770 │ │ │ │ │ + bl 88c │ │ │ │ │ add sp, #36 @ 0x24 │ │ │ │ │ ldr.w pc, [sp], #4 │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -000017d8 : │ │ │ │ │ +00001bcc : │ │ │ │ │ fftw_mpi_local_size_3d_transposed(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ + sub sp, #32 │ │ │ │ │ mov r4, r2 │ │ │ │ │ mov r2, r3 │ │ │ │ │ - sub sp, #32 │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ + strd r0, r1, [sp, #16] │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ + add r0, sp, #16 │ │ │ │ │ + str r4, [sp, #24] │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ - strd r0, r1, [sp, #16] │ │ │ │ │ - movs r1, #0 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - add r0, sp, #16 │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ - str r4, [sp, #24] │ │ │ │ │ - bl 3f0 │ │ │ │ │ + bl 47c │ │ │ │ │ add sp, #32 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ │ │ │ │ │ -00001800 : │ │ │ │ │ +00001bf8 : │ │ │ │ │ fftw_mpi_local_size_3d(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ + sub sp, #40 @ 0x28 │ │ │ │ │ mov r4, r2 │ │ │ │ │ mov r2, r3 │ │ │ │ │ - sub sp, #40 @ 0x28 │ │ │ │ │ add r3, sp, #20 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ add r3, sp, #16 │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ - ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ strd r0, r1, [sp, #24] │ │ │ │ │ add r0, sp, #24 │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ + str r4, [sp, #32] │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ - str r4, [sp, #32] │ │ │ │ │ - bl 3f0 │ │ │ │ │ + bl 47c │ │ │ │ │ add sp, #40 @ 0x28 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ - nop │ │ │ │ │ │ │ │ │ │ -00001828 : │ │ │ │ │ +00001c20 : │ │ │ │ │ fftw_mpi_plan_many_transpose(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ mov r4, r3 │ │ │ │ │ - ldr.w r9, [pc, #228] @ 1914 │ │ │ │ │ - sub sp, #36 @ 0x24 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r0 │ │ │ │ │ - add r9, pc │ │ │ │ │ mov r6, r1 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ + ldr.w r9, [pc, #244] @ 1d28 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + sub sp, #36 @ 0x24 │ │ │ │ │ mov r7, r2 │ │ │ │ │ ldr.w r8, [sp, #64] @ 0x40 │ │ │ │ │ + add r9, pc │ │ │ │ │ ldr.w r3, [r9] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq.n 18be │ │ │ │ │ + beq.n 1cd0 │ │ │ │ │ orr.w r3, r4, r8 │ │ │ │ │ orrs r3, r7 │ │ │ │ │ - bmi.n 18b6 │ │ │ │ │ + bmi.n 1cb8 │ │ │ │ │ cmp r6, #0 │ │ │ │ │ it gt │ │ │ │ │ cmpgt r5, #0 │ │ │ │ │ - ble.n 18b6 │ │ │ │ │ + ble.n 1cb8 │ │ │ │ │ ldr r0, [sp, #76] @ 0x4c │ │ │ │ │ add r1, sp, #28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ cmp r4, #0 │ │ │ │ │ - beq.n 1900 │ │ │ │ │ + beq.n 1d14 │ │ │ │ │ cmp.w r8, #0 │ │ │ │ │ - beq.n 18e6 │ │ │ │ │ + beq.n 1cfa │ │ │ │ │ mov r1, r4 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 18b6 │ │ │ │ │ + bgt.n 1cb8 │ │ │ │ │ mov r1, r8 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 18b6 │ │ │ │ │ + bgt.n 1cb8 │ │ │ │ │ ldr r3, [sp, #80] @ 0x50 │ │ │ │ │ mov r2, r7 │ │ │ │ │ mov r1, r6 │ │ │ │ │ mov r0, r5 │ │ │ │ │ - str r4, [sp, #4] │ │ │ │ │ - lsrs r3, r3, #27 │ │ │ │ │ + strd r4, r8, [sp, #4] │ │ │ │ │ + mov.w r3, r3, lsr #27 │ │ │ │ │ str r3, [sp, #16] │ │ │ │ │ ldr r3, [sp, #76] @ 0x4c │ │ │ │ │ - strd r8, r3, [sp, #8] │ │ │ │ │ + str r3, [sp, #12] │ │ │ │ │ ldr r3, [sp, #72] @ 0x48 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkproblem_transpose │ │ │ │ │ ldr r1, [sp, #80] @ 0x50 │ │ │ │ │ mov r2, r0 │ │ │ │ │ mov.w r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkapiplan │ │ │ │ │ + b.n 1cbc │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add sp, #36 @ 0x24 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ - movs r0, #0 │ │ │ │ │ - add sp, #36 @ 0x24 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_the_planner │ │ │ │ │ - ldr r2, [pc, #84] @ (1918 ) │ │ │ │ │ + ldr r2, [pc, #84] @ (1d2c ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #80] @ (191c ) │ │ │ │ │ + ldr r2, [pc, #84] @ (1d30 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #80] @ (1920 ) │ │ │ │ │ + ldr r2, [pc, #80] @ (1d34 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #76] @ (1924 ) │ │ │ │ │ + ldr r2, [pc, #80] @ (1d38 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_conf_standard │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ str.w r3, [r9] │ │ │ │ │ - b.n 1848 │ │ │ │ │ + b.n 1c4c │ │ │ │ │ ldr r1, [sp, #28] │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_default_block │ │ │ │ │ - mov r1, r4 │ │ │ │ │ mov r8, r0 │ │ │ │ │ + mov r1, r4 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - ble.n 1878 │ │ │ │ │ - b.n 18b6 │ │ │ │ │ + ble.n 1c7c │ │ │ │ │ + b.n 1cb8 │ │ │ │ │ ldr r1, [sp, #28] │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_default_block │ │ │ │ │ mov r4, r0 │ │ │ │ │ cmp.w r8, #0 │ │ │ │ │ - bne.n 186a │ │ │ │ │ - b.n 18e6 │ │ │ │ │ + bne.n 1c6e │ │ │ │ │ + b.n 1cfa │ │ │ │ │ nop │ │ │ │ │ - .word 0x000000da │ │ │ │ │ + .word 0x000000e2 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0x00000050 │ │ │ │ │ + .word 0x00000052 │ │ │ │ │ R_ARM_REL32 cost_hook │ │ │ │ │ - .word 0x0000004e │ │ │ │ │ + .word 0x00000050 │ │ │ │ │ R_ARM_REL32 wisdom_ok_hook │ │ │ │ │ - .word 0x0000004c │ │ │ │ │ + .word 0x0000004e │ │ │ │ │ R_ARM_REL32 nowisdom_hook │ │ │ │ │ - .word 0x0000004a │ │ │ │ │ + .word 0x0000004c │ │ │ │ │ R_ARM_REL32 bogosity_hook │ │ │ │ │ │ │ │ │ │ -00001928 : │ │ │ │ │ +00001d3c : │ │ │ │ │ fftw_mpi_plan_transpose(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - mov r7, r3 │ │ │ │ │ - ldr.w r8, [pc, #180] @ 19e4 │ │ │ │ │ - sub sp, #36 @ 0x24 │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - add r8, pc │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r1 │ │ │ │ │ mov r6, r2 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + mov r7, r3 │ │ │ │ │ + ldr.w r8, [pc, #196] @ 1e18 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ + sub sp, #36 @ 0x24 │ │ │ │ │ + add r8, pc │ │ │ │ │ ldr.w r3, [r8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq.n 19ba │ │ │ │ │ + beq.n 1dec │ │ │ │ │ cmp r4, #0 │ │ │ │ │ it gt │ │ │ │ │ cmpgt r5, #0 │ │ │ │ │ - ble.n 19b2 │ │ │ │ │ - add r1, sp, #28 │ │ │ │ │ + ble.n 1dd4 │ │ │ │ │ ldr r0, [sp, #64] @ 0x40 │ │ │ │ │ + add r1, sp, #28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #28] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_default_block │ │ │ │ │ ldr r1, [sp, #28] │ │ │ │ │ mov r8, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_default_block │ │ │ │ │ - mov r1, r8 │ │ │ │ │ mov r9, r0 │ │ │ │ │ + mov r1, r8 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 19b2 │ │ │ │ │ + bgt.n 1dd4 │ │ │ │ │ mov r1, r9 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 19b2 │ │ │ │ │ + bgt.n 1dd4 │ │ │ │ │ ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - movs r2, #1 │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ mov r0, r4 │ │ │ │ │ strd r7, r8, [sp] │ │ │ │ │ - lsrs r3, r3, #27 │ │ │ │ │ + str.w r9, [sp, #8] │ │ │ │ │ + mov.w r3, r3, lsr #27 │ │ │ │ │ str r3, [sp, #16] │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ - strd r9, r3, [sp, #8] │ │ │ │ │ + str r3, [sp, #12] │ │ │ │ │ mov r3, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkproblem_transpose │ │ │ │ │ ldr r1, [sp, #68] @ 0x44 │ │ │ │ │ mov r2, r0 │ │ │ │ │ mov.w r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkapiplan │ │ │ │ │ + b.n 1dd8 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add sp, #36 @ 0x24 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ - movs r0, #0 │ │ │ │ │ - add sp, #36 @ 0x24 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_the_planner │ │ │ │ │ - ldr r2, [pc, #40] @ (19e8 ) │ │ │ │ │ + ldr r2, [pc, #40] @ (1e1c ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #36] @ (19ec ) │ │ │ │ │ + ldr r2, [pc, #40] @ (1e20 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #36] @ (19f0 ) │ │ │ │ │ + ldr r2, [pc, #36] @ (1e24 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #32] @ (19f4 ) │ │ │ │ │ + ldr r2, [pc, #36] @ (1e28 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_conf_standard │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ str.w r3, [r8] │ │ │ │ │ - b.n 1944 │ │ │ │ │ + b.n 1d64 │ │ │ │ │ nop │ │ │ │ │ - .word 0x000000aa │ │ │ │ │ + .word 0x000000ba │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0x00000024 │ │ │ │ │ + .word 0x00000026 │ │ │ │ │ R_ARM_REL32 cost_hook │ │ │ │ │ - .word 0x00000022 │ │ │ │ │ + .word 0x00000024 │ │ │ │ │ R_ARM_REL32 wisdom_ok_hook │ │ │ │ │ - .word 0x00000020 │ │ │ │ │ + .word 0x00000022 │ │ │ │ │ R_ARM_REL32 nowisdom_hook │ │ │ │ │ - .word 0x0000001e │ │ │ │ │ + .word 0x00000020 │ │ │ │ │ R_ARM_REL32 bogosity_hook │ │ │ │ │ │ │ │ │ │ -000019f8 : │ │ │ │ │ +00001e2c : │ │ │ │ │ fftw_mpi_plan_guru_dft(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + mov r5, r2 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r7, r3 │ │ │ │ │ - ldr.w r8, [pc, #220] @ 1adc │ │ │ │ │ + mov r6, r1 │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ sub sp, #24 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ + ldr.w r8, [pc, #232] @ 1f2c │ │ │ │ │ add r8, pc │ │ │ │ │ - mov r6, r1 │ │ │ │ │ - mov r5, r2 │ │ │ │ │ ldr.w r3, [r8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq.n 1ab4 │ │ │ │ │ + beq.n 1f00 │ │ │ │ │ cmp r4, #0 │ │ │ │ │ ite gt │ │ │ │ │ movgt.w lr, #0 │ │ │ │ │ movle.w lr, #1 │ │ │ │ │ orrs.w lr, lr, r5, lsr #31 │ │ │ │ │ - bne.n 1aac │ │ │ │ │ + bne.n 1eec │ │ │ │ │ mov ip, r6 │ │ │ │ │ ldr.w r3, [ip] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 1aac │ │ │ │ │ + ble.n 1eec │ │ │ │ │ ldr.w r3, [ip, #4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1aac │ │ │ │ │ + blt.n 1eec │ │ │ │ │ ldr.w r3, [ip, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1aac │ │ │ │ │ + blt.n 1eec │ │ │ │ │ add.w lr, lr, #1 │ │ │ │ │ add.w ip, ip, #12 │ │ │ │ │ cmp r4, lr │ │ │ │ │ - bgt.n 1a28 │ │ │ │ │ - add r1, sp, #20 │ │ │ │ │ + bgt.n 1e64 │ │ │ │ │ ldr r0, [sp, #52] @ 0x34 │ │ │ │ │ + add r1, sp, #20 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ - movs r3, #0 │ │ │ │ │ ldr r2, [sp, #20] │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ mov r1, r6 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - bl bf4 │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + bl dbc │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 1aa6 │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + bgt.n 1ee6 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 1aa6 │ │ │ │ │ + bgt.n 1ee6 │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ mov r2, r7 │ │ │ │ │ mov r1, r5 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - lsrs r3, r3, #27 │ │ │ │ │ + mov.w r3, r3, lsr #27 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkproblem_dft_d │ │ │ │ │ mov r2, r0 │ │ │ │ │ ldrd r0, r1, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkapiplan │ │ │ │ │ - add sp, #24 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + b.n 1ef0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add sp, #24 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + ldmia.w sp!, {r8, pc} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_the_planner │ │ │ │ │ - ldr r2, [pc, #36] @ (1ae0 ) │ │ │ │ │ + ldr r2, [pc, #40] @ (1f30 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #36] @ (1ae4 ) │ │ │ │ │ + ldr r2, [pc, #40] @ (1f34 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #32] @ (1ae8 ) │ │ │ │ │ + ldr r2, [pc, #36] @ (1f38 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #32] @ (1aec ) │ │ │ │ │ + ldr r2, [pc, #36] @ (1f3c ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_conf_standard │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ str.w r3, [r8] │ │ │ │ │ - b.n 1a14 │ │ │ │ │ - .word 0x000000d2 │ │ │ │ │ + b.n 1e50 │ │ │ │ │ + nop │ │ │ │ │ + .word 0x000000e2 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0x00000022 │ │ │ │ │ + .word 0x00000026 │ │ │ │ │ R_ARM_REL32 cost_hook │ │ │ │ │ - .word 0x00000020 │ │ │ │ │ + .word 0x00000024 │ │ │ │ │ R_ARM_REL32 wisdom_ok_hook │ │ │ │ │ - .word 0x0000001e │ │ │ │ │ + .word 0x00000022 │ │ │ │ │ R_ARM_REL32 nowisdom_hook │ │ │ │ │ - .word 0x0000001c │ │ │ │ │ + .word 0x00000020 │ │ │ │ │ R_ARM_REL32 bogosity_hook │ │ │ │ │ │ │ │ │ │ -00001af0 : │ │ │ │ │ +00001f40 : │ │ │ │ │ fftw_mpi_plan_many_dft(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - movs r0, #12 │ │ │ │ │ - sub sp, #20 │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ - mov r9, r2 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + mov r5, r0 │ │ │ │ │ + add.w r0, r0, r0, lsl #1 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r7, r3 │ │ │ │ │ - mul.w r0, r5, r0 │ │ │ │ │ + mov.w r0, r0, lsl #2 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ + sub sp, #20 │ │ │ │ │ ldr.w r8, [sp, #68] @ 0x44 │ │ │ │ │ + mov r9, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_malloc_plain │ │ │ │ │ cmp r5, #0 │ │ │ │ │ mov r6, r0 │ │ │ │ │ - ble.n 1b52 │ │ │ │ │ + ble.n 1fb0 │ │ │ │ │ + add.w r3, r4, r5, lsl #2 │ │ │ │ │ mov lr, r4 │ │ │ │ │ mov ip, r0 │ │ │ │ │ - add.w r3, r4, r5, lsl #2 │ │ │ │ │ ldr.w r4, [lr], #4 │ │ │ │ │ - str.w r4, [ip, #8] │ │ │ │ │ - strd r4, r4, [ip] │ │ │ │ │ cmp lr, r3 │ │ │ │ │ + strd r4, r4, [ip] │ │ │ │ │ add.w ip, ip, #12 │ │ │ │ │ - bne.n 1b1a │ │ │ │ │ + str.w r4, [ip, #-4] │ │ │ │ │ + bne.n 1f78 │ │ │ │ │ cmp r5, #1 │ │ │ │ │ - beq.n 1b7e │ │ │ │ │ + beq.n 1fe8 │ │ │ │ │ tst.w r8, #536870912 @ 0x20000000 │ │ │ │ │ it ne │ │ │ │ │ addne.w r3, r6, #12 │ │ │ │ │ - bne.n 1b40 │ │ │ │ │ + bne.n 1f9e │ │ │ │ │ mov r3, r6 │ │ │ │ │ + ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ tst.w r8, #1073741824 @ 0x40000000 │ │ │ │ │ str r7, [r3, #4] │ │ │ │ │ ite ne │ │ │ │ │ addne.w r3, r6, #12 │ │ │ │ │ moveq r3, r6 │ │ │ │ │ - ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ mov r2, r9 │ │ │ │ │ - str r3, [sp, #8] │ │ │ │ │ mov r1, r6 │ │ │ │ │ - ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ mov r0, r5 │ │ │ │ │ + strd r3, r8, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - str.w r8, [sp, #12] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - bl 19f8 │ │ │ │ │ + bl 1e2c │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_plan_guru_dft │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ifree │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, #20 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ - str r7, [r6, #4] │ │ │ │ │ - str r3, [r6, #8] │ │ │ │ │ - b.n 1b52 │ │ │ │ │ - nop │ │ │ │ │ + strd r7, r3, [r6, #4] │ │ │ │ │ + b.n 1fb0 │ │ │ │ │ │ │ │ │ │ -00001b88 : │ │ │ │ │ +00001ff0 : │ │ │ │ │ fftw_mpi_plan_dft(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ - mov r6, r0 │ │ │ │ │ - movs r0, #12 │ │ │ │ │ - sub sp, #16 │ │ │ │ │ + strd r4, r5, [sp, #-32]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ + mov r6, r0 │ │ │ │ │ + add.w r0, r0, r0, lsl #1 │ │ │ │ │ + strd r8, r9, [sp, #16] │ │ │ │ │ mov r7, r2 │ │ │ │ │ - mov sl, r3 │ │ │ │ │ - mul.w r0, r6, r0 │ │ │ │ │ + mov.w r0, r0, lsl #2 │ │ │ │ │ + strd sl, lr, [sp, #24] │ │ │ │ │ + sub sp, #16 │ │ │ │ │ ldr.w r8, [sp, #56] @ 0x38 │ │ │ │ │ + mov sl, r3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_malloc_plain │ │ │ │ │ cmp r6, #0 │ │ │ │ │ mov r9, r0 │ │ │ │ │ - ble.n 1bee │ │ │ │ │ + ble.n 2066 │ │ │ │ │ + add.w r5, r4, r6, lsl #2 │ │ │ │ │ mov lr, r4 │ │ │ │ │ mov ip, r0 │ │ │ │ │ - add.w r5, r4, r6, lsl #2 │ │ │ │ │ ldr.w r4, [lr], #4 │ │ │ │ │ - str.w r4, [ip, #8] │ │ │ │ │ - strd r4, r4, [ip] │ │ │ │ │ cmp lr, r5 │ │ │ │ │ + strd r4, r4, [ip] │ │ │ │ │ add.w ip, ip, #12 │ │ │ │ │ - bne.n 1bb2 │ │ │ │ │ + str.w r4, [ip, #-4] │ │ │ │ │ + bne.n 2028 │ │ │ │ │ cmp r6, #1 │ │ │ │ │ - beq.n 1c18 │ │ │ │ │ + beq.n 20a0 │ │ │ │ │ tst.w r8, #536870912 @ 0x20000000 │ │ │ │ │ it ne │ │ │ │ │ addne.w r3, r9, #12 │ │ │ │ │ - bne.n 1bd8 │ │ │ │ │ + bne.n 204e │ │ │ │ │ mov r3, r9 │ │ │ │ │ - tst.w r8, #1073741824 @ 0x40000000 │ │ │ │ │ mov.w r2, #0 │ │ │ │ │ + tst.w r8, #1073741824 @ 0x40000000 │ │ │ │ │ str r2, [r3, #4] │ │ │ │ │ ite ne │ │ │ │ │ addne.w r3, r9, #12 │ │ │ │ │ moveq r3, r9 │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - movs r2, #1 │ │ │ │ │ - str r3, [sp, #8] │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ mov r1, r9 │ │ │ │ │ - ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ mov r0, r6 │ │ │ │ │ - strd sl, r3, [sp] │ │ │ │ │ + str.w sl, [sp] │ │ │ │ │ + strd r3, r8, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ mov r3, r7 │ │ │ │ │ - str.w r8, [sp, #12] │ │ │ │ │ - bl 19f8 │ │ │ │ │ + bl 1e2c │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_plan_guru_dft │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ifree │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, #16 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ - movs r3, #0 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldmia.w sp!, {sl, pc} │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ strd r3, r3, [r9, #4] │ │ │ │ │ - b.n 1bee │ │ │ │ │ + b.n 2066 │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -00001c20 : │ │ │ │ │ +000020ac : │ │ │ │ │ fftw_mpi_plan_dft_1d(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r0 │ │ │ │ │ - ldr.w r9, [pc, #216] @ 1d00 │ │ │ │ │ - sub sp, #28 │ │ │ │ │ - movs r0, #12 │ │ │ │ │ - add r9, pc │ │ │ │ │ + mov.w r0, #12 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ mov r6, r3 │ │ │ │ │ + ldr.w r9, [pc, #228] @ 21a8 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + sub sp, #28 │ │ │ │ │ mov r7, r1 │ │ │ │ │ mov r8, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_malloc_plain │ │ │ │ │ - movs r3, #0 │ │ │ │ │ - strd r3, r3, [r0, #4] │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ + add r9, pc │ │ │ │ │ + strd r5, r3, [r0] │ │ │ │ │ + str r3, [r0, #8] │ │ │ │ │ ldr.w r3, [r9] │ │ │ │ │ - str r5, [r0, #0] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq.n 1cc4 │ │ │ │ │ + beq.n 216c │ │ │ │ │ cmp r5, #0 │ │ │ │ │ - ble.n 1cb4 │ │ │ │ │ + ble.n 214c │ │ │ │ │ add r1, sp, #20 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - bl 9d8 │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + bl b50 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r5, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 1cae │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + bgt.n 2146 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 1cae │ │ │ │ │ + bgt.n 2146 │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ mov r2, r7 │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ mov r0, r5 │ │ │ │ │ - lsrs r3, r3, #27 │ │ │ │ │ + str r6, [sp, #0] │ │ │ │ │ + mov.w r3, r3, lsr #27 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ - strd r6, r3, [sp] │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ mov r3, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkproblem_dft_d │ │ │ │ │ mov r2, r0 │ │ │ │ │ ldrd r0, r1, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkapiplan │ │ │ │ │ mov r5, r0 │ │ │ │ │ - mov r0, r4 │ │ │ │ │ - bl 0 │ │ │ │ │ - R_ARM_THM_CALL fftw_ifree │ │ │ │ │ - mov r0, r5 │ │ │ │ │ - add sp, #28 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + b.n 2150 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ + mov.w r5, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - movs r5, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ifree │ │ │ │ │ mov r0, r5 │ │ │ │ │ add sp, #28 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_the_planner │ │ │ │ │ - ldr r2, [pc, #56] @ (1d04 ) │ │ │ │ │ + ldr r2, [pc, #56] @ (21ac ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #56] @ (1d08 ) │ │ │ │ │ + ldr r2, [pc, #56] @ (21b0 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #52] @ (1d0c ) │ │ │ │ │ + ldr r2, [pc, #52] @ (21b4 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #52] @ (1d10 ) │ │ │ │ │ + ldr r2, [pc, #52] @ (21b8 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_conf_standard │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ str.w r3, [r9] │ │ │ │ │ ldr r3, [r4, #0] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 1cb4 │ │ │ │ │ + ble.n 214c │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1cb4 │ │ │ │ │ + blt.n 214c │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bge.n 1c50 │ │ │ │ │ - b.n 1cb4 │ │ │ │ │ - nop │ │ │ │ │ - .word 0x000000ce │ │ │ │ │ + bge.n 20ec │ │ │ │ │ + b.n 214c │ │ │ │ │ + .word 0x000000cc │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ .word 0x00000036 │ │ │ │ │ R_ARM_REL32 cost_hook │ │ │ │ │ .word 0x00000034 │ │ │ │ │ R_ARM_REL32 wisdom_ok_hook │ │ │ │ │ .word 0x00000032 │ │ │ │ │ R_ARM_REL32 nowisdom_hook │ │ │ │ │ .word 0x00000030 │ │ │ │ │ R_ARM_REL32 bogosity_hook │ │ │ │ │ │ │ │ │ │ -00001d14 : │ │ │ │ │ +000021bc : │ │ │ │ │ fftw_mpi_plan_dft_2d(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r0 │ │ │ │ │ - movs r0, #24 │ │ │ │ │ - sub sp, #28 │ │ │ │ │ + mov.w r0, #24 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r6, r1 │ │ │ │ │ mov r8, r2 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ + sub sp, #28 │ │ │ │ │ mov r9, r3 │ │ │ │ │ ldr r7, [sp, #64] @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_malloc_plain │ │ │ │ │ mov r4, r0 │ │ │ │ │ strd r5, r5, [r0, #4] │ │ │ │ │ - str.w r5, [r0], #12 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ tst.w r7, #536870912 @ 0x20000000 │ │ │ │ │ it eq │ │ │ │ │ - moveq r2, r4 │ │ │ │ │ - mov.w r3, #0 │ │ │ │ │ - strd r6, r6, [r4, #16] │ │ │ │ │ + moveq r2, r0 │ │ │ │ │ + str.w r5, [r0], #12 │ │ │ │ │ it ne │ │ │ │ │ movne r2, r0 │ │ │ │ │ - str r6, [r4, #12] │ │ │ │ │ + strd r6, r6, [r4, #12] │ │ │ │ │ tst.w r7, #1073741824 @ 0x40000000 │ │ │ │ │ - ldr r6, [pc, #208] @ (1e20 ) │ │ │ │ │ + str r6, [r4, #20] │ │ │ │ │ it eq │ │ │ │ │ moveq r0, r4 │ │ │ │ │ + ldr r6, [pc, #220] @ (22e8 ) │ │ │ │ │ str r3, [r2, #4] │ │ │ │ │ - add r6, pc │ │ │ │ │ str r3, [r0, #8] │ │ │ │ │ + add r6, pc │ │ │ │ │ ldr r3, [r6, #0] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq.n 1df8 │ │ │ │ │ + beq.n 22bc │ │ │ │ │ cmp r5, #0 │ │ │ │ │ - ble.n 1de8 │ │ │ │ │ + ble.n 229c │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1de8 │ │ │ │ │ + blt.n 229c │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1de8 │ │ │ │ │ + blt.n 229c │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 1de8 │ │ │ │ │ + ble.n 229c │ │ │ │ │ ldr r3, [r4, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1de8 │ │ │ │ │ + blt.n 229c │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1de8 │ │ │ │ │ - add r1, sp, #20 │ │ │ │ │ + blt.n 229c │ │ │ │ │ ldr r0, [sp, #56] @ 0x38 │ │ │ │ │ + add r1, sp, #20 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - bl 654 │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + bl 748 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r5, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 1de2 │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + bgt.n 2296 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 1de2 │ │ │ │ │ - lsrs r3, r7, #27 │ │ │ │ │ + bgt.n 2296 │ │ │ │ │ + mov.w r3, r7, lsr #27 │ │ │ │ │ + mov r2, r8 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ - mov r2, r8 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - movs r1, #1 │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ mov r3, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkproblem_dft_d │ │ │ │ │ - mov r1, r7 │ │ │ │ │ mov r2, r0 │ │ │ │ │ ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ + mov r1, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkapiplan │ │ │ │ │ mov r5, r0 │ │ │ │ │ - mov r0, r4 │ │ │ │ │ - bl 0 │ │ │ │ │ - R_ARM_THM_CALL fftw_ifree │ │ │ │ │ - mov r0, r5 │ │ │ │ │ - add sp, #28 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + b.n 22a0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ + mov.w r5, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - movs r5, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ifree │ │ │ │ │ mov r0, r5 │ │ │ │ │ add sp, #28 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_the_planner │ │ │ │ │ - ldr r2, [pc, #36] @ (1e24 ) │ │ │ │ │ + ldr r2, [pc, #40] @ (22ec ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #36] @ (1e28 ) │ │ │ │ │ + ldr r2, [pc, #40] @ (22f0 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #32] @ (1e2c ) │ │ │ │ │ + ldr r2, [pc, #36] @ (22f4 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #32] @ (1e30 ) │ │ │ │ │ + ldr r2, [pc, #36] @ (22f8 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_conf_standard │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ ldr r5, [r4, #0] │ │ │ │ │ str r3, [r6, #0] │ │ │ │ │ - b.n 1d60 │ │ │ │ │ - .word 0x000000c6 │ │ │ │ │ + b.n 2216 │ │ │ │ │ + nop │ │ │ │ │ + .word 0x000000d6 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0x00000022 │ │ │ │ │ + .word 0x00000026 │ │ │ │ │ R_ARM_REL32 cost_hook │ │ │ │ │ - .word 0x00000020 │ │ │ │ │ + .word 0x00000024 │ │ │ │ │ R_ARM_REL32 wisdom_ok_hook │ │ │ │ │ - .word 0x0000001e │ │ │ │ │ + .word 0x00000022 │ │ │ │ │ R_ARM_REL32 nowisdom_hook │ │ │ │ │ - .word 0x0000001c │ │ │ │ │ + .word 0x00000020 │ │ │ │ │ R_ARM_REL32 bogosity_hook │ │ │ │ │ │ │ │ │ │ -00001e34 : │ │ │ │ │ +000022fc : │ │ │ │ │ fftw_mpi_plan_dft_3d(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - mov r7, r0 │ │ │ │ │ - movs r0, #36 @ 0x24 │ │ │ │ │ - sub sp, #28 │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r2 │ │ │ │ │ mov r6, r1 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + mov r7, r0 │ │ │ │ │ + mov.w r0, #36 @ 0x24 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ + sub sp, #28 │ │ │ │ │ mov r9, r3 │ │ │ │ │ ldr.w r8, [sp, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_malloc_plain │ │ │ │ │ mov ip, r0 │ │ │ │ │ strd r7, r7, [r0, #4] │ │ │ │ │ - tst.w r8, #536870912 @ 0x20000000 │ │ │ │ │ mov.w r3, #0 │ │ │ │ │ - it eq │ │ │ │ │ - moveq r2, r0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ str.w r7, [ip], #12 │ │ │ │ │ - strd r5, r5, [r0, #28] │ │ │ │ │ - str r5, [r0, #24] │ │ │ │ │ - it ne │ │ │ │ │ + tst.w r8, #536870912 @ 0x20000000 │ │ │ │ │ + strd r6, r6, [r0, #12] │ │ │ │ │ + strd r6, r5, [r0, #20] │ │ │ │ │ + ite eq │ │ │ │ │ + moveq r2, r0 │ │ │ │ │ movne r2, ip │ │ │ │ │ - ldr r5, [pc, #240] @ (1f60 ) │ │ │ │ │ + strd r5, r5, [r0, #28] │ │ │ │ │ tst.w r8, #1073741824 @ 0x40000000 │ │ │ │ │ + ldr r5, [pc, #244] @ (2444 ) │ │ │ │ │ it eq │ │ │ │ │ moveq ip, r0 │ │ │ │ │ - strd r6, r6, [r0, #16] │ │ │ │ │ - add r5, pc │ │ │ │ │ - str r6, [r0, #12] │ │ │ │ │ str r3, [r2, #4] │ │ │ │ │ str.w r3, [ip, #8] │ │ │ │ │ + add r5, pc │ │ │ │ │ ldr r3, [r5, #0] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq.n 1f3a │ │ │ │ │ + beq.n 241a │ │ │ │ │ ldr r3, [r4, #0] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 1f2a │ │ │ │ │ + ble.n 23fa │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1f2a │ │ │ │ │ + blt.n 23fa │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1f2a │ │ │ │ │ + blt.n 23fa │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 1f2a │ │ │ │ │ + ble.n 23fa │ │ │ │ │ ldr r3, [r4, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1f2a │ │ │ │ │ + blt.n 23fa │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1f2a │ │ │ │ │ + blt.n 23fa │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 1f2a │ │ │ │ │ + ble.n 23fa │ │ │ │ │ ldr r3, [r4, #28] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1f2a │ │ │ │ │ + blt.n 23fa │ │ │ │ │ ldr r3, [r4, #32] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1f2a │ │ │ │ │ - add r1, sp, #20 │ │ │ │ │ + blt.n 23fa │ │ │ │ │ ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ + add r1, sp, #20 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - bl 248 │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + bl 2a8 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r5, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 1f24 │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + bgt.n 23f4 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 1f24 │ │ │ │ │ + bgt.n 23f4 │ │ │ │ │ mov.w r3, r8, lsr #27 │ │ │ │ │ + mov r2, r9 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ - mov r2, r9 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - movs r1, #1 │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ - mov r0, r5 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkproblem_dft_d │ │ │ │ │ - mov r1, r8 │ │ │ │ │ mov r2, r0 │ │ │ │ │ ldr r0, [sp, #64] @ 0x40 │ │ │ │ │ + mov r1, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkapiplan │ │ │ │ │ mov r5, r0 │ │ │ │ │ - mov r0, r4 │ │ │ │ │ - bl 0 │ │ │ │ │ - R_ARM_THM_CALL fftw_ifree │ │ │ │ │ - mov r0, r5 │ │ │ │ │ - add sp, #28 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + b.n 23fe │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ + mov.w r5, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - movs r5, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ifree │ │ │ │ │ mov r0, r5 │ │ │ │ │ add sp, #28 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_the_planner │ │ │ │ │ - ldr r2, [pc, #36] @ (1f64 ) │ │ │ │ │ + ldr r2, [pc, #40] @ (2448 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #32] @ (1f68 ) │ │ │ │ │ + ldr r2, [pc, #36] @ (244c ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #32] @ (1f6c ) │ │ │ │ │ + ldr r2, [pc, #36] @ (2450 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #28] @ (1f70 ) │ │ │ │ │ + ldr r2, [pc, #32] @ (2454 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_conf_standard │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ str r3, [r5, #0] │ │ │ │ │ - b.n 1e8c │ │ │ │ │ - .word 0x000000e0 │ │ │ │ │ + b.n 2360 │ │ │ │ │ + nop │ │ │ │ │ + .word 0x000000e8 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0x00000020 │ │ │ │ │ + .word 0x00000024 │ │ │ │ │ R_ARM_REL32 cost_hook │ │ │ │ │ - .word 0x0000001e │ │ │ │ │ + .word 0x00000022 │ │ │ │ │ R_ARM_REL32 wisdom_ok_hook │ │ │ │ │ - .word 0x0000001c │ │ │ │ │ + .word 0x00000020 │ │ │ │ │ R_ARM_REL32 nowisdom_hook │ │ │ │ │ - .word 0x0000001a │ │ │ │ │ + .word 0x0000001e │ │ │ │ │ R_ARM_REL32 bogosity_hook │ │ │ │ │ │ │ │ │ │ -00001f74 : │ │ │ │ │ +00002458 : │ │ │ │ │ fftw_mpi_plan_guru_r2r(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + mov r5, r2 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r7, r3 │ │ │ │ │ - ldr.w r8, [pc, #240] @ 206c │ │ │ │ │ + mov r6, r1 │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ sub sp, #24 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ + ldr.w r8, [pc, #252] @ 256c │ │ │ │ │ add r8, pc │ │ │ │ │ - mov r6, r1 │ │ │ │ │ - mov r5, r2 │ │ │ │ │ ldr.w r3, [r8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq.n 2044 │ │ │ │ │ + beq.n 2540 │ │ │ │ │ cmp r4, #0 │ │ │ │ │ ite gt │ │ │ │ │ movgt.w lr, #0 │ │ │ │ │ movle.w lr, #1 │ │ │ │ │ orrs.w lr, lr, r5, lsr #31 │ │ │ │ │ - bne.n 203a │ │ │ │ │ + bne.n 252a │ │ │ │ │ mov ip, r6 │ │ │ │ │ ldr.w r3, [ip] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 203a │ │ │ │ │ + ble.n 252a │ │ │ │ │ ldr.w r3, [ip, #4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 203a │ │ │ │ │ + blt.n 252a │ │ │ │ │ ldr.w r3, [ip, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 203a │ │ │ │ │ + blt.n 252a │ │ │ │ │ add.w lr, lr, #1 │ │ │ │ │ add.w ip, ip, #12 │ │ │ │ │ cmp r4, lr │ │ │ │ │ - bgt.n 1fa4 │ │ │ │ │ + bgt.n 2490 │ │ │ │ │ ldr r1, [sp, #56] @ 0x38 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_map_r2r_kind │ │ │ │ │ - add r1, sp, #20 │ │ │ │ │ mov r8, r0 │ │ │ │ │ ldr r0, [sp, #52] @ 0x34 │ │ │ │ │ + add r1, sp, #20 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ - movs r3, #0 │ │ │ │ │ ldr r2, [sp, #20] │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ mov r1, r6 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - bl bf4 │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + bl dbc │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 2034 │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + bgt.n 2524 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 2034 │ │ │ │ │ + bgt.n 2524 │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ mov r2, r7 │ │ │ │ │ mov r1, r5 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - lsrs r3, r3, #27 │ │ │ │ │ + mov.w r3, r3, lsr #27 │ │ │ │ │ strd r8, r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkproblem_rdft_d │ │ │ │ │ ldr r1, [sp, #60] @ 0x3c │ │ │ │ │ mov r2, r0 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkapiplan │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ifree0 │ │ │ │ │ - mov r0, r4 │ │ │ │ │ - add sp, #24 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + b.n 252e │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ - movs r4, #0 │ │ │ │ │ + mov.w r4, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, #24 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + ldmia.w sp!, {r8, pc} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_the_planner │ │ │ │ │ - ldr r2, [pc, #36] @ (2070 ) │ │ │ │ │ + ldr r2, [pc, #40] @ (2570 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #36] @ (2074 ) │ │ │ │ │ + ldr r2, [pc, #40] @ (2574 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #32] @ (2078 ) │ │ │ │ │ + ldr r2, [pc, #36] @ (2578 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #32] @ (207c ) │ │ │ │ │ + ldr r2, [pc, #36] @ (257c ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_conf_standard │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ str.w r3, [r8] │ │ │ │ │ - b.n 1f90 │ │ │ │ │ - .word 0x000000e6 │ │ │ │ │ + b.n 247c │ │ │ │ │ + nop │ │ │ │ │ + .word 0x000000f6 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0x00000022 │ │ │ │ │ + .word 0x00000026 │ │ │ │ │ R_ARM_REL32 cost_hook │ │ │ │ │ - .word 0x00000020 │ │ │ │ │ + .word 0x00000024 │ │ │ │ │ R_ARM_REL32 wisdom_ok_hook │ │ │ │ │ - .word 0x0000001e │ │ │ │ │ + .word 0x00000022 │ │ │ │ │ R_ARM_REL32 nowisdom_hook │ │ │ │ │ - .word 0x0000001c │ │ │ │ │ + .word 0x00000020 │ │ │ │ │ R_ARM_REL32 bogosity_hook │ │ │ │ │ │ │ │ │ │ -00002080 : │ │ │ │ │ +00002580 : │ │ │ │ │ fftw_mpi_plan_many_r2r(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - movs r0, #12 │ │ │ │ │ - sub sp, #20 │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ - mov r9, r2 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + mov r5, r0 │ │ │ │ │ + add.w r0, r0, r0, lsl #1 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r7, r3 │ │ │ │ │ - mul.w r0, r5, r0 │ │ │ │ │ + mov.w r0, r0, lsl #2 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ + sub sp, #20 │ │ │ │ │ ldr.w r8, [sp, #68] @ 0x44 │ │ │ │ │ + mov r9, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_malloc_plain │ │ │ │ │ cmp r5, #0 │ │ │ │ │ mov r6, r0 │ │ │ │ │ - ble.n 20e2 │ │ │ │ │ + ble.n 25f0 │ │ │ │ │ + add.w r3, r4, r5, lsl #2 │ │ │ │ │ mov lr, r4 │ │ │ │ │ mov ip, r0 │ │ │ │ │ - add.w r3, r4, r5, lsl #2 │ │ │ │ │ ldr.w r4, [lr], #4 │ │ │ │ │ - str.w r4, [ip, #8] │ │ │ │ │ - strd r4, r4, [ip] │ │ │ │ │ cmp lr, r3 │ │ │ │ │ + strd r4, r4, [ip] │ │ │ │ │ add.w ip, ip, #12 │ │ │ │ │ - bne.n 20aa │ │ │ │ │ + str.w r4, [ip, #-4] │ │ │ │ │ + bne.n 25b8 │ │ │ │ │ cmp r5, #1 │ │ │ │ │ - beq.n 210e │ │ │ │ │ + beq.n 2628 │ │ │ │ │ tst.w r8, #536870912 @ 0x20000000 │ │ │ │ │ it ne │ │ │ │ │ addne.w r3, r6, #12 │ │ │ │ │ - bne.n 20d0 │ │ │ │ │ + bne.n 25de │ │ │ │ │ mov r3, r6 │ │ │ │ │ + ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ tst.w r8, #1073741824 @ 0x40000000 │ │ │ │ │ str r7, [r3, #4] │ │ │ │ │ ite ne │ │ │ │ │ addne.w r3, r6, #12 │ │ │ │ │ moveq r3, r6 │ │ │ │ │ - ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ mov r2, r9 │ │ │ │ │ - str r3, [sp, #8] │ │ │ │ │ mov r1, r6 │ │ │ │ │ - ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ mov r0, r5 │ │ │ │ │ + strd r3, r8, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - str.w r8, [sp, #12] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - bl 1f74 │ │ │ │ │ + bl 2458 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_plan_guru_r2r │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ifree │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, #20 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ - str r7, [r6, #4] │ │ │ │ │ - str r3, [r6, #8] │ │ │ │ │ - b.n 20e2 │ │ │ │ │ - nop │ │ │ │ │ + strd r7, r3, [r6, #4] │ │ │ │ │ + b.n 25f0 │ │ │ │ │ │ │ │ │ │ -00002118 : │ │ │ │ │ +00002630 : │ │ │ │ │ fftw_mpi_plan_r2r(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ - mov r6, r0 │ │ │ │ │ - movs r0, #12 │ │ │ │ │ - sub sp, #16 │ │ │ │ │ + strd r4, r5, [sp, #-32]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ + mov r6, r0 │ │ │ │ │ + add.w r0, r0, r0, lsl #1 │ │ │ │ │ + strd r8, r9, [sp, #16] │ │ │ │ │ mov r7, r2 │ │ │ │ │ - mov sl, r3 │ │ │ │ │ - mul.w r0, r6, r0 │ │ │ │ │ + mov.w r0, r0, lsl #2 │ │ │ │ │ + strd sl, lr, [sp, #24] │ │ │ │ │ + sub sp, #16 │ │ │ │ │ ldr.w r8, [sp, #56] @ 0x38 │ │ │ │ │ + mov sl, r3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_malloc_plain │ │ │ │ │ cmp r6, #0 │ │ │ │ │ mov r9, r0 │ │ │ │ │ - ble.n 217e │ │ │ │ │ + ble.n 26a6 │ │ │ │ │ + add.w r5, r4, r6, lsl #2 │ │ │ │ │ mov lr, r4 │ │ │ │ │ mov ip, r0 │ │ │ │ │ - add.w r5, r4, r6, lsl #2 │ │ │ │ │ ldr.w r4, [lr], #4 │ │ │ │ │ - str.w r4, [ip, #8] │ │ │ │ │ - strd r4, r4, [ip] │ │ │ │ │ cmp lr, r5 │ │ │ │ │ + strd r4, r4, [ip] │ │ │ │ │ add.w ip, ip, #12 │ │ │ │ │ - bne.n 2142 │ │ │ │ │ + str.w r4, [ip, #-4] │ │ │ │ │ + bne.n 2668 │ │ │ │ │ cmp r6, #1 │ │ │ │ │ - beq.n 21a8 │ │ │ │ │ + beq.n 26e0 │ │ │ │ │ tst.w r8, #536870912 @ 0x20000000 │ │ │ │ │ it ne │ │ │ │ │ addne.w r3, r9, #12 │ │ │ │ │ - bne.n 2168 │ │ │ │ │ + bne.n 268e │ │ │ │ │ mov r3, r9 │ │ │ │ │ - tst.w r8, #1073741824 @ 0x40000000 │ │ │ │ │ mov.w r2, #0 │ │ │ │ │ + tst.w r8, #1073741824 @ 0x40000000 │ │ │ │ │ str r2, [r3, #4] │ │ │ │ │ ite ne │ │ │ │ │ addne.w r3, r9, #12 │ │ │ │ │ moveq r3, r9 │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - movs r2, #1 │ │ │ │ │ - str r3, [sp, #8] │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ mov r1, r9 │ │ │ │ │ - ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ mov r0, r6 │ │ │ │ │ - strd sl, r3, [sp] │ │ │ │ │ + str.w sl, [sp] │ │ │ │ │ + strd r3, r8, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ mov r3, r7 │ │ │ │ │ - str.w r8, [sp, #12] │ │ │ │ │ - bl 1f74 │ │ │ │ │ + bl 2458 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_plan_guru_r2r │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ifree │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, #16 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ - movs r3, #0 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldmia.w sp!, {sl, pc} │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ strd r3, r3, [r9, #4] │ │ │ │ │ - b.n 217e │ │ │ │ │ + b.n 26a6 │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -000021b0 : │ │ │ │ │ +000026ec : │ │ │ │ │ fftw_mpi_plan_r2r_2d(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - mov r9, r3 │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r0 │ │ │ │ │ - sub sp, #36 @ 0x24 │ │ │ │ │ - movs r0, #24 │ │ │ │ │ + mov.w r0, #24 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r6, r1 │ │ │ │ │ mov r8, r2 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ + sub sp, #36 @ 0x24 │ │ │ │ │ + mov r9, r3 │ │ │ │ │ ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ + ldr r7, [sp, #76] @ 0x4c │ │ │ │ │ str r3, [sp, #24] │ │ │ │ │ ldr r3, [sp, #72] @ 0x48 │ │ │ │ │ - ldr r7, [sp, #76] @ 0x4c │ │ │ │ │ str r3, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_malloc_plain │ │ │ │ │ mov r4, r0 │ │ │ │ │ - strd r5, r5, [r0, #4] │ │ │ │ │ - str.w r5, [r0], #12 │ │ │ │ │ tst.w r7, #536870912 @ 0x20000000 │ │ │ │ │ + strd r5, r5, [r0, #4] │ │ │ │ │ it eq │ │ │ │ │ - moveq r2, r4 │ │ │ │ │ - mov.w r3, #0 │ │ │ │ │ - strd r6, r6, [r4, #16] │ │ │ │ │ + moveq r2, r0 │ │ │ │ │ + str.w r5, [r0], #12 │ │ │ │ │ it ne │ │ │ │ │ movne r2, r0 │ │ │ │ │ - str r6, [r4, #12] │ │ │ │ │ + strd r6, r6, [r4, #12] │ │ │ │ │ tst.w r7, #1073741824 @ 0x40000000 │ │ │ │ │ - ldr r6, [pc, #224] @ (22d4 ) │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ + str r6, [r4, #20] │ │ │ │ │ it eq │ │ │ │ │ moveq r0, r4 │ │ │ │ │ + ldr r6, [pc, #236] @ (2830 ) │ │ │ │ │ str r3, [r2, #4] │ │ │ │ │ - add r6, pc │ │ │ │ │ str r3, [r0, #8] │ │ │ │ │ + add r6, pc │ │ │ │ │ ldr r3, [r6, #0] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq.n 22aa │ │ │ │ │ + beq.n 2806 │ │ │ │ │ cmp r5, #0 │ │ │ │ │ - ble.n 229a │ │ │ │ │ + ble.n 27e6 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 229a │ │ │ │ │ + blt.n 27e6 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 229a │ │ │ │ │ + blt.n 27e6 │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 229a │ │ │ │ │ + ble.n 27e6 │ │ │ │ │ ldr r3, [r4, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 229a │ │ │ │ │ + blt.n 27e6 │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 229a │ │ │ │ │ + blt.n 27e6 │ │ │ │ │ add r1, sp, #24 │ │ │ │ │ - movs r0, #2 │ │ │ │ │ + mov.w r0, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_map_r2r_kind │ │ │ │ │ - add r1, sp, #20 │ │ │ │ │ mov r5, r0 │ │ │ │ │ ldr r0, [sp, #64] @ 0x40 │ │ │ │ │ + add r1, sp, #20 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - bl 654 │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + bl 748 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r6, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 2294 │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + bgt.n 27e0 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 2294 │ │ │ │ │ - lsrs r3, r7, #27 │ │ │ │ │ + bgt.n 27e0 │ │ │ │ │ + mov.w r3, r7, lsr #27 │ │ │ │ │ + mov r2, r8 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ + mov r0, r6 │ │ │ │ │ strd r5, r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ - mov r2, r8 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - movs r1, #1 │ │ │ │ │ mov r3, r9 │ │ │ │ │ - mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkproblem_rdft_d │ │ │ │ │ - mov r1, r7 │ │ │ │ │ mov r2, r0 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + mov r1, r7 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkapiplan │ │ │ │ │ mov r6, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ifree0 │ │ │ │ │ - mov r0, r4 │ │ │ │ │ - bl 0 │ │ │ │ │ - R_ARM_THM_CALL fftw_ifree │ │ │ │ │ - mov r0, r6 │ │ │ │ │ - add sp, #36 @ 0x24 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + b.n 27ea │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ + mov.w r6, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - movs r6, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ifree │ │ │ │ │ mov r0, r6 │ │ │ │ │ add sp, #36 @ 0x24 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_the_planner │ │ │ │ │ - ldr r2, [pc, #40] @ (22d8 ) │ │ │ │ │ + ldr r2, [pc, #40] @ (2834 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #36] @ (22dc ) │ │ │ │ │ + ldr r2, [pc, #36] @ (2838 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #36] @ (22e0 ) │ │ │ │ │ + ldr r2, [pc, #36] @ (283c ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #32] @ (22e4 ) │ │ │ │ │ + ldr r2, [pc, #32] @ (2840 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_conf_standard │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ ldr r5, [r4, #0] │ │ │ │ │ str r3, [r6, #0] │ │ │ │ │ - b.n 2204 │ │ │ │ │ - nop │ │ │ │ │ - .word 0x000000d6 │ │ │ │ │ + b.n 274e │ │ │ │ │ + .word 0x000000e6 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ .word 0x00000024 │ │ │ │ │ R_ARM_REL32 cost_hook │ │ │ │ │ .word 0x00000022 │ │ │ │ │ R_ARM_REL32 wisdom_ok_hook │ │ │ │ │ .word 0x00000020 │ │ │ │ │ R_ARM_REL32 nowisdom_hook │ │ │ │ │ .word 0x0000001e │ │ │ │ │ R_ARM_REL32 bogosity_hook │ │ │ │ │ │ │ │ │ │ -000022e8 : │ │ │ │ │ +00002844 : │ │ │ │ │ fftw_mpi_plan_r2r_3d(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - mov r9, r3 │ │ │ │ │ - mov r7, r0 │ │ │ │ │ - sub sp, #44 @ 0x2c │ │ │ │ │ - movs r0, #36 @ 0x24 │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r2 │ │ │ │ │ mov r6, r1 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + mov r7, r0 │ │ │ │ │ + mov.w r0, #36 @ 0x24 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ + sub sp, #44 @ 0x2c │ │ │ │ │ + mov r9, r3 │ │ │ │ │ ldr r3, [sp, #80] @ 0x50 │ │ │ │ │ + ldr.w r8, [sp, #92] @ 0x5c │ │ │ │ │ str r3, [sp, #24] │ │ │ │ │ ldr r3, [sp, #84] @ 0x54 │ │ │ │ │ str r3, [sp, #28] │ │ │ │ │ ldr r3, [sp, #88] @ 0x58 │ │ │ │ │ - ldr.w r8, [sp, #92] @ 0x5c │ │ │ │ │ str r3, [sp, #32] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_malloc_plain │ │ │ │ │ mov ip, r0 │ │ │ │ │ strd r7, r7, [r0, #4] │ │ │ │ │ tst.w r8, #536870912 @ 0x20000000 │ │ │ │ │ - mov.w r3, #0 │ │ │ │ │ it eq │ │ │ │ │ moveq r2, r0 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ str.w r7, [ip], #12 │ │ │ │ │ - strd r5, r5, [r0, #28] │ │ │ │ │ - str r5, [r0, #24] │ │ │ │ │ it ne │ │ │ │ │ movne r2, ip │ │ │ │ │ - ldr r5, [pc, #256] @ (2430 ) │ │ │ │ │ tst.w r8, #1073741824 @ 0x40000000 │ │ │ │ │ it eq │ │ │ │ │ moveq ip, r0 │ │ │ │ │ - strd r6, r6, [r0, #16] │ │ │ │ │ - add r5, pc │ │ │ │ │ - str r6, [r0, #12] │ │ │ │ │ + strd r6, r6, [r0, #12] │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + strd r6, r5, [r0, #20] │ │ │ │ │ + strd r5, r5, [r0, #28] │ │ │ │ │ + ldr r5, [pc, #260] @ (29ac ) │ │ │ │ │ str r3, [r2, #4] │ │ │ │ │ str.w r3, [ip, #8] │ │ │ │ │ + add r5, pc │ │ │ │ │ ldr r3, [r5, #0] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq.n 2408 │ │ │ │ │ + beq.n 2982 │ │ │ │ │ ldr r3, [r4, #0] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 23f8 │ │ │ │ │ + ble.n 2962 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 23f8 │ │ │ │ │ + blt.n 2962 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 23f8 │ │ │ │ │ + blt.n 2962 │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 23f8 │ │ │ │ │ + ble.n 2962 │ │ │ │ │ ldr r3, [r4, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 23f8 │ │ │ │ │ + blt.n 2962 │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 23f8 │ │ │ │ │ + blt.n 2962 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 23f8 │ │ │ │ │ + ble.n 2962 │ │ │ │ │ ldr r3, [r4, #28] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 23f8 │ │ │ │ │ + blt.n 2962 │ │ │ │ │ ldr r3, [r4, #32] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 23f8 │ │ │ │ │ + blt.n 2962 │ │ │ │ │ add r1, sp, #24 │ │ │ │ │ - movs r0, #3 │ │ │ │ │ + mov.w r0, #3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_map_r2r_kind │ │ │ │ │ - add r1, sp, #20 │ │ │ │ │ mov r5, r0 │ │ │ │ │ ldr r0, [sp, #76] @ 0x4c │ │ │ │ │ + add r1, sp, #20 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - bl 248 │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + bl 2a8 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r6, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 23f2 │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + bgt.n 295c │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 23f2 │ │ │ │ │ + bgt.n 295c │ │ │ │ │ mov.w r3, r8, lsr #27 │ │ │ │ │ + mov r2, r9 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ + mov r0, r6 │ │ │ │ │ strd r5, r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #76] @ 0x4c │ │ │ │ │ - mov r2, r9 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - movs r1, #1 │ │ │ │ │ ldr r3, [sp, #72] @ 0x48 │ │ │ │ │ - mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkproblem_rdft_d │ │ │ │ │ - mov r1, r8 │ │ │ │ │ mov r2, r0 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + mov r1, r8 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkapiplan │ │ │ │ │ mov r6, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ifree0 │ │ │ │ │ - mov r0, r4 │ │ │ │ │ - bl 0 │ │ │ │ │ - R_ARM_THM_CALL fftw_ifree │ │ │ │ │ - mov r0, r6 │ │ │ │ │ - add sp, #44 @ 0x2c │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + b.n 2966 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ + mov.w r6, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - movs r6, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ifree │ │ │ │ │ mov r0, r6 │ │ │ │ │ add sp, #44 @ 0x2c │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_the_planner │ │ │ │ │ - ldr r2, [pc, #36] @ (2434 ) │ │ │ │ │ + ldr r2, [pc, #40] @ (29b0 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #36] @ (2438 ) │ │ │ │ │ + ldr r2, [pc, #36] @ (29b4 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #32] @ (243c ) │ │ │ │ │ + ldr r2, [pc, #36] @ (29b8 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #32] @ (2440 ) │ │ │ │ │ + ldr r2, [pc, #32] @ (29bc ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_conf_standard │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ str r3, [r5, #0] │ │ │ │ │ - b.n 234c │ │ │ │ │ + b.n 28b6 │ │ │ │ │ nop │ │ │ │ │ - .word 0x000000f0 │ │ │ │ │ + .word 0x000000fa │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0x00000022 │ │ │ │ │ + .word 0x00000024 │ │ │ │ │ R_ARM_REL32 cost_hook │ │ │ │ │ - .word 0x00000020 │ │ │ │ │ + .word 0x00000022 │ │ │ │ │ R_ARM_REL32 wisdom_ok_hook │ │ │ │ │ - .word 0x0000001e │ │ │ │ │ + .word 0x00000020 │ │ │ │ │ R_ARM_REL32 nowisdom_hook │ │ │ │ │ - .word 0x0000001c │ │ │ │ │ + .word 0x0000001e │ │ │ │ │ R_ARM_REL32 bogosity_hook │ │ │ │ │ │ │ │ │ │ -00002444 : │ │ │ │ │ +000029c0 : │ │ │ │ │ fftw_mpi_plan_many_dft_r2c(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - movs r0, #12 │ │ │ │ │ - sub sp, #20 │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ - mov r9, r2 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + mov r5, r0 │ │ │ │ │ + add.w r0, r0, r0, lsl #1 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r7, r3 │ │ │ │ │ - mul.w r0, r5, r0 │ │ │ │ │ + mov.w r0, r0, lsl #2 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ + sub sp, #20 │ │ │ │ │ ldr.w r8, [sp, #64] @ 0x40 │ │ │ │ │ + mov r9, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_malloc_plain │ │ │ │ │ cmp r5, #0 │ │ │ │ │ mov r6, r0 │ │ │ │ │ - ble.n 24a6 │ │ │ │ │ + ble.n 2a30 │ │ │ │ │ + add.w r3, r4, r5, lsl #2 │ │ │ │ │ mov lr, r4 │ │ │ │ │ mov ip, r0 │ │ │ │ │ - add.w r3, r4, r5, lsl #2 │ │ │ │ │ ldr.w r4, [lr], #4 │ │ │ │ │ - str.w r4, [ip, #8] │ │ │ │ │ - strd r4, r4, [ip] │ │ │ │ │ cmp lr, r3 │ │ │ │ │ + strd r4, r4, [ip] │ │ │ │ │ add.w ip, ip, #12 │ │ │ │ │ - bne.n 246e │ │ │ │ │ + str.w r4, [ip, #-4] │ │ │ │ │ + bne.n 29f8 │ │ │ │ │ cmp r5, #1 │ │ │ │ │ - beq.n 24d2 │ │ │ │ │ + beq.n 2a6a │ │ │ │ │ tst.w r8, #536870912 @ 0x20000000 │ │ │ │ │ it ne │ │ │ │ │ addne.w r3, r6, #12 │ │ │ │ │ - bne.n 2494 │ │ │ │ │ + bne.n 2a1e │ │ │ │ │ mov r3, r6 │ │ │ │ │ + ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ tst.w r8, #1073741824 @ 0x40000000 │ │ │ │ │ str r7, [r3, #4] │ │ │ │ │ ite ne │ │ │ │ │ addne.w r3, r6, #12 │ │ │ │ │ moveq r3, r6 │ │ │ │ │ - ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ - movs r3, #0 │ │ │ │ │ - str r3, [sp, #8] │ │ │ │ │ - ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ mov r2, r9 │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ mov r1, r6 │ │ │ │ │ - ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ mov r0, r5 │ │ │ │ │ + strd r3, r8, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - str.w r8, [sp, #12] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - bl 1490 │ │ │ │ │ + bl 17b8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ifree │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, #20 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ - str r7, [r6, #4] │ │ │ │ │ - str r3, [r6, #8] │ │ │ │ │ - b.n 24a6 │ │ │ │ │ + strd r7, r3, [r6, #4] │ │ │ │ │ + b.n 2a30 │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -000024dc : │ │ │ │ │ +00002a74 : │ │ │ │ │ fftw_mpi_plan_many_dft_c2r(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - movs r0, #12 │ │ │ │ │ - sub sp, #20 │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ - mov r9, r2 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + mov r5, r0 │ │ │ │ │ + add.w r0, r0, r0, lsl #1 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r7, r3 │ │ │ │ │ - mul.w r0, r5, r0 │ │ │ │ │ + mov.w r0, r0, lsl #2 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ + sub sp, #20 │ │ │ │ │ ldr.w r8, [sp, #64] @ 0x40 │ │ │ │ │ + mov r9, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_malloc_plain │ │ │ │ │ cmp r5, #0 │ │ │ │ │ mov r6, r0 │ │ │ │ │ - ble.n 253e │ │ │ │ │ + ble.n 2ae4 │ │ │ │ │ + add.w r3, r4, r5, lsl #2 │ │ │ │ │ mov lr, r4 │ │ │ │ │ mov ip, r0 │ │ │ │ │ - add.w r3, r4, r5, lsl #2 │ │ │ │ │ ldr.w r4, [lr], #4 │ │ │ │ │ - str.w r4, [ip, #8] │ │ │ │ │ - strd r4, r4, [ip] │ │ │ │ │ cmp lr, r3 │ │ │ │ │ + strd r4, r4, [ip] │ │ │ │ │ add.w ip, ip, #12 │ │ │ │ │ - bne.n 2506 │ │ │ │ │ + str.w r4, [ip, #-4] │ │ │ │ │ + bne.n 2aac │ │ │ │ │ cmp r5, #1 │ │ │ │ │ - beq.n 256a │ │ │ │ │ + beq.n 2b1e │ │ │ │ │ tst.w r8, #536870912 @ 0x20000000 │ │ │ │ │ it ne │ │ │ │ │ addne.w r3, r6, #12 │ │ │ │ │ - bne.n 252c │ │ │ │ │ + bne.n 2ad2 │ │ │ │ │ mov r3, r6 │ │ │ │ │ + ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ tst.w r8, #1073741824 @ 0x40000000 │ │ │ │ │ str r7, [r3, #4] │ │ │ │ │ ite ne │ │ │ │ │ addne.w r3, r6, #12 │ │ │ │ │ moveq r3, r6 │ │ │ │ │ - ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ - movs r3, #4 │ │ │ │ │ - str r3, [sp, #8] │ │ │ │ │ - ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ + mov.w r3, #4 │ │ │ │ │ mov r2, r9 │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ mov r1, r6 │ │ │ │ │ - ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ mov r0, r5 │ │ │ │ │ + strd r3, r8, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - str.w r8, [sp, #12] │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ - bl 1490 │ │ │ │ │ + bl 17b8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ifree │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, #20 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ - str r7, [r6, #4] │ │ │ │ │ - str r3, [r6, #8] │ │ │ │ │ - b.n 253e │ │ │ │ │ + strd r7, r3, [r6, #4] │ │ │ │ │ + b.n 2ae4 │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -00002574 : │ │ │ │ │ +00002b28 : │ │ │ │ │ fftw_mpi_plan_dft_r2c(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ - mov r6, r0 │ │ │ │ │ - movs r0, #12 │ │ │ │ │ - sub sp, #16 │ │ │ │ │ + strd r4, r5, [sp, #-32]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ + mov r6, r0 │ │ │ │ │ + add.w r0, r0, r0, lsl #1 │ │ │ │ │ + strd r8, r9, [sp, #16] │ │ │ │ │ mov r7, r2 │ │ │ │ │ - mov sl, r3 │ │ │ │ │ - mul.w r0, r6, r0 │ │ │ │ │ + mov.w r0, r0, lsl #2 │ │ │ │ │ + strd sl, lr, [sp, #24] │ │ │ │ │ + sub sp, #16 │ │ │ │ │ ldr.w r8, [sp, #52] @ 0x34 │ │ │ │ │ + mov sl, r3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_malloc_plain │ │ │ │ │ cmp r6, #0 │ │ │ │ │ mov r9, r0 │ │ │ │ │ - ble.n 25da │ │ │ │ │ + ble.n 2b9e │ │ │ │ │ + add.w r5, r4, r6, lsl #2 │ │ │ │ │ mov lr, r4 │ │ │ │ │ mov ip, r0 │ │ │ │ │ - add.w r5, r4, r6, lsl #2 │ │ │ │ │ ldr.w r4, [lr], #4 │ │ │ │ │ - str.w r4, [ip, #8] │ │ │ │ │ - strd r4, r4, [ip] │ │ │ │ │ cmp lr, r5 │ │ │ │ │ + strd r4, r4, [ip] │ │ │ │ │ add.w ip, ip, #12 │ │ │ │ │ - bne.n 259e │ │ │ │ │ + str.w r4, [ip, #-4] │ │ │ │ │ + bne.n 2b60 │ │ │ │ │ cmp r6, #1 │ │ │ │ │ - beq.n 2604 │ │ │ │ │ + beq.n 2bda │ │ │ │ │ tst.w r8, #536870912 @ 0x20000000 │ │ │ │ │ it ne │ │ │ │ │ addne.w r3, r9, #12 │ │ │ │ │ - bne.n 25c4 │ │ │ │ │ + bne.n 2b86 │ │ │ │ │ mov r3, r9 │ │ │ │ │ - tst.w r8, #1073741824 @ 0x40000000 │ │ │ │ │ mov.w r2, #0 │ │ │ │ │ + tst.w r8, #1073741824 @ 0x40000000 │ │ │ │ │ str r2, [r3, #4] │ │ │ │ │ ite ne │ │ │ │ │ addne.w r3, r9, #12 │ │ │ │ │ moveq r3, r9 │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ - movs r3, #0 │ │ │ │ │ - str r3, [sp, #8] │ │ │ │ │ - ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ - movs r2, #1 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ + str.w sl, [sp] │ │ │ │ │ mov r1, r9 │ │ │ │ │ - strd sl, r3, [sp] │ │ │ │ │ mov r0, r6 │ │ │ │ │ + strd r3, r8, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ mov r3, r7 │ │ │ │ │ - str.w r8, [sp, #12] │ │ │ │ │ - bl 1490 │ │ │ │ │ + bl 17b8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ifree │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, #16 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ - movs r3, #0 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldmia.w sp!, {sl, pc} │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ strd r3, r3, [r9, #4] │ │ │ │ │ - b.n 25da │ │ │ │ │ + b.n 2b9e │ │ │ │ │ │ │ │ │ │ -0000260c : │ │ │ │ │ +00002be4 : │ │ │ │ │ fftw_mpi_plan_dft_r2c_2d(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r6, r0 │ │ │ │ │ - movs r0, #24 │ │ │ │ │ - sub sp, #12 │ │ │ │ │ - mov r7, r2 │ │ │ │ │ + mov.w r0, #24 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r5, r1 │ │ │ │ │ + mov r7, r2 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ + sub sp, #12 │ │ │ │ │ mov r8, r3 │ │ │ │ │ ldr.w r9, [sp, #44] @ 0x2c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_malloc_plain │ │ │ │ │ mov ip, r0 │ │ │ │ │ strd r6, r6, [r0, #4] │ │ │ │ │ - tst.w r9, #536870912 @ 0x20000000 │ │ │ │ │ mov.w r3, #0 │ │ │ │ │ - it eq │ │ │ │ │ - moveq r2, r0 │ │ │ │ │ + mov r1, r7 │ │ │ │ │ mov r4, r0 │ │ │ │ │ str.w r6, [ip], #12 │ │ │ │ │ - mov r1, r7 │ │ │ │ │ - strd r5, r5, [r0, #16] │ │ │ │ │ - it ne │ │ │ │ │ + tst.w r9, #536870912 @ 0x20000000 │ │ │ │ │ + strd r5, r5, [r0, #12] │ │ │ │ │ + ite ne │ │ │ │ │ movne r2, ip │ │ │ │ │ + moveq r2, r0 │ │ │ │ │ + str r5, [r0, #20] │ │ │ │ │ tst.w r9, #1073741824 @ 0x40000000 │ │ │ │ │ it eq │ │ │ │ │ moveq ip, r0 │ │ │ │ │ - str r5, [r0, #12] │ │ │ │ │ str r3, [r2, #4] │ │ │ │ │ mov r2, r8 │ │ │ │ │ str.w r3, [ip, #8] │ │ │ │ │ strd r3, r9, [sp] │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ - bl 1398 │ │ │ │ │ + bl 1690 │ │ │ │ │ mov r5, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ifree │ │ │ │ │ mov r0, r5 │ │ │ │ │ add sp, #12 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ - nop │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ │ │ │ │ │ -00002674 : │ │ │ │ │ +00002c64 : │ │ │ │ │ fftw_mpi_plan_dft_r2c_3d(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - mov r7, r0 │ │ │ │ │ - movs r0, #36 @ 0x24 │ │ │ │ │ - sub sp, #12 │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r2 │ │ │ │ │ mov r6, r1 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + mov r7, r0 │ │ │ │ │ + mov.w r0, #36 @ 0x24 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ + sub sp, #12 │ │ │ │ │ mov r8, r3 │ │ │ │ │ ldr.w r9, [sp, #48] @ 0x30 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_malloc_plain │ │ │ │ │ mov ip, r0 │ │ │ │ │ strd r7, r7, [r0, #4] │ │ │ │ │ - tst.w r9, #536870912 @ 0x20000000 │ │ │ │ │ mov.w r3, #0 │ │ │ │ │ - it eq │ │ │ │ │ - moveq r2, r0 │ │ │ │ │ + mov r1, r8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ str.w r7, [ip], #12 │ │ │ │ │ - mov r1, r8 │ │ │ │ │ - strd r6, r6, [r0, #16] │ │ │ │ │ - it ne │ │ │ │ │ + tst.w r9, #536870912 @ 0x20000000 │ │ │ │ │ + strd r6, r6, [r0, #12] │ │ │ │ │ + ite ne │ │ │ │ │ movne r2, ip │ │ │ │ │ + moveq r2, r0 │ │ │ │ │ + strd r6, r5, [r0, #20] │ │ │ │ │ tst.w r9, #1073741824 @ 0x40000000 │ │ │ │ │ + strd r5, r5, [r0, #28] │ │ │ │ │ it eq │ │ │ │ │ moveq ip, r0 │ │ │ │ │ - str r6, [r0, #12] │ │ │ │ │ - strd r5, r5, [r0, #28] │ │ │ │ │ - str r5, [r0, #24] │ │ │ │ │ str r3, [r2, #4] │ │ │ │ │ str.w r3, [ip, #8] │ │ │ │ │ strd r3, r9, [sp] │ │ │ │ │ ldrd r2, r3, [sp, #40] @ 0x28 │ │ │ │ │ - bl 128c │ │ │ │ │ + bl 1558 │ │ │ │ │ mov r5, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ifree │ │ │ │ │ mov r0, r5 │ │ │ │ │ add sp, #12 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -000026e0 : │ │ │ │ │ +00002cec : │ │ │ │ │ fftw_mpi_plan_dft_c2r(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ - mov r6, r0 │ │ │ │ │ - movs r0, #12 │ │ │ │ │ - sub sp, #16 │ │ │ │ │ + strd r4, r5, [sp, #-32]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ - mov sl, r2 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ + mov r6, r0 │ │ │ │ │ + add.w r0, r0, r0, lsl #1 │ │ │ │ │ + strd r8, r9, [sp, #16] │ │ │ │ │ mov r9, r3 │ │ │ │ │ - mul.w r0, r6, r0 │ │ │ │ │ + mov.w r0, r0, lsl #2 │ │ │ │ │ + strd sl, lr, [sp, #24] │ │ │ │ │ + sub sp, #16 │ │ │ │ │ ldr.w r8, [sp, #52] @ 0x34 │ │ │ │ │ + mov sl, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_malloc_plain │ │ │ │ │ cmp r6, #0 │ │ │ │ │ mov r7, r0 │ │ │ │ │ - ble.n 2746 │ │ │ │ │ + ble.n 2d62 │ │ │ │ │ + add.w r5, r4, r6, lsl #2 │ │ │ │ │ mov lr, r4 │ │ │ │ │ mov ip, r0 │ │ │ │ │ - add.w r5, r4, r6, lsl #2 │ │ │ │ │ ldr.w r4, [lr], #4 │ │ │ │ │ - str.w r4, [ip, #8] │ │ │ │ │ - strd r4, r4, [ip] │ │ │ │ │ cmp lr, r5 │ │ │ │ │ + strd r4, r4, [ip] │ │ │ │ │ add.w ip, ip, #12 │ │ │ │ │ - bne.n 270a │ │ │ │ │ + str.w r4, [ip, #-4] │ │ │ │ │ + bne.n 2d24 │ │ │ │ │ cmp r6, #1 │ │ │ │ │ - beq.n 2770 │ │ │ │ │ + beq.n 2d9e │ │ │ │ │ tst.w r8, #536870912 @ 0x20000000 │ │ │ │ │ it ne │ │ │ │ │ addne.w r3, r7, #12 │ │ │ │ │ - bne.n 2730 │ │ │ │ │ + bne.n 2d4a │ │ │ │ │ mov r3, r7 │ │ │ │ │ - tst.w r8, #1073741824 @ 0x40000000 │ │ │ │ │ mov.w r2, #0 │ │ │ │ │ + tst.w r8, #1073741824 @ 0x40000000 │ │ │ │ │ str r2, [r3, #4] │ │ │ │ │ ite ne │ │ │ │ │ addne.w r3, r7, #12 │ │ │ │ │ moveq r3, r7 │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ - movs r3, #4 │ │ │ │ │ - str r3, [sp, #8] │ │ │ │ │ - ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ - movs r2, #1 │ │ │ │ │ + mov.w r3, #4 │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ + str.w sl, [sp] │ │ │ │ │ mov r1, r7 │ │ │ │ │ - strd sl, r3, [sp] │ │ │ │ │ mov r0, r6 │ │ │ │ │ + strd r3, r8, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ mov r3, r9 │ │ │ │ │ - str.w r8, [sp, #12] │ │ │ │ │ - bl 1490 │ │ │ │ │ + bl 17b8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ifree │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, #16 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ - movs r3, #0 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldmia.w sp!, {sl, pc} │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ strd r3, r3, [r7, #4] │ │ │ │ │ - b.n 2746 │ │ │ │ │ + b.n 2d62 │ │ │ │ │ │ │ │ │ │ -00002778 : │ │ │ │ │ +00002da8 : │ │ │ │ │ fftw_mpi_plan_dft_c2r_2d(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r6, r0 │ │ │ │ │ - movs r0, #24 │ │ │ │ │ - sub sp, #12 │ │ │ │ │ + mov.w r0, #24 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r5, r1 │ │ │ │ │ mov r8, r2 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ + sub sp, #12 │ │ │ │ │ mov r7, r3 │ │ │ │ │ ldr.w r9, [sp, #44] @ 0x2c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_malloc_plain │ │ │ │ │ mov ip, r0 │ │ │ │ │ strd r6, r6, [r0, #4] │ │ │ │ │ - tst.w r9, #536870912 @ 0x20000000 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - it eq │ │ │ │ │ - moveq r2, r0 │ │ │ │ │ mov.w r3, #0 │ │ │ │ │ - str.w r6, [ip], #12 │ │ │ │ │ mov r1, r7 │ │ │ │ │ - strd r5, r5, [r0, #16] │ │ │ │ │ - it ne │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + str.w r6, [ip], #12 │ │ │ │ │ + tst.w r9, #536870912 @ 0x20000000 │ │ │ │ │ + strd r5, r5, [r0, #12] │ │ │ │ │ + ite ne │ │ │ │ │ movne r2, ip │ │ │ │ │ + moveq r2, r0 │ │ │ │ │ + str r5, [r0, #20] │ │ │ │ │ tst.w r9, #1073741824 @ 0x40000000 │ │ │ │ │ it eq │ │ │ │ │ moveq ip, r0 │ │ │ │ │ - str r5, [r0, #12] │ │ │ │ │ str r3, [r2, #4] │ │ │ │ │ mov r2, r8 │ │ │ │ │ str.w r3, [ip, #8] │ │ │ │ │ - movs r3, #4 │ │ │ │ │ - str.w r9, [sp, #4] │ │ │ │ │ + mov.w r3, #4 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ - bl 1398 │ │ │ │ │ + str.w r9, [sp, #4] │ │ │ │ │ + bl 1690 │ │ │ │ │ mov r5, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ifree │ │ │ │ │ mov r0, r5 │ │ │ │ │ add sp, #12 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -000027e4 : │ │ │ │ │ +00002e30 : │ │ │ │ │ fftw_mpi_plan_dft_c2r_3d(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - mov r7, r0 │ │ │ │ │ - movs r0, #36 @ 0x24 │ │ │ │ │ - sub sp, #12 │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r2 │ │ │ │ │ mov r6, r1 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + mov r7, r0 │ │ │ │ │ + mov.w r0, #36 @ 0x24 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ + sub sp, #12 │ │ │ │ │ mov r8, r3 │ │ │ │ │ ldr.w r9, [sp, #48] @ 0x30 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_malloc_plain │ │ │ │ │ mov ip, r0 │ │ │ │ │ strd r7, r7, [r0, #4] │ │ │ │ │ - tst.w r9, #536870912 @ 0x20000000 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ ldr r1, [sp, #40] @ 0x28 │ │ │ │ │ - it eq │ │ │ │ │ - moveq r2, r0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ str.w r7, [ip], #12 │ │ │ │ │ - mov.w r3, #0 │ │ │ │ │ - strd r6, r6, [r0, #16] │ │ │ │ │ - it ne │ │ │ │ │ + tst.w r9, #536870912 @ 0x20000000 │ │ │ │ │ + strd r6, r6, [r0, #12] │ │ │ │ │ + ite ne │ │ │ │ │ movne r2, ip │ │ │ │ │ + moveq r2, r0 │ │ │ │ │ + strd r6, r5, [r0, #20] │ │ │ │ │ tst.w r9, #1073741824 @ 0x40000000 │ │ │ │ │ + strd r5, r5, [r0, #28] │ │ │ │ │ it eq │ │ │ │ │ moveq ip, r0 │ │ │ │ │ - str r6, [r0, #12] │ │ │ │ │ - strd r5, r5, [r0, #28] │ │ │ │ │ - str r5, [r0, #24] │ │ │ │ │ str r3, [r2, #4] │ │ │ │ │ mov r2, r8 │ │ │ │ │ str.w r3, [ip, #8] │ │ │ │ │ - movs r3, #4 │ │ │ │ │ - str.w r9, [sp, #4] │ │ │ │ │ + mov.w r3, #4 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ - bl 128c │ │ │ │ │ + str.w r9, [sp, #4] │ │ │ │ │ + bl 1558 │ │ │ │ │ mov r5, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ifree │ │ │ │ │ mov r0, r5 │ │ │ │ │ add sp, #12 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ │ │ │ │ │ -00002854 : │ │ │ │ │ +00002ebc : │ │ │ │ │ fftw_mpi_execute_dft(): │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_execute_r2r │ │ │ │ │ │ │ │ │ │ -00002858 : │ │ │ │ │ +00002ec0 : │ │ │ │ │ fftw_mpi_execute_dft_r2c(): │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_execute_r2r │ │ │ │ │ │ │ │ │ │ -0000285c : │ │ │ │ │ +00002ec4 : │ │ │ │ │ fftw_mpi_execute_dft_c2r(): │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_execute_r2r │ │ │ │ │ │ │ │ │ │ -00002860 : │ │ │ │ │ +00002ec8 : │ │ │ │ │ fftw_mpi_execute_r2r(): │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_execute_r2r │ │ │ ├── block.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 1752 (bytes into file) │ │ │ │ │ + Start of section headers: 2068 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 10 │ │ │ │ │ Section header string table index: 9 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,19 +1,19 @@ │ │ │ │ │ -There are 10 section headers, starting at offset 0x6d8: │ │ │ │ │ +There are 10 section headers, starting at offset 0x814: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 00038c 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000610 000078 08 I 7 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 0003c0 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 0003c0 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .note.GNU-stack PROGBITS 00000000 0003c0 000000 00 0 0 1 │ │ │ │ │ - [ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 0003c0 000033 00 0 0 1 │ │ │ │ │ - [ 7] .symtab SYMTAB 00000000 0003f4 000100 10 8 2 4 │ │ │ │ │ - [ 8] .strtab STRTAB 00000000 0004f4 000119 00 0 0 1 │ │ │ │ │ - [ 9] .shstrtab STRTAB 00000000 000688 000050 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0004c8 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 00074c 000078 08 I 7 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 0004fc 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 0004fc 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .note.GNU-stack PROGBITS 00000000 0004fc 000000 00 0 0 1 │ │ │ │ │ + [ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 0004fc 000033 00 0 0 1 │ │ │ │ │ + [ 7] .symtab SYMTAB 00000000 000530 000100 10 8 2 4 │ │ │ │ │ + [ 8] .strtab STRTAB 00000000 000630 000119 00 0 0 1 │ │ │ │ │ + [ 9] .shstrtab STRTAB 00000000 0007c4 000050 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,19 +1,19 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 16 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ 1: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 2: 00000001 12 FUNC GLOBAL DEFAULT 1 fftw_mpi_num_blocks │ │ │ │ │ + 2: 00000001 16 FUNC GLOBAL DEFAULT 1 fftw_mpi_num_blocks │ │ │ │ │ 3: 00000000 0 NOTYPE GLOBAL DEFAULT UND __aeabi_idiv │ │ │ │ │ - 4: 0000000d 40 FUNC GLOBAL DEFAULT 1 fftw_mpi_num_blocks_ok │ │ │ │ │ + 4: 00000011 58 FUNC GLOBAL DEFAULT 1 fftw_mpi_num_blocks_ok │ │ │ │ │ 5: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_size │ │ │ │ │ - 6: 00000035 12 FUNC GLOBAL DEFAULT 1 fftw_mpi_default_block │ │ │ │ │ - 7: 00000041 20 FUNC GLOBAL DEFAULT 1 fftw_mpi_block │ │ │ │ │ - 8: 00000055 76 FUNC GLOBAL DEFAULT 1 fftw_mpi_num_blocks_total │ │ │ │ │ - 9: 000000a1 84 FUNC GLOBAL DEFAULT 1 fftw_mpi_idle_process │ │ │ │ │ - 10: 000000f5 68 FUNC GLOBAL DEFAULT 1 fftw_mpi_block_coords │ │ │ │ │ + 6: 0000004d 16 FUNC GLOBAL DEFAULT 1 fftw_mpi_default_block │ │ │ │ │ + 7: 0000005d 22 FUNC GLOBAL DEFAULT 1 fftw_mpi_block │ │ │ │ │ + 8: 00000075 106 FUNC GLOBAL DEFAULT 1 fftw_mpi_num_blocks_total │ │ │ │ │ + 9: 000000e1 122 FUNC GLOBAL DEFAULT 1 fftw_mpi_idle_process │ │ │ │ │ + 10: 0000015d 94 FUNC GLOBAL DEFAULT 1 fftw_mpi_block_coords │ │ │ │ │ 11: 00000000 0 NOTYPE GLOBAL DEFAULT UND __aeabi_idivmod │ │ │ │ │ - 12: 00000139 272 FUNC GLOBAL DEFAULT 1 fftw_mpi_total_block │ │ │ │ │ - 13: 00000249 82 FUNC GLOBAL DEFAULT 1 fftw_mpi_is_local_after │ │ │ │ │ - 14: 0000029d 70 FUNC GLOBAL DEFAULT 1 fftw_mpi_is_local │ │ │ │ │ - 15: 000002e5 168 FUNC GLOBAL DEFAULT 1 fftw_mpi_is_block1d │ │ │ │ │ + 12: 000001bd 326 FUNC GLOBAL DEFAULT 1 fftw_mpi_total_block │ │ │ │ │ + 13: 00000305 124 FUNC GLOBAL DEFAULT 1 fftw_mpi_is_local_after │ │ │ │ │ + 14: 00000381 114 FUNC GLOBAL DEFAULT 1 fftw_mpi_is_local │ │ │ │ │ + 15: 000003f5 210 FUNC GLOBAL DEFAULT 1 fftw_mpi_is_block1d │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,18 +1,18 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x610 contains 15 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x74c contains 15 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000006 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000018 0000050a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000022 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -0000003a 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -0000008a 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000000d8 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -0000011e 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000126 00000b0a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -0000017e 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000001c4 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000001cc 00000b0a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -0000028a 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000002d2 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -0000031c 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -0000037a 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +0000000a 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000022 0000050a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000030 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000056 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +000000bc 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +0000012e 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000196 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +0000019e 00000b0a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +0000021a 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +0000026c 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000274 00000b0a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000358 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +000003ca 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +0000043c 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +000004a6 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -2,396 +2,450 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftw_mpi_num_blocks(): │ │ │ │ │ add r0, r1 │ │ │ │ │ - push {r3, lr} │ │ │ │ │ - subs r0, #1 │ │ │ │ │ + strd r3, lr, [sp, #-8]! │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ pop {r3, pc} │ │ │ │ │ │ │ │ │ │ -0000000c : │ │ │ │ │ +00000010 : │ │ │ │ │ fftw_mpi_num_blocks_ok(): │ │ │ │ │ - push {r4, r5, lr} │ │ │ │ │ - mov r5, r1 │ │ │ │ │ + str.w r4, [sp, #-12]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - sub sp, #12 │ │ │ │ │ mov r0, r2 │ │ │ │ │ + strd r5, lr, [sp, #4] │ │ │ │ │ + sub sp, #12 │ │ │ │ │ + mov r5, r1 │ │ │ │ │ add r1, sp, #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ - adds r0, r4, r5 │ │ │ │ │ + add.w r0, r4, r5 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - subs r0, #1 │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ ldr r3, [sp, #4] │ │ │ │ │ cmp r3, r0 │ │ │ │ │ ite lt │ │ │ │ │ movlt r0, #0 │ │ │ │ │ movge r0, #1 │ │ │ │ │ add sp, #12 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -00000034 : │ │ │ │ │ +0000004c : │ │ │ │ │ fftw_mpi_default_block(): │ │ │ │ │ add r0, r1 │ │ │ │ │ - push {r3, lr} │ │ │ │ │ - subs r0, #1 │ │ │ │ │ + strd r3, lr, [sp, #-8]! │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ pop {r3, pc} │ │ │ │ │ │ │ │ │ │ -00000040 : │ │ │ │ │ +0000005c : │ │ │ │ │ fftw_mpi_block(): │ │ │ │ │ mls r0, r1, r2, r0 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - ble.n 50 │ │ │ │ │ + ble.n 6c │ │ │ │ │ cmp r0, r1 │ │ │ │ │ it ge │ │ │ │ │ movge r0, r1 │ │ │ │ │ bx lr │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ bx lr │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -00000054 : │ │ │ │ │ +00000074 : │ │ │ │ │ fftw_mpi_num_blocks_total(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mvn.w r3, #2147483648 @ 0x80000000 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ ldr r7, [r0, #0] │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ cmp r7, r3 │ │ │ │ │ it eq │ │ │ │ │ moveq r5, #0 │ │ │ │ │ - beq.n 96 │ │ │ │ │ + beq.n c8 │ │ │ │ │ cmp r7, #0 │ │ │ │ │ - ble.n 9c │ │ │ │ │ + ble.n d8 │ │ │ │ │ add.w r1, r0, r1, lsl #2 │ │ │ │ │ + mov.w r4, #0 │ │ │ │ │ + mov.w r5, #1 │ │ │ │ │ add.w r7, r7, r7, lsl #1 │ │ │ │ │ + add.w r6, r0, #4 │ │ │ │ │ add.w r8, r1, #8 │ │ │ │ │ - movs r4, #0 │ │ │ │ │ - movs r5, #1 │ │ │ │ │ - adds r6, r0, #4 │ │ │ │ │ ldr.w r1, [r8, r4, lsl #2] │ │ │ │ │ ldr.w r0, [r6, r4, lsl #2] │ │ │ │ │ - adds r4, #3 │ │ │ │ │ + add.w r4, r4, #3 │ │ │ │ │ add r0, r1 │ │ │ │ │ - subs r0, #1 │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ cmp r4, r7 │ │ │ │ │ mul.w r5, r0, r5 │ │ │ │ │ - bne.n 7c │ │ │ │ │ + bne.n aa │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ mov r0, r5 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, pc} │ │ │ │ │ - movs r5, #1 │ │ │ │ │ - b.n 96 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + ldmia.w sp!, {r8, pc} │ │ │ │ │ + mov.w r5, #1 │ │ │ │ │ + b.n c8 │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -000000a0 : │ │ │ │ │ +000000e0 : │ │ │ │ │ fftw_mpi_idle_process(): │ │ │ │ │ - stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + strd r3, r4, [sp, #-32]! │ │ │ │ │ mvn.w r3, #2147483648 @ 0x80000000 │ │ │ │ │ - ldr r7, [r0, #0] │ │ │ │ │ + strd r5, r6, [sp, #8] │ │ │ │ │ + strd r7, r8, [sp, #16] │ │ │ │ │ mov r8, r2 │ │ │ │ │ + ldr r7, [r0, #0] │ │ │ │ │ + strd r9, lr, [sp, #24] │ │ │ │ │ cmp r7, r3 │ │ │ │ │ it eq │ │ │ │ │ moveq r5, #0 │ │ │ │ │ - beq.n e4 │ │ │ │ │ + beq.n 13a │ │ │ │ │ cmp r7, #0 │ │ │ │ │ - ble.n f0 │ │ │ │ │ + ble.n 154 │ │ │ │ │ add.w r1, r0, r1, lsl #2 │ │ │ │ │ + mov.w r4, #0 │ │ │ │ │ + mov.w r5, #1 │ │ │ │ │ add.w r7, r7, r7, lsl #1 │ │ │ │ │ + add.w r6, r0, #4 │ │ │ │ │ add.w r9, r1, #8 │ │ │ │ │ - movs r4, #0 │ │ │ │ │ - movs r5, #1 │ │ │ │ │ - adds r6, r0, #4 │ │ │ │ │ ldr.w r1, [r9, r4, lsl #2] │ │ │ │ │ ldr.w r0, [r6, r4, lsl #2] │ │ │ │ │ - adds r4, #3 │ │ │ │ │ + add.w r4, r4, #3 │ │ │ │ │ add r0, r1 │ │ │ │ │ - subs r0, #1 │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ cmp r4, r7 │ │ │ │ │ mul.w r5, r0, r5 │ │ │ │ │ - bne.n ca │ │ │ │ │ + bne.n 11c │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ cmp r8, r5 │ │ │ │ │ ite lt │ │ │ │ │ movlt r0, #0 │ │ │ │ │ movge r0, #1 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ - movs r5, #1 │ │ │ │ │ - b.n e4 │ │ │ │ │ + ldrd r5, r6, [sp, #8] │ │ │ │ │ + ldrd r7, r8, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldmia.w sp!, {r9, pc} │ │ │ │ │ + mov.w r5, #1 │ │ │ │ │ + b.n 13a │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -000000f4 : │ │ │ │ │ +0000015c : │ │ │ │ │ fftw_mpi_block_coords(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ ldr r6, [r0, #0] │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ cmp r6, #0 │ │ │ │ │ - ble.n 134 │ │ │ │ │ - movs r4, #12 │ │ │ │ │ + ble.n 1ac │ │ │ │ │ + add.w r4, r6, r6, lsl #1 │ │ │ │ │ mov r7, r0 │ │ │ │ │ mov r8, r1 │ │ │ │ │ - mov r5, r2 │ │ │ │ │ - mla r4, r4, r6, r0 │ │ │ │ │ add.w r6, r3, r6, lsl #2 │ │ │ │ │ - subs r3, r4, #4 │ │ │ │ │ + mov r5, r2 │ │ │ │ │ + add.w r4, r0, r4, lsl #2 │ │ │ │ │ + sub.w r3, r4, #4 │ │ │ │ │ ldr.w r0, [r4, #-8] │ │ │ │ │ - subs r4, #12 │ │ │ │ │ + sub.w r4, r4, #12 │ │ │ │ │ ldr.w r1, [r3, r8, lsl #2] │ │ │ │ │ add r0, r1 │ │ │ │ │ - subs r0, #1 │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ cmp r7, r4 │ │ │ │ │ mov r5, r0 │ │ │ │ │ str.w r1, [r6, #-4]! │ │ │ │ │ - bne.n 10e │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + bne.n 180 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + ldmia.w sp!, {r8, pc} │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -00000138 : │ │ │ │ │ +000001bc : │ │ │ │ │ fftw_mpi_total_block(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mvn.w r3, #2147483648 @ 0x80000000 │ │ │ │ │ + mov r4, r2 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r6, r1 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ sub sp, #12 │ │ │ │ │ - add r7, sp, #0 │ │ │ │ │ ldr.w r8, [r0] │ │ │ │ │ - mov r4, r2 │ │ │ │ │ - cmp r8, r3 │ │ │ │ │ + add r7, sp, #0 │ │ │ │ │ str r0, [r7, #0] │ │ │ │ │ - beq.n 222 │ │ │ │ │ + cmp r8, r3 │ │ │ │ │ + beq.n 2c6 │ │ │ │ │ cmp.w r8, #0 │ │ │ │ │ - ble.n 23e │ │ │ │ │ + ble.w 2f8 │ │ │ │ │ add.w r3, r8, r8, lsl #1 │ │ │ │ │ + mov.w r5, #0 │ │ │ │ │ + mov.w r9, #1 │ │ │ │ │ + add.w fp, r0, #4 │ │ │ │ │ str r3, [r7, #4] │ │ │ │ │ add.w r3, r0, r1, lsl #2 │ │ │ │ │ - movs r5, #0 │ │ │ │ │ add.w sl, r3, #8 │ │ │ │ │ - mov.w r9, #1 │ │ │ │ │ - add.w fp, r0, #4 │ │ │ │ │ ldr.w r1, [sl, r5, lsl #2] │ │ │ │ │ ldr.w r0, [fp, r5, lsl #2] │ │ │ │ │ - adds r5, #3 │ │ │ │ │ + add.w r5, r5, #3 │ │ │ │ │ add r0, r1 │ │ │ │ │ - subs r0, #1 │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ ldr r3, [r7, #4] │ │ │ │ │ mul.w r9, r0, r9 │ │ │ │ │ cmp r5, r3 │ │ │ │ │ - bne.n 170 │ │ │ │ │ + bne.n 208 │ │ │ │ │ cmp r4, r9 │ │ │ │ │ - bge.n 226 │ │ │ │ │ + bge.n 2ca │ │ │ │ │ mov.w r3, r8, lsl #2 │ │ │ │ │ add.w r2, r8, #4294967295 @ 0xffffffff │ │ │ │ │ - adds r3, #7 │ │ │ │ │ + add.w r3, r3, #7 │ │ │ │ │ bic.w r3, r3, #7 │ │ │ │ │ sub.w sp, sp, r3 │ │ │ │ │ str.w sp, [r7, #4] │ │ │ │ │ ldr r3, [r7, #0] │ │ │ │ │ - movs r5, #12 │ │ │ │ │ + add.w r5, r2, r2, lsl #1 │ │ │ │ │ mov r9, r3 │ │ │ │ │ - mla r5, r5, r2, r3 │ │ │ │ │ + add.w r5, r3, r5, lsl #2 │ │ │ │ │ ldr r3, [r7, #4] │ │ │ │ │ add.w fp, r3, r2, lsl #2 │ │ │ │ │ add.w r1, r5, #8 │ │ │ │ │ ldr r0, [r5, #4] │ │ │ │ │ + mov sl, r5 │ │ │ │ │ + sub.w r5, r5, #12 │ │ │ │ │ ldr.w r1, [r1, r6, lsl #2] │ │ │ │ │ add r0, r1 │ │ │ │ │ - subs r0, #1 │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ ldr r2, [r7, #0] │ │ │ │ │ mov r4, r0 │ │ │ │ │ str.w r1, [fp], #-4 │ │ │ │ │ - cmp r5, r2 │ │ │ │ │ - sub.w r5, r5, #12 │ │ │ │ │ - bne.n 1b6 │ │ │ │ │ + cmp sl, r2 │ │ │ │ │ + bne.n 256 │ │ │ │ │ ldr r3, [r7, #4] │ │ │ │ │ - movs r0, #1 │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ sub.w fp, r3, #4 │ │ │ │ │ add.w r3, r9, #8 │ │ │ │ │ ldr.w r4, [fp, #4]! │ │ │ │ │ ldr.w r1, [r3, r6, lsl #2] │ │ │ │ │ ldr.w r3, [r9, #4] │ │ │ │ │ mls r3, r4, r1, r3 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ it le │ │ │ │ │ movle r0, #0 │ │ │ │ │ - ble.n 210 │ │ │ │ │ + ble.n 2b8 │ │ │ │ │ cmp r3, r1 │ │ │ │ │ it ge │ │ │ │ │ movge r3, r1 │ │ │ │ │ mul.w r0, r3, r0 │ │ │ │ │ - adds r2, #1 │ │ │ │ │ + add.w r2, r2, #1 │ │ │ │ │ add.w r9, r9, #12 │ │ │ │ │ cmp r8, r2 │ │ │ │ │ - bgt.n 1ea │ │ │ │ │ - adds r7, #12 │ │ │ │ │ - mov sp, r7 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + bgt.n 292 │ │ │ │ │ + b.n 2ce │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - blt.n 230 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ - adds r7, #12 │ │ │ │ │ + blt.n 2ea │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ + add.w r7, r7, #12 │ │ │ │ │ mov sp, r7 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ movw r2, #65534 @ 0xfffe │ │ │ │ │ movt r2, #32767 @ 0x7fff │ │ │ │ │ str.w sp, [r7, #4] │ │ │ │ │ - b.n 1a6 │ │ │ │ │ + b.n 244 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ ite gt │ │ │ │ │ movgt r0, #0 │ │ │ │ │ movle r0, #1 │ │ │ │ │ - b.n 228 │ │ │ │ │ + b.n 2ce │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -00000248 : │ │ │ │ │ +00000304 : │ │ │ │ │ fftw_mpi_is_local_after(): │ │ │ │ │ - push {r3, r4, r5, r6, r7, lr} │ │ │ │ │ + strd r3, r4, [sp, #-24]! │ │ │ │ │ mvn.w r3, #2147483648 @ 0x80000000 │ │ │ │ │ + strd r5, r6, [sp, #8] │ │ │ │ │ ldr r6, [r1, #0] │ │ │ │ │ + strd r7, lr, [sp, #16] │ │ │ │ │ cmp r6, r3 │ │ │ │ │ - beq.n 296 │ │ │ │ │ + beq.n 370 │ │ │ │ │ cmp r6, r0 │ │ │ │ │ - ble.n 296 │ │ │ │ │ - movs r7, #12 │ │ │ │ │ - subs r6, r6, r0 │ │ │ │ │ - movs r4, #0 │ │ │ │ │ - add.w r6, r6, r6, lsl #1 │ │ │ │ │ - mla r7, r7, r0, r1 │ │ │ │ │ + ble.n 370 │ │ │ │ │ + sub.w r6, r6, r0 │ │ │ │ │ add.w r0, r0, r0, lsl #1 │ │ │ │ │ + mov.w r4, #0 │ │ │ │ │ + add.w r6, r6, r6, lsl #1 │ │ │ │ │ + add.w r7, r1, r0, lsl #2 │ │ │ │ │ add r0, r2 │ │ │ │ │ - adds r7, #4 │ │ │ │ │ add.w r1, r1, r0, lsl #2 │ │ │ │ │ + add.w r7, r7, #4 │ │ │ │ │ add.w r5, r1, #8 │ │ │ │ │ - b.n 27e │ │ │ │ │ - adds r4, #3 │ │ │ │ │ + b.n 34a │ │ │ │ │ + add.w r4, r4, #3 │ │ │ │ │ cmp r4, r6 │ │ │ │ │ - beq.n 296 │ │ │ │ │ + beq.n 370 │ │ │ │ │ ldr.w r1, [r5, r4, lsl #2] │ │ │ │ │ ldr.w r0, [r7, r4, lsl #2] │ │ │ │ │ add r0, r1 │ │ │ │ │ - subs r0, #1 │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble.n 278 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ - pop {r3, r4, r5, r6, r7, pc} │ │ │ │ │ - movs r0, #1 │ │ │ │ │ - pop {r3, r4, r5, r6, r7, pc} │ │ │ │ │ - nop │ │ │ │ │ + ble.n 342 │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ + ldrd r5, r6, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + pop {r7, pc} │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ + ldrd r5, r6, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + pop {r7, pc} │ │ │ │ │ │ │ │ │ │ -0000029c : │ │ │ │ │ +00000380 : │ │ │ │ │ fftw_mpi_is_local(): │ │ │ │ │ - push {r3, r4, r5, r6, r7, lr} │ │ │ │ │ + strd r3, r4, [sp, #-24]! │ │ │ │ │ movw r3, #65533 @ 0xfffd │ │ │ │ │ movt r3, #32767 @ 0x7fff │ │ │ │ │ + strd r5, r6, [sp, #8] │ │ │ │ │ ldr r6, [r0, #0] │ │ │ │ │ - subs r2, r6, #1 │ │ │ │ │ + strd r7, lr, [sp, #16] │ │ │ │ │ + add.w r2, r6, #4294967295 @ 0xffffffff │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - bhi.n 2de │ │ │ │ │ + bhi.n 3e2 │ │ │ │ │ add.w r1, r0, r1, lsl #2 │ │ │ │ │ + mov.w r4, #0 │ │ │ │ │ + add.w r5, r0, #4 │ │ │ │ │ add.w r6, r6, r6, lsl #1 │ │ │ │ │ add.w r7, r1, #8 │ │ │ │ │ - movs r4, #0 │ │ │ │ │ - adds r5, r0, #4 │ │ │ │ │ - b.n 2c6 │ │ │ │ │ - adds r4, #3 │ │ │ │ │ + b.n 3bc │ │ │ │ │ + add.w r4, r4, #3 │ │ │ │ │ cmp r6, r4 │ │ │ │ │ - beq.n 2de │ │ │ │ │ + beq.n 3e2 │ │ │ │ │ ldr.w r1, [r7, r4, lsl #2] │ │ │ │ │ ldr.w r0, [r5, r4, lsl #2] │ │ │ │ │ add r0, r1 │ │ │ │ │ - subs r0, #1 │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble.n 2c0 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ - pop {r3, r4, r5, r6, r7, pc} │ │ │ │ │ - movs r0, #1 │ │ │ │ │ - pop {r3, r4, r5, r6, r7, pc} │ │ │ │ │ + ble.n 3b4 │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ + ldrd r5, r6, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + pop {r7, pc} │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ + ldrd r5, r6, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + pop {r7, pc} │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -000002e4 : │ │ │ │ │ +000003f4 : │ │ │ │ │ fftw_mpi_is_block1d(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ movw r3, #65533 @ 0xfffd │ │ │ │ │ movt r3, #32767 @ 0x7fff │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ ldr.w r8, [r0] │ │ │ │ │ add.w r2, r8, #4294967295 @ 0xffffffff │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - bhi.n 382 │ │ │ │ │ + bhi.n 4ae │ │ │ │ │ mov r6, r0 │ │ │ │ │ mov r7, r1 │ │ │ │ │ mov r4, r0 │ │ │ │ │ - movs r5, #0 │ │ │ │ │ - b.n 30e │ │ │ │ │ - adds r5, #1 │ │ │ │ │ - adds r4, #12 │ │ │ │ │ + mov.w r5, #0 │ │ │ │ │ + b.n 42c │ │ │ │ │ + add.w r5, r5, #1 │ │ │ │ │ + add.w r4, r4, #12 │ │ │ │ │ cmp r8, r5 │ │ │ │ │ - beq.n 382 │ │ │ │ │ + beq.n 4ae │ │ │ │ │ add.w r3, r4, #8 │ │ │ │ │ ldr.w r1, [r3, r7, lsl #2] │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ add r3, r1 │ │ │ │ │ - subs r0, r3, #1 │ │ │ │ │ + add.w r0, r3, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - beq.n 306 │ │ │ │ │ + beq.n 420 │ │ │ │ │ cmp r5, #1 │ │ │ │ │ ite le │ │ │ │ │ movle r0, #1 │ │ │ │ │ movgt r0, #0 │ │ │ │ │ cmp r8, r5 │ │ │ │ │ it le │ │ │ │ │ movle r0, #0 │ │ │ │ │ - cbz r0, 384 │ │ │ │ │ + cbz r0, 4b2 │ │ │ │ │ cmp r5, #0 │ │ │ │ │ ite eq │ │ │ │ │ moveq r3, #1 │ │ │ │ │ movne r3, #2 │ │ │ │ │ cmp r8, r3 │ │ │ │ │ - ble.n 388 │ │ │ │ │ + ble.n 4c0 │ │ │ │ │ sub.w r8, r8, r5 │ │ │ │ │ - negs r5, r5 │ │ │ │ │ + rsb r5, r5, #0 │ │ │ │ │ add.w r8, r8, r8, lsl #1 │ │ │ │ │ sub.w r4, r8, #3 │ │ │ │ │ and.w r8, r5, #12 │ │ │ │ │ and.w r5, r5, #3 │ │ │ │ │ add.w r8, r8, #16 │ │ │ │ │ - adds r1, r5, r7 │ │ │ │ │ + add.w r1, r5, r7 │ │ │ │ │ add r8, r6 │ │ │ │ │ - movs r5, #0 │ │ │ │ │ add.w r6, r6, r1, lsl #2 │ │ │ │ │ - adds r6, #20 │ │ │ │ │ - b.n 36e │ │ │ │ │ - adds r5, #3 │ │ │ │ │ + mov.w r5, #0 │ │ │ │ │ + add.w r6, r6, #20 │ │ │ │ │ + b.n 498 │ │ │ │ │ + add.w r5, r5, #3 │ │ │ │ │ cmp r5, r4 │ │ │ │ │ - beq.n 388 │ │ │ │ │ + beq.n 4c0 │ │ │ │ │ ldr.w r1, [r6, r5, lsl #2] │ │ │ │ │ ldr.w r0, [r8, r5, lsl #2] │ │ │ │ │ add r0, r1 │ │ │ │ │ - subs r0, #1 │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble.n 368 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, pc} │ │ │ │ │ - movs r0, #1 │ │ │ │ │ - b.n 384 │ │ │ │ │ + ble.n 490 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + ldmia.w sp!, {r8, pc} │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ + b.n 4b2 │ │ │ │ │ + nop │ │ │ ├── choose-radix.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 580 (bytes into file) │ │ │ │ │ + Start of section headers: 600 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 10 │ │ │ │ │ Section header string table index: 9 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,19 +1,19 @@ │ │ │ │ │ -There are 10 section headers, starting at offset 0x244: │ │ │ │ │ +There are 10 section headers, starting at offset 0x258: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 000088 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0001bc 000038 08 I 7 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 0000bc 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 0000bc 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .note.GNU-stack PROGBITS 00000000 0000bc 000000 00 0 0 1 │ │ │ │ │ - [ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 0000bc 000033 00 0 0 1 │ │ │ │ │ - [ 7] .symtab SYMTAB 00000000 0000f0 000070 10 8 2 4 │ │ │ │ │ - [ 8] .strtab STRTAB 00000000 000160 000059 00 0 0 1 │ │ │ │ │ - [ 9] .shstrtab STRTAB 00000000 0001f4 000050 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 00009c 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 0001d0 000038 08 I 7 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 0000d0 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 0000d0 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .note.GNU-stack PROGBITS 00000000 0000d0 000000 00 0 0 1 │ │ │ │ │ + [ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 0000d0 000033 00 0 0 1 │ │ │ │ │ + [ 7] .symtab SYMTAB 00000000 000104 000070 10 8 2 4 │ │ │ │ │ + [ 8] .strtab STRTAB 00000000 000174 000059 00 0 0 1 │ │ │ │ │ + [ 9] .shstrtab STRTAB 00000000 000208 000050 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,10 +1,10 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 7 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ 1: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 2: 00000001 134 FUNC GLOBAL DEFAULT 1 fftw_mpi_choose_radix │ │ │ │ │ + 2: 00000001 154 FUNC GLOBAL DEFAULT 1 fftw_mpi_choose_radix │ │ │ │ │ 3: 00000000 0 NOTYPE GLOBAL DEFAULT UND __aeabi_idivmod │ │ │ │ │ 4: 00000000 0 NOTYPE GLOBAL DEFAULT UND __aeabi_idiv │ │ │ │ │ 5: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_default_block │ │ │ │ │ 6: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_isqrt │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,10 +1,10 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x1bc contains 7 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x1d0 contains 7 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000016 0000030a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -00000032 0000040a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000046 0000050a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -00000052 0000050a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -00000064 0000060a R_ARM_THM_CALL 00000000 fftw_isqrt │ │ │ │ │ -0000006e 0000030a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -0000007c 0000030a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +0000001e 0000030a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +0000003a 0000040a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +0000004e 0000050a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +0000005a 0000050a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +00000076 0000060a R_ARM_THM_CALL 00000000 fftw_isqrt │ │ │ │ │ +00000080 0000030a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000090 0000030a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,34 +1,36 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftw_mpi_choose_radix(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ - mov r6, r3 │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mov r5, r0 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ + mov r6, r3 │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ sub sp, #16 │ │ │ │ │ add r4, sp, #16 │ │ │ │ │ ldrd r8, r7, [sp, #48] @ 0x30 │ │ │ │ │ stmdb r4, {r0, r1, r2} │ │ │ │ │ mov r1, r3 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ - cbnz r1, 62 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ + cbnz r1, 74 │ │ │ │ │ cmp r0, r6 │ │ │ │ │ - blt.n 62 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + blt.n 74 │ │ │ │ │ cmp r4, #1 │ │ │ │ │ it ne │ │ │ │ │ cmpne r4, r5 │ │ │ │ │ it eq │ │ │ │ │ moveq r5, #0 │ │ │ │ │ - beq.n 5a │ │ │ │ │ + beq.n 62 │ │ │ │ │ mov r1, r4 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ ldr r2, [sp, #44] @ 0x2c │ │ │ │ │ mov r5, r0 │ │ │ │ │ mov r1, r6 │ │ │ │ │ @@ -43,27 +45,30 @@ │ │ │ │ │ strd r0, r0, [r8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_default_block │ │ │ │ │ strd r0, r0, [r7] │ │ │ │ │ mov r0, r5 │ │ │ │ │ add sp, #16 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + ldmia.w sp!, {r8, pc} │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_isqrt │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - beq.n 22 │ │ │ │ │ - adds r4, #1 │ │ │ │ │ + beq.n 2a │ │ │ │ │ + add.w r4, r4, #1 │ │ │ │ │ mov r0, r5 │ │ │ │ │ mov r1, r4 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - bne.n 76 │ │ │ │ │ - b.n 22 │ │ │ │ │ + bne.n 88 │ │ │ │ │ + b.n 2a │ │ │ │ │ nop │ │ │ ├── dtensor.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 1748 (bytes into file) │ │ │ │ │ + Start of section headers: 1952 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 11 │ │ │ │ │ Section header string table index: 10 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,20 +1,20 @@ │ │ │ │ │ -There are 11 section headers, starting at offset 0x6d4: │ │ │ │ │ +There are 11 section headers, starting at offset 0x7a0: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 0002b8 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0005d4 0000a0 08 I 8 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 0002ec 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 0002ec 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 0002ec 00002c 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .note.GNU-stack PROGBITS 00000000 000318 000000 00 0 0 1 │ │ │ │ │ - [ 7] .ARM.attributes ARM_ATTRIBUTES 00000000 000318 000033 00 0 0 1 │ │ │ │ │ - [ 8] .symtab SYMTAB 00000000 00034c 000170 10 9 10 4 │ │ │ │ │ - [ 9] .strtab STRTAB 00000000 0004bc 000117 00 0 0 1 │ │ │ │ │ - [10] .shstrtab STRTAB 00000000 000674 00005f 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000374 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000690 0000b0 08 I 8 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 0003a8 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 0003a8 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 0003a8 00002c 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .note.GNU-stack PROGBITS 00000000 0003d4 000000 00 0 0 1 │ │ │ │ │ + [ 7] .ARM.attributes ARM_ATTRIBUTES 00000000 0003d4 000033 00 0 0 1 │ │ │ │ │ + [ 8] .symtab SYMTAB 00000000 000408 000170 10 9 10 4 │ │ │ │ │ + [ 9] .strtab STRTAB 00000000 000578 000117 00 0 0 1 │ │ │ │ │ + [10] .shstrtab STRTAB 00000000 000740 00005f 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -6,21 +6,21 @@ │ │ │ │ │ 2: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 3: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ 4: 00000004 0 NOTYPE LOCAL DEFAULT 5 .LC1 │ │ │ │ │ 5: 00000008 0 NOTYPE LOCAL DEFAULT 5 .LC2 │ │ │ │ │ 6: 0000000c 0 NOTYPE LOCAL DEFAULT 5 .LC3 │ │ │ │ │ 7: 0000001c 0 NOTYPE LOCAL DEFAULT 5 .LC4 │ │ │ │ │ 8: 00000020 0 NOTYPE LOCAL DEFAULT 5 .LC5 │ │ │ │ │ - 9: 000002a0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 10: 00000001 40 FUNC GLOBAL DEFAULT 1 fftw_mpi_mkdtensor │ │ │ │ │ + 9: 0000035c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 10: 00000001 58 FUNC GLOBAL DEFAULT 1 fftw_mpi_mkdtensor │ │ │ │ │ 11: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_malloc_plain │ │ │ │ │ - 12: 00000029 4 FUNC GLOBAL DEFAULT 1 fftw_mpi_dtensor_destroy │ │ │ │ │ + 12: 0000003d 4 FUNC GLOBAL DEFAULT 1 fftw_mpi_dtensor_destroy │ │ │ │ │ 13: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ifree │ │ │ │ │ - 14: 0000002d 68 FUNC GLOBAL DEFAULT 1 fftw_mpi_dtensor_md5 │ │ │ │ │ + 14: 00000041 94 FUNC GLOBAL DEFAULT 1 fftw_mpi_dtensor_md5 │ │ │ │ │ 15: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_md5int │ │ │ │ │ 16: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_md5INT │ │ │ │ │ - 17: 00000071 76 FUNC GLOBAL DEFAULT 1 fftw_mpi_dtensor_copy │ │ │ │ │ + 17: 000000a1 112 FUNC GLOBAL DEFAULT 1 fftw_mpi_dtensor_copy │ │ │ │ │ 18: 00000000 0 NOTYPE GLOBAL DEFAULT UND memmove │ │ │ │ │ - 19: 000000bd 268 FUNC GLOBAL DEFAULT 1 fftw_mpi_dtensor_canonical │ │ │ │ │ + 19: 00000111 334 FUNC GLOBAL DEFAULT 1 fftw_mpi_dtensor_canonical │ │ │ │ │ 20: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_num_blocks │ │ │ │ │ - 21: 000001c9 58 FUNC GLOBAL DEFAULT 1 fftw_mpi_dtensor_validp │ │ │ │ │ - 22: 00000205 180 FUNC GLOBAL DEFAULT 1 fftw_mpi_dtensor_print │ │ │ │ │ + 21: 00000261 70 FUNC GLOBAL DEFAULT 1 fftw_mpi_dtensor_validp │ │ │ │ │ + 22: 000002a9 204 FUNC GLOBAL DEFAULT 1 fftw_mpi_dtensor_print │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,23 +1,25 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x5d4 contains 20 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x690 contains 22 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000020 00000b0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00000034 00000f0a R_ARM_THM_CALL 00000000 fftw_md5int │ │ │ │ │ -00000050 0000100a R_ARM_THM_CALL 00000000 fftw_md5INT │ │ │ │ │ -0000005a 0000100a R_ARM_THM_CALL 00000000 fftw_md5INT │ │ │ │ │ -00000064 0000100a R_ARM_THM_CALL 00000000 fftw_md5INT │ │ │ │ │ -00000092 00000b0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -000000b4 0000120a R_ARM_THM_CALL 00000000 memmove │ │ │ │ │ -00000104 00000b0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -0000012e 00000b0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00000170 0000140a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -0000018a 0000140a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -000001b0 00000b0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00000026 00000b0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00000032 00000b0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00000052 00000f0a R_ARM_THM_CALL 00000000 fftw_md5int │ │ │ │ │ +00000076 0000100a R_ARM_THM_CALL 00000000 fftw_md5INT │ │ │ │ │ +0000007e 0000100a R_ARM_THM_CALL 00000000 fftw_md5INT │ │ │ │ │ +00000088 0000100a R_ARM_THM_CALL 00000000 fftw_md5INT │ │ │ │ │ +000000cc 00000b0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +000000f6 0000120a R_ARM_THM_CALL 00000000 memmove │ │ │ │ │ +00000108 00000b0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00000176 00000b0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ 000001ba 00000b0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -000002a0 00000303 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -000002a4 00000603 R_ARM_REL32 0000000c .LC3 │ │ │ │ │ -000002a8 00000503 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -000002ac 00000703 R_ARM_REL32 0000001c .LC4 │ │ │ │ │ -000002b0 00000403 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ -000002b4 00000803 R_ARM_REL32 00000020 .LC5 │ │ │ │ │ -00000028 00000d1e R_ARM_THM_JUMP24 00000000 fftw_ifree │ │ │ │ │ +00000212 0000140a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +0000022c 0000140a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +00000248 00000b0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00000254 00000b0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +0000035c 00000303 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +00000360 00000603 R_ARM_REL32 0000000c .LC3 │ │ │ │ │ +00000364 00000503 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +00000368 00000703 R_ARM_REL32 0000001c .LC4 │ │ │ │ │ +0000036c 00000403 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ +00000370 00000803 R_ARM_REL32 00000020 .LC5 │ │ │ │ │ +0000003c 00000d1e R_ARM_THM_JUMP24 00000000 fftw_ifree │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,320 +1,349 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftw_mpi_mkdtensor(): │ │ │ │ │ - subs r2, r0, #2 │ │ │ │ │ + sub.w r2, r0, #2 │ │ │ │ │ movw r3, #65532 @ 0xfffc │ │ │ │ │ movt r3, #32767 @ 0x7fff │ │ │ │ │ - push {r4, lr} │ │ │ │ │ - cmp r2, r3 │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ittet ls │ │ │ │ │ - movls r3, #12 │ │ │ │ │ - addls.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ - movhi r0, #16 │ │ │ │ │ - mulls r0, r3 │ │ │ │ │ - it ls │ │ │ │ │ - addls r0, #16 │ │ │ │ │ + cmp r2, r3 │ │ │ │ │ + bhi.n 2e │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ + add.w r0, r0, r0, lsl #1 │ │ │ │ │ + mov.w r0, r0, lsl #2 │ │ │ │ │ + add.w r0, r0, #16 │ │ │ │ │ + bl 0 │ │ │ │ │ + R_ARM_THM_CALL fftw_malloc_plain │ │ │ │ │ + str r4, [r0, #0] │ │ │ │ │ + pop {r4, pc} │ │ │ │ │ + mov.w r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_malloc_plain │ │ │ │ │ str r4, [r0, #0] │ │ │ │ │ pop {r4, pc} │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -00000028 : │ │ │ │ │ +0000003c : │ │ │ │ │ fftw_mpi_dtensor_destroy(): │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_ifree │ │ │ │ │ │ │ │ │ │ -0000002c : │ │ │ │ │ +00000040 : │ │ │ │ │ fftw_mpi_dtensor_md5(): │ │ │ │ │ - push {r3, r4, r5, r6, r7, lr} │ │ │ │ │ + strd r3, r4, [sp, #-24]! │ │ │ │ │ + strd r5, r6, [sp, #8] │ │ │ │ │ + mov r5, r0 │ │ │ │ │ + strd r7, lr, [sp, #16] │ │ │ │ │ mov r7, r1 │ │ │ │ │ ldr r1, [r1, #0] │ │ │ │ │ - mov r5, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_md5int │ │ │ │ │ ldr r3, [r7, #0] │ │ │ │ │ movw r2, #65533 @ 0xfffd │ │ │ │ │ movt r2, #32767 @ 0x7fff │ │ │ │ │ - subs r3, #1 │ │ │ │ │ + add.w r3, r3, #4294967295 @ 0xffffffff │ │ │ │ │ cmp r3, r2 │ │ │ │ │ - bhi.n 6e │ │ │ │ │ + bhi.n 92 │ │ │ │ │ mov r4, r7 │ │ │ │ │ - movs r6, #0 │ │ │ │ │ + mov.w r6, #0 │ │ │ │ │ ldr r1, [r4, #4] │ │ │ │ │ mov r0, r5 │ │ │ │ │ + add.w r6, r6, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_md5INT │ │ │ │ │ ldr r1, [r4, #8] │ │ │ │ │ mov r0, r5 │ │ │ │ │ - adds r6, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_md5INT │ │ │ │ │ ldr.w r1, [r4, #12]! │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_md5INT │ │ │ │ │ ldr r3, [r7, #0] │ │ │ │ │ cmp r3, r6 │ │ │ │ │ - bgt.n 4c │ │ │ │ │ - pop {r3, r4, r5, r6, r7, pc} │ │ │ │ │ + bgt.n 6e │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + ldrd r5, r6, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + pop {r7, pc} │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -00000070 : │ │ │ │ │ +000000a0 : │ │ │ │ │ fftw_mpi_dtensor_copy(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, r5, [sp, #-16]! │ │ │ │ │ movw r3, #65532 @ 0xfffc │ │ │ │ │ movt r3, #32767 @ 0x7fff │ │ │ │ │ - ldr r6, [r0, #0] │ │ │ │ │ + strd r6, lr, [sp, #8] │ │ │ │ │ mov r5, r0 │ │ │ │ │ - subs r2, r6, #2 │ │ │ │ │ + ldr r6, [r0, #0] │ │ │ │ │ + sub.w r2, r6, #2 │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - ittet ls │ │ │ │ │ - addls.w r0, r6, #4294967295 @ 0xffffffff │ │ │ │ │ - movls r3, #12 │ │ │ │ │ - movhi r0, #16 │ │ │ │ │ - mulls r0, r3 │ │ │ │ │ - it ls │ │ │ │ │ - addls r0, #16 │ │ │ │ │ + bhi.n 104 │ │ │ │ │ + add.w r0, r6, #4294967295 @ 0xffffffff │ │ │ │ │ + add.w r0, r0, r0, lsl #1 │ │ │ │ │ + mov.w r0, r0, lsl #2 │ │ │ │ │ + add.w r0, r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_malloc_plain │ │ │ │ │ - str r6, [r0, #0] │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + str r6, [r4, #0] │ │ │ │ │ movw r3, #65533 @ 0xfffd │ │ │ │ │ movt r3, #32767 @ 0x7fff │ │ │ │ │ ldr r2, [r5, #0] │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - subs r1, r2, #1 │ │ │ │ │ + add.w r1, r2, #4294967295 @ 0xffffffff │ │ │ │ │ cmp r1, r3 │ │ │ │ │ - bhi.n b8 │ │ │ │ │ - movs r3, #12 │ │ │ │ │ - adds r1, r5, #4 │ │ │ │ │ - adds r0, #4 │ │ │ │ │ - mul.w r2, r3, r2 │ │ │ │ │ + bhi.n fa │ │ │ │ │ + add.w r2, r2, r2, lsl #1 │ │ │ │ │ + add.w r1, r5, #4 │ │ │ │ │ + add.w r0, r4, #4 │ │ │ │ │ + mov.w r2, r2, lsl #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL memmove │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + pop {r6, pc} │ │ │ │ │ + mov.w r0, #16 │ │ │ │ │ + bl 0 │ │ │ │ │ + R_ARM_THM_CALL fftw_malloc_plain │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + b.n d2 │ │ │ │ │ │ │ │ │ │ -000000bc : │ │ │ │ │ +00000110 : │ │ │ │ │ fftw_mpi_dtensor_canonical(): │ │ │ │ │ - stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r3, r4, [sp, #-40]! @ 0x28 │ │ │ │ │ mvn.w r3, #2147483648 @ 0x80000000 │ │ │ │ │ ldr r4, [r0, #0] │ │ │ │ │ + strd r5, r6, [sp, #8] │ │ │ │ │ + strd r7, r8, [sp, #16] │ │ │ │ │ + strd r9, sl, [sp, #24] │ │ │ │ │ + strd fp, lr, [sp, #32] │ │ │ │ │ cmp r4, r3 │ │ │ │ │ - beq.n 1b8 │ │ │ │ │ + beq.w 250 │ │ │ │ │ cmp r4, #0 │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - mov r6, r1 │ │ │ │ │ + mov r6, r0 │ │ │ │ │ + mov r7, r1 │ │ │ │ │ it le │ │ │ │ │ movle r4, #0 │ │ │ │ │ - ble.n 1ae │ │ │ │ │ - clz r1, r1 │ │ │ │ │ - movs r3, #0 │ │ │ │ │ - add.w lr, r4, r4, lsl #1 │ │ │ │ │ - adds r0, #4 │ │ │ │ │ - lsrs r1, r1, #5 │ │ │ │ │ + ble.w 244 │ │ │ │ │ + clz r0, r1 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ + add.w r1, r4, r4, lsl #1 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ mov r4, r3 │ │ │ │ │ - b.n fa │ │ │ │ │ + add.w r5, r6, #4 │ │ │ │ │ + b.n 16a │ │ │ │ │ + add.w r3, r3, #3 │ │ │ │ │ cmp r2, #1 │ │ │ │ │ ite eq │ │ │ │ │ - moveq ip, r1 │ │ │ │ │ - orrne.w ip, r1, #1 │ │ │ │ │ - adds r3, #3 │ │ │ │ │ + moveq ip, r0 │ │ │ │ │ + orrne.w ip, r0, #1 │ │ │ │ │ + cmp r3, r1 │ │ │ │ │ add r4, ip │ │ │ │ │ - cmp r3, lr │ │ │ │ │ - beq.n 116 │ │ │ │ │ - ldr.w r2, [r0, r3, lsl #2] │ │ │ │ │ + beq.n 19a │ │ │ │ │ + ldr.w r2, [r5, r3, lsl #2] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - bgt.n e8 │ │ │ │ │ - movs r0, #16 │ │ │ │ │ + bgt.n 156 │ │ │ │ │ + mov.w r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_malloc_plain │ │ │ │ │ mov r8, r0 │ │ │ │ │ mvn.w r3, #2147483648 @ 0x80000000 │ │ │ │ │ str r3, [r0, #0] │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ mov r0, r8 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ - subs r2, r4, #2 │ │ │ │ │ + ldrd r5, r6, [sp, #8] │ │ │ │ │ + ldrd r7, r8, [sp, #16] │ │ │ │ │ + ldrd r9, sl, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldmia.w sp!, {fp, pc} │ │ │ │ │ + sub.w r2, r4, #2 │ │ │ │ │ movw r3, #65532 @ 0xfffc │ │ │ │ │ movt r3, #32767 @ 0x7fff │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - bhi.n 1ae │ │ │ │ │ - movs r3, #12 │ │ │ │ │ - subs r0, r4, #1 │ │ │ │ │ - mul.w r0, r3, r0 │ │ │ │ │ - adds r0, #16 │ │ │ │ │ + bhi.n 244 │ │ │ │ │ + add.w r3, r4, #4294967295 @ 0xffffffff │ │ │ │ │ + add.w r3, r3, r3, lsl #1 │ │ │ │ │ + mov.w r0, r3, lsl #2 │ │ │ │ │ + add.w r0, r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_malloc_plain │ │ │ │ │ mov r8, r0 │ │ │ │ │ str.w r4, [r8] │ │ │ │ │ - ldr r3, [r5, #0] │ │ │ │ │ + ldr r3, [r6, #0] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 110 │ │ │ │ │ - mov.w r9, #0 │ │ │ │ │ - mov r4, r5 │ │ │ │ │ - mov r7, r9 │ │ │ │ │ - mov.w sl, #12 │ │ │ │ │ + ble.n 182 │ │ │ │ │ + mov.w sl, #0 │ │ │ │ │ + mov r4, r6 │ │ │ │ │ + mov r9, sl │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ - cbz r6, 160 │ │ │ │ │ + cbz r7, 1ec │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - bgt.n 160 │ │ │ │ │ - adds r7, #1 │ │ │ │ │ - adds r4, #12 │ │ │ │ │ - cmp r7, r3 │ │ │ │ │ - bge.n 110 │ │ │ │ │ + bgt.n 1ec │ │ │ │ │ + add.w r9, r9, #1 │ │ │ │ │ + add.w r4, r4, #12 │ │ │ │ │ + cmp r9, r3 │ │ │ │ │ + bge.n 182 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble.n 152 │ │ │ │ │ - mla fp, sl, r9, r8 │ │ │ │ │ - adds r7, #1 │ │ │ │ │ - adds r4, #12 │ │ │ │ │ + ble.n 1da │ │ │ │ │ + mov.w r5, sl, lsl #1 │ │ │ │ │ + add.w r9, r9, #1 │ │ │ │ │ + add.w r4, r4, #12 │ │ │ │ │ + add.w fp, r5, sl │ │ │ │ │ + add r5, sl │ │ │ │ │ + add.w fp, r8, fp, lsl #2 │ │ │ │ │ + add.w sl, sl, #1 │ │ │ │ │ + add.w r5, r8, r5, lsl #2 │ │ │ │ │ str.w r0, [fp, #4] │ │ │ │ │ ldr.w r1, [r4, #-4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks │ │ │ │ │ cmp r0, #1 │ │ │ │ │ ite ne │ │ │ │ │ ldrne.w r3, [r4, #-4] │ │ │ │ │ ldreq.w r3, [r4, #-8] │ │ │ │ │ str.w r3, [fp, #8] │ │ │ │ │ - ldr r1, [r4, #0] │ │ │ │ │ ldr.w r0, [r4, #-8] │ │ │ │ │ + ldr r1, [r4, #0] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks │ │ │ │ │ - mla r3, sl, r9, r8 │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - add.w r9, r9, #1 │ │ │ │ │ ite eq │ │ │ │ │ - ldreq.w r2, [r4, #-8] │ │ │ │ │ - ldrne r2, [r4, #0] │ │ │ │ │ - str r2, [r3, #12] │ │ │ │ │ - ldr r3, [r5, #0] │ │ │ │ │ - cmp r3, r7 │ │ │ │ │ - bgt.n 14a │ │ │ │ │ - mov r0, r8 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ - movs r0, #16 │ │ │ │ │ + ldreq.w r3, [r4, #-8] │ │ │ │ │ + ldrne r3, [r4, #0] │ │ │ │ │ + str r3, [r5, #12] │ │ │ │ │ + ldr r3, [r6, #0] │ │ │ │ │ + cmp r3, r9 │ │ │ │ │ + bgt.n 1d2 │ │ │ │ │ + b.n 182 │ │ │ │ │ + mov.w r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_malloc_plain │ │ │ │ │ mov r8, r0 │ │ │ │ │ - b.n 134 │ │ │ │ │ - movs r0, #16 │ │ │ │ │ + b.n 1c0 │ │ │ │ │ + mov.w r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_malloc_plain │ │ │ │ │ mov r8, r0 │ │ │ │ │ str r4, [r0, #0] │ │ │ │ │ - mov r0, r8 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b.n 182 │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -000001c8 : │ │ │ │ │ +00000260 : │ │ │ │ │ fftw_mpi_dtensor_validp(): │ │ │ │ │ ldr r1, [r0, #0] │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - blt.n 1fa │ │ │ │ │ - subs r2, r1, #1 │ │ │ │ │ + blt.n 29a │ │ │ │ │ + add.w r2, r1, #4294967295 @ 0xffffffff │ │ │ │ │ movw r3, #65533 @ 0xfffd │ │ │ │ │ movt r3, #32767 @ 0x7fff │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - bhi.n 1fe │ │ │ │ │ - movs r3, #0 │ │ │ │ │ - b.n 1f4 │ │ │ │ │ + bhi.n 2a0 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ + b.n 294 │ │ │ │ │ ldr r2, [r0, #8] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - ble.n 1fa │ │ │ │ │ + ble.n 29a │ │ │ │ │ ldr r2, [r0, #12] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - ble.n 1fa │ │ │ │ │ - adds r3, #1 │ │ │ │ │ - adds r0, #12 │ │ │ │ │ + ble.n 29a │ │ │ │ │ + add.w r3, r3, #1 │ │ │ │ │ + add.w r0, r0, #12 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ - beq.n 1fe │ │ │ │ │ + beq.n 2a0 │ │ │ │ │ ldr r2, [r0, #4] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - bge.n 1e0 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + bge.n 27c │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ bx lr │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ bx lr │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -00000204 : │ │ │ │ │ +000002a8 : │ │ │ │ │ fftw_mpi_dtensor_print(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ - mov r5, r1 │ │ │ │ │ ldr r3, [r1, #0] │ │ │ │ │ - ldr r1, [r0, #0] │ │ │ │ │ mvn.w r2, #2147483648 @ 0x80000000 │ │ │ │ │ + strd r4, r5, [sp, #-32]! │ │ │ │ │ + mov r5, r1 │ │ │ │ │ + ldr r1, [r0, #0] │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ + strd r8, r9, [sp, #16] │ │ │ │ │ + strd sl, lr, [sp, #24] │ │ │ │ │ sub sp, #8 │ │ │ │ │ cmp r1, r2 │ │ │ │ │ - beq.n 290 │ │ │ │ │ + beq.n 356 │ │ │ │ │ + ldr r1, [pc, #144] @ (35c ) │ │ │ │ │ mov sl, r0 │ │ │ │ │ - ldr r1, [pc, #132] @ (2a0 ) │ │ │ │ │ mov r0, r5 │ │ │ │ │ add r1, pc │ │ │ │ │ blx r3 │ │ │ │ │ ldr.w r3, [sl] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 280 │ │ │ │ │ + ble.n 338 │ │ │ │ │ ldr.w r3, [sl, #12] │ │ │ │ │ mov r0, r5 │ │ │ │ │ + ldr.w r8, [pc, #124] @ 360 │ │ │ │ │ + ldr r2, [pc, #124] @ (364 ) │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - ldr.w r8, [pc, #112] @ 2a4 │ │ │ │ │ ldr.w r3, [sl, #8] │ │ │ │ │ - str r3, [sp, #0] │ │ │ │ │ add r8, pc │ │ │ │ │ - ldr r2, [pc, #104] @ (2a8 ) │ │ │ │ │ mov r1, r8 │ │ │ │ │ + add r2, pc │ │ │ │ │ + str r3, [sp, #0] │ │ │ │ │ ldr r4, [r5, #0] │ │ │ │ │ ldr.w r3, [sl, #4] │ │ │ │ │ - add r2, pc │ │ │ │ │ blx r4 │ │ │ │ │ mov r4, sl │ │ │ │ │ ldr.w r3, [r4], #12 │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - ble.n 280 │ │ │ │ │ - ldr.w r9, [pc, #84] @ 2ac │ │ │ │ │ - movs r6, #1 │ │ │ │ │ + ble.n 338 │ │ │ │ │ + ldr.w r9, [pc, #96] @ 368 │ │ │ │ │ + mov.w r6, #1 │ │ │ │ │ add r9, pc │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ mov r2, r9 │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ mov r1, r8 │ │ │ │ │ mov r0, r5 │ │ │ │ │ - adds r6, #1 │ │ │ │ │ - ldr r3, [r4, #8] │ │ │ │ │ - adds r4, #12 │ │ │ │ │ + add.w r6, r6, #1 │ │ │ │ │ + add.w r4, r4, #12 │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + ldr.w r3, [r4, #-4] │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ ldr.w r3, [r4, #-8] │ │ │ │ │ ldr r7, [r5, #0] │ │ │ │ │ blx r7 │ │ │ │ │ ldr.w r3, [sl] │ │ │ │ │ cmp r3, r6 │ │ │ │ │ - bgt.n 25e │ │ │ │ │ - ldr r1, [pc, #44] @ (2b0 ) │ │ │ │ │ - mov r0, r5 │ │ │ │ │ + bgt.n 310 │ │ │ │ │ + ldr r1, [pc, #48] @ (36c ) │ │ │ │ │ ldr r3, [r5, #0] │ │ │ │ │ add r1, pc │ │ │ │ │ - add sp, #8 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ - bx r3 │ │ │ │ │ - ldr r1, [pc, #32] @ (2b4 ) │ │ │ │ │ mov r0, r5 │ │ │ │ │ - add r1, pc │ │ │ │ │ add sp, #8 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, lr, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ bx r3 │ │ │ │ │ - nop │ │ │ │ │ - .word 0x0000007e │ │ │ │ │ + ldr r1, [pc, #24] @ (370 ) │ │ │ │ │ + add r1, pc │ │ │ │ │ + b.n 33e │ │ │ │ │ + .word 0x0000008a │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ - .word 0x00000064 │ │ │ │ │ + .word 0x00000070 │ │ │ │ │ R_ARM_REL32 .LC3 │ │ │ │ │ - .word 0x0000005c │ │ │ │ │ + .word 0x00000070 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ - .word 0x0000004c │ │ │ │ │ + .word 0x00000056 │ │ │ │ │ R_ARM_REL32 .LC4 │ │ │ │ │ - .word 0x00000026 │ │ │ │ │ + .word 0x0000002c │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x0000001c │ │ │ │ │ + .word 0x00000014 │ │ │ │ │ R_ARM_REL32 .LC5 │ │ │ ├── rearrange.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 700 (bytes into file) │ │ │ │ │ + Start of section headers: 740 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 10 │ │ │ │ │ Section header string table index: 9 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,19 +1,19 @@ │ │ │ │ │ -There are 10 section headers, starting at offset 0x2bc: │ │ │ │ │ +There are 10 section headers, starting at offset 0x2e4: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 000108 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 00023c 000030 08 I 7 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 00013c 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 00013c 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .note.GNU-stack PROGBITS 00000000 00013c 000000 00 0 0 1 │ │ │ │ │ - [ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 00013c 000033 00 0 0 1 │ │ │ │ │ - [ 7] .symtab SYMTAB 00000000 000170 000080 10 8 5 4 │ │ │ │ │ - [ 8] .strtab STRTAB 00000000 0001f0 00004b 00 0 0 1 │ │ │ │ │ - [ 9] .shstrtab STRTAB 00000000 00026c 000050 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000130 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000264 000030 08 I 7 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000164 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000164 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .note.GNU-stack PROGBITS 00000000 000164 000000 00 0 0 1 │ │ │ │ │ + [ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 000164 000033 00 0 0 1 │ │ │ │ │ + [ 7] .symtab SYMTAB 00000000 000198 000080 10 8 5 4 │ │ │ │ │ + [ 8] .strtab STRTAB 00000000 000218 00004b 00 0 0 1 │ │ │ │ │ + [ 9] .shstrtab STRTAB 00000000 000294 000050 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,11 +1,11 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 8 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ 1: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 2: 000000da 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 3: 000000df 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 4: 000000e0 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 5: 00000001 198 FUNC GLOBAL DEFAULT 1 fftw_mpi_rearrange_applicable │ │ │ │ │ + 2: 00000102 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 3: 00000107 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 4: 00000108 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 5: 00000001 238 FUNC GLOBAL DEFAULT 1 fftw_mpi_rearrange_applicable │ │ │ │ │ 6: 00000000 0 NOTYPE GLOBAL DEFAULT UND __aeabi_idivmod │ │ │ │ │ - 7: 000000c9 64 FUNC GLOBAL DEFAULT 1 fftw_mpi_rearrange_ny │ │ │ │ │ + 7: 000000f1 64 FUNC GLOBAL DEFAULT 1 fftw_mpi_rearrange_ny │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,9 +1,9 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x23c contains 6 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x264 contains 6 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000036 0000060a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -00000052 0000060a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -0000006c 0000060a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000044 0000060a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000060 0000060a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ 00000086 0000060a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -0000009e 0000060a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -000000ba 0000060a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +000000aa 0000060a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +000000c4 0000060a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +000000e0 0000060a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,108 +1,115 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftw_mpi_rearrange_applicable(): │ │ │ │ │ - push {r4, r5, lr} │ │ │ │ │ + str.w r4, [sp, #-12]! │ │ │ │ │ mov ip, r0 │ │ │ │ │ - cmp.w ip, #1 │ │ │ │ │ + strd r5, lr, [sp, #4] │ │ │ │ │ sub sp, #20 │ │ │ │ │ + cmp.w ip, #1 │ │ │ │ │ add r0, sp, #16 │ │ │ │ │ stmdb r0, {r1, r2, r3} │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ - beq.n 5e │ │ │ │ │ - ldr r4, [sp, #8] │ │ │ │ │ + beq.n 6e │ │ │ │ │ cmp.w ip, #2 │ │ │ │ │ - beq.n 30 │ │ │ │ │ + ldr r4, [sp, #8] │ │ │ │ │ + beq.n 3e │ │ │ │ │ cmp.w ip, #4 │ │ │ │ │ - beq.n 92 │ │ │ │ │ + beq.n b8 │ │ │ │ │ cmp.w ip, #3 │ │ │ │ │ it ne │ │ │ │ │ movne r0, #1 │ │ │ │ │ - beq.n 7a │ │ │ │ │ + beq.n 9e │ │ │ │ │ add sp, #20 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ cmp r0, r4 │ │ │ │ │ - ble.n 64 │ │ │ │ │ + ble.n 74 │ │ │ │ │ mov r1, r4 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ clz r0, r1 │ │ │ │ │ - cmp r3, r4 │ │ │ │ │ mov.w r0, r0, lsr #5 │ │ │ │ │ + cmp r3, r4 │ │ │ │ │ it ge │ │ │ │ │ movge r0, #0 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n 2c │ │ │ │ │ + beq.n 32 │ │ │ │ │ mov r1, r3 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ clz r0, r1 │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ - b.n 2c │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ + b.n 32 │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ cmp r3, r0 │ │ │ │ │ - blt.n 6a │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + blt.n 84 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add sp, #20 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ mov r1, r3 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ clz r0, r1 │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ add sp, #20 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldr r3, [sp, #4] │ │ │ │ │ ldr r2, [sp, #36] @ 0x24 │ │ │ │ │ mul.w r1, r3, r2 │ │ │ │ │ cmp r1, r0 │ │ │ │ │ - bge.n 64 │ │ │ │ │ + bge.n 74 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ clz r0, r1 │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ - b.n 2c │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ + b.n 32 │ │ │ │ │ ldr r5, [sp, #12] │ │ │ │ │ cmp r5, r4 │ │ │ │ │ it ne │ │ │ │ │ cmpne r0, r5 │ │ │ │ │ - ble.n 64 │ │ │ │ │ + ble.n 74 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ clz r0, r1 │ │ │ │ │ - cmp r3, r5 │ │ │ │ │ mov.w r0, r0, lsr #5 │ │ │ │ │ + cmp r3, r5 │ │ │ │ │ it ge │ │ │ │ │ movge r0, #0 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n 2c │ │ │ │ │ + beq.n 32 │ │ │ │ │ mov r1, r3 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ clz r0, r1 │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ - b.n 2c │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ + b.n 32 │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -000000c8 : │ │ │ │ │ +000000f0 : │ │ │ │ │ fftw_mpi_rearrange_ny(): │ │ │ │ │ sub sp, #16 │ │ │ │ │ add.w ip, sp, #16 │ │ │ │ │ stmdb ip, {r1, r2, r3} │ │ │ │ │ cmp r0, #4 │ │ │ │ │ - bhi.n 104 │ │ │ │ │ + bhi.n 12c │ │ │ │ │ tbb [pc, r0] │ │ │ │ │ .short 0x0306 │ │ │ │ │ .short 0x0f0c │ │ │ │ │ .byte 0x09 │ │ │ │ │ .byte 0x00 │ │ │ │ │ ldr r0, [sp, #20] │ │ │ │ │ add sp, #16 │ │ │ │ │ @@ -118,8 +125,8 @@ │ │ │ │ │ bx lr │ │ │ │ │ ldr r3, [sp, #4] │ │ │ │ │ ldr r2, [sp, #20] │ │ │ │ │ mul.w r0, r3, r2 │ │ │ │ │ add sp, #16 │ │ │ │ │ bx lr │ │ │ │ │ movs r0, #0 │ │ │ │ │ - b.n e2 │ │ │ │ │ + b.n 10a │ │ │ ├── wisdom-api.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 1496 (bytes into file) │ │ │ │ │ + Start of section headers: 1520 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 10 │ │ │ │ │ Section header string table index: 9 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,19 +1,19 @@ │ │ │ │ │ -There are 10 section headers, starting at offset 0x5d8: │ │ │ │ │ +There are 10 section headers, starting at offset 0x5f0: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 0001c4 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000478 000110 08 I 7 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 0001f8 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 0001f8 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .note.GNU-stack PROGBITS 00000000 0001f8 000000 00 0 0 1 │ │ │ │ │ - [ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 0001f8 000033 00 0 0 1 │ │ │ │ │ - [ 7] .symtab SYMTAB 00000000 00022c 000140 10 8 2 4 │ │ │ │ │ - [ 8] .strtab STRTAB 00000000 00036c 00010b 00 0 0 1 │ │ │ │ │ - [ 9] .shstrtab STRTAB 00000000 000588 000050 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0001ec 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 0004a0 000100 08 I 7 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000220 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000220 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .note.GNU-stack PROGBITS 00000000 000220 000000 00 0 0 1 │ │ │ │ │ + [ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 000220 000033 00 0 0 1 │ │ │ │ │ + [ 7] .symtab SYMTAB 00000000 000254 000140 10 8 2 4 │ │ │ │ │ + [ 8] .strtab STRTAB 00000000 000394 00010b 00 0 0 1 │ │ │ │ │ + [ 9] .shstrtab STRTAB 00000000 0005a0 000050 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,23 +1,23 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 20 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ 1: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 2: 00000001 268 FUNC GLOBAL DEFAULT 1 fftw_mpi_gather_wisdom │ │ │ │ │ + 2: 00000001 292 FUNC GLOBAL DEFAULT 1 fftw_mpi_gather_wisdom │ │ │ │ │ 3: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_dup │ │ │ │ │ 4: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_rank │ │ │ │ │ 5: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_size │ │ │ │ │ 6: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_free │ │ │ │ │ 7: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Recv │ │ │ │ │ 8: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_malloc_plain │ │ │ │ │ 9: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_import_wisdom_from_string │ │ │ │ │ 10: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ifree │ │ │ │ │ 11: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_split │ │ │ │ │ 12: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_export_wisdom_to_string │ │ │ │ │ 13: 00000000 0 NOTYPE GLOBAL DEFAULT UND strlen │ │ │ │ │ 14: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Send │ │ │ │ │ 15: 00000000 0 NOTYPE GLOBAL DEFAULT UND free │ │ │ │ │ 16: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Abort │ │ │ │ │ - 17: 0000010d 182 FUNC GLOBAL DEFAULT 1 fftw_mpi_broadcast_wisdom │ │ │ │ │ + 17: 00000125 198 FUNC GLOBAL DEFAULT 1 fftw_mpi_broadcast_wisdom │ │ │ │ │ 18: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Bcast │ │ │ │ │ 19: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_free │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,37 +1,35 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x478 contains 34 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x4a0 contains 32 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000008 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ -00000010 0000040a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000018 0000050a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -0000002e 0000060a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -00000052 0000070a R_ARM_THM_CALL 00000000 MPI_Recv │ │ │ │ │ -00000058 0000080a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00000074 0000070a R_ARM_THM_CALL 00000000 MPI_Recv │ │ │ │ │ -0000007a 0000090a R_ARM_THM_CALL 00000000 fftw_import_wisdom_from_string │ │ │ │ │ -00000084 00000a0a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ -0000008a 0000060a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -000000a4 00000b0a R_ARM_THM_CALL 00000000 MPI_Comm_split │ │ │ │ │ -000000aa 0000020a R_ARM_THM_CALL 00000001 fftw_mpi_gather_wisdom │ │ │ │ │ -000000b0 0000060a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -000000b8 00000c0a R_ARM_THM_CALL 00000000 fftw_export_wisdom_to_string │ │ │ │ │ -000000be 00000d0a R_ARM_THM_CALL 00000000 strlen │ │ │ │ │ -000000dc 00000e0a R_ARM_THM_CALL 00000000 MPI_Send │ │ │ │ │ -000000f6 00000e0a R_ARM_THM_CALL 00000000 MPI_Send │ │ │ │ │ -000000fc 00000f0a R_ARM_THM_CALL 00000000 free │ │ │ │ │ -00000106 0000100a R_ARM_THM_CALL 00000000 MPI_Abort │ │ │ │ │ -00000114 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ -0000011c 0000040a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000136 0000120a R_ARM_THM_CALL 00000000 MPI_Bcast │ │ │ │ │ -0000013c 0000080a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00000152 0000120a R_ARM_THM_CALL 00000000 MPI_Bcast │ │ │ │ │ -00000158 0000090a R_ARM_THM_CALL 00000000 fftw_import_wisdom_from_string │ │ │ │ │ -00000160 00000a0a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ -00000166 0000060a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -0000016e 00000c0a R_ARM_THM_CALL 00000000 fftw_export_wisdom_to_string │ │ │ │ │ -00000174 00000d0a R_ARM_THM_CALL 00000000 strlen │ │ │ │ │ -0000018e 0000120a R_ARM_THM_CALL 00000000 MPI_Bcast │ │ │ │ │ -000001a4 0000120a R_ARM_THM_CALL 00000000 MPI_Bcast │ │ │ │ │ -000001aa 0000130a R_ARM_THM_CALL 00000000 fftw_free │ │ │ │ │ -000001b0 0000060a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -000001bc 0000100a R_ARM_THM_CALL 00000000 MPI_Abort │ │ │ │ │ +0000000e 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ +00000016 0000040a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +0000001e 0000050a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000034 0000060a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +00000062 0000070a R_ARM_THM_CALL 00000000 MPI_Recv │ │ │ │ │ +00000068 0000080a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00000088 0000070a R_ARM_THM_CALL 00000000 MPI_Recv │ │ │ │ │ +0000008e 0000090a R_ARM_THM_CALL 00000000 fftw_import_wisdom_from_string │ │ │ │ │ +00000098 00000a0a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ +000000b0 00000b0a R_ARM_THM_CALL 00000000 MPI_Comm_split │ │ │ │ │ +000000b6 0000020a R_ARM_THM_CALL 00000001 fftw_mpi_gather_wisdom │ │ │ │ │ +000000bc 0000060a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +000000c4 00000c0a R_ARM_THM_CALL 00000000 fftw_export_wisdom_to_string │ │ │ │ │ +000000ca 00000d0a R_ARM_THM_CALL 00000000 strlen │ │ │ │ │ +000000ee 00000e0a R_ARM_THM_CALL 00000000 MPI_Send │ │ │ │ │ +0000010c 00000e0a R_ARM_THM_CALL 00000000 MPI_Send │ │ │ │ │ +00000112 00000f0a R_ARM_THM_CALL 00000000 free │ │ │ │ │ +0000011e 0000100a R_ARM_THM_CALL 00000000 MPI_Abort │ │ │ │ │ +00000132 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ +0000013a 0000040a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +00000158 0000120a R_ARM_THM_CALL 00000000 MPI_Bcast │ │ │ │ │ +0000015e 0000080a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00000176 0000120a R_ARM_THM_CALL 00000000 MPI_Bcast │ │ │ │ │ +0000017c 0000090a R_ARM_THM_CALL 00000000 fftw_import_wisdom_from_string │ │ │ │ │ +00000184 00000a0a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ +0000018a 0000060a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +00000198 00000c0a R_ARM_THM_CALL 00000000 fftw_export_wisdom_to_string │ │ │ │ │ +0000019e 00000d0a R_ARM_THM_CALL 00000000 strlen │ │ │ │ │ +000001bc 0000120a R_ARM_THM_CALL 00000000 MPI_Bcast │ │ │ │ │ +000001d2 0000120a R_ARM_THM_CALL 00000000 MPI_Bcast │ │ │ │ │ +000001d8 0000130a R_ARM_THM_CALL 00000000 fftw_free │ │ │ │ │ +000001e4 0000100a R_ARM_THM_CALL 00000000 MPI_Abort │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,219 +1,215 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftw_mpi_gather_wisdom(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, r5, [sp, #-16]! │ │ │ │ │ + strd r6, lr, [sp, #8] │ │ │ │ │ sub sp, #56 @ 0x38 │ │ │ │ │ add r4, sp, #16 │ │ │ │ │ mov r1, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_dup │ │ │ │ │ - add r1, sp, #24 │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ + add r1, sp, #24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ add r1, sp, #28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ cmp r3, #2 │ │ │ │ │ - bgt.n 92 │ │ │ │ │ + bgt.n 9e │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - ble.n 2c │ │ │ │ │ + ble.n 32 │ │ │ │ │ ldr r5, [sp, #24] │ │ │ │ │ cmp r5, #1 │ │ │ │ │ - ble.n 36 │ │ │ │ │ + ble.n 42 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_free │ │ │ │ │ add sp, #56 @ 0x38 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ - beq.n b8 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + pop {r6, pc} │ │ │ │ │ + beq.n c4 │ │ │ │ │ ldr r3, [sp, #16] │ │ │ │ │ add r6, sp, #36 @ 0x24 │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ - movs r3, #111 @ 0x6f │ │ │ │ │ - str r3, [sp, #0] │ │ │ │ │ - movs r3, #1 │ │ │ │ │ - mov r1, r3 │ │ │ │ │ - add r0, sp, #32 │ │ │ │ │ - str r6, [sp, #8] │ │ │ │ │ movw r2, #1030 @ 0x406 │ │ │ │ │ movt r2, #19456 @ 0x4c00 │ │ │ │ │ + add r0, sp, #32 │ │ │ │ │ + strd r3, r6, [sp, #4] │ │ │ │ │ + mov.w r3, #111 @ 0x6f │ │ │ │ │ + str r3, [sp, #0] │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + mov r1, r3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Recv │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_malloc_plain │ │ │ │ │ ldr r3, [sp, #16] │ │ │ │ │ mov r5, r0 │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ - ldr r1, [sp, #32] │ │ │ │ │ - movs r3, #222 @ 0xde │ │ │ │ │ - str r6, [sp, #8] │ │ │ │ │ movw r2, #257 @ 0x101 │ │ │ │ │ movt r2, #19456 @ 0x4c00 │ │ │ │ │ + ldr r1, [sp, #32] │ │ │ │ │ + strd r3, r6, [sp, #4] │ │ │ │ │ + mov.w r3, #222 @ 0xde │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Recv │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_import_wisdom_from_string │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n 102 │ │ │ │ │ + beq.n 118 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ifree │ │ │ │ │ - mov r0, r4 │ │ │ │ │ - bl 0 │ │ │ │ │ - R_ARM_THM_CALL MPI_Comm_free │ │ │ │ │ - add sp, #56 @ 0x38 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ - ldr r2, [sp, #24] │ │ │ │ │ + b.n 32 │ │ │ │ │ add r5, sp, #20 │ │ │ │ │ - mov r3, r5 │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ + mov r3, r5 │ │ │ │ │ + ldr r2, [sp, #24] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ and.w r1, r2, #1 │ │ │ │ │ it lt │ │ │ │ │ neglt r1, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_split │ │ │ │ │ ldr r0, [sp, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_gather_wisdom │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_free │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ - b.n 22 │ │ │ │ │ + b.n 28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_export_wisdom_to_string │ │ │ │ │ mov r6, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL strlen │ │ │ │ │ ldr r3, [sp, #16] │ │ │ │ │ + add.w r0, r0, #1 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ - adds r0, #1 │ │ │ │ │ - movs r3, #111 @ 0x6f │ │ │ │ │ - str r0, [sp, #32] │ │ │ │ │ movw r2, #1030 @ 0x406 │ │ │ │ │ movt r2, #19456 @ 0x4c00 │ │ │ │ │ - str r3, [sp, #0] │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + mov.w r3, #111 @ 0x6f │ │ │ │ │ + str r0, [sp, #32] │ │ │ │ │ add r0, sp, #32 │ │ │ │ │ - movs r3, #0 │ │ │ │ │ + str r3, [sp, #0] │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Send │ │ │ │ │ ldr r3, [sp, #16] │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ mov r0, r6 │ │ │ │ │ - ldr r1, [sp, #32] │ │ │ │ │ - movs r3, #222 @ 0xde │ │ │ │ │ movw r2, #257 @ 0x101 │ │ │ │ │ movt r2, #19456 @ 0x4c00 │ │ │ │ │ + ldr r1, [sp, #32] │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + mov.w r3, #222 @ 0xde │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - movs r3, #0 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Send │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL free │ │ │ │ │ - b.n 2c │ │ │ │ │ + b.n 32 │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Abort │ │ │ │ │ - b.n 82 │ │ │ │ │ + b.n 96 │ │ │ │ │ │ │ │ │ │ -0000010c : │ │ │ │ │ +00000124 : │ │ │ │ │ fftw_mpi_broadcast_wisdom(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, r5, [sp, #-16]! │ │ │ │ │ + strd r6, lr, [sp, #8] │ │ │ │ │ sub sp, #24 │ │ │ │ │ add r4, sp, #12 │ │ │ │ │ mov r1, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_dup │ │ │ │ │ ldr r0, [sp, #12] │ │ │ │ │ add r1, sp, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ ldr r5, [sp, #16] │ │ │ │ │ - cbz r5, 16e │ │ │ │ │ + cbz r5, 198 │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ - movs r1, #1 │ │ │ │ │ - str r3, [sp, #0] │ │ │ │ │ - add r0, sp, #20 │ │ │ │ │ - movs r3, #0 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ movw r2, #1030 @ 0x406 │ │ │ │ │ movt r2, #19456 @ 0x4c00 │ │ │ │ │ + add r0, sp, #20 │ │ │ │ │ + str r3, [sp, #0] │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Bcast │ │ │ │ │ ldr r0, [sp, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_malloc_plain │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ mov r5, r0 │ │ │ │ │ - str r3, [sp, #0] │ │ │ │ │ - ldr r1, [sp, #20] │ │ │ │ │ - movs r3, #0 │ │ │ │ │ movw r2, #257 @ 0x101 │ │ │ │ │ movt r2, #19456 @ 0x4c00 │ │ │ │ │ + ldr r1, [sp, #20] │ │ │ │ │ + str r3, [sp, #0] │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Bcast │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_import_wisdom_from_string │ │ │ │ │ - cbz r0, 1b8 │ │ │ │ │ + cbz r0, 1de │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ifree │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_free │ │ │ │ │ add sp, #24 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + pop {r6, pc} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_export_wisdom_to_string │ │ │ │ │ mov r6, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL strlen │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ + add.w r0, r0, #1 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ + movw r2, #1030 @ 0x406 │ │ │ │ │ + movt r2, #19456 @ 0x4c00 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - adds r0, #1 │ │ │ │ │ mov r3, r5 │ │ │ │ │ str r0, [sp, #20] │ │ │ │ │ - movs r1, #1 │ │ │ │ │ add r0, sp, #20 │ │ │ │ │ - movw r2, #1030 @ 0x406 │ │ │ │ │ - movt r2, #19456 @ 0x4c00 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Bcast │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ - ldr r1, [sp, #20] │ │ │ │ │ mov r0, r6 │ │ │ │ │ - str r3, [sp, #0] │ │ │ │ │ movw r2, #257 @ 0x101 │ │ │ │ │ movt r2, #19456 @ 0x4c00 │ │ │ │ │ + ldr r1, [sp, #20] │ │ │ │ │ + str r3, [sp, #0] │ │ │ │ │ mov r3, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Bcast │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_free │ │ │ │ │ - mov r0, r4 │ │ │ │ │ - bl 0 │ │ │ │ │ - R_ARM_THM_CALL MPI_Comm_free │ │ │ │ │ - add sp, #24 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ + b.n 188 │ │ │ │ │ ldr r0, [sp, #12] │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Abort │ │ │ │ │ - b.n 15e │ │ │ │ │ + b.n 182 │ │ │ │ │ nop │ │ │ ├── f03-wrap.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 4840 (bytes into file) │ │ │ │ │ + Start of section headers: 5644 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 10 │ │ │ │ │ Section header string table index: 9 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,19 +1,19 @@ │ │ │ │ │ -There are 10 section headers, starting at offset 0x12e8: │ │ │ │ │ +There are 10 section headers, starting at offset 0x160c: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 0005a8 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0010a8 0001f0 08 I 7 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 0005dc 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 0005dc 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .note.GNU-stack PROGBITS 00000000 0005dc 000000 00 0 0 1 │ │ │ │ │ - [ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 0005dc 000033 00 0 0 1 │ │ │ │ │ - [ 7] .symtab SYMTAB 00000000 000610 000410 10 8 2 4 │ │ │ │ │ - [ 8] .strtab STRTAB 00000000 000a20 000685 00 0 0 1 │ │ │ │ │ - [ 9] .shstrtab STRTAB 00000000 001298 000050 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0008cc 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 0013cc 0001f0 08 I 7 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000900 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000900 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .note.GNU-stack PROGBITS 00000000 000900 000000 00 0 0 1 │ │ │ │ │ + [ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 000900 000033 00 0 0 1 │ │ │ │ │ + [ 7] .symtab SYMTAB 00000000 000934 000410 10 8 2 4 │ │ │ │ │ + [ 8] .strtab STRTAB 00000000 000d44 000685 00 0 0 1 │ │ │ │ │ + [ 9] .shstrtab STRTAB 00000000 0015bc 000050 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,68 +1,68 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 65 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ 1: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 2: 00000001 62 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_many_transposed_f03 │ │ │ │ │ + 2: 00000001 96 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_many_transposed_f03 │ │ │ │ │ 3: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_f2c │ │ │ │ │ 4: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_local_size_many_transposed │ │ │ │ │ - 5: 00000041 44 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_many_f03 │ │ │ │ │ + 5: 00000061 74 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_many_f03 │ │ │ │ │ 6: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_local_size_many │ │ │ │ │ - 7: 0000006d 46 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_transposed_f03 │ │ │ │ │ + 7: 000000ad 74 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_transposed_f03 │ │ │ │ │ 8: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_local_size_transposed │ │ │ │ │ - 9: 0000009d 36 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_f03 │ │ │ │ │ + 9: 000000f9 54 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_f03 │ │ │ │ │ 10: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_local_size │ │ │ │ │ - 11: 000000c1 58 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_many_1d_f03 │ │ │ │ │ + 11: 00000131 94 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_many_1d_f03 │ │ │ │ │ 12: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_local_size_many_1d │ │ │ │ │ - 13: 000000fd 48 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_1d_f03 │ │ │ │ │ + 13: 00000191 74 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_1d_f03 │ │ │ │ │ 14: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_local_size_1d │ │ │ │ │ - 15: 0000012d 36 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_2d_f03 │ │ │ │ │ + 15: 000001dd 54 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_2d_f03 │ │ │ │ │ 16: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_local_size_2d │ │ │ │ │ - 17: 00000151 46 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_2d_transposed_f03 │ │ │ │ │ + 17: 00000215 74 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_2d_transposed_f03 │ │ │ │ │ 18: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_local_size_2d_transposed │ │ │ │ │ - 19: 00000181 40 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_3d_f03 │ │ │ │ │ + 19: 00000261 58 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_3d_f03 │ │ │ │ │ 20: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_local_size_3d │ │ │ │ │ - 21: 000001a9 48 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_3d_transposed_f03 │ │ │ │ │ + 21: 0000029d 74 FUNC GLOBAL DEFAULT 1 fftw_mpi_local_size_3d_transposed_f03 │ │ │ │ │ 22: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_local_size_3d_transposed │ │ │ │ │ - 23: 000001d9 60 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_many_transpose_f03 │ │ │ │ │ + 23: 000002e9 94 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_many_transpose_f03 │ │ │ │ │ 24: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_plan_many_transpose │ │ │ │ │ - 25: 00000215 40 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_transpose_f03 │ │ │ │ │ + 25: 00000349 58 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_transpose_f03 │ │ │ │ │ 26: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_plan_transpose │ │ │ │ │ - 27: 0000023d 62 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_many_dft_f03 │ │ │ │ │ + 27: 00000385 96 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_many_dft_f03 │ │ │ │ │ 28: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_plan_many_dft │ │ │ │ │ - 29: 0000027d 44 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_f03 │ │ │ │ │ + 29: 000003e5 74 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_f03 │ │ │ │ │ 30: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_plan_dft │ │ │ │ │ - 31: 000002a9 40 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_1d_f03 │ │ │ │ │ + 31: 00000431 58 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_1d_f03 │ │ │ │ │ 32: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_plan_dft_1d │ │ │ │ │ - 33: 000002d1 44 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_2d_f03 │ │ │ │ │ + 33: 0000046d 74 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_2d_f03 │ │ │ │ │ 34: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_plan_dft_2d │ │ │ │ │ - 35: 000002fd 50 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_3d_f03 │ │ │ │ │ + 35: 000004b9 74 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_3d_f03 │ │ │ │ │ 36: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_plan_dft_3d │ │ │ │ │ - 37: 00000331 62 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_many_r2r_f03 │ │ │ │ │ + 37: 00000505 96 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_many_r2r_f03 │ │ │ │ │ 38: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_plan_many_r2r │ │ │ │ │ - 39: 00000371 44 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_r2r_f03 │ │ │ │ │ + 39: 00000565 74 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_r2r_f03 │ │ │ │ │ 40: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_plan_r2r │ │ │ │ │ - 41: 0000039d 50 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_r2r_2d_f03 │ │ │ │ │ + 41: 000005b1 74 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_r2r_2d_f03 │ │ │ │ │ 42: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_plan_r2r_2d │ │ │ │ │ - 43: 000003d1 62 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_r2r_3d_f03 │ │ │ │ │ + 43: 000005fd 96 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_r2r_3d_f03 │ │ │ │ │ 44: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_plan_r2r_3d │ │ │ │ │ - 45: 00000411 60 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_many_dft_r2c_f03 │ │ │ │ │ + 45: 0000065d 94 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_many_dft_r2c_f03 │ │ │ │ │ 46: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_plan_many_dft_r2c │ │ │ │ │ - 47: 0000044d 40 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_r2c_f03 │ │ │ │ │ + 47: 000006bd 58 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_r2c_f03 │ │ │ │ │ 48: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_plan_dft_r2c │ │ │ │ │ - 49: 00000475 40 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_r2c_2d_f03 │ │ │ │ │ + 49: 000006f9 58 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_r2c_2d_f03 │ │ │ │ │ 50: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_plan_dft_r2c_2d │ │ │ │ │ - 51: 0000049d 48 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_r2c_3d_f03 │ │ │ │ │ + 51: 00000735 74 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_r2c_3d_f03 │ │ │ │ │ 52: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_plan_dft_r2c_3d │ │ │ │ │ - 53: 000004cd 60 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_many_dft_c2r_f03 │ │ │ │ │ + 53: 00000781 94 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_many_dft_c2r_f03 │ │ │ │ │ 54: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_plan_many_dft_c2r │ │ │ │ │ - 55: 00000509 40 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_c2r_f03 │ │ │ │ │ + 55: 000007e1 58 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_c2r_f03 │ │ │ │ │ 56: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_plan_dft_c2r │ │ │ │ │ - 57: 00000531 40 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_c2r_2d_f03 │ │ │ │ │ + 57: 0000081d 58 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_c2r_2d_f03 │ │ │ │ │ 58: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_plan_dft_c2r_2d │ │ │ │ │ - 59: 00000559 48 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_c2r_3d_f03 │ │ │ │ │ + 59: 00000859 74 FUNC GLOBAL DEFAULT 1 fftw_mpi_plan_dft_c2r_3d_f03 │ │ │ │ │ 60: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_plan_dft_c2r_3d │ │ │ │ │ - 61: 00000589 14 FUNC GLOBAL DEFAULT 1 fftw_mpi_gather_wisdom_f03 │ │ │ │ │ + 61: 000008a5 18 FUNC GLOBAL DEFAULT 1 fftw_mpi_gather_wisdom_f03 │ │ │ │ │ 62: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_gather_wisdom │ │ │ │ │ - 63: 00000599 14 FUNC GLOBAL DEFAULT 1 fftw_mpi_broadcast_wisdom_f03 │ │ │ │ │ + 63: 000008b9 18 FUNC GLOBAL DEFAULT 1 fftw_mpi_broadcast_wisdom_f03 │ │ │ │ │ 64: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_broadcast_wisdom │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,65 +1,65 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x10a8 contains 62 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x13cc contains 62 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -0000001c 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000052 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +0000002c 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ 00000080 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -000000aa 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -000000da 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000110 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -0000013a 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000164 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000190 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -000001bc 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +000000cc 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +0000010e 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +0000015a 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +000001b0 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ 000001f2 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000224 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000258 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -0000028e 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -000002b8 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -000002e2 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000234 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000278 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +000002bc 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ 00000312 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -0000034c 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000382 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -000003b2 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -000003ec 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -0000042a 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -0000045c 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000484 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -000004b0 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -000004e6 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000518 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000540 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -0000056c 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -0000058a 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -0000059a 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -0000003a 0000041e R_ARM_THM_JUMP24 00000000 fftw_mpi_local_size_many_transposed │ │ │ │ │ -00000068 0000061e R_ARM_THM_JUMP24 00000000 fftw_mpi_local_size_many │ │ │ │ │ -00000096 0000081e R_ARM_THM_JUMP24 00000000 fftw_mpi_local_size_transposed │ │ │ │ │ -000000bc 00000a1e R_ARM_THM_JUMP24 00000000 fftw_mpi_local_size │ │ │ │ │ -000000f6 00000c1e R_ARM_THM_JUMP24 00000000 fftw_mpi_local_size_many_1d │ │ │ │ │ -00000128 00000e1e R_ARM_THM_JUMP24 00000000 fftw_mpi_local_size_1d │ │ │ │ │ -0000014c 0000101e R_ARM_THM_JUMP24 00000000 fftw_mpi_local_size_2d │ │ │ │ │ -0000017a 0000121e R_ARM_THM_JUMP24 00000000 fftw_mpi_local_size_2d_transposed │ │ │ │ │ -000001a4 0000141e R_ARM_THM_JUMP24 00000000 fftw_mpi_local_size_3d │ │ │ │ │ -000001d4 0000161e R_ARM_THM_JUMP24 00000000 fftw_mpi_local_size_3d_transposed │ │ │ │ │ -00000210 0000181e R_ARM_THM_JUMP24 00000000 fftw_mpi_plan_many_transpose │ │ │ │ │ -00000238 00001a1e R_ARM_THM_JUMP24 00000000 fftw_mpi_plan_transpose │ │ │ │ │ -00000276 00001c1e R_ARM_THM_JUMP24 00000000 fftw_mpi_plan_many_dft │ │ │ │ │ -000002a4 00001e1e R_ARM_THM_JUMP24 00000000 fftw_mpi_plan_dft │ │ │ │ │ -000002cc 0000201e R_ARM_THM_JUMP24 00000000 fftw_mpi_plan_dft_1d │ │ │ │ │ -000002f8 0000221e R_ARM_THM_JUMP24 00000000 fftw_mpi_plan_dft_2d │ │ │ │ │ -0000032a 0000241e R_ARM_THM_JUMP24 00000000 fftw_mpi_plan_dft_3d │ │ │ │ │ -0000036a 0000261e R_ARM_THM_JUMP24 00000000 fftw_mpi_plan_many_r2r │ │ │ │ │ -00000398 0000281e R_ARM_THM_JUMP24 00000000 fftw_mpi_plan_r2r │ │ │ │ │ -000003ca 00002a1e R_ARM_THM_JUMP24 00000000 fftw_mpi_plan_r2r_2d │ │ │ │ │ -0000040a 00002c1e R_ARM_THM_JUMP24 00000000 fftw_mpi_plan_r2r_3d │ │ │ │ │ -00000448 00002e1e R_ARM_THM_JUMP24 00000000 fftw_mpi_plan_many_dft_r2c │ │ │ │ │ -00000470 0000301e R_ARM_THM_JUMP24 00000000 fftw_mpi_plan_dft_r2c │ │ │ │ │ -00000498 0000321e R_ARM_THM_JUMP24 00000000 fftw_mpi_plan_dft_r2c_2d │ │ │ │ │ -000004c8 0000341e R_ARM_THM_JUMP24 00000000 fftw_mpi_plan_dft_r2c_3d │ │ │ │ │ -00000504 0000361e R_ARM_THM_JUMP24 00000000 fftw_mpi_plan_many_dft_c2r │ │ │ │ │ -0000052c 0000381e R_ARM_THM_JUMP24 00000000 fftw_mpi_plan_dft_c2r │ │ │ │ │ -00000554 00003a1e R_ARM_THM_JUMP24 00000000 fftw_mpi_plan_dft_c2r_2d │ │ │ │ │ -00000584 00003c1e R_ARM_THM_JUMP24 00000000 fftw_mpi_plan_dft_c2r_3d │ │ │ │ │ -00000592 00003e1e R_ARM_THM_JUMP24 00000000 fftw_mpi_gather_wisdom │ │ │ │ │ -000005a2 0000401e R_ARM_THM_JUMP24 00000000 fftw_mpi_broadcast_wisdom │ │ │ │ │ +00000360 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +000003b0 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000404 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000448 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +0000048c 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +000004d8 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000530 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000584 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +000005d0 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000628 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000686 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +000006d4 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000710 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000754 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +000007aa 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +000007f8 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000834 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000878 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +000008a8 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +000008bc 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +0000005c 0000041e R_ARM_THM_JUMP24 00000000 fftw_mpi_local_size_many_transposed │ │ │ │ │ +000000a6 0000061e R_ARM_THM_JUMP24 00000000 fftw_mpi_local_size_many │ │ │ │ │ +000000f2 0000081e R_ARM_THM_JUMP24 00000000 fftw_mpi_local_size_transposed │ │ │ │ │ +0000012a 00000a1e R_ARM_THM_JUMP24 00000000 fftw_mpi_local_size │ │ │ │ │ +0000018a 00000c1e R_ARM_THM_JUMP24 00000000 fftw_mpi_local_size_many_1d │ │ │ │ │ +000001d6 00000e1e R_ARM_THM_JUMP24 00000000 fftw_mpi_local_size_1d │ │ │ │ │ +0000020e 0000101e R_ARM_THM_JUMP24 00000000 fftw_mpi_local_size_2d │ │ │ │ │ +0000025a 0000121e R_ARM_THM_JUMP24 00000000 fftw_mpi_local_size_2d_transposed │ │ │ │ │ +00000296 0000141e R_ARM_THM_JUMP24 00000000 fftw_mpi_local_size_3d │ │ │ │ │ +000002e2 0000161e R_ARM_THM_JUMP24 00000000 fftw_mpi_local_size_3d_transposed │ │ │ │ │ +00000342 0000181e R_ARM_THM_JUMP24 00000000 fftw_mpi_plan_many_transpose │ │ │ │ │ +0000037e 00001a1e R_ARM_THM_JUMP24 00000000 fftw_mpi_plan_transpose │ │ │ │ │ +000003e0 00001c1e R_ARM_THM_JUMP24 00000000 fftw_mpi_plan_many_dft │ │ │ │ │ +0000042a 00001e1e R_ARM_THM_JUMP24 00000000 fftw_mpi_plan_dft │ │ │ │ │ +00000466 0000201e R_ARM_THM_JUMP24 00000000 fftw_mpi_plan_dft_1d │ │ │ │ │ +000004b2 0000221e R_ARM_THM_JUMP24 00000000 fftw_mpi_plan_dft_2d │ │ │ │ │ +000004fe 0000241e R_ARM_THM_JUMP24 00000000 fftw_mpi_plan_dft_3d │ │ │ │ │ +00000560 0000261e R_ARM_THM_JUMP24 00000000 fftw_mpi_plan_many_r2r │ │ │ │ │ +000005aa 0000281e R_ARM_THM_JUMP24 00000000 fftw_mpi_plan_r2r │ │ │ │ │ +000005f6 00002a1e R_ARM_THM_JUMP24 00000000 fftw_mpi_plan_r2r_2d │ │ │ │ │ +00000658 00002c1e R_ARM_THM_JUMP24 00000000 fftw_mpi_plan_r2r_3d │ │ │ │ │ +000006b6 00002e1e R_ARM_THM_JUMP24 00000000 fftw_mpi_plan_many_dft_r2c │ │ │ │ │ +000006f2 0000301e R_ARM_THM_JUMP24 00000000 fftw_mpi_plan_dft_r2c │ │ │ │ │ +0000072e 0000321e R_ARM_THM_JUMP24 00000000 fftw_mpi_plan_dft_r2c_2d │ │ │ │ │ +0000077a 0000341e R_ARM_THM_JUMP24 00000000 fftw_mpi_plan_dft_r2c_3d │ │ │ │ │ +000007da 0000361e R_ARM_THM_JUMP24 00000000 fftw_mpi_plan_many_dft_c2r │ │ │ │ │ +00000816 0000381e R_ARM_THM_JUMP24 00000000 fftw_mpi_plan_dft_c2r │ │ │ │ │ +00000852 00003a1e R_ARM_THM_JUMP24 00000000 fftw_mpi_plan_dft_c2r_2d │ │ │ │ │ +0000089e 00003c1e R_ARM_THM_JUMP24 00000000 fftw_mpi_plan_dft_c2r_3d │ │ │ │ │ +000008b2 00003e1e R_ARM_THM_JUMP24 00000000 fftw_mpi_gather_wisdom │ │ │ │ │ +000008c6 0000401e R_ARM_THM_JUMP24 00000000 fftw_mpi_broadcast_wisdom │ │ │ │ ├── strings --all --bytes=8 {} │ │ │ │ │ @@ -1,9 +1,7 @@ │ │ │ │ │ - 2F)F F │ │ │ │ │ - 2F)F F │ │ │ │ │ fftw_mpi_local_size_many_transposed_f03 │ │ │ │ │ MPI_Comm_f2c │ │ │ │ │ fftw_mpi_local_size_many_transposed │ │ │ │ │ fftw_mpi_local_size_many_f03 │ │ │ │ │ fftw_mpi_local_size_many │ │ │ │ │ fftw_mpi_local_size_transposed_f03 │ │ │ │ │ fftw_mpi_local_size_transposed │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,662 +1,879 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftw_mpi_local_size_many_transposed_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r1 │ │ │ │ │ mov r6, r2 │ │ │ │ │ - sub sp, #12 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r7, r3 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #12 │ │ │ │ │ ldr.w r8, [sp, #48] @ 0x30 │ │ │ │ │ - ldrd r9, sl, [sp, #56] @ 0x38 │ │ │ │ │ str r0, [sp, #4] │ │ │ │ │ - ldrd fp, r4, [sp, #64] @ 0x40 │ │ │ │ │ ldr r0, [sp, #52] @ 0x34 │ │ │ │ │ + ldrd r9, sl, [sp, #56] @ 0x38 │ │ │ │ │ + ldrd fp, r4, [sp, #64] @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ - mov r3, r7 │ │ │ │ │ strd r8, r0, [sp, #48] @ 0x30 │ │ │ │ │ + mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ ldr r0, [sp, #4] │ │ │ │ │ mov r1, r5 │ │ │ │ │ - strd fp, r4, [sp, #64] @ 0x40 │ │ │ │ │ strd r9, sl, [sp, #56] @ 0x38 │ │ │ │ │ + strd fp, r4, [sp, #64] @ 0x40 │ │ │ │ │ add sp, #12 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w lr, [sp], #4 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_mpi_local_size_many_transposed │ │ │ │ │ - nop │ │ │ │ │ │ │ │ │ │ -00000040 : │ │ │ │ │ +00000060 : │ │ │ │ │ fftw_mpi_local_size_many_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, r5, [sp, #-32]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ - ldrd r8, r9, [sp, #36] @ 0x24 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ - ldr r0, [sp, #32] │ │ │ │ │ + strd r8, r9, [sp, #16] │ │ │ │ │ + ldrd r0, r8, [sp, #32] │ │ │ │ │ + strd sl, lr, [sp, #24] │ │ │ │ │ + ldr.w r9, [sp, #40] @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ + ldrd sl, lr, [sp, #24] │ │ │ │ │ mov r3, r7 │ │ │ │ │ - str r0, [sp, #32] │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ + strd r0, r8, [sp, #32] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - strd r8, r9, [sp, #36] @ 0x24 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + str.w r9, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #32 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_mpi_local_size_many │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -0000006c : │ │ │ │ │ +000000ac : │ │ │ │ │ fftw_mpi_local_size_transposed_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, r5, [sp, #-32]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr.w r9, [sp, #40] @ 0x28 │ │ │ │ │ - ldrd r7, r8, [sp, #32] │ │ │ │ │ + mov r0, r2 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r5, r1 │ │ │ │ │ mov r6, r3 │ │ │ │ │ - mov r0, r2 │ │ │ │ │ + strd r8, r9, [sp, #16] │ │ │ │ │ + ldrd r7, r8, [sp, #32] │ │ │ │ │ + strd sl, lr, [sp, #24] │ │ │ │ │ + ldr.w r9, [sp, #40] @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ - mov r3, r6 │ │ │ │ │ + ldrd sl, lr, [sp, #24] │ │ │ │ │ mov r2, r0 │ │ │ │ │ + mov r3, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - strd r8, r9, [sp, #36] @ 0x24 │ │ │ │ │ - str r7, [sp, #32] │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r7, r8, [sp, #32] │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + str.w r9, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #32 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_mpi_local_size_transposed │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -0000009c : │ │ │ │ │ +000000f8 : │ │ │ │ │ fftw_mpi_local_size_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r7, [sp, #24] │ │ │ │ │ + mov r0, r2 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r5, r1 │ │ │ │ │ mov r6, r3 │ │ │ │ │ - mov r0, r2 │ │ │ │ │ + ldr r7, [sp, #24] │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ - mov r3, r6 │ │ │ │ │ + ldrd r8, lr, [sp, #16] │ │ │ │ │ mov r2, r0 │ │ │ │ │ + mov r3, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ mov r0, r4 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ str r7, [sp, #24] │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #24 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_mpi_local_size │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -000000c0 : │ │ │ │ │ +00000130 : │ │ │ │ │ fftw_mpi_local_size_many_1d_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r0, r2 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r1 │ │ │ │ │ - sub sp, #4 │ │ │ │ │ mov r6, r3 │ │ │ │ │ - mov r0, r2 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #4 │ │ │ │ │ ldrd r7, r8, [sp, #40] @ 0x28 │ │ │ │ │ ldrd r9, sl, [sp, #48] @ 0x30 │ │ │ │ │ ldr.w fp, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ - mov r3, r6 │ │ │ │ │ mov r2, r0 │ │ │ │ │ + mov r3, r6 │ │ │ │ │ + strd r7, r8, [sp, #40] @ 0x28 │ │ │ │ │ mov r1, r5 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - strd sl, fp, [sp, #52] @ 0x34 │ │ │ │ │ - strd r8, r9, [sp, #44] @ 0x2c │ │ │ │ │ - str r7, [sp, #40] @ 0x28 │ │ │ │ │ + strd r9, sl, [sp, #48] @ 0x30 │ │ │ │ │ + str.w fp, [sp, #56] @ 0x38 │ │ │ │ │ add sp, #4 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w lr, [sp], #4 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_mpi_local_size_many_1d │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -000000fc : │ │ │ │ │ +00000190 : │ │ │ │ │ fftw_mpi_local_size_1d_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, r5, [sp, #-32]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r0, r1 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r5, r2 │ │ │ │ │ - ldrd r7, r8, [sp, #32] │ │ │ │ │ mov r6, r3 │ │ │ │ │ + strd r8, r9, [sp, #16] │ │ │ │ │ + ldrd r7, r8, [sp, #32] │ │ │ │ │ + strd sl, lr, [sp, #24] │ │ │ │ │ ldrd r9, sl, [sp, #40] @ 0x28 │ │ │ │ │ - mov r0, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ - mov r3, r6 │ │ │ │ │ mov r1, r0 │ │ │ │ │ + mov r3, r6 │ │ │ │ │ mov r2, r5 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - strd r9, sl, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ strd r7, r8, [sp, #32] │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + strd r9, sl, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, lr, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_mpi_local_size_1d │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -0000012c : │ │ │ │ │ +000001dc : │ │ │ │ │ fftw_mpi_local_size_2d_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r7, [sp, #24] │ │ │ │ │ + mov r0, r2 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r5, r1 │ │ │ │ │ mov r6, r3 │ │ │ │ │ - mov r0, r2 │ │ │ │ │ + ldr r7, [sp, #24] │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ - mov r3, r6 │ │ │ │ │ + ldrd r8, lr, [sp, #16] │ │ │ │ │ mov r2, r0 │ │ │ │ │ + mov r3, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ mov r0, r4 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ str r7, [sp, #24] │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #24 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_mpi_local_size_2d │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -00000150 : │ │ │ │ │ +00000214 : │ │ │ │ │ fftw_mpi_local_size_2d_transposed_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, r5, [sp, #-32]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr.w r9, [sp, #40] @ 0x28 │ │ │ │ │ - ldrd r7, r8, [sp, #32] │ │ │ │ │ + mov r0, r2 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r5, r1 │ │ │ │ │ mov r6, r3 │ │ │ │ │ - mov r0, r2 │ │ │ │ │ + strd r8, r9, [sp, #16] │ │ │ │ │ + ldrd r7, r8, [sp, #32] │ │ │ │ │ + strd sl, lr, [sp, #24] │ │ │ │ │ + ldr.w r9, [sp, #40] @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ - mov r3, r6 │ │ │ │ │ + ldrd sl, lr, [sp, #24] │ │ │ │ │ mov r2, r0 │ │ │ │ │ + mov r3, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - strd r8, r9, [sp, #36] @ 0x24 │ │ │ │ │ - str r7, [sp, #32] │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r7, r8, [sp, #32] │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + str.w r9, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #32 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_mpi_local_size_2d_transposed │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -00000180 : │ │ │ │ │ +00000260 : │ │ │ │ │ fftw_mpi_local_size_3d_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r0, r3 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r5, r1 │ │ │ │ │ - ldrd r7, r8, [sp, #24] │ │ │ │ │ mov r6, r2 │ │ │ │ │ - mov r0, r3 │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ + ldrd r7, r8, [sp, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ - mov r2, r6 │ │ │ │ │ mov r3, r0 │ │ │ │ │ + mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ mov r0, r4 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ strd r7, r8, [sp, #24] │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, lr, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_mpi_local_size_3d │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -000001a8 : │ │ │ │ │ +0000029c : │ │ │ │ │ fftw_mpi_local_size_3d_transposed_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, r5, [sp, #-32]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r0, r3 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r5, r1 │ │ │ │ │ - ldrd r7, r8, [sp, #32] │ │ │ │ │ mov r6, r2 │ │ │ │ │ + strd r8, r9, [sp, #16] │ │ │ │ │ + ldrd r7, r8, [sp, #32] │ │ │ │ │ + strd sl, lr, [sp, #24] │ │ │ │ │ ldrd r9, sl, [sp, #40] @ 0x28 │ │ │ │ │ - mov r0, r3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ - mov r2, r6 │ │ │ │ │ mov r3, r0 │ │ │ │ │ + mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - strd r9, sl, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ strd r7, r8, [sp, #32] │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + strd r9, sl, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, lr, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_mpi_local_size_3d_transposed │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -000001d8 : │ │ │ │ │ +000002e8 : │ │ │ │ │ fftw_mpi_plan_many_transpose_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r1 │ │ │ │ │ - sub sp, #4 │ │ │ │ │ mov r6, r2 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r7, r3 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #4 │ │ │ │ │ ldrd r8, r9, [sp, #40] @ 0x28 │ │ │ │ │ - ldr.w sl, [sp, #48] @ 0x30 │ │ │ │ │ - ldrd r0, fp, [sp, #52] @ 0x34 │ │ │ │ │ + ldrd sl, r0, [sp, #48] @ 0x30 │ │ │ │ │ + ldr.w fp, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ mov r3, r7 │ │ │ │ │ - strd r0, fp, [sp, #52] @ 0x34 │ │ │ │ │ mov r2, r6 │ │ │ │ │ + strd r8, r9, [sp, #40] @ 0x28 │ │ │ │ │ mov r1, r5 │ │ │ │ │ + strd sl, r0, [sp, #48] @ 0x30 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - strd r9, sl, [sp, #44] @ 0x2c │ │ │ │ │ - str.w r8, [sp, #40] @ 0x28 │ │ │ │ │ + str.w fp, [sp, #56] @ 0x38 │ │ │ │ │ add sp, #4 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w lr, [sp], #4 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_mpi_plan_many_transpose │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -00000214 : │ │ │ │ │ +00000348 : │ │ │ │ │ fftw_mpi_plan_transpose_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ - ldrd r0, r8, [sp, #24] │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ + ldrd r0, r8, [sp, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ mov r3, r7 │ │ │ │ │ - strd r0, r8, [sp, #24] │ │ │ │ │ mov r2, r6 │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ mov r1, r5 │ │ │ │ │ + strd r0, r8, [sp, #24] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r8, lr, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_mpi_plan_transpose │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -0000023c : │ │ │ │ │ +00000384 : │ │ │ │ │ fftw_mpi_plan_many_dft_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r1 │ │ │ │ │ mov r6, r2 │ │ │ │ │ - sub sp, #12 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r7, r3 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #12 │ │ │ │ │ ldrd r8, r9, [sp, #48] @ 0x30 │ │ │ │ │ str r0, [sp, #4] │ │ │ │ │ ldr.w sl, [sp, #56] @ 0x38 │ │ │ │ │ - ldrd fp, r4, [sp, #64] @ 0x40 │ │ │ │ │ ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ + ldrd fp, r4, [sp, #64] @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ mov r3, r7 │ │ │ │ │ - strd sl, r0, [sp, #56] @ 0x38 │ │ │ │ │ mov r2, r6 │ │ │ │ │ - ldr r0, [sp, #4] │ │ │ │ │ + strd r8, r9, [sp, #48] @ 0x30 │ │ │ │ │ + strd sl, r0, [sp, #56] @ 0x38 │ │ │ │ │ mov r1, r5 │ │ │ │ │ + ldr r0, [sp, #4] │ │ │ │ │ strd fp, r4, [sp, #64] @ 0x40 │ │ │ │ │ - strd r8, r9, [sp, #48] @ 0x30 │ │ │ │ │ add sp, #12 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w lr, [sp], #4 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_mpi_plan_many_dft │ │ │ │ │ - nop │ │ │ │ │ │ │ │ │ │ -0000027c : │ │ │ │ │ +000003e4 : │ │ │ │ │ fftw_mpi_plan_dft_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, r5, [sp, #-32]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ - ldrd r8, r9, [sp, #36] @ 0x24 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ - ldr r0, [sp, #32] │ │ │ │ │ + strd r8, r9, [sp, #16] │ │ │ │ │ + ldrd r0, r8, [sp, #32] │ │ │ │ │ + strd sl, lr, [sp, #24] │ │ │ │ │ + ldr.w r9, [sp, #40] @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ + ldrd sl, lr, [sp, #24] │ │ │ │ │ mov r3, r7 │ │ │ │ │ - str r0, [sp, #32] │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ + strd r0, r8, [sp, #32] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - strd r8, r9, [sp, #36] @ 0x24 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + str.w r9, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #32 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_mpi_plan_dft │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -000002a8 : │ │ │ │ │ +00000430 : │ │ │ │ │ fftw_mpi_plan_dft_1d_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r0, r3 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r5, r1 │ │ │ │ │ - ldrd r7, r8, [sp, #24] │ │ │ │ │ mov r6, r2 │ │ │ │ │ - mov r0, r3 │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ + ldrd r7, r8, [sp, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ - mov r2, r6 │ │ │ │ │ mov r3, r0 │ │ │ │ │ + mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ mov r0, r4 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ strd r7, r8, [sp, #24] │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, lr, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_mpi_plan_dft_1d │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -000002d0 : │ │ │ │ │ +0000046c : │ │ │ │ │ fftw_mpi_plan_dft_2d_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, r5, [sp, #-32]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ - ldrd r8, r9, [sp, #36] @ 0x24 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ - ldr r0, [sp, #32] │ │ │ │ │ + strd r8, r9, [sp, #16] │ │ │ │ │ + ldrd r0, r8, [sp, #32] │ │ │ │ │ + strd sl, lr, [sp, #24] │ │ │ │ │ + ldr.w r9, [sp, #40] @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ + ldrd sl, lr, [sp, #24] │ │ │ │ │ mov r3, r7 │ │ │ │ │ - str r0, [sp, #32] │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ + strd r0, r8, [sp, #32] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - strd r8, r9, [sp, #36] @ 0x24 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + str.w r9, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #32 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_mpi_plan_dft_2d │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -000002fc : │ │ │ │ │ +000004b8 : │ │ │ │ │ fftw_mpi_plan_dft_3d_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, r5, [sp, #-32]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr.w r8, [sp, #32] │ │ │ │ │ - ldrd r9, sl, [sp, #40] @ 0x28 │ │ │ │ │ mov r5, r1 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ - ldr r0, [sp, #36] @ 0x24 │ │ │ │ │ + strd r8, r9, [sp, #16] │ │ │ │ │ + ldrd r8, r0, [sp, #32] │ │ │ │ │ + strd sl, lr, [sp, #24] │ │ │ │ │ + ldrd r9, sl, [sp, #40] @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ mov r3, r7 │ │ │ │ │ - strd r8, r0, [sp, #32] │ │ │ │ │ mov r2, r6 │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ mov r1, r5 │ │ │ │ │ + strd r8, r0, [sp, #32] │ │ │ │ │ mov r0, r4 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ strd r9, sl, [sp, #40] @ 0x28 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, lr, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_mpi_plan_dft_3d │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -00000330 : │ │ │ │ │ +00000504 : │ │ │ │ │ fftw_mpi_plan_many_r2r_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r1 │ │ │ │ │ mov r6, r2 │ │ │ │ │ - sub sp, #12 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r7, r3 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #12 │ │ │ │ │ ldrd r8, r9, [sp, #48] @ 0x30 │ │ │ │ │ str r0, [sp, #4] │ │ │ │ │ ldr.w sl, [sp, #56] @ 0x38 │ │ │ │ │ - ldrd fp, r4, [sp, #64] @ 0x40 │ │ │ │ │ ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ + ldrd fp, r4, [sp, #64] @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ mov r3, r7 │ │ │ │ │ - strd sl, r0, [sp, #56] @ 0x38 │ │ │ │ │ mov r2, r6 │ │ │ │ │ - ldr r0, [sp, #4] │ │ │ │ │ + strd r8, r9, [sp, #48] @ 0x30 │ │ │ │ │ + strd sl, r0, [sp, #56] @ 0x38 │ │ │ │ │ mov r1, r5 │ │ │ │ │ + ldr r0, [sp, #4] │ │ │ │ │ strd fp, r4, [sp, #64] @ 0x40 │ │ │ │ │ - strd r8, r9, [sp, #48] @ 0x30 │ │ │ │ │ add sp, #12 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w lr, [sp], #4 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_mpi_plan_many_r2r │ │ │ │ │ - nop │ │ │ │ │ │ │ │ │ │ -00000370 : │ │ │ │ │ +00000564 : │ │ │ │ │ fftw_mpi_plan_r2r_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, r5, [sp, #-32]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ - ldrd r8, r9, [sp, #36] @ 0x24 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ - ldr r0, [sp, #32] │ │ │ │ │ + strd r8, r9, [sp, #16] │ │ │ │ │ + ldrd r0, r8, [sp, #32] │ │ │ │ │ + strd sl, lr, [sp, #24] │ │ │ │ │ + ldr.w r9, [sp, #40] @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ + ldrd sl, lr, [sp, #24] │ │ │ │ │ mov r3, r7 │ │ │ │ │ - str r0, [sp, #32] │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ + strd r0, r8, [sp, #32] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - strd r8, r9, [sp, #36] @ 0x24 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + str.w r9, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #32 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_mpi_plan_r2r │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -0000039c : │ │ │ │ │ +000005b0 : │ │ │ │ │ fftw_mpi_plan_r2r_2d_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, r5, [sp, #-32]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr.w sl, [sp, #44] @ 0x2c │ │ │ │ │ - ldrd r8, r9, [sp, #36] @ 0x24 │ │ │ │ │ mov r5, r1 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ - ldr r0, [sp, #32] │ │ │ │ │ + strd r8, r9, [sp, #16] │ │ │ │ │ + ldrd r0, r8, [sp, #32] │ │ │ │ │ + strd sl, lr, [sp, #24] │ │ │ │ │ + ldrd r9, sl, [sp, #40] @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ mov r3, r7 │ │ │ │ │ - strd r0, r8, [sp, #32] │ │ │ │ │ mov r2, r6 │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ mov r1, r5 │ │ │ │ │ + strd r0, r8, [sp, #32] │ │ │ │ │ mov r0, r4 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ strd r9, sl, [sp, #40] @ 0x28 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, lr, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_mpi_plan_r2r_2d │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -000003d0 : │ │ │ │ │ +000005fc : │ │ │ │ │ fftw_mpi_plan_r2r_3d_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r1 │ │ │ │ │ mov r6, r2 │ │ │ │ │ - sub sp, #12 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r7, r3 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #12 │ │ │ │ │ ldr.w r8, [sp, #48] @ 0x30 │ │ │ │ │ - ldrd r9, sl, [sp, #56] @ 0x38 │ │ │ │ │ str r0, [sp, #4] │ │ │ │ │ - ldrd fp, r4, [sp, #64] @ 0x40 │ │ │ │ │ ldr r0, [sp, #52] @ 0x34 │ │ │ │ │ + ldrd r9, sl, [sp, #56] @ 0x38 │ │ │ │ │ + ldrd fp, r4, [sp, #64] @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ - mov r3, r7 │ │ │ │ │ strd r8, r0, [sp, #48] @ 0x30 │ │ │ │ │ + mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ ldr r0, [sp, #4] │ │ │ │ │ mov r1, r5 │ │ │ │ │ - strd fp, r4, [sp, #64] @ 0x40 │ │ │ │ │ strd r9, sl, [sp, #56] @ 0x38 │ │ │ │ │ + strd fp, r4, [sp, #64] @ 0x40 │ │ │ │ │ add sp, #12 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w lr, [sp], #4 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_mpi_plan_r2r_3d │ │ │ │ │ - nop │ │ │ │ │ │ │ │ │ │ -00000410 : │ │ │ │ │ +0000065c : │ │ │ │ │ fftw_mpi_plan_many_dft_r2c_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r1 │ │ │ │ │ - sub sp, #4 │ │ │ │ │ mov r6, r2 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r7, r3 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #4 │ │ │ │ │ ldrd r8, r9, [sp, #40] @ 0x28 │ │ │ │ │ - ldr.w sl, [sp, #48] @ 0x30 │ │ │ │ │ - ldrd r0, fp, [sp, #52] @ 0x34 │ │ │ │ │ + ldrd sl, r0, [sp, #48] @ 0x30 │ │ │ │ │ + ldr.w fp, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ mov r3, r7 │ │ │ │ │ - strd r0, fp, [sp, #52] @ 0x34 │ │ │ │ │ mov r2, r6 │ │ │ │ │ + strd r8, r9, [sp, #40] @ 0x28 │ │ │ │ │ mov r1, r5 │ │ │ │ │ + strd sl, r0, [sp, #48] @ 0x30 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - strd r9, sl, [sp, #44] @ 0x2c │ │ │ │ │ - str.w r8, [sp, #40] @ 0x28 │ │ │ │ │ + str.w fp, [sp, #56] @ 0x38 │ │ │ │ │ add sp, #4 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w lr, [sp], #4 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_mpi_plan_many_dft_r2c │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -0000044c : │ │ │ │ │ +000006bc : │ │ │ │ │ fftw_mpi_plan_dft_r2c_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ - ldrd r0, r8, [sp, #24] │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ + ldrd r0, r8, [sp, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ mov r3, r7 │ │ │ │ │ - strd r0, r8, [sp, #24] │ │ │ │ │ mov r2, r6 │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ mov r1, r5 │ │ │ │ │ + strd r0, r8, [sp, #24] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r8, lr, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_mpi_plan_dft_r2c │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -00000474 : │ │ │ │ │ +000006f8 : │ │ │ │ │ fftw_mpi_plan_dft_r2c_2d_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ - ldrd r0, r8, [sp, #24] │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ + ldrd r0, r8, [sp, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ mov r3, r7 │ │ │ │ │ - strd r0, r8, [sp, #24] │ │ │ │ │ mov r2, r6 │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ mov r1, r5 │ │ │ │ │ + strd r0, r8, [sp, #24] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r8, lr, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_mpi_plan_dft_r2c_2d │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -0000049c : │ │ │ │ │ +00000734 : │ │ │ │ │ fftw_mpi_plan_dft_r2c_3d_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, r5, [sp, #-32]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr.w r8, [sp, #32] │ │ │ │ │ - ldrd r0, r9, [sp, #36] @ 0x24 │ │ │ │ │ mov r5, r1 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + strd r8, r9, [sp, #16] │ │ │ │ │ + ldrd r8, r0, [sp, #32] │ │ │ │ │ + strd sl, lr, [sp, #24] │ │ │ │ │ + ldr.w r9, [sp, #40] @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ + ldrd sl, lr, [sp, #24] │ │ │ │ │ mov r3, r7 │ │ │ │ │ - strd r0, r9, [sp, #36] @ 0x24 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ + strd r8, r0, [sp, #32] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - str.w r8, [sp, #32] │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + str.w r9, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #32 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_mpi_plan_dft_r2c_3d │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -000004cc : │ │ │ │ │ +00000780 : │ │ │ │ │ fftw_mpi_plan_many_dft_c2r_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r1 │ │ │ │ │ - sub sp, #4 │ │ │ │ │ mov r6, r2 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r7, r3 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #4 │ │ │ │ │ ldrd r8, r9, [sp, #40] @ 0x28 │ │ │ │ │ - ldr.w sl, [sp, #48] @ 0x30 │ │ │ │ │ - ldrd r0, fp, [sp, #52] @ 0x34 │ │ │ │ │ + ldrd sl, r0, [sp, #48] @ 0x30 │ │ │ │ │ + ldr.w fp, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ mov r3, r7 │ │ │ │ │ - strd r0, fp, [sp, #52] @ 0x34 │ │ │ │ │ mov r2, r6 │ │ │ │ │ + strd r8, r9, [sp, #40] @ 0x28 │ │ │ │ │ mov r1, r5 │ │ │ │ │ + strd sl, r0, [sp, #48] @ 0x30 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - strd r9, sl, [sp, #44] @ 0x2c │ │ │ │ │ - str.w r8, [sp, #40] @ 0x28 │ │ │ │ │ + str.w fp, [sp, #56] @ 0x38 │ │ │ │ │ add sp, #4 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w lr, [sp], #4 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_mpi_plan_many_dft_c2r │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -00000508 : │ │ │ │ │ +000007e0 : │ │ │ │ │ fftw_mpi_plan_dft_c2r_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ - ldrd r0, r8, [sp, #24] │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ + ldrd r0, r8, [sp, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ mov r3, r7 │ │ │ │ │ - strd r0, r8, [sp, #24] │ │ │ │ │ mov r2, r6 │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ mov r1, r5 │ │ │ │ │ + strd r0, r8, [sp, #24] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r8, lr, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_mpi_plan_dft_c2r │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -00000530 : │ │ │ │ │ +0000081c : │ │ │ │ │ fftw_mpi_plan_dft_c2r_2d_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ - ldrd r0, r8, [sp, #24] │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ + ldrd r0, r8, [sp, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ mov r3, r7 │ │ │ │ │ - strd r0, r8, [sp, #24] │ │ │ │ │ mov r2, r6 │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ mov r1, r5 │ │ │ │ │ + strd r0, r8, [sp, #24] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r8, lr, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_mpi_plan_dft_c2r_2d │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -00000558 : │ │ │ │ │ +00000858 : │ │ │ │ │ fftw_mpi_plan_dft_c2r_3d_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, r5, [sp, #-32]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr.w r8, [sp, #32] │ │ │ │ │ - ldrd r0, r9, [sp, #36] @ 0x24 │ │ │ │ │ mov r5, r1 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + strd r8, r9, [sp, #16] │ │ │ │ │ + ldrd r8, r0, [sp, #32] │ │ │ │ │ + strd sl, lr, [sp, #24] │ │ │ │ │ + ldr.w r9, [sp, #40] @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ + ldrd sl, lr, [sp, #24] │ │ │ │ │ mov r3, r7 │ │ │ │ │ - strd r0, r9, [sp, #36] @ 0x24 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ + strd r8, r0, [sp, #32] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - str.w r8, [sp, #32] │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + str.w r9, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #32 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_mpi_plan_dft_c2r_3d │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -00000588 : │ │ │ │ │ +000008a4 : │ │ │ │ │ fftw_mpi_gather_wisdom_f03(): │ │ │ │ │ - push {r3, lr} │ │ │ │ │ + strd r3, lr, [sp, #-8]! │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ - ldmia.w sp!, {r3, lr} │ │ │ │ │ + ldrd r3, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_mpi_gather_wisdom │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -00000598 : │ │ │ │ │ +000008b8 : │ │ │ │ │ fftw_mpi_broadcast_wisdom_f03(): │ │ │ │ │ - push {r3, lr} │ │ │ │ │ + strd r3, lr, [sp, #-8]! │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ - ldmia.w sp!, {r3, lr} │ │ │ │ │ + ldrd r3, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_mpi_broadcast_wisdom │ │ │ │ │ nop │ │ │ ├── transpose-alltoall.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 3132 (bytes into file) │ │ │ │ │ + Start of section headers: 3276 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 15 │ │ │ │ │ Section header string table index: 14 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,24 +1,24 @@ │ │ │ │ │ -There are 15 section headers, starting at offset 0xc3c: │ │ │ │ │ +There are 15 section headers, starting at offset 0xccc: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 000460 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0009f4 000198 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000494 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000494 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 000494 00003b 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 0004cf 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 000b8c 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 0004df 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 000bac 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 0004eb 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 0004eb 000033 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 000520 0002e0 10 13 22 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 000800 0001f2 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 000bb4 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0004f0 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000a84 000198 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000524 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000524 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 000524 00003b 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 00055f 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 000c1c 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 00056f 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 000c3c 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 00057b 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 00057b 000033 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 0005b0 0002e0 10 13 22 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 000890 0001f2 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 000c44 000087 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -2,25 +2,25 @@ │ │ │ │ │ Symbol table '.symtab' contains 46 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ 1: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 2: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ 3: 00000004 0 NOTYPE LOCAL DEFAULT 5 .LC1 │ │ │ │ │ 4: 00000008 0 NOTYPE LOCAL DEFAULT 5 .LC2 │ │ │ │ │ - 5: 00000001 60 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 5: 00000001 64 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ 6: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 7: 00000030 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 8: 0000003c 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 9: 0000003d 700 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 10: 000002f0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 11: 000002f9 216 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ - 12: 000002f8 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 13: 000003d1 46 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 14: 00000401 40 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 15: 0000045c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 7: 00000034 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 8: 00000040 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 9: 00000041 772 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 10: 0000033c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 11: 00000345 248 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ + 12: 00000344 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 13: 0000043d 50 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 14: 00000471 52 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 15: 000004ec 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 16: 00000000 0 SECTION LOCAL DEFAULT 6 .data.rel.ro │ │ │ │ │ 17: 00000000 0 NOTYPE LOCAL DEFAULT 6 $d │ │ │ │ │ 18: 00000000 16 OBJECT LOCAL DEFAULT 6 padt.0 │ │ │ │ │ 19: 00000000 0 SECTION LOCAL DEFAULT 8 .data.rel.ro.local │ │ │ │ │ 20: 00000000 0 NOTYPE LOCAL DEFAULT 8 $d │ │ │ │ │ 21: 00000000 12 OBJECT LOCAL DEFAULT 8 sadt.1 │ │ │ │ │ 22: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_rank │ │ │ │ │ @@ -39,11 +39,11 @@ │ │ │ │ │ 35: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mkplan_f_d │ │ │ │ │ 36: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mktensor_1d │ │ │ │ │ 37: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Alltoallv │ │ │ │ │ 38: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Alltoall │ │ │ │ │ 39: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ifree0 │ │ │ │ │ 40: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_free │ │ │ │ │ 41: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_plan_awake │ │ │ │ │ - 42: 00000429 56 FUNC GLOBAL DEFAULT 1 fftw_mpi_transpose_alltoall_register │ │ │ │ │ + 42: 000004a5 76 FUNC GLOBAL DEFAULT 1 fftw_mpi_transpose_alltoall_register │ │ │ │ │ 43: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mksolver │ │ │ │ │ 44: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_solver_register │ │ │ │ │ 45: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_transpose_solve │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,65 +1,65 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x9f4 contains 51 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0xa84 contains 51 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000030 00000203 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -00000034 00000403 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -00000038 00000303 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ -0000008a 0000160a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000092 0000170a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -0000009c 0000180a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -000000d8 0000190a R_ARM_THM_CALL 00000000 fftw_mpi_mkplans_posttranspose │ │ │ │ │ -000000e4 00001a0a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -000000fa 00001b0a R_ARM_THM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ -0000011e 00001c0a R_ARM_THM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ -00000126 00001d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00000142 0000180a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -0000014e 0000180a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00000186 0000180a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00000192 0000180a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -0000021e 00001e0a R_ARM_THM_CALL 00000000 fftw_ops_zero │ │ │ │ │ -0000022c 00001f0a R_ARM_THM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ -00000238 00001f0a R_ARM_THM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ -00000244 00001f0a R_ARM_THM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ -00000250 00001f0a R_ARM_THM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ -0000025e 0000200a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000264 0000200a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -0000026a 0000200a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000270 0000200a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -0000028e 0000210a R_ARM_THM_CALL 00000000 fftw_mktensor_3d │ │ │ │ │ -00000298 0000220a R_ARM_THM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ -000002a8 0000230a R_ARM_THM_CALL 00000000 fftw_mkplan_f_d │ │ │ │ │ -000002b6 00001a0a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -000002d0 0000240a R_ARM_THM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ -000002da 0000220a R_ARM_THM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ -000002f0 00000b03 R_ARM_REL32 000002f9 apply │ │ │ │ │ -000002f4 00001003 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -0000032e 0000250a R_ARM_THM_CALL 00000000 MPI_Alltoallv │ │ │ │ │ -0000037a 0000260a R_ARM_THM_CALL 00000000 MPI_Alltoall │ │ │ │ │ -000003aa 0000260a R_ARM_THM_CALL 00000000 MPI_Alltoall │ │ │ │ │ -000003ca 0000250a R_ARM_THM_CALL 00000000 MPI_Alltoallv │ │ │ │ │ -000003d6 0000270a R_ARM_THM_CALL 00000000 fftw_ifree0 │ │ │ │ │ -000003de 0000280a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -000003e4 0000200a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000003ea 0000200a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000003f0 0000200a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000408 0000290a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -00000410 0000290a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -00000418 0000290a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -00000434 00002b0a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ -00000440 00002c0a R_ARM_THM_CALL 00000000 fftw_solver_register │ │ │ │ │ -00000448 00002b0a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ -0000045c 00001303 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -000003fa 0000201e R_ARM_THM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000424 0000291e R_ARM_THM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ -00000458 00002c1e R_ARM_THM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ +00000034 00000203 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +00000038 00000403 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +0000003c 00000303 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ +000000b4 0000160a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000000bc 0000170a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000000c6 0000180a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00000102 0000190a R_ARM_THM_CALL 00000000 fftw_mpi_mkplans_posttranspose │ │ │ │ │ +00000110 00001a0a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +00000128 00001b0a R_ARM_THM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ +0000014e 00001c0a R_ARM_THM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ +00000158 00001d0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +0000017c 0000180a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00000188 0000180a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +000001c4 0000180a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +000001d0 0000180a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +0000025c 00001e0a R_ARM_THM_CALL 00000000 fftw_ops_zero │ │ │ │ │ +0000026c 00001f0a R_ARM_THM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ +0000027a 00001f0a R_ARM_THM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ +00000288 00001f0a R_ARM_THM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ +00000296 00001f0a R_ARM_THM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ +000002a0 0000200a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000002a6 0000200a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000002ac 0000200a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000002b2 0000200a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000002d2 0000210a R_ARM_THM_CALL 00000000 fftw_mktensor_3d │ │ │ │ │ +000002dc 0000220a R_ARM_THM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ +000002ee 0000230a R_ARM_THM_CALL 00000000 fftw_mkplan_f_d │ │ │ │ │ +00000300 00001a0a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +0000031c 0000240a R_ARM_THM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ +00000326 0000220a R_ARM_THM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ +0000033c 00000b03 R_ARM_REL32 00000345 apply │ │ │ │ │ +00000340 00001003 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +00000384 0000250a R_ARM_THM_CALL 00000000 MPI_Alltoallv │ │ │ │ │ +000003da 0000260a R_ARM_THM_CALL 00000000 MPI_Alltoall │ │ │ │ │ +00000416 0000260a R_ARM_THM_CALL 00000000 MPI_Alltoall │ │ │ │ │ +00000436 0000250a R_ARM_THM_CALL 00000000 MPI_Alltoallv │ │ │ │ │ +00000444 0000270a R_ARM_THM_CALL 00000000 fftw_ifree0 │ │ │ │ │ +0000044c 0000280a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +00000452 0000200a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000458 0000200a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +0000045e 0000200a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +0000047e 0000290a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +00000486 0000290a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +0000048e 0000290a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +000004b8 00002b0a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ +000004c6 00002c0a R_ARM_THM_CALL 00000000 fftw_solver_register │ │ │ │ │ +000004d0 00002b0a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ +000004ec 00001303 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +0000046a 0000201e R_ARM_THM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000004a0 0000291e R_ARM_THM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ +000004e8 00002c1e R_ARM_THM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0xb8c contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0xc1c contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000000 00002d02 R_ARM_ABS32 00000000 fftw_mpi_transpose_solve │ │ │ │ │ -00000004 00000e02 R_ARM_ABS32 00000401 awake │ │ │ │ │ +00000004 00000e02 R_ARM_ABS32 00000471 awake │ │ │ │ │ 00000008 00000502 R_ARM_ABS32 00000001 print │ │ │ │ │ -0000000c 00000d02 R_ARM_ABS32 000003d1 destroy │ │ │ │ │ +0000000c 00000d02 R_ARM_ABS32 0000043d destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0xbac contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0xc3c contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000902 R_ARM_ABS32 0000003d mkplan │ │ │ │ │ +00000004 00000902 R_ARM_ABS32 00000041 mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -2,221 +2,230 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ print(): │ │ │ │ │ mov r3, r0 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r0, r1 │ │ │ │ │ - ldr r4, [r1, #0] │ │ │ │ │ - sub sp, #16 │ │ │ │ │ ldr r2, [r3, #108] @ 0x6c │ │ │ │ │ - cbz r2, 2a │ │ │ │ │ - ldr r2, [pc, #32] @ (30 ) │ │ │ │ │ + sub sp, #16 │ │ │ │ │ + ldr r4, [r1, #0] │ │ │ │ │ + cbz r2, 2c │ │ │ │ │ + ldr r2, [pc, #32] @ (34 ) │ │ │ │ │ add r2, pc │ │ │ │ │ ldr r1, [r3, #76] @ 0x4c │ │ │ │ │ str r1, [sp, #8] │ │ │ │ │ ldr r1, [r3, #72] @ 0x48 │ │ │ │ │ str r1, [sp, #4] │ │ │ │ │ ldr r1, [r3, #68] @ 0x44 │ │ │ │ │ str r1, [sp, #0] │ │ │ │ │ - ldr r1, [pc, #20] @ (34 ) │ │ │ │ │ + ldr r1, [pc, #20] @ (38 ) │ │ │ │ │ ldr r3, [r3, #64] @ 0x40 │ │ │ │ │ add r1, pc │ │ │ │ │ blx r4 │ │ │ │ │ add sp, #16 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ - ldr r2, [pc, #12] @ (38 ) │ │ │ │ │ + ldr r2, [pc, #12] @ (3c ) │ │ │ │ │ add r2, pc │ │ │ │ │ - b.n 12 │ │ │ │ │ - .word 0x0000001c │ │ │ │ │ + b.n 14 │ │ │ │ │ + nop │ │ │ │ │ + .word 0x0000001e │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ - .word 0x0000000e │ │ │ │ │ + .word 0x00000010 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ - .word 0x00000008 │ │ │ │ │ + .word 0x0000000a │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ │ │ │ │ │ -0000003c : │ │ │ │ │ +00000040 : │ │ │ │ │ mkplan(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - movs r3, #0 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r2 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ sub sp, #100 @ 0x64 │ │ │ │ │ + ldr r2, [r1, #16] │ │ │ │ │ strd r3, r3, [sp, #68] @ 0x44 │ │ │ │ │ str r3, [sp, #76] @ 0x4c │ │ │ │ │ - ldrd r2, r3, [r1, #16] │ │ │ │ │ + ldr r3, [r1, #20] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - beq.n 6c │ │ │ │ │ + beq.n 82 │ │ │ │ │ ldr.w r2, [r5, #164] @ 0xa4 │ │ │ │ │ mov r4, r1 │ │ │ │ │ - ldr r3, [r1, #24] │ │ │ │ │ mov r7, r0 │ │ │ │ │ - and.w r1, r3, #4 │ │ │ │ │ + ldr r3, [r1, #24] │ │ │ │ │ lsls r2, r2, #19 │ │ │ │ │ - bmi.n 74 │ │ │ │ │ - cbnz r1, 7e │ │ │ │ │ + and.w r1, r3, #4 │ │ │ │ │ + bmi.n 9e │ │ │ │ │ + cbnz r1, a8 │ │ │ │ │ ldr r2, [r7, #8] │ │ │ │ │ - cbz r2, 7e │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + cbz r2, a8 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add sp, #100 @ 0x64 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - beq.n 6c │ │ │ │ │ + beq.n 82 │ │ │ │ │ ldr r2, [r7, #8] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - bne.n 6c │ │ │ │ │ + bne.n 82 │ │ │ │ │ bics.w r8, r3, #12 │ │ │ │ │ - bne.n 6c │ │ │ │ │ + bne.n 82 │ │ │ │ │ add r1, sp, #88 @ 0x58 │ │ │ │ │ - ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ ldr r6, [r4, #4] │ │ │ │ │ + ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ - add r1, sp, #92 @ 0x5c │ │ │ │ │ ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ + add r1, sp, #92 @ 0x5c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ - ldr r2, [sp, #88] @ 0x58 │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ + ldr r2, [sp, #88] @ 0x58 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ mov r2, r0 │ │ │ │ │ ands.w r9, r3, #4 │ │ │ │ │ - beq.w 276 │ │ │ │ │ + beq.w 2b8 │ │ │ │ │ ldr r1, [r7, #8] │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - bne.w 2c2 │ │ │ │ │ + bne.w 30c │ │ │ │ │ ldr r7, [r4, #20] │ │ │ │ │ str r1, [sp, #40] @ 0x28 │ │ │ │ │ mov r3, r7 │ │ │ │ │ add r2, sp, #84 @ 0x54 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ + mov r0, r4 │ │ │ │ │ str r2, [sp, #20] │ │ │ │ │ add r2, sp, #80 @ 0x50 │ │ │ │ │ str r2, [sp, #16] │ │ │ │ │ add r2, sp, #76 @ 0x4c │ │ │ │ │ str r2, [sp, #12] │ │ │ │ │ add r2, sp, #72 @ 0x48 │ │ │ │ │ str r2, [sp, #8] │ │ │ │ │ add r2, sp, #68 @ 0x44 │ │ │ │ │ str r2, [sp, #4] │ │ │ │ │ ldr r2, [sp, #88] @ 0x58 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ str r2, [sp, #0] │ │ │ │ │ - mov r0, r4 │ │ │ │ │ mov r2, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkplans_posttranspose │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #36] @ 0x24 │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_any_true │ │ │ │ │ mov r5, r0 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.w 25c │ │ │ │ │ - ldr r2, [pc, #508] @ (2f0 ) │ │ │ │ │ - movs r0, #112 @ 0x70 │ │ │ │ │ - ldr r1, [pc, #508] @ (2f4 ) │ │ │ │ │ + bne.w 29e │ │ │ │ │ + ldr r2, [pc, #540] @ (33c ) │ │ │ │ │ + mov.w r0, #112 @ 0x70 │ │ │ │ │ + ldr r1, [pc, #540] @ (340 ) │ │ │ │ │ add r2, pc │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_rdft │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ - str r3, [r0, #64] @ 0x40 │ │ │ │ │ + mov r2, r0 │ │ │ │ │ add.w r1, r0, #80 @ 0x50 │ │ │ │ │ + ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ + str r2, [sp, #52] @ 0x34 │ │ │ │ │ + str r3, [r2, #64] @ 0x40 │ │ │ │ │ ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ - str r3, [r0, #68] @ 0x44 │ │ │ │ │ + str r3, [r2, #68] @ 0x44 │ │ │ │ │ ldr r3, [sp, #72] @ 0x48 │ │ │ │ │ - str r3, [r0, #72] @ 0x48 │ │ │ │ │ + str r3, [r2, #72] @ 0x48 │ │ │ │ │ ldr r3, [sp, #80] @ 0x50 │ │ │ │ │ - str r3, [r0, #100] @ 0x64 │ │ │ │ │ + str r3, [r2, #100] @ 0x64 │ │ │ │ │ ldr r3, [sp, #84] @ 0x54 │ │ │ │ │ - str r3, [r0, #104] @ 0x68 │ │ │ │ │ + str r3, [r2, #104] @ 0x68 │ │ │ │ │ ldr r3, [sp, #76] @ 0x4c │ │ │ │ │ - str r3, [r0, #76] @ 0x4c │ │ │ │ │ - str r0, [sp, #52] @ 0x34 │ │ │ │ │ - ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ + str r3, [r2, #76] @ 0x4c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_dup │ │ │ │ │ ldr r0, [sp, #92] @ 0x5c │ │ │ │ │ - lsls r0, r0, #4 │ │ │ │ │ + mov.w r0, r0, lsl #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_malloc_plain │ │ │ │ │ ldr r3, [sp, #92] @ 0x5c │ │ │ │ │ - str r0, [sp, #44] @ 0x2c │ │ │ │ │ - lsls r3, r3, #2 │ │ │ │ │ - adds r7, r0, r3 │ │ │ │ │ + mov.w r3, r3, lsl #2 │ │ │ │ │ + add.w r7, r0, r3 │ │ │ │ │ + add.w r2, r7, r3 │ │ │ │ │ + add.w r1, r2, r3 │ │ │ │ │ + strd r0, r2, [sp, #44] @ 0x2c │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ - adds r2, r7, r3 │ │ │ │ │ - str r2, [sp, #48] @ 0x30 │ │ │ │ │ - adds r1, r2, r3 │ │ │ │ │ - ldr r2, [sp, #88] @ 0x58 │ │ │ │ │ - str r1, [sp, #56] @ 0x38 │ │ │ │ │ + strd r1, r7, [sp, #56] @ 0x38 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - str r7, [sp, #60] @ 0x3c │ │ │ │ │ + ldr r2, [sp, #88] @ 0x58 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ - ldr r2, [sp, #88] @ 0x58 │ │ │ │ │ - mov r8, r0 │ │ │ │ │ ldr r1, [r4, #32] │ │ │ │ │ + mov r8, r0 │ │ │ │ │ ldr r0, [r4, #12] │ │ │ │ │ + ldr r2, [sp, #88] @ 0x58 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ ldr r3, [sp, #92] @ 0x5c │ │ │ │ │ mov r9, r0 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.w 2e8 │ │ │ │ │ - ldr r1, [sp, #56] @ 0x38 │ │ │ │ │ - subs r7, #4 │ │ │ │ │ - ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ + ble.w 336 │ │ │ │ │ + ldrd r3, r2, [sp, #44] @ 0x2c │ │ │ │ │ mov.w ip, #1 │ │ │ │ │ - ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ + sub.w r7, r7, #4 │ │ │ │ │ + ldr r1, [sp, #56] @ 0x38 │ │ │ │ │ + str.w ip, [sp, #36] @ 0x24 │ │ │ │ │ + sub.w r3, r3, #4 │ │ │ │ │ + sub.w fp, r2, #4 │ │ │ │ │ sub.w sl, r1, #4 │ │ │ │ │ - subs r3, #4 │ │ │ │ │ str r3, [sp, #28] │ │ │ │ │ - sub.w fp, r2, #4 │ │ │ │ │ mov r3, sl │ │ │ │ │ mov sl, r5 │ │ │ │ │ mov r5, r4 │ │ │ │ │ - str.w ip, [sp, #36] @ 0x24 │ │ │ │ │ - ldr r1, [r5, #28] │ │ │ │ │ - mov r2, sl │ │ │ │ │ ldr r0, [r5, #8] │ │ │ │ │ + mov r2, sl │ │ │ │ │ str r3, [sp, #32] │ │ │ │ │ + ldr r1, [r5, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ - mov r2, sl │ │ │ │ │ ldr r1, [r5, #32] │ │ │ │ │ + mov r2, sl │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r5, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ ldr r1, [r5, #28] │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ cmp r1, r4 │ │ │ │ │ itt ne │ │ │ │ │ movne r2, #0 │ │ │ │ │ strne r2, [sp, #36] @ 0x24 │ │ │ │ │ - bne.n 1b4 │ │ │ │ │ - ldr r2, [sp, #36] @ 0x24 │ │ │ │ │ + bne.n 1f2 │ │ │ │ │ ldr r1, [r5, #32] │ │ │ │ │ + ldr r2, [sp, #36] @ 0x24 │ │ │ │ │ cmp r1, r0 │ │ │ │ │ ite ne │ │ │ │ │ movne r2, #0 │ │ │ │ │ andeq.w r2, r2, #1 │ │ │ │ │ str r2, [sp, #36] @ 0x24 │ │ │ │ │ mul.w r0, r0, r8 │ │ │ │ │ ldr r2, [sp, #28] │ │ │ │ │ mul.w r4, r4, r9 │ │ │ │ │ mul.w r0, r6, r0 │ │ │ │ │ - str.w r0, [r2, #4]! │ │ │ │ │ mul.w r4, r6, r4 │ │ │ │ │ + str.w r0, [r2, #4]! │ │ │ │ │ ldr r1, [r5, #32] │ │ │ │ │ str r2, [sp, #28] │ │ │ │ │ mul.w r1, r1, r8 │ │ │ │ │ mul.w r1, sl, r1 │ │ │ │ │ mul.w r1, r6, r1 │ │ │ │ │ str.w r1, [r7, #4]! │ │ │ │ │ str.w r4, [fp, #4]! │ │ │ │ │ @@ -224,223 +233,228 @@ │ │ │ │ │ mul.w r1, r1, r9 │ │ │ │ │ mul.w r1, sl, r1 │ │ │ │ │ add.w sl, sl, #1 │ │ │ │ │ mul.w r1, r6, r1 │ │ │ │ │ str.w r1, [r3, #4]! │ │ │ │ │ ldr r1, [sp, #92] @ 0x5c │ │ │ │ │ cmp r1, sl │ │ │ │ │ - bgt.n 17e │ │ │ │ │ + bgt.n 1bc │ │ │ │ │ ldr.w ip, [sp, #36] @ 0x24 │ │ │ │ │ - ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ ldr r2, [sp, #44] @ 0x2c │ │ │ │ │ - add.w r4, r3, #8 │ │ │ │ │ + ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ str r2, [r3, #84] @ 0x54 │ │ │ │ │ - mov r0, r4 │ │ │ │ │ + add.w r4, r3, #8 │ │ │ │ │ ldr r2, [sp, #60] @ 0x3c │ │ │ │ │ + mov r0, r4 │ │ │ │ │ str r2, [r3, #88] @ 0x58 │ │ │ │ │ ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ + str.w ip, [r3, #108] @ 0x6c │ │ │ │ │ str r2, [r3, #92] @ 0x5c │ │ │ │ │ ldr r2, [sp, #56] @ 0x38 │ │ │ │ │ str r2, [r3, #96] @ 0x60 │ │ │ │ │ - str.w ip, [r3, #108] @ 0x6c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ops_zero │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ - cbz r3, 230 │ │ │ │ │ + cbz r3, 270 │ │ │ │ │ mov r0, r3 │ │ │ │ │ mov r1, r4 │ │ │ │ │ - adds r0, #8 │ │ │ │ │ + add.w r0, r0, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ops_add2 │ │ │ │ │ ldr r0, [sp, #68] @ 0x44 │ │ │ │ │ - cbz r0, 23c │ │ │ │ │ + cbz r0, 27e │ │ │ │ │ mov r1, r4 │ │ │ │ │ - adds r0, #8 │ │ │ │ │ + add.w r0, r0, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ops_add2 │ │ │ │ │ ldr r0, [sp, #72] @ 0x48 │ │ │ │ │ - cbz r0, 248 │ │ │ │ │ + cbz r0, 28c │ │ │ │ │ mov r1, r4 │ │ │ │ │ - adds r0, #8 │ │ │ │ │ + add.w r0, r0, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ops_add2 │ │ │ │ │ ldr r0, [sp, #76] @ 0x4c │ │ │ │ │ - cbz r0, 254 │ │ │ │ │ + cbz r0, 29a │ │ │ │ │ mov r1, r4 │ │ │ │ │ - adds r0, #8 │ │ │ │ │ + add.w r0, r0, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ops_add2 │ │ │ │ │ ldr r0, [sp, #52] @ 0x34 │ │ │ │ │ - add sp, #100 @ 0x64 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b.n 86 │ │ │ │ │ ldr r0, [sp, #76] @ 0x4c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [sp, #72] @ 0x48 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [sp, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [sp, #40] @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ - b.n 6c │ │ │ │ │ + b.n 82 │ │ │ │ │ mul.w r2, r6, r2 │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ strd r6, r2, [sp] │ │ │ │ │ mov r2, r6 │ │ │ │ │ - strd r3, r3, [sp, #12] │ │ │ │ │ - str r6, [sp, #8] │ │ │ │ │ + strd r6, r3, [sp, #8] │ │ │ │ │ + str r3, [sp, #16] │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ mul.w r1, r6, r3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor_3d │ │ │ │ │ ldrd r7, r2, [r4, #16] │ │ │ │ │ mov r1, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkproblem_rdft_0_d │ │ │ │ │ - movs r3, #8 │ │ │ │ │ + mov.w r3, #8 │ │ │ │ │ mov r1, r0 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ mov r3, r9 │ │ │ │ │ mov r2, r3 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_f_d │ │ │ │ │ - str r0, [sp, #40] @ 0x28 │ │ │ │ │ + mov r3, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #36] @ 0x24 │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ + str r3, [sp, #40] @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.n 25c │ │ │ │ │ + bne.n 29e │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ - b.n ba │ │ │ │ │ + b.n e4 │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ - movs r2, #1 │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ mov r1, r2 │ │ │ │ │ mul.w r0, r3, r0 │ │ │ │ │ mul.w r0, r6, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor_1d │ │ │ │ │ ldrd r7, r2, [r4, #16] │ │ │ │ │ mov r1, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkproblem_rdft_0_d │ │ │ │ │ - movs r3, #8 │ │ │ │ │ + mov.w r3, #8 │ │ │ │ │ mov r1, r0 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ mov r3, r8 │ │ │ │ │ - b.n 2a4 │ │ │ │ │ + b.n 2ea │ │ │ │ │ mov.w ip, #1 │ │ │ │ │ - b.n 202 │ │ │ │ │ - nop │ │ │ │ │ - .word 0x000001f6 │ │ │ │ │ + b.n 240 │ │ │ │ │ + .word 0x00000214 │ │ │ │ │ R_ARM_REL32 apply │ │ │ │ │ - .word 0x000001f8 │ │ │ │ │ + .word 0x00000216 │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -000002f8 : │ │ │ │ │ +00000344 : │ │ │ │ │ apply(): │ │ │ │ │ - push {r4, r5, r6, r7, lr} │ │ │ │ │ + str.w r4, [sp, #-20]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ - sub sp, #28 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r6, r1 │ │ │ │ │ mov r5, r2 │ │ │ │ │ + strd r7, lr, [sp, #12] │ │ │ │ │ + sub sp, #28 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n 388 │ │ │ │ │ + beq.n 3f4 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ + ldrd r7, r1, [r4, #80] @ 0x50 │ │ │ │ │ ldr r3, [r4, #108] @ 0x6c │ │ │ │ │ - ldr r1, [r4, #84] @ 0x54 │ │ │ │ │ ldr r0, [r4, #92] @ 0x5c │ │ │ │ │ - ldr r7, [r4, #80] @ 0x50 │ │ │ │ │ - cbnz r3, 364 │ │ │ │ │ + cbnz r3, 3c4 │ │ │ │ │ movw r3, #2059 @ 0x80b │ │ │ │ │ movt r3, #19456 @ 0x4c00 │ │ │ │ │ strd r3, r7, [sp, #12] │ │ │ │ │ ldr r2, [r4, #96] @ 0x60 │ │ │ │ │ - strd r0, r2, [sp, #4] │ │ │ │ │ + strd r6, r0, [sp] │ │ │ │ │ mov r0, r5 │ │ │ │ │ - str r6, [sp, #0] │ │ │ │ │ + str r2, [sp, #8] │ │ │ │ │ ldr r2, [r4, #88] @ 0x58 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Alltoallv │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ - cbz r0, 384 │ │ │ │ │ + cbz r0, 3e4 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ mov r2, r5 │ │ │ │ │ mov r1, r6 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ - cbz r0, 384 │ │ │ │ │ + cbz r0, 3e4 │ │ │ │ │ ldrd r1, r2, [r4, #100] @ 0x64 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ add.w r2, r5, r2, lsl #3 │ │ │ │ │ add.w r1, r6, r1, lsl #3 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #76] @ 0x4c │ │ │ │ │ - cbz r0, 384 │ │ │ │ │ + cbz r0, 3e4 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ mov r2, r5 │ │ │ │ │ mov r1, r5 │ │ │ │ │ add sp, #28 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + ldr.w lr, [sp], #4 │ │ │ │ │ bx r3 │ │ │ │ │ - ldr r1, [r1, #0] │ │ │ │ │ movw r2, #2059 @ 0x80b │ │ │ │ │ movt r2, #19456 @ 0x4c00 │ │ │ │ │ + ldr r1, [r1, #0] │ │ │ │ │ strd r2, r7, [sp, #4] │ │ │ │ │ ldr r3, [r0, #0] │ │ │ │ │ mov r0, r5 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ mov r3, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Alltoall │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.n 336 │ │ │ │ │ + bne.n 38c │ │ │ │ │ add sp, #28 │ │ │ │ │ - pop {r4, r5, r6, r7, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + ldrd r7, r1, [r4, #80] @ 0x50 │ │ │ │ │ ldr r3, [r4, #108] @ 0x6c │ │ │ │ │ - ldr r1, [r4, #84] @ 0x54 │ │ │ │ │ ldr r0, [r4, #92] @ 0x5c │ │ │ │ │ - ldr r7, [r4, #80] @ 0x50 │ │ │ │ │ - cbz r3, 3b0 │ │ │ │ │ - ldr r1, [r1, #0] │ │ │ │ │ + cbz r3, 41c │ │ │ │ │ movw r2, #2059 @ 0x80b │ │ │ │ │ movt r2, #19456 @ 0x4c00 │ │ │ │ │ + ldr r1, [r1, #0] │ │ │ │ │ strd r2, r7, [sp, #4] │ │ │ │ │ ldr r3, [r0, #0] │ │ │ │ │ mov r0, r6 │ │ │ │ │ + mov r6, r5 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ mov r3, r5 │ │ │ │ │ - mov r6, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Alltoall │ │ │ │ │ - b.n 332 │ │ │ │ │ + b.n 388 │ │ │ │ │ movw r3, #2059 @ 0x80b │ │ │ │ │ movt r3, #19456 @ 0x4c00 │ │ │ │ │ strd r3, r7, [sp, #12] │ │ │ │ │ ldr r2, [r4, #96] @ 0x60 │ │ │ │ │ - strd r0, r2, [sp, #4] │ │ │ │ │ + strd r5, r0, [sp] │ │ │ │ │ mov r0, r6 │ │ │ │ │ - str r5, [sp, #0] │ │ │ │ │ mov r6, r5 │ │ │ │ │ + str r2, [sp, #8] │ │ │ │ │ ldr r2, [r4, #88] @ 0x58 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Alltoallv │ │ │ │ │ - b.n 332 │ │ │ │ │ + b.n 388 │ │ │ │ │ │ │ │ │ │ -000003d0 : │ │ │ │ │ +0000043c : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #84] @ 0x54 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ifree0 │ │ │ │ │ add.w r0, r4, #80 @ 0x50 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_free │ │ │ │ │ @@ -450,63 +464,70 @@ │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - ldmia.w sp!, {r4, lr} │ │ │ │ │ + ldrd r4, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_plan_destroy_internal │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -00000400 : │ │ │ │ │ +00000470 : │ │ │ │ │ awake(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ + mov r5, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_awake │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_awake │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_awake │ │ │ │ │ ldr r0, [r4, #76] @ 0x4c │ │ │ │ │ mov r1, r5 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, lr} │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + ldrd r5, lr, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_plan_awake │ │ │ │ │ │ │ │ │ │ -00000428 : │ │ │ │ │ +000004a4 : │ │ │ │ │ fftw_mpi_transpose_alltoall_register(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r5, [pc, #44] @ (45c ) │ │ │ │ │ - movs r0, #12 │ │ │ │ │ + mov.w r0, #12 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ + ldr r5, [pc, #56] @ (4ec ) │ │ │ │ │ add r5, pc │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mksolver │ │ │ │ │ - movs r3, #0 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ + str r3, [r1, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_solver_register │ │ │ │ │ mov r1, r5 │ │ │ │ │ - movs r0, #12 │ │ │ │ │ + mov.w r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mksolver │ │ │ │ │ - movs r3, #1 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + ldrd r5, lr, [sp, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, lr} │ │ │ │ │ + str r3, [r1, #8] │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + add sp, #16 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_solver_register │ │ │ │ │ - .word 0x00000028 │ │ │ │ │ + .word 0x00000034 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ ├── transpose-pairwise.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 5220 (bytes into file) │ │ │ │ │ + Start of section headers: 5544 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 15 │ │ │ │ │ Section header string table index: 14 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,24 +1,24 @@ │ │ │ │ │ -There are 15 section headers, starting at offset 0x1464: │ │ │ │ │ +There are 15 section headers, starting at offset 0x15a8: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 000a7c 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0010fc 0002b8 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000ab0 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000ab0 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 000ab0 00003b 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 000aeb 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 0013b4 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 000afb 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 0013d4 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 000b07 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000b07 000033 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 000b3c 000360 10 13 24 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 000e9c 00025f 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 0013dc 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000bc0 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 001240 0002b8 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000bf4 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000bf4 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 000bf4 00003b 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 000c2f 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 0014f8 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 000c3f 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 001518 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 000c4b 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000c4b 000033 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 000c80 000360 10 13 24 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 000fe0 00025f 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 001520 000087 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -6,23 +6,23 @@ │ │ │ │ │ 2: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ 3: 00000004 0 NOTYPE LOCAL DEFAULT 5 .LC1 │ │ │ │ │ 4: 00000008 0 NOTYPE LOCAL DEFAULT 5 .LC2 │ │ │ │ │ 5: 00000001 64 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ 6: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ 7: 00000034 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 8: 00000040 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 9: 00000041 316 FUNC LOCAL DEFAULT 1 fill1_comm_sched │ │ │ │ │ - 10: 0000017d 420 FUNC LOCAL DEFAULT 1 transpose_chunks │ │ │ │ │ - 11: 00000321 178 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ - 12: 000003d5 52 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 13: 00000409 40 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 14: 00000659 1004 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 15: 00000a3c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 16: 00000a44 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 17: 00000a78 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 00000041 376 FUNC LOCAL DEFAULT 1 fill1_comm_sched │ │ │ │ │ + 10: 000001b9 474 FUNC LOCAL DEFAULT 1 transpose_chunks │ │ │ │ │ + 11: 00000395 218 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ + 12: 00000471 56 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 13: 000004a9 52 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 14: 00000731 1092 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 15: 00000b6c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 16: 00000b74 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 17: 00000bbc 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 18: 00000000 0 SECTION LOCAL DEFAULT 6 .data.rel.ro │ │ │ │ │ 19: 00000000 0 NOTYPE LOCAL DEFAULT 6 $d │ │ │ │ │ 20: 00000000 16 OBJECT LOCAL DEFAULT 6 padt.0 │ │ │ │ │ 21: 00000000 0 SECTION LOCAL DEFAULT 8 .data.rel.ro.local │ │ │ │ │ 22: 00000000 0 NOTYPE LOCAL DEFAULT 8 $d │ │ │ │ │ 23: 00000000 12 OBJECT LOCAL DEFAULT 8 sadt.1 │ │ │ │ │ 24: 00000000 0 NOTYPE GLOBAL DEFAULT UND __aeabi_idivmod │ │ │ │ │ @@ -31,15 +31,15 @@ │ │ │ │ │ 27: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_malloc_plain │ │ │ │ │ 28: 00000000 0 NOTYPE GLOBAL DEFAULT UND memmove │ │ │ │ │ 29: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ifree │ │ │ │ │ 30: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ifree0 │ │ │ │ │ 31: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_free │ │ │ │ │ 32: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_plan_destroy_internal │ │ │ │ │ 33: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_plan_awake │ │ │ │ │ - 34: 00000431 550 FUNC GLOBAL DEFAULT 1 fftw_mpi_mkplans_posttranspose │ │ │ │ │ + 34: 000004dd 596 FUNC GLOBAL DEFAULT 1 fftw_mpi_mkplans_posttranspose │ │ │ │ │ 35: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_block │ │ │ │ │ 36: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mktensor_4d │ │ │ │ │ 37: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mkproblem_rdft_0_d │ │ │ │ │ 38: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mkplan_f_d │ │ │ │ │ 39: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mktensor_3d │ │ │ │ │ 40: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mktensor_2d │ │ │ │ │ 41: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_rank │ │ │ │ │ @@ -47,11 +47,11 @@ │ │ │ │ │ 43: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_any_true │ │ │ │ │ 44: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mkplan_rdft │ │ │ │ │ 45: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_dup │ │ │ │ │ 46: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_num_blocks │ │ │ │ │ 47: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_imax │ │ │ │ │ 48: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ops_zero │ │ │ │ │ 49: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ops_add2 │ │ │ │ │ - 50: 00000a45 56 FUNC GLOBAL DEFAULT 1 fftw_mpi_transpose_pairwise_register │ │ │ │ │ + 50: 00000b75 76 FUNC GLOBAL DEFAULT 1 fftw_mpi_transpose_pairwise_register │ │ │ │ │ 51: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mksolver │ │ │ │ │ 52: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_solver_register │ │ │ │ │ 53: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_transpose_solve │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,101 +1,101 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x10fc contains 87 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x1240 contains 87 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000034 00000303 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ 00000038 00000403 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ 0000003c 00000203 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -00000090 0000180a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -000000a4 0000180a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +000000a2 0000180a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ 000000b6 0000180a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -000000ca 0000180a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -00000128 0000180a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -0000013a 0000180a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -0000014c 0000180a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -0000015e 0000180a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -00000222 0000190a R_ARM_THM_CALL 00000000 MPI_Sendrecv │ │ │ │ │ -0000024a 00001a0a R_ARM_THM_CALL 00000000 memcpy │ │ │ │ │ -0000025e 00001b0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -0000029c 00001c0a R_ARM_THM_CALL 00000000 memmove │ │ │ │ │ -000002c4 00001a0a R_ARM_THM_CALL 00000000 memcpy │ │ │ │ │ -0000030c 0000190a R_ARM_THM_CALL 00000000 MPI_Sendrecv │ │ │ │ │ -00000316 00001d0a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ -000003da 00001e0a R_ARM_THM_CALL 00000000 fftw_ifree0 │ │ │ │ │ -000003e0 00001e0a R_ARM_THM_CALL 00000000 fftw_ifree0 │ │ │ │ │ -000003e8 00001f0a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -000003ee 0000200a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000003f4 0000200a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000003fa 0000200a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000410 0000210a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -00000418 0000210a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -00000420 0000210a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -0000044e 0000230a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00000458 0000180a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -000004be 0000240a R_ARM_THM_CALL 00000000 fftw_mktensor_4d │ │ │ │ │ -000004c6 0000250a R_ARM_THM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ -000004d6 0000260a R_ARM_THM_CALL 00000000 fftw_mkplan_f_d │ │ │ │ │ -00000510 0000270a R_ARM_THM_CALL 00000000 fftw_mktensor_3d │ │ │ │ │ -00000524 0000250a R_ARM_THM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ -00000534 0000260a R_ARM_THM_CALL 00000000 fftw_mkplan_f_d │ │ │ │ │ -00000572 0000270a R_ARM_THM_CALL 00000000 fftw_mktensor_3d │ │ │ │ │ -0000057a 0000250a R_ARM_THM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ -00000588 0000260a R_ARM_THM_CALL 00000000 fftw_mkplan_f_d │ │ │ │ │ -000005be 0000280a R_ARM_THM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ -000005d2 0000250a R_ARM_THM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ -000005e0 0000260a R_ARM_THM_CALL 00000000 fftw_mkplan_f_d │ │ │ │ │ -000005f0 0000200a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000005f8 0000200a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000600 0000200a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -0000062e 0000270a R_ARM_THM_CALL 00000000 fftw_mktensor_3d │ │ │ │ │ -00000636 0000250a R_ARM_THM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ -00000646 0000260a R_ARM_THM_CALL 00000000 fftw_mkplan_f_d │ │ │ │ │ -0000069a 0000290a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000006a2 00002a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000006ac 0000230a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -000006f2 0000220a R_ARM_THM_CALL 00000431 fftw_mpi_mkplans_posttranspose │ │ │ │ │ -000006fc 00002b0a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -0000071e 00002c0a R_ARM_THM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ -00000754 00002d0a R_ARM_THM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ -0000075c 00002e0a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -00000766 00002e0a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -0000076e 00002f0a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ -00000776 00001b0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00000794 0000230a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -000007a0 0000230a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -000007e0 0000230a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -000007ec 0000230a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00000886 0000300a R_ARM_THM_CALL 00000000 fftw_ops_zero │ │ │ │ │ -00000892 0000310a R_ARM_THM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ -000008a0 0000310a R_ARM_THM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ -000008ae 0000310a R_ARM_THM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ -000008bc 0000310a R_ARM_THM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ -000008e4 0000270a R_ARM_THM_CALL 00000000 fftw_mktensor_3d │ │ │ │ │ -000008ec 0000250a R_ARM_THM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ -000008fc 0000260a R_ARM_THM_CALL 00000000 fftw_mkplan_f_d │ │ │ │ │ -0000090a 00002b0a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -0000091c 0000200a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000922 0000200a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000928 0000200a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -0000092e 0000200a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -0000093a 00001b0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00000958 00001b0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -000009e8 00001d0a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ -00000a3c 00000b03 R_ARM_REL32 00000321 apply │ │ │ │ │ -00000a40 00001203 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -00000a50 0000330a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ -00000a5c 0000340a R_ARM_THM_CALL 00000000 fftw_solver_register │ │ │ │ │ -00000a64 0000330a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ -00000a78 00001503 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -00000404 0000201e R_ARM_THM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ -0000042c 0000211e R_ARM_THM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ -00000a74 0000341e R_ARM_THM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ +000000c8 0000180a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +000000de 0000180a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +0000015a 0000180a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +0000016e 0000180a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000180 0000180a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000196 0000180a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000274 0000190a R_ARM_THM_CALL 00000000 MPI_Sendrecv │ │ │ │ │ +000002a0 00001a0a R_ARM_THM_CALL 00000000 memcpy │ │ │ │ │ +000002c8 00001b0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +0000030c 00001c0a R_ARM_THM_CALL 00000000 memmove │ │ │ │ │ +0000033a 00001a0a R_ARM_THM_CALL 00000000 memcpy │ │ │ │ │ +00000382 0000190a R_ARM_THM_CALL 00000000 MPI_Sendrecv │ │ │ │ │ +0000038c 00001d0a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ +00000478 00001e0a R_ARM_THM_CALL 00000000 fftw_ifree0 │ │ │ │ │ +0000047e 00001e0a R_ARM_THM_CALL 00000000 fftw_ifree0 │ │ │ │ │ +00000486 00001f0a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +0000048c 0000200a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000492 0000200a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000498 0000200a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000004b6 0000210a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +000004be 0000210a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +000004c6 0000210a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +0000050a 0000230a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00000514 0000180a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +0000057c 0000240a R_ARM_THM_CALL 00000000 fftw_mktensor_4d │ │ │ │ │ +00000584 0000250a R_ARM_THM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ +00000596 0000260a R_ARM_THM_CALL 00000000 fftw_mkplan_f_d │ │ │ │ │ +000005d2 0000270a R_ARM_THM_CALL 00000000 fftw_mktensor_3d │ │ │ │ │ +000005e6 0000250a R_ARM_THM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ +000005f8 0000260a R_ARM_THM_CALL 00000000 fftw_mkplan_f_d │ │ │ │ │ +0000064c 0000270a R_ARM_THM_CALL 00000000 fftw_mktensor_3d │ │ │ │ │ +00000654 0000250a R_ARM_THM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ +00000662 0000260a R_ARM_THM_CALL 00000000 fftw_mkplan_f_d │ │ │ │ │ +00000698 0000280a R_ARM_THM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ +000006ac 0000250a R_ARM_THM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ +000006ba 0000260a R_ARM_THM_CALL 00000000 fftw_mkplan_f_d │ │ │ │ │ +000006ca 0000200a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000006d2 0000200a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000006da 0000200a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000708 0000270a R_ARM_THM_CALL 00000000 fftw_mktensor_3d │ │ │ │ │ +00000710 0000250a R_ARM_THM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ +00000720 0000260a R_ARM_THM_CALL 00000000 fftw_mkplan_f_d │ │ │ │ │ +00000798 0000290a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000007a0 00002a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000007aa 0000230a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +000007f0 0000220a R_ARM_THM_CALL 000004dd fftw_mpi_mkplans_posttranspose │ │ │ │ │ +000007fa 00002b0a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +0000081e 00002c0a R_ARM_THM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ +00000854 00002d0a R_ARM_THM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ +0000085c 00002e0a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +00000866 00002e0a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +0000086e 00002f0a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ +00000878 00001b0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +0000089c 0000230a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +000008a8 0000230a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +000008f0 0000230a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +000008fc 0000230a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +0000099a 0000300a R_ARM_THM_CALL 00000000 fftw_ops_zero │ │ │ │ │ +000009a6 0000310a R_ARM_THM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ +000009b6 0000310a R_ARM_THM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ +000009c6 0000310a R_ARM_THM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ +000009d6 0000310a R_ARM_THM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ +000009fc 0000270a R_ARM_THM_CALL 00000000 fftw_mktensor_3d │ │ │ │ │ +00000a04 0000250a R_ARM_THM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ +00000a16 0000260a R_ARM_THM_CALL 00000000 fftw_mkplan_f_d │ │ │ │ │ +00000a26 00002b0a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +00000a38 0000200a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000a3e 0000200a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000a44 0000200a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000a4a 0000200a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000a5a 00001b0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00000a78 00001b0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00000b14 00001d0a R_ARM_THM_CALL 00000000 fftw_ifree │ │ │ │ │ +00000b6c 00000b03 R_ARM_REL32 00000395 apply │ │ │ │ │ +00000b70 00001203 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +00000b88 0000330a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ +00000b96 0000340a R_ARM_THM_CALL 00000000 fftw_solver_register │ │ │ │ │ +00000ba0 0000330a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ +00000bbc 00001503 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +000004a4 0000201e R_ARM_THM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000004d8 0000211e R_ARM_THM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ +00000bb8 0000341e R_ARM_THM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0x13b4 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0x14f8 contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000000 00003502 R_ARM_ABS32 00000000 fftw_mpi_transpose_solve │ │ │ │ │ -00000004 00000d02 R_ARM_ABS32 00000409 awake │ │ │ │ │ +00000004 00000d02 R_ARM_ABS32 000004a9 awake │ │ │ │ │ 00000008 00000502 R_ARM_ABS32 00000001 print │ │ │ │ │ -0000000c 00000c02 R_ARM_ABS32 000003d5 destroy │ │ │ │ │ +0000000c 00000c02 R_ARM_ABS32 00000471 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0x13d4 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0x1518 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000e02 R_ARM_ABS32 00000659 mkplan │ │ │ │ │ +00000004 00000e02 R_ARM_ABS32 00000731 mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -2,21 +2,21 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ print(): │ │ │ │ │ mov r3, r0 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r0, r1 │ │ │ │ │ - ldr r4, [r1, #0] │ │ │ │ │ - sub sp, #16 │ │ │ │ │ ldr r2, [r3, #120] @ 0x78 │ │ │ │ │ + sub sp, #16 │ │ │ │ │ + ldr r4, [r1, #0] │ │ │ │ │ cmp r2, #2 │ │ │ │ │ - beq.n 2c │ │ │ │ │ + beq.n 2e │ │ │ │ │ ldr r2, [pc, #32] @ (34 ) │ │ │ │ │ add r2, pc │ │ │ │ │ ldr r1, [r3, #76] @ 0x4c │ │ │ │ │ str r1, [sp, #8] │ │ │ │ │ ldr r1, [r3, #72] @ 0x48 │ │ │ │ │ str r1, [sp, #4] │ │ │ │ │ ldr r1, [r3, #68] @ 0x44 │ │ │ │ │ @@ -25,206 +25,218 @@ │ │ │ │ │ ldr r3, [r3, #64] @ 0x40 │ │ │ │ │ add r1, pc │ │ │ │ │ blx r4 │ │ │ │ │ add sp, #16 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ ldr r2, [pc, #12] @ (3c ) │ │ │ │ │ add r2, pc │ │ │ │ │ - b.n 14 │ │ │ │ │ - nop │ │ │ │ │ - .word 0x0000001e │ │ │ │ │ + b.n 16 │ │ │ │ │ + .word 0x0000001c │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x00000010 │ │ │ │ │ + .word 0x0000000e │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ - .word 0x0000000a │ │ │ │ │ + .word 0x00000008 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ 00000040 : │ │ │ │ │ fill1_comm_sched(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - mov r9, r0 │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ + ands.w r4, r2, #1 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r1 │ │ │ │ │ - sub sp, #12 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r7, r2 │ │ │ │ │ - ands.w r4, r2, #1 │ │ │ │ │ - bne.n e2 │ │ │ │ │ - subs r6, r2, #1 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + mov r9, r0 │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #12 │ │ │ │ │ + bne.n 10a │ │ │ │ │ + add.w r6, r2, #4294967295 @ 0xffffffff │ │ │ │ │ str.w r1, [r9] │ │ │ │ │ cmp r6, #0 │ │ │ │ │ - ble.n dc │ │ │ │ │ + ble.n f2 │ │ │ │ │ mov.w r8, #1 │ │ │ │ │ sub.w sl, r6, r1 │ │ │ │ │ - add.w fp, r1, r6 │ │ │ │ │ asr.w r7, r2, r8 │ │ │ │ │ + add.w fp, r1, r6 │ │ │ │ │ cmp r5, r4 │ │ │ │ │ itt eq │ │ │ │ │ streq.w r6, [r9, r8, lsl #2] │ │ │ │ │ addeq.w r8, r8, #1 │ │ │ │ │ - beq.n d6 │ │ │ │ │ + beq.n ea │ │ │ │ │ cmp r5, r6 │ │ │ │ │ itt eq │ │ │ │ │ streq.w r4, [r9, r8, lsl #2] │ │ │ │ │ addeq.w r8, r8, #1 │ │ │ │ │ cmp r5, r6 │ │ │ │ │ - bge.n d6 │ │ │ │ │ + bge.n ea │ │ │ │ │ mov r1, r6 │ │ │ │ │ add.w r0, sl, r4 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ - mov r0, r1 │ │ │ │ │ cmp r7, r1 │ │ │ │ │ - ble.n b0 │ │ │ │ │ + mov r0, r1 │ │ │ │ │ + ble.n c2 │ │ │ │ │ + add.w r3, r8, #1 │ │ │ │ │ mov r1, r6 │ │ │ │ │ add r0, r4 │ │ │ │ │ - add.w r3, r8, #1 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ ldr r3, [sp, #4] │ │ │ │ │ str.w r1, [r9, r8, lsl #2] │ │ │ │ │ mov r8, r3 │ │ │ │ │ mov r1, r6 │ │ │ │ │ sub.w r0, fp, r4 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ cmp r7, r1 │ │ │ │ │ - ble.n d6 │ │ │ │ │ - subs r0, r4, r1 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ - add r0, r6 │ │ │ │ │ + ble.n ea │ │ │ │ │ add.w r3, r8, #1 │ │ │ │ │ + sub.w r0, r4, r1 │ │ │ │ │ + add r0, r6 │ │ │ │ │ + mov r1, r6 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ ldr r3, [sp, #4] │ │ │ │ │ str.w r1, [r9, r8, lsl #2] │ │ │ │ │ mov r8, r3 │ │ │ │ │ - adds r4, #1 │ │ │ │ │ + add.w r4, r4, #1 │ │ │ │ │ cmp r4, r6 │ │ │ │ │ - bne.n 6c │ │ │ │ │ + bne.n 7e │ │ │ │ │ add sp, #12 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - ble.n dc │ │ │ │ │ + ble.n f2 │ │ │ │ │ cmp r2, r1 │ │ │ │ │ - bgt.n 10c │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + bgt.n 13c │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ mov r3, r2 │ │ │ │ │ cmp r5, r3 │ │ │ │ │ - beq.n fc │ │ │ │ │ - adds r3, #1 │ │ │ │ │ + beq.n 128 │ │ │ │ │ + add.w r3, r3, #1 │ │ │ │ │ cmp r3, r7 │ │ │ │ │ - beq.n dc │ │ │ │ │ + beq.n f2 │ │ │ │ │ cmp r5, r3 │ │ │ │ │ - bne.n f2 │ │ │ │ │ - adds r3, r5, #1 │ │ │ │ │ - adds r1, r2, #1 │ │ │ │ │ - cmp r7, r3 │ │ │ │ │ + bne.n 11c │ │ │ │ │ + add.w r3, r5, #1 │ │ │ │ │ + add.w r1, r2, #1 │ │ │ │ │ str.w r5, [r9, r2, lsl #2] │ │ │ │ │ - beq.n dc │ │ │ │ │ + cmp r7, r3 │ │ │ │ │ + beq.n f2 │ │ │ │ │ mov r2, r1 │ │ │ │ │ - b.n ee │ │ │ │ │ + b.n 118 │ │ │ │ │ add.w r8, r2, #1 │ │ │ │ │ - movs r6, #0 │ │ │ │ │ + mov.w r6, #0 │ │ │ │ │ + mov.w r8, r8, asr #1 │ │ │ │ │ mov r4, r6 │ │ │ │ │ sub.w sl, r2, r1 │ │ │ │ │ - mov.w r8, r8, asr #1 │ │ │ │ │ add.w fp, r1, r2 │ │ │ │ │ - b.n 170 │ │ │ │ │ + b.n 1aa │ │ │ │ │ mov r1, r7 │ │ │ │ │ add.w r0, sl, r4 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ - mov r0, r1 │ │ │ │ │ cmp r8, r1 │ │ │ │ │ - ble.n 146 │ │ │ │ │ + mov r0, r1 │ │ │ │ │ + ble.n 17a │ │ │ │ │ + add.w r3, r6, #1 │ │ │ │ │ mov r1, r7 │ │ │ │ │ add r0, r4 │ │ │ │ │ - adds r3, r6, #1 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ ldr r3, [sp, #4] │ │ │ │ │ str.w r1, [r9, r6, lsl #2] │ │ │ │ │ mov r6, r3 │ │ │ │ │ mov r1, r7 │ │ │ │ │ sub.w r0, fp, r4 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ cmp r1, r8 │ │ │ │ │ - bge.n 16a │ │ │ │ │ - subs r0, r4, r1 │ │ │ │ │ - mov r1, r7 │ │ │ │ │ + bge.n 1a2 │ │ │ │ │ + add.w r3, r6, #1 │ │ │ │ │ + sub.w r0, r4, r1 │ │ │ │ │ add r0, r7 │ │ │ │ │ - adds r3, r6, #1 │ │ │ │ │ + mov r1, r7 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ ldr r3, [sp, #4] │ │ │ │ │ str.w r1, [r9, r6, lsl #2] │ │ │ │ │ mov r6, r3 │ │ │ │ │ - adds r4, #1 │ │ │ │ │ + add.w r4, r4, #1 │ │ │ │ │ cmp r7, r4 │ │ │ │ │ - beq.n dc │ │ │ │ │ + beq.n f2 │ │ │ │ │ cmp r5, r4 │ │ │ │ │ - bne.n 122 │ │ │ │ │ + bne.n 154 │ │ │ │ │ str.w r5, [r9, r6, lsl #2] │ │ │ │ │ - adds r6, #1 │ │ │ │ │ - b.n 16a │ │ │ │ │ + add.w r6, r6, #1 │ │ │ │ │ + b.n 1a2 │ │ │ │ │ │ │ │ │ │ -0000017c : │ │ │ │ │ +000001b8 : │ │ │ │ │ transpose_chunks(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ sub sp, #92 @ 0x5c │ │ │ │ │ ldr.w r8, [sp, #136] @ 0x88 │ │ │ │ │ ldr r7, [sp, #144] @ 0x90 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n 252 │ │ │ │ │ + beq.n 2a8 │ │ │ │ │ mov fp, r3 │ │ │ │ │ - ldr r3, [sp, #148] @ 0x94 │ │ │ │ │ mov r6, r1 │ │ │ │ │ + ldr r3, [sp, #148] @ 0x94 │ │ │ │ │ mov sl, r2 │ │ │ │ │ mov r4, r0 │ │ │ │ │ cmp r7, r3 │ │ │ │ │ - beq.n 258 │ │ │ │ │ + beq.n 2c0 │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - ble.n 252 │ │ │ │ │ + ble.n 2a8 │ │ │ │ │ mul.w r3, r2, r1 │ │ │ │ │ movw r9, #2059 @ 0x80b │ │ │ │ │ movt r9, #19456 @ 0x4c00 │ │ │ │ │ + sub.w r4, r0, #4 │ │ │ │ │ + mov.w r5, #0 │ │ │ │ │ str r3, [sp, #36] @ 0x24 │ │ │ │ │ - lsls r3, r2, #2 │ │ │ │ │ - str.w r9, [sp, #48] @ 0x30 │ │ │ │ │ + mov.w r3, r2, lsl #2 │ │ │ │ │ + strd fp, r9, [sp, #44] @ 0x2c │ │ │ │ │ add.w r2, r8, r3 │ │ │ │ │ + ldr.w r9, [sp, #132] @ 0x84 │ │ │ │ │ str r2, [sp, #52] @ 0x34 │ │ │ │ │ ldr r2, [sp, #128] @ 0x80 │ │ │ │ │ - subs r4, r0, #4 │ │ │ │ │ - ldr.w r9, [sp, #132] @ 0x84 │ │ │ │ │ - movs r5, #0 │ │ │ │ │ add r2, r3 │ │ │ │ │ add r3, fp │ │ │ │ │ - str r2, [sp, #56] @ 0x38 │ │ │ │ │ - str r3, [sp, #60] @ 0x3c │ │ │ │ │ - add r3, sp, #68 @ 0x44 │ │ │ │ │ - strd r3, fp, [sp, #40] @ 0x28 │ │ │ │ │ ldr.w fp, [sp, #148] @ 0x94 │ │ │ │ │ - b.n 22a │ │ │ │ │ + strd r2, r3, [sp, #56] @ 0x38 │ │ │ │ │ + add r3, sp, #68 @ 0x44 │ │ │ │ │ + str r3, [sp, #40] @ 0x28 │ │ │ │ │ + b.n 27c │ │ │ │ │ ldr r2, [sp, #44] @ 0x2c │ │ │ │ │ - adds r5, #1 │ │ │ │ │ + add.w r5, r5, #1 │ │ │ │ │ ldr.w r1, [r2, r3, lsl #2] │ │ │ │ │ ldr r2, [sp, #128] @ 0x80 │ │ │ │ │ ldr.w r0, [r2, r3, lsl #2] │ │ │ │ │ + str r3, [sp, #16] │ │ │ │ │ ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ + add.w r0, r7, r0, lsl #3 │ │ │ │ │ str r2, [sp, #28] │ │ │ │ │ ldr r2, [sp, #140] @ 0x8c │ │ │ │ │ - add.w r0, r7, r0, lsl #3 │ │ │ │ │ str r2, [sp, #24] │ │ │ │ │ mla r2, r3, r6, sl │ │ │ │ │ ubfx r2, r2, #0, #15 │ │ │ │ │ - strd r3, r2, [sp, #16] │ │ │ │ │ + str r2, [sp, #20] │ │ │ │ │ ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ str r2, [sp, #12] │ │ │ │ │ ldr.w r2, [r9, r3, lsl #2] │ │ │ │ │ str r2, [sp, #8] │ │ │ │ │ ldr.w r2, [r8, r3, lsl #2] │ │ │ │ │ add.w r2, fp, r2, lsl #3 │ │ │ │ │ str r2, [sp, #4] │ │ │ │ │ @@ -233,87 +245,93 @@ │ │ │ │ │ ubfx r2, r2, #0, #15 │ │ │ │ │ str r2, [sp, #0] │ │ │ │ │ movw r2, #2059 @ 0x80b │ │ │ │ │ movt r2, #19456 @ 0x4c00 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Sendrecv │ │ │ │ │ cmp r6, r5 │ │ │ │ │ - beq.n 252 │ │ │ │ │ + beq.n 2a8 │ │ │ │ │ ldr.w r3, [r4, #4]! │ │ │ │ │ cmp r3, sl │ │ │ │ │ - bne.n 1d6 │ │ │ │ │ + bne.n 226 │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - adds r5, #1 │ │ │ │ │ + add.w r5, r5, #1 │ │ │ │ │ ldr r0, [r3, #0] │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ add.w r0, fp, r0, lsl #3 │ │ │ │ │ ldr r2, [r3, #0] │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ - lsls r2, r2, #3 │ │ │ │ │ + mov.w r2, r2, lsl #3 │ │ │ │ │ ldr r1, [r3, #0] │ │ │ │ │ add.w r1, r7, r1, lsl #3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL memcpy │ │ │ │ │ cmp r6, r5 │ │ │ │ │ - bne.n 22a │ │ │ │ │ + bne.n 27c │ │ │ │ │ add sp, #92 @ 0x5c │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldr.w r0, [fp] │ │ │ │ │ - lsls r0, r0, #3 │ │ │ │ │ + mov.w r0, r0, lsl #3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_malloc_plain │ │ │ │ │ cmp r6, #0 │ │ │ │ │ mov r9, r0 │ │ │ │ │ - ble.n 314 │ │ │ │ │ + ble.n 38a │ │ │ │ │ mul.w r3, r6, sl │ │ │ │ │ movw ip, #2059 @ 0x80b │ │ │ │ │ movt ip, #19456 @ 0x4c00 │ │ │ │ │ - str r3, [sp, #40] @ 0x28 │ │ │ │ │ ldr r7, [sp, #148] @ 0x94 │ │ │ │ │ + sub.w r4, r4, #4 │ │ │ │ │ + mov.w r5, #0 │ │ │ │ │ + str r3, [sp, #40] @ 0x28 │ │ │ │ │ add r3, sp, #68 @ 0x44 │ │ │ │ │ - subs r4, #4 │ │ │ │ │ - movs r5, #0 │ │ │ │ │ - str r3, [sp, #44] @ 0x2c │ │ │ │ │ str.w ip, [sp, #48] @ 0x30 │ │ │ │ │ - b.n 2a6 │ │ │ │ │ + str r3, [sp, #44] @ 0x2c │ │ │ │ │ + b.n 318 │ │ │ │ │ ldr.w r0, [r8, r3, lsl #2] │ │ │ │ │ cmp r0, r1 │ │ │ │ │ - beq.n 2a0 │ │ │ │ │ + beq.n 310 │ │ │ │ │ ldr.w r2, [fp, r3, lsl #2] │ │ │ │ │ add.w r1, r7, r1, lsl #3 │ │ │ │ │ add.w r0, r7, r0, lsl #3 │ │ │ │ │ - lsls r2, r2, #3 │ │ │ │ │ + mov.w r2, r2, lsl #3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL memmove │ │ │ │ │ - adds r5, #1 │ │ │ │ │ + add.w r5, r5, #1 │ │ │ │ │ cmp r6, r5 │ │ │ │ │ - beq.n 314 │ │ │ │ │ + beq.n 38a │ │ │ │ │ ldr.w r3, [r4, #4]! │ │ │ │ │ ldr r2, [sp, #128] @ 0x80 │ │ │ │ │ cmp sl, r3 │ │ │ │ │ ldr.w r1, [r2, r3, lsl #2] │ │ │ │ │ - beq.n 286 │ │ │ │ │ - ldr.w r2, [fp, r3, lsl #2] │ │ │ │ │ + beq.n 2f4 │ │ │ │ │ add.w r1, r7, r1, lsl #3 │ │ │ │ │ mov r0, r9 │ │ │ │ │ str r3, [sp, #36] @ 0x24 │ │ │ │ │ - adds r5, #1 │ │ │ │ │ - lsls r2, r2, #3 │ │ │ │ │ + ldr.w r2, [fp, r3, lsl #2] │ │ │ │ │ + add.w r5, r5, #1 │ │ │ │ │ + mov.w r2, r2, lsl #3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL memcpy │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ - ldr r2, [sp, #44] @ 0x2c │ │ │ │ │ mov r0, r9 │ │ │ │ │ + ldr r2, [sp, #44] @ 0x2c │ │ │ │ │ ldr.w r1, [fp, r3, lsl #2] │ │ │ │ │ + str r3, [sp, #16] │ │ │ │ │ str r2, [sp, #28] │ │ │ │ │ ldr r2, [sp, #140] @ 0x8c │ │ │ │ │ str r2, [sp, #24] │ │ │ │ │ mla r2, r3, r6, sl │ │ │ │ │ ubfx r2, r2, #0, #15 │ │ │ │ │ - strd r3, r2, [sp, #16] │ │ │ │ │ + str r2, [sp, #20] │ │ │ │ │ ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ str r2, [sp, #12] │ │ │ │ │ ldr r2, [sp, #132] @ 0x84 │ │ │ │ │ ldr.w r2, [r2, r3, lsl #2] │ │ │ │ │ str r2, [sp, #8] │ │ │ │ │ ldr.w r2, [r8, r3, lsl #2] │ │ │ │ │ add.w r2, r7, r2, lsl #3 │ │ │ │ │ @@ -323,31 +341,34 @@ │ │ │ │ │ ubfx r2, r2, #0, #15 │ │ │ │ │ str r2, [sp, #0] │ │ │ │ │ movw r2, #2059 @ 0x80b │ │ │ │ │ movt r2, #19456 @ 0x4c00 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Sendrecv │ │ │ │ │ cmp r6, r5 │ │ │ │ │ - bne.n 2a6 │ │ │ │ │ + bne.n 318 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ifree │ │ │ │ │ - add sp, #92 @ 0x5c │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b.n 2a8 │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -00000320 : │ │ │ │ │ +00000394 : │ │ │ │ │ apply(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ - sub sp, #28 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r1 │ │ │ │ │ mov r6, r2 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ + sub sp, #28 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n 394 │ │ │ │ │ + beq.n 430 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r3, [r4, #120] @ 0x78 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ it ne │ │ │ │ │ movne r5, r6 │ │ │ │ │ strd r6, r5, [sp, #16] │ │ │ │ │ @@ -355,64 +376,71 @@ │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ ldr r3, [r4, #112] @ 0x70 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [r4, #108] @ 0x6c │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [r4, #104] @ 0x68 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - ldr r3, [r4, #100] @ 0x64 │ │ │ │ │ ldrd r1, r2, [r4, #88] @ 0x58 │ │ │ │ │ - ldr r0, [r4, #96] @ 0x60 │ │ │ │ │ - bl 17c │ │ │ │ │ + ldrd r0, r3, [r4, #96] @ 0x60 │ │ │ │ │ + bl 1b8 │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ - cbz r0, 38e │ │ │ │ │ + cbz r0, 41c │ │ │ │ │ ldrd r1, r2, [r4, #80] @ 0x50 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ add.w r2, r6, r2, lsl #3 │ │ │ │ │ add.w r1, r5, r1, lsl #3 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #76] @ 0x4c │ │ │ │ │ - cbz r0, 38e │ │ │ │ │ + cbz r0, 41c │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r6 │ │ │ │ │ add sp, #28 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w lr, [sp], #4 │ │ │ │ │ bx r3 │ │ │ │ │ add sp, #28 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ - ldrd r8, r3, [r4, #116] @ 0x74 │ │ │ │ │ - ldr r0, [r4, #96] @ 0x60 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldrd r1, r2, [r4, #88] @ 0x58 │ │ │ │ │ - ldrd r9, r7, [r4, #100] @ 0x64 │ │ │ │ │ - ldrd ip, lr, [r4, #108] @ 0x6c │ │ │ │ │ - cbz r3, 3be │ │ │ │ │ - strd r5, r6, [sp, #16] │ │ │ │ │ + ldr r3, [r4, #120] @ 0x78 │ │ │ │ │ + ldrd r0, r9, [r4, #96] @ 0x60 │ │ │ │ │ + ldrd r7, ip, [r4, #104] @ 0x68 │ │ │ │ │ + ldrd lr, r8, [r4, #112] @ 0x70 │ │ │ │ │ + cbz r3, 45a │ │ │ │ │ mov r3, r9 │ │ │ │ │ + strd r7, ip, [sp] │ │ │ │ │ strd lr, r8, [sp, #8] │ │ │ │ │ + strd r5, r6, [sp, #16] │ │ │ │ │ mov r5, r6 │ │ │ │ │ - strd r7, ip, [sp] │ │ │ │ │ - bl 17c │ │ │ │ │ - b.n 35e │ │ │ │ │ + bl 1b8 │ │ │ │ │ + b.n 3de │ │ │ │ │ mov r3, r9 │ │ │ │ │ - strd r5, r5, [sp, #16] │ │ │ │ │ - strd lr, r8, [sp, #8] │ │ │ │ │ strd r7, ip, [sp] │ │ │ │ │ - bl 17c │ │ │ │ │ - b.n 35e │ │ │ │ │ + strd lr, r8, [sp, #8] │ │ │ │ │ + strd r5, r5, [sp, #16] │ │ │ │ │ + bl 1b8 │ │ │ │ │ + b.n 3de │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -000003d4 : │ │ │ │ │ +00000470 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #96] @ 0x60 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ifree0 │ │ │ │ │ ldr r0, [r4, #100] @ 0x64 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ifree0 │ │ │ │ │ @@ -425,443 +453,455 @@ │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - ldmia.w sp!, {r4, lr} │ │ │ │ │ + ldrd r4, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_plan_destroy_internal │ │ │ │ │ │ │ │ │ │ -00000408 : │ │ │ │ │ +000004a8 : │ │ │ │ │ awake(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ + mov r5, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_awake │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_awake │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_awake │ │ │ │ │ ldr r0, [r4, #76] @ 0x4c │ │ │ │ │ mov r1, r5 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, lr} │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + ldrd r5, lr, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_plan_awake │ │ │ │ │ │ │ │ │ │ -00000430 : │ │ │ │ │ +000004dc : │ │ │ │ │ fftw_mpi_mkplans_posttranspose(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + mov r7, r3 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ ldr.w r8, [r0, #28] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ sub sp, #52 @ 0x34 │ │ │ │ │ - ldr r5, [r0, #4] │ │ │ │ │ mov fp, r2 │ │ │ │ │ - mov r7, r3 │ │ │ │ │ - ldr r2, [sp, #88] @ 0x58 │ │ │ │ │ + ldr r5, [r0, #4] │ │ │ │ │ str r1, [sp, #32] │ │ │ │ │ - mul.w sl, r8, r5 │ │ │ │ │ ldr r1, [r0, #32] │ │ │ │ │ ldr r0, [r0, #12] │ │ │ │ │ + mul.w sl, r8, r5 │ │ │ │ │ + ldr r2, [sp, #88] @ 0x58 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ - mov r1, r8 │ │ │ │ │ mov r6, r0 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ + mov r1, r8 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ ldr r2, [sp, #100] @ 0x64 │ │ │ │ │ - movs r3, #0 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ strd r0, r1, [sp, #36] @ 0x24 │ │ │ │ │ str r3, [r2, #0] │ │ │ │ │ ldr r2, [sp, #96] @ 0x60 │ │ │ │ │ str r3, [r2, #0] │ │ │ │ │ ldr r2, [sp, #92] @ 0x5c │ │ │ │ │ str r3, [r2, #0] │ │ │ │ │ ldr r2, [sp, #108] @ 0x6c │ │ │ │ │ str r3, [r2, #0] │ │ │ │ │ ldr r2, [sp, #104] @ 0x68 │ │ │ │ │ str r3, [r2, #0] │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ ands.w r9, r3, #8 │ │ │ │ │ - bne.n 492 │ │ │ │ │ + bne.n 550 │ │ │ │ │ subs.w r3, fp, r7 │ │ │ │ │ it ne │ │ │ │ │ movne r3, #1 │ │ │ │ │ cmp r1, #0 │ │ │ │ │ it eq │ │ │ │ │ orreq.w r3, r3, #1 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.n 550 │ │ │ │ │ + bne.n 628 │ │ │ │ │ mul.w r2, r6, r8 │ │ │ │ │ - strd sl, r5, [sp] │ │ │ │ │ - mul.w r3, r6, r5 │ │ │ │ │ - ldr r0, [sp, #36] @ 0x24 │ │ │ │ │ - str r3, [sp, #44] @ 0x2c │ │ │ │ │ mov.w r9, #1 │ │ │ │ │ - strd r3, r5, [sp, #16] │ │ │ │ │ - mov r3, r6 │ │ │ │ │ + ldr r0, [sp, #36] @ 0x24 │ │ │ │ │ + mul.w r3, r6, r5 │ │ │ │ │ + strd sl, r5, [sp] │ │ │ │ │ + mov.w sl, #8 │ │ │ │ │ + strd r8, r5, [sp, #8] │ │ │ │ │ mul.w r2, r5, r2 │ │ │ │ │ + strd r3, r5, [sp, #16] │ │ │ │ │ strd r9, r9, [sp, #24] │ │ │ │ │ - strd r8, r5, [sp, #8] │ │ │ │ │ - mov.w sl, #8 │ │ │ │ │ mov r1, r2 │ │ │ │ │ + str r3, [sp, #44] @ 0x2c │ │ │ │ │ + mov r3, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor_4d │ │ │ │ │ mov r2, r7 │ │ │ │ │ mov r1, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkproblem_rdft_0_d │ │ │ │ │ - movs r3, #0 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - mov r2, r3 │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ + mov r2, r3 │ │ │ │ │ str.w sl, [sp] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_f_d │ │ │ │ │ ldr r3, [sp, #92] @ 0x5c │ │ │ │ │ str r0, [r3, #0] │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.w 5ec │ │ │ │ │ + beq.w 6c6 │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ mov r0, r6 │ │ │ │ │ ldr r2, [sp, #108] @ 0x6c │ │ │ │ │ mul.w r3, r6, r3 │ │ │ │ │ mul.w r3, r8, r3 │ │ │ │ │ mul.w r3, r5, r3 │ │ │ │ │ str r3, [r2, #0] │ │ │ │ │ ldr r2, [sp, #104] @ 0x68 │ │ │ │ │ str r3, [r2, #0] │ │ │ │ │ mov r2, r5 │ │ │ │ │ ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ - strd r5, r3, [sp] │ │ │ │ │ + str r5, [sp, #0] │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ - strd r9, r9, [sp, #12] │ │ │ │ │ - str r5, [sp, #8] │ │ │ │ │ + strd r5, r9, [sp, #8] │ │ │ │ │ + str.w r9, [sp, #16] │ │ │ │ │ mul.w r1, r3, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor_3d │ │ │ │ │ ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ ldr r2, [r3, #0] │ │ │ │ │ ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ add.w r2, r7, r2, lsl #3 │ │ │ │ │ ldr r1, [r3, #0] │ │ │ │ │ add.w r1, fp, r1, lsl #3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkproblem_rdft_0_d │ │ │ │ │ - movs r3, #0 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - mov r2, r3 │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ + mov r2, r3 │ │ │ │ │ str.w sl, [sp] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_f_d │ │ │ │ │ ldr r3, [sp, #96] @ 0x60 │ │ │ │ │ str r0, [r3, #0] │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n 5ec │ │ │ │ │ + beq.n 6c6 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ ands.w r8, r3, #8 │ │ │ │ │ - beq.n 618 │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + beq.n 6f0 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ add sp, #52 @ 0x34 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ + mov.w r8, #1 │ │ │ │ │ mul.w r1, sl, r6 │ │ │ │ │ mov r2, sl │ │ │ │ │ - mov.w r8, #1 │ │ │ │ │ - str.w sl, [sp] │ │ │ │ │ - movs r4, #8 │ │ │ │ │ - strd r8, r8, [sp, #12] │ │ │ │ │ + mov.w r4, #8 │ │ │ │ │ + strd sl, r8, [sp, #8] │ │ │ │ │ + str.w r8, [sp, #16] │ │ │ │ │ mul.w r3, r3, r5 │ │ │ │ │ + strd sl, r3, [sp] │ │ │ │ │ str r3, [sp, #44] @ 0x2c │ │ │ │ │ - strd r3, sl, [sp, #4] │ │ │ │ │ mov r3, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor_3d │ │ │ │ │ mov r2, r7 │ │ │ │ │ mov r1, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkproblem_rdft_0_d │ │ │ │ │ - mov r3, r9 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - mov r2, r9 │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ + mov r3, r9 │ │ │ │ │ + mov r2, r9 │ │ │ │ │ str r4, [sp, #0] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_f_d │ │ │ │ │ ldr r3, [sp, #92] @ 0x5c │ │ │ │ │ str r0, [r3, #0] │ │ │ │ │ - cbz r0, 5ec │ │ │ │ │ + cbz r0, 6c6 │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 548 │ │ │ │ │ + ble.n 60c │ │ │ │ │ ldr r2, [sp, #36] @ 0x24 │ │ │ │ │ mov r0, r6 │ │ │ │ │ ldr r1, [sp, #104] @ 0x68 │ │ │ │ │ mul.w r3, r2, r6 │ │ │ │ │ mul.w r3, sl, r3 │ │ │ │ │ str r3, [r1, #0] │ │ │ │ │ mul.w r3, sl, r2 │ │ │ │ │ ldr r2, [sp, #108] @ 0x6c │ │ │ │ │ str r3, [r2, #0] │ │ │ │ │ - ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ - ldr r2, [sp, #44] @ 0x2c │ │ │ │ │ + ldrd r3, r2, [sp, #40] @ 0x28 │ │ │ │ │ strd r8, r8, [sp] │ │ │ │ │ mul.w r3, r5, r3 │ │ │ │ │ mov r1, r3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor_2d │ │ │ │ │ ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ ldr r2, [r3, #0] │ │ │ │ │ ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ add.w r2, r7, r2, lsl #3 │ │ │ │ │ ldr r1, [r3, #0] │ │ │ │ │ add.w r1, fp, r1, lsl #3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkproblem_rdft_0_d │ │ │ │ │ - mov r3, r9 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - mov r2, r9 │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ + mov r3, r9 │ │ │ │ │ + mov r2, r9 │ │ │ │ │ str r4, [sp, #0] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_f_d │ │ │ │ │ ldr r3, [sp, #96] @ 0x60 │ │ │ │ │ str r0, [r3, #0] │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.n 548 │ │ │ │ │ + bne.n 60c │ │ │ │ │ ldr r3, [sp, #100] @ 0x64 │ │ │ │ │ ldr r0, [r3, #0] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r3, [sp, #96] @ 0x60 │ │ │ │ │ ldr r0, [r3, #0] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r3, [sp, #92] @ 0x5c │ │ │ │ │ ldr r0, [r3, #0] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r3, [sp, #100] @ 0x64 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ str r0, [r3, #0] │ │ │ │ │ ldr r3, [sp, #96] @ 0x60 │ │ │ │ │ str r0, [r3, #0] │ │ │ │ │ ldr r3, [sp, #92] @ 0x5c │ │ │ │ │ str r0, [r3, #0] │ │ │ │ │ - add sp, #52 @ 0x34 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b.n 610 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ mov r2, r5 │ │ │ │ │ + strd r5, r9, [sp, #8] │ │ │ │ │ ldr r1, [sp, #44] @ 0x2c │ │ │ │ │ - strd r9, r9, [sp, #12] │ │ │ │ │ - str r5, [sp, #8] │ │ │ │ │ + str.w r9, [sp, #16] │ │ │ │ │ mul.w r3, r5, r0 │ │ │ │ │ strd r5, r3, [sp] │ │ │ │ │ mov r3, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor_3d │ │ │ │ │ mov r2, r7 │ │ │ │ │ mov r1, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkproblem_rdft_0_d │ │ │ │ │ - mov r3, r8 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - mov r2, r8 │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ + mov r3, r8 │ │ │ │ │ + mov r2, r8 │ │ │ │ │ str.w sl, [sp] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_f_d │ │ │ │ │ ldr r3, [sp, #100] @ 0x64 │ │ │ │ │ str r0, [r3, #0] │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.w 548 │ │ │ │ │ - b.n 5f0 │ │ │ │ │ - nop │ │ │ │ │ + bne.w 60c │ │ │ │ │ + b.n 6ca │ │ │ │ │ │ │ │ │ │ -00000658 : │ │ │ │ │ +00000730 : │ │ │ │ │ mkplan(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - movs r3, #0 │ │ │ │ │ - mov r8, r0 │ │ │ │ │ - sub sp, #116 @ 0x74 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + mov r8, r0 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ mov r9, r2 │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #116 @ 0x74 │ │ │ │ │ strd r3, r3, [sp, #84] @ 0x54 │ │ │ │ │ str r3, [sp, #92] @ 0x5c │ │ │ │ │ ldr r3, [r0, #8] │ │ │ │ │ - cbz r3, 688 │ │ │ │ │ + cbz r3, 786 │ │ │ │ │ ldr.w r3, [r2, #164] @ 0xa4 │ │ │ │ │ lsls r0, r3, #19 │ │ │ │ │ - bpl.n 680 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + bpl.n 77e │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add sp, #116 @ 0x74 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldrd r2, r3, [r1, #16] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - beq.n 678 │ │ │ │ │ + beq.n 762 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ bics.w r5, r3, #12 │ │ │ │ │ - bne.n 678 │ │ │ │ │ + bne.n 762 │ │ │ │ │ add r1, sp, #104 @ 0x68 │ │ │ │ │ - ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ ldr r6, [r4, #4] │ │ │ │ │ + ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ ldrd sl, fp, [r4, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ - add r1, sp, #108 @ 0x6c │ │ │ │ │ ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ + add r1, sp, #108 @ 0x6c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ - ldr r2, [sp, #104] @ 0x68 │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ + ldr r2, [sp, #104] @ 0x68 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ ldr r7, [r4, #24] │ │ │ │ │ mov r3, r0 │ │ │ │ │ ands.w r7, r7, #4 │ │ │ │ │ - beq.w 8cc │ │ │ │ │ + beq.w 9e2 │ │ │ │ │ ldr.w r3, [r8, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.w 8c8 │ │ │ │ │ + bne.w 9de │ │ │ │ │ ldr.w r3, [r9, #164] @ 0xa4 │ │ │ │ │ tst.w r3, #4096 @ 0x1000 │ │ │ │ │ it ne │ │ │ │ │ movne sl, fp │ │ │ │ │ add r3, sp, #100 @ 0x64 │ │ │ │ │ + mov r2, sl │ │ │ │ │ + mov r1, r9 │ │ │ │ │ + mov r0, r4 │ │ │ │ │ str r3, [sp, #20] │ │ │ │ │ add r3, sp, #96 @ 0x60 │ │ │ │ │ str r3, [sp, #16] │ │ │ │ │ add r3, sp, #92 @ 0x5c │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ add r3, sp, #88 @ 0x58 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ add r3, sp, #84 @ 0x54 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ - mov r2, sl │ │ │ │ │ - mov r1, r9 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - mov r0, r4 │ │ │ │ │ mov r3, fp │ │ │ │ │ - bl 430 │ │ │ │ │ + bl 4dc │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkplans_posttranspose │ │ │ │ │ ldr r1, [r4, #36] @ 0x24 │ │ │ │ │ eor.w r0, r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_any_true │ │ │ │ │ - ldr r3, [sp, #84] @ 0x54 │ │ │ │ │ - ldr r2, [sp, #88] @ 0x58 │ │ │ │ │ + ldrd r3, r2, [sp, #84] @ 0x54 │ │ │ │ │ ldr r1, [sp, #92] @ 0x5c │ │ │ │ │ - str r3, [sp, #48] @ 0x30 │ │ │ │ │ - str r2, [sp, #44] @ 0x2c │ │ │ │ │ - str r1, [sp, #40] @ 0x28 │ │ │ │ │ str r0, [sp, #76] @ 0x4c │ │ │ │ │ + strd r1, r2, [sp, #40] @ 0x28 │ │ │ │ │ + str r3, [sp, #48] @ 0x30 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.w 91a │ │ │ │ │ - ldr r2, [pc, #804] @ (a3c ) │ │ │ │ │ - movs r0, #128 @ 0x80 │ │ │ │ │ - ldr r1, [pc, #804] @ (a40 ) │ │ │ │ │ + bne.w a36 │ │ │ │ │ + ldr r2, [pc, #856] @ (b6c ) │ │ │ │ │ + mov.w r0, #128 @ 0x80 │ │ │ │ │ + ldr r1, [pc, #852] @ (b70 ) │ │ │ │ │ add r2, pc │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_rdft │ │ │ │ │ - ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ - str r3, [r0, #68] @ 0x44 │ │ │ │ │ + ldrd r1, r2, [sp, #40] @ 0x28 │ │ │ │ │ mov r7, r0 │ │ │ │ │ + ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ + strd r5, r3, [r0, #64] @ 0x40 │ │ │ │ │ ldr r3, [sp, #96] @ 0x60 │ │ │ │ │ + strd r2, r1, [r0, #72] @ 0x48 │ │ │ │ │ str r3, [r0, #80] @ 0x50 │ │ │ │ │ ldr r3, [sp, #100] @ 0x64 │ │ │ │ │ str r3, [r0, #84] @ 0x54 │ │ │ │ │ ldr.w r3, [r8, #8] │ │ │ │ │ - ldr r2, [sp, #44] @ 0x2c │ │ │ │ │ - ldr r1, [sp, #40] @ 0x28 │ │ │ │ │ - str r5, [r0, #64] @ 0x40 │ │ │ │ │ - str r2, [r0, #72] @ 0x48 │ │ │ │ │ - str r1, [r0, #76] @ 0x4c │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.w 934 │ │ │ │ │ + bne.w a50 │ │ │ │ │ ldr.w r3, [r9, #164] @ 0xa4 │ │ │ │ │ and.w r3, r3, #4096 @ 0x1000 │ │ │ │ │ - str r3, [r7, #120] @ 0x78 │ │ │ │ │ - add.w r1, r7, #116 @ 0x74 │ │ │ │ │ ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ + add.w r1, r7, #116 @ 0x74 │ │ │ │ │ + str r3, [r7, #120] @ 0x78 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_dup │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks │ │ │ │ │ ldr r1, [r4, #32] │ │ │ │ │ mov r8, r0 │ │ │ │ │ ldr r0, [r4, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_imax │ │ │ │ │ str r0, [sp, #108] @ 0x6c │ │ │ │ │ - lsls r0, r0, #4 │ │ │ │ │ + mov.w r0, r0, lsl #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_malloc_plain │ │ │ │ │ ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ mov r2, r0 │ │ │ │ │ - str r0, [sp, #52] @ 0x34 │ │ │ │ │ - lsls r3, r3, #2 │ │ │ │ │ + mov.w r3, r3, lsl #2 │ │ │ │ │ add r2, r3 │ │ │ │ │ - str r2, [sp, #56] @ 0x38 │ │ │ │ │ - adds r1, r2, r3 │ │ │ │ │ + add.w r1, r2, r3 │ │ │ │ │ + strd r0, r2, [sp, #52] @ 0x34 │ │ │ │ │ + add.w r0, r1, r3 │ │ │ │ │ ldr r2, [sp, #104] @ 0x68 │ │ │ │ │ - adds r0, r1, r3 │ │ │ │ │ str r1, [sp, #60] @ 0x3c │ │ │ │ │ - str r0, [sp, #64] @ 0x40 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ + str r0, [sp, #64] @ 0x40 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ - ldr r2, [sp, #104] @ 0x68 │ │ │ │ │ ldr r1, [r4, #32] │ │ │ │ │ mov r8, r0 │ │ │ │ │ ldr r0, [r4, #12] │ │ │ │ │ + ldr r2, [sp, #104] @ 0x68 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ mov r9, r0 │ │ │ │ │ ldr r0, [sp, #108] @ 0x6c │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - ble.w 9ee │ │ │ │ │ - ldr r2, [sp, #56] @ 0x38 │ │ │ │ │ + ble.w b1a │ │ │ │ │ + ldrd r3, r2, [sp, #52] @ 0x34 │ │ │ │ │ mov.w sl, #0 │ │ │ │ │ - ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - ldr r1, [sp, #60] @ 0x3c │ │ │ │ │ - subs r3, #4 │ │ │ │ │ - ldr r0, [sp, #64] @ 0x40 │ │ │ │ │ - str r3, [sp, #24] │ │ │ │ │ - subs r3, r2, #4 │ │ │ │ │ strd r5, r7, [sp, #68] @ 0x44 │ │ │ │ │ mov r7, sl │ │ │ │ │ - mov sl, r3 │ │ │ │ │ - subs r2, r0, #4 │ │ │ │ │ + ldrd r1, r0, [sp, #60] @ 0x3c │ │ │ │ │ + sub.w r3, r3, #4 │ │ │ │ │ + str r3, [sp, #24] │ │ │ │ │ + sub.w r3, r2, #4 │ │ │ │ │ + sub.w r2, r0, #4 │ │ │ │ │ sub.w fp, r1, #4 │ │ │ │ │ + mov sl, r3 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ str r2, [sp, #28] │ │ │ │ │ - movs r1, #1 │ │ │ │ │ mov.w r2, #4294967295 @ 0xffffffff │ │ │ │ │ strd r2, r1, [sp, #32] │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ - mov r2, r7 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ + mov r2, r7 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ ldr r1, [r4, #32] │ │ │ │ │ mov r5, r0 │ │ │ │ │ mov r2, r7 │ │ │ │ │ ldr r0, [r4, #12] │ │ │ │ │ bl 0 │ │ │ │ │ @@ -884,248 +924,249 @@ │ │ │ │ │ mul.w r1, r1, r9 │ │ │ │ │ mul.w r1, r7, r1 │ │ │ │ │ mul.w r1, r6, r1 │ │ │ │ │ str.w r1, [r3, #4]! │ │ │ │ │ mul.w r1, r0, r5 │ │ │ │ │ str r3, [sp, #28] │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - ble.n 856 │ │ │ │ │ + ble.n 966 │ │ │ │ │ ldr r1, [r4, #32] │ │ │ │ │ mul.w r5, r1, r5 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ mul.w r0, r1, r0 │ │ │ │ │ cmp r5, r0 │ │ │ │ │ - beq.n 856 │ │ │ │ │ + beq.n 966 │ │ │ │ │ ite gt │ │ │ │ │ movgt r3, #1 │ │ │ │ │ movle r3, #0 │ │ │ │ │ strd r7, r3, [sp, #32] │ │ │ │ │ ldr r0, [sp, #108] @ 0x6c │ │ │ │ │ - adds r7, #1 │ │ │ │ │ + add.w r7, r7, #1 │ │ │ │ │ cmp r0, r7 │ │ │ │ │ - bgt.n 7da │ │ │ │ │ + bgt.n 8ea │ │ │ │ │ ldrd r5, r7, [sp, #68] @ 0x44 │ │ │ │ │ - str r0, [r7, #88] @ 0x58 │ │ │ │ │ ldr r2, [sp, #52] @ 0x34 │ │ │ │ │ + ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ str r2, [r7, #100] @ 0x64 │ │ │ │ │ + cmp r3, r0 │ │ │ │ │ ldr r2, [sp, #56] @ 0x38 │ │ │ │ │ - ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ + strd r0, r3, [r7, #88] @ 0x58 │ │ │ │ │ str r2, [r7, #104] @ 0x68 │ │ │ │ │ ldr r2, [sp, #60] @ 0x3c │ │ │ │ │ - cmp r3, r0 │ │ │ │ │ str r2, [r7, #108] @ 0x6c │ │ │ │ │ ldr r2, [sp, #64] @ 0x40 │ │ │ │ │ - str r3, [r7, #92] @ 0x5c │ │ │ │ │ str r2, [r7, #112] @ 0x70 │ │ │ │ │ - blt.n 938 │ │ │ │ │ - movs r3, #0 │ │ │ │ │ + blt.n a56 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ str r3, [r7, #96] @ 0x60 │ │ │ │ │ add.w r4, r7, #8 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ops_zero │ │ │ │ │ - cbz r5, 896 │ │ │ │ │ + cbz r5, 9aa │ │ │ │ │ mov r1, r4 │ │ │ │ │ add.w r0, r5, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ops_add2 │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ - cbz r3, 8a4 │ │ │ │ │ + cbz r3, 9ba │ │ │ │ │ mov r0, r3 │ │ │ │ │ mov r1, r4 │ │ │ │ │ - adds r0, #8 │ │ │ │ │ + add.w r0, r0, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ops_add2 │ │ │ │ │ ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ - cbz r3, 8b2 │ │ │ │ │ + cbz r3, 9ca │ │ │ │ │ mov r0, r3 │ │ │ │ │ mov r1, r4 │ │ │ │ │ - adds r0, #8 │ │ │ │ │ + add.w r0, r0, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ops_add2 │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ - cbz r3, 8c0 │ │ │ │ │ + cbz r3, 9da │ │ │ │ │ mov r0, r3 │ │ │ │ │ mov r1, r4 │ │ │ │ │ - adds r0, #8 │ │ │ │ │ + add.w r0, r0, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ops_add2 │ │ │ │ │ mov r0, r7 │ │ │ │ │ - add sp, #116 @ 0x74 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b.n 766 │ │ │ │ │ mov sl, fp │ │ │ │ │ - b.n 6d2 │ │ │ │ │ + b.n 7d0 │ │ │ │ │ mul.w r3, r6, r3 │ │ │ │ │ - movs r2, #1 │ │ │ │ │ - str r6, [sp, #8] │ │ │ │ │ - strd r2, r2, [sp, #12] │ │ │ │ │ - mov r2, r6 │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ strd r6, r3, [sp] │ │ │ │ │ + strd r6, r2, [sp, #8] │ │ │ │ │ + str r2, [sp, #16] │ │ │ │ │ + mov r2, r6 │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ mul.w r1, r6, r3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor_3d │ │ │ │ │ mov r2, fp │ │ │ │ │ mov r1, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkproblem_rdft_0_d │ │ │ │ │ - movs r3, #8 │ │ │ │ │ + mov.w r3, #8 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [sp, #0] │ │ │ │ │ mov r2, r7 │ │ │ │ │ - mov r3, r7 │ │ │ │ │ mov r0, r9 │ │ │ │ │ + str r3, [sp, #0] │ │ │ │ │ + mov r3, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_f_d │ │ │ │ │ mov r5, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #36] @ 0x24 │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.w 6bc │ │ │ │ │ - strd r7, r7, [sp, #44] @ 0x2c │ │ │ │ │ - str r7, [sp, #40] @ 0x28 │ │ │ │ │ + beq.w 7ba │ │ │ │ │ + strd r7, r7, [sp, #40] @ 0x28 │ │ │ │ │ + str r7, [sp, #48] @ 0x30 │ │ │ │ │ ldr r0, [sp, #40] @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [sp, #44] @ 0x2c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [sp, #48] @ 0x30 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ - b.n 678 │ │ │ │ │ - movs r3, #2 │ │ │ │ │ - b.n 74c │ │ │ │ │ - lsls r0, r0, #2 │ │ │ │ │ + b.n 762 │ │ │ │ │ + mov.w r3, #2 │ │ │ │ │ + b.n 84c │ │ │ │ │ + mov.w r0, r0, lsl #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_malloc_plain │ │ │ │ │ - str r0, [r7, #96] @ 0x60 │ │ │ │ │ ldrd r1, r2, [sp, #104] @ 0x68 │ │ │ │ │ mov r6, r0 │ │ │ │ │ + str r0, [r7, #96] @ 0x60 │ │ │ │ │ bl 40 │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ adds r3, #1 │ │ │ │ │ - beq.n 880 │ │ │ │ │ + beq.n 994 │ │ │ │ │ ldr.w r8, [sp, #108] @ 0x6c │ │ │ │ │ mov.w r0, r8, lsl #3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_malloc_plain │ │ │ │ │ ldr r1, [sp, #32] │ │ │ │ │ mov r2, r8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ bl 40 │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.n 9fa │ │ │ │ │ + bne.n b28 │ │ │ │ │ cmp.w r8, #0 │ │ │ │ │ - ble.n 9e6 │ │ │ │ │ + ble.n b12 │ │ │ │ │ mov.w r0, r8, lsl #2 │ │ │ │ │ - mov.w ip, r8, lsl #1 │ │ │ │ │ sub.w r9, r6, #4 │ │ │ │ │ - add.w ip, ip, #4294967295 @ 0xffffffff │ │ │ │ │ mov r2, r4 │ │ │ │ │ + mov.w ip, r8, lsl #1 │ │ │ │ │ mov r1, r9 │ │ │ │ │ add.w lr, r4, r0 │ │ │ │ │ mov sl, r0 │ │ │ │ │ + add.w ip, ip, #4294967295 @ 0xffffffff │ │ │ │ │ ldr.w r3, [r2], #4 │ │ │ │ │ ldr.w r0, [r1, #4]! │ │ │ │ │ sub.w r3, ip, r3 │ │ │ │ │ cmp r2, lr │ │ │ │ │ str.w r0, [r4, r3, lsl #2] │ │ │ │ │ - bne.n 98c │ │ │ │ │ + bne.n aac │ │ │ │ │ mov r0, sl │ │ │ │ │ cmp.w r8, #7 │ │ │ │ │ - ble.n a28 │ │ │ │ │ + ble.n b56 │ │ │ │ │ add.w r2, r8, #1 │ │ │ │ │ - lsls r2, r2, #2 │ │ │ │ │ - adds r3, r4, r2 │ │ │ │ │ + mov.w r2, r2, lsl #2 │ │ │ │ │ + add.w r3, r4, r2 │ │ │ │ │ cmp r6, r3 │ │ │ │ │ - beq.n a28 │ │ │ │ │ + beq.n b56 │ │ │ │ │ mov.w ip, r8, lsr #1 │ │ │ │ │ - subs r2, #4 │ │ │ │ │ + sub.w r2, r2, #4 │ │ │ │ │ mov r3, r6 │ │ │ │ │ - adds r1, r4, r2 │ │ │ │ │ + add.w r1, r4, r2 │ │ │ │ │ add.w ip, r6, ip, lsl #3 │ │ │ │ │ ldrd r0, r2, [r1] │ │ │ │ │ + add.w r1, r1, #8 │ │ │ │ │ strd r0, r2, [r3] │ │ │ │ │ - adds r3, #8 │ │ │ │ │ - adds r1, #8 │ │ │ │ │ + add.w r3, r3, #8 │ │ │ │ │ cmp r3, ip │ │ │ │ │ - bne.n 9c2 │ │ │ │ │ + bne.n aea │ │ │ │ │ tst.w r8, #1 │ │ │ │ │ - beq.n 9e6 │ │ │ │ │ + beq.n b12 │ │ │ │ │ bic.w r3, r8, #1 │ │ │ │ │ add r8, r3 │ │ │ │ │ ldr.w r2, [r4, r8, lsl #2] │ │ │ │ │ str.w r2, [r6, r3, lsl #2] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ifree │ │ │ │ │ - b.n 880 │ │ │ │ │ + b.n 994 │ │ │ │ │ mov.w r3, #4294967295 @ 0xffffffff │ │ │ │ │ - movs r2, #1 │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ strd r3, r2, [sp, #32] │ │ │ │ │ - b.n 862 │ │ │ │ │ + b.n 974 │ │ │ │ │ cmp.w r8, #0 │ │ │ │ │ - ble.n 9e6 │ │ │ │ │ + ble.n b12 │ │ │ │ │ mov.w r0, r8, lsl #2 │ │ │ │ │ sub.w r9, r6, #4 │ │ │ │ │ mov r2, r4 │ │ │ │ │ mov r1, r9 │ │ │ │ │ add.w ip, r4, r0 │ │ │ │ │ mov lr, r0 │ │ │ │ │ ldr.w r3, [r2], #4 │ │ │ │ │ ldr.w r0, [r1, #4]! │ │ │ │ │ add r3, r8 │ │ │ │ │ cmp r2, ip │ │ │ │ │ str.w r0, [r4, r3, lsl #2] │ │ │ │ │ - bne.n a12 │ │ │ │ │ + bne.n b40 │ │ │ │ │ mov r0, lr │ │ │ │ │ - b.n 9a2 │ │ │ │ │ + b.n ac2 │ │ │ │ │ ldr r3, [sp, #76] @ 0x4c │ │ │ │ │ add r0, r4 │ │ │ │ │ + add.w r3, r3, #1 │ │ │ │ │ ldr.w r2, [r0], #4 │ │ │ │ │ - adds r3, #1 │ │ │ │ │ cmp r8, r3 │ │ │ │ │ str.w r2, [r9, #4]! │ │ │ │ │ - bgt.n a2c │ │ │ │ │ - b.n 9e6 │ │ │ │ │ - .word 0x0000031e │ │ │ │ │ + bgt.n b5a │ │ │ │ │ + b.n b12 │ │ │ │ │ + .word 0x0000034e │ │ │ │ │ R_ARM_REL32 apply │ │ │ │ │ - .word 0x00000320 │ │ │ │ │ + .word 0x00000350 │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -00000a44 : │ │ │ │ │ +00000b74 : │ │ │ │ │ fftw_mpi_transpose_pairwise_register(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r5, [pc, #44] @ (a78 ) │ │ │ │ │ - movs r0, #12 │ │ │ │ │ + mov.w r0, #12 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ + ldr r5, [pc, #56] @ (bbc ) │ │ │ │ │ add r5, pc │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mksolver │ │ │ │ │ - movs r3, #0 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ + str r3, [r1, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_solver_register │ │ │ │ │ mov r1, r5 │ │ │ │ │ - movs r0, #12 │ │ │ │ │ + mov.w r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mksolver │ │ │ │ │ - movs r3, #1 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + ldrd r5, lr, [sp, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, lr} │ │ │ │ │ + str r3, [r1, #8] │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + add sp, #16 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_solver_register │ │ │ │ │ - .word 0x00000028 │ │ │ │ │ + .word 0x00000034 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ ├── transpose-recurse.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 4040 (bytes into file) │ │ │ │ │ + Start of section headers: 4212 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 15 │ │ │ │ │ Section header string table index: 14 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,24 +1,24 @@ │ │ │ │ │ -There are 15 section headers, starting at offset 0xfc8: │ │ │ │ │ +There are 15 section headers, starting at offset 0x1074: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 00064c 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000ca8 000270 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000680 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000680 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 000680 00004a 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 0006ca 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 000f18 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 0006da 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 000f38 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 0006e6 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 0006e6 000033 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 00071c 000350 10 13 26 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 000a6c 00023b 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 000f40 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0006f8 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000d54 000270 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 00072c 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 00072c 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 00072c 00004a 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 000776 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 000fc4 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 000786 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 000fe4 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 000792 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000792 000033 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 0007c8 000350 10 13 26 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 000b18 00023b 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 000fec 000087 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,30 +1,30 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 53 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ - 1: 00000001 54 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ + 1: 00000001 72 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ 2: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ 3: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 4: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ 5: 00000004 0 NOTYPE LOCAL DEFAULT 5 .LC1 │ │ │ │ │ 6: 00000008 0 NOTYPE LOCAL DEFAULT 5 .LC2 │ │ │ │ │ - 7: 00000039 76 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 8: 00000078 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 9: 00000084 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 10: 00000085 26 FUNC LOCAL DEFAULT 1 radix_first │ │ │ │ │ - 11: 000000a1 38 FUNC LOCAL DEFAULT 1 radix_sqrt │ │ │ │ │ - 12: 000000c9 26 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 13: 000000e5 32 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 14: 00000105 1248 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 15: 000005dc 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 7: 00000049 88 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 8: 00000094 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 000000a0 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 10: 000000a1 38 FUNC LOCAL DEFAULT 1 radix_first │ │ │ │ │ + 11: 000000c9 52 FUNC LOCAL DEFAULT 1 radix_sqrt │ │ │ │ │ + 12: 000000fd 30 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 13: 0000011d 44 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 14: 00000149 1324 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 15: 0000066c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 16: 0000003c 0 NOTYPE LOCAL DEFAULT 5 .LC3 │ │ │ │ │ 17: 00000044 0 NOTYPE LOCAL DEFAULT 5 .LC4 │ │ │ │ │ - 18: 000005e4 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 19: 00000638 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 18: 00000674 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 19: 000006e4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 20: 00000000 0 SECTION LOCAL DEFAULT 6 .data.rel.ro │ │ │ │ │ 21: 00000000 0 NOTYPE LOCAL DEFAULT 6 $d │ │ │ │ │ 22: 00000000 16 OBJECT LOCAL DEFAULT 6 padt.0 │ │ │ │ │ 23: 00000000 0 SECTION LOCAL DEFAULT 8 .data.rel.ro.local │ │ │ │ │ 24: 00000000 0 NOTYPE LOCAL DEFAULT 8 $d │ │ │ │ │ 25: 00000000 12 OBJECT LOCAL DEFAULT 8 sadt.1 │ │ │ │ │ 26: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_first_divisor │ │ │ │ │ @@ -46,11 +46,11 @@ │ │ │ │ │ 42: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mkplan_d │ │ │ │ │ 43: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_free │ │ │ │ │ 44: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mkplan_rdft │ │ │ │ │ 45: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ops_add2 │ │ │ │ │ 46: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mktensor_3d │ │ │ │ │ 47: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mktensor_4d │ │ │ │ │ 48: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_toobig │ │ │ │ │ - 49: 000005e5 104 FUNC GLOBAL DEFAULT 1 fftw_mpi_transpose_recurse_register │ │ │ │ │ + 49: 00000675 132 FUNC GLOBAL DEFAULT 1 fftw_mpi_transpose_recurse_register │ │ │ │ │ 50: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mksolver │ │ │ │ │ 51: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_solver_register │ │ │ │ │ 52: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_transpose_solve │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,92 +1,92 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0xca8 contains 78 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0xd54 contains 78 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000078 00000503 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ -0000007c 00000603 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -00000080 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -00000088 00001a0a R_ARM_THM_CALL 00000000 fftw_first_divisor │ │ │ │ │ -00000090 00001b0a R_ARM_THM_CALL 00000000 fftw_isqrt │ │ │ │ │ -000000a4 00001b0a R_ARM_THM_CALL 00000000 fftw_isqrt │ │ │ │ │ -000000ae 00001c0a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -000000ba 00001c0a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -000000ce 00001d0a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000000d4 00001d0a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000000ec 00001e0a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -000000f4 00001e0a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -0000011a 00001f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000178 0000200a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -0000019c 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -000001aa 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -000001b4 0000220a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ -000001be 00001c0a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -000001cc 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -000001d8 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -000001e4 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -000001f4 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -000001fe 0000220a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ -0000020c 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -0000021a 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00000224 0000220a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ -00000266 0000200a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000278 0000200a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000294 00001f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -0000029c 0000230a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000002a4 0000200a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000002b4 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -0000031a 0000240a R_ARM_THM_CALL 00000000 fftw_mktensor_5d │ │ │ │ │ -00000322 0000250a R_ARM_THM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ -00000332 0000260a R_ARM_THM_CALL 00000000 fftw_mkplan_f_d │ │ │ │ │ -00000342 0000270a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -00000368 0000200a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000378 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00000386 0000200a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000394 0000280a R_ARM_THM_CALL 00000000 MPI_Comm_split │ │ │ │ │ -000003d4 0000290a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ -000003dc 00002a0a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -000003ec 00002b0a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -00000402 0000270a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -0000040e 00001c0a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -0000041c 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -0000042a 00001c0a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -00000434 0000280a R_ARM_THM_CALL 00000000 MPI_Comm_split │ │ │ │ │ -00000446 00002b0a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -00000458 0000270a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -0000046a 00002c0a R_ARM_THM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ -000004b4 00002d0a R_ARM_THM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ -000004c4 00002d0a R_ARM_THM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ -000004d6 00001d0a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000004dc 00001d0a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000004e2 00001d0a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -0000050c 00002e0a R_ARM_THM_CALL 00000000 fftw_mktensor_3d │ │ │ │ │ -00000514 0000250a R_ARM_THM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ -00000524 0000260a R_ARM_THM_CALL 00000000 fftw_mkplan_f_d │ │ │ │ │ -00000558 00002f0a R_ARM_THM_CALL 00000000 fftw_mktensor_4d │ │ │ │ │ -00000588 0000290a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ -00000590 00002a0a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -000005ae 0000200a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000005c0 0000200a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000005c4 0000300a R_ARM_THM_CALL 00000000 fftw_toobig │ │ │ │ │ -000005dc 00000103 R_ARM_REL32 00000001 apply │ │ │ │ │ -000005e0 00001403 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -000005f6 0000320a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ -00000608 0000330a R_ARM_THM_CALL 00000000 fftw_solver_register │ │ │ │ │ -00000610 0000320a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ -00000626 0000330a R_ARM_THM_CALL 00000000 fftw_solver_register │ │ │ │ │ -00000638 00001703 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -0000063c 00000b03 R_ARM_REL32 000000a1 radix_sqrt │ │ │ │ │ -00000640 00001003 R_ARM_REL32 0000003c .LC3 │ │ │ │ │ -00000644 00000a03 R_ARM_REL32 00000085 radix_first │ │ │ │ │ -00000648 00001103 R_ARM_REL32 00000044 .LC4 │ │ │ │ │ -000000de 00001d1e R_ARM_THM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000100 00001e1e R_ARM_THM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ +00000094 00000503 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ +00000098 00000603 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +0000009c 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +000000aa 00001a0a R_ARM_THM_CALL 00000000 fftw_first_divisor │ │ │ │ │ +000000b2 00001b0a R_ARM_THM_CALL 00000000 fftw_isqrt │ │ │ │ │ +000000d2 00001b0a R_ARM_THM_CALL 00000000 fftw_isqrt │ │ │ │ │ +000000dc 00001c0a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +000000ea 00001c0a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000104 00001d0a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +0000010a 00001d0a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +0000012a 00001e0a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +00000132 00001e0a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +0000016e 00001f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000001e0 0000200a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000204 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00000212 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +0000021c 0000220a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ +00000226 00001c0a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000234 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00000240 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +0000024c 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +0000025c 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00000266 0000220a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ +00000274 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00000282 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +0000028c 0000220a R_ARM_THM_CALL 00000000 fftw_imax │ │ │ │ │ +000002ce 0000200a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +000002e0 0000200a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +000002fc 00001f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000304 0000230a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +0000030c 0000200a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +0000031c 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00000388 0000240a R_ARM_THM_CALL 00000000 fftw_mktensor_5d │ │ │ │ │ +00000390 0000250a R_ARM_THM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ +000003a2 0000260a R_ARM_THM_CALL 00000000 fftw_mkplan_f_d │ │ │ │ │ +000003b4 0000270a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +000003da 0000200a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +000003ea 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +000003f8 0000200a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000406 0000280a R_ARM_THM_CALL 00000000 MPI_Comm_split │ │ │ │ │ +00000448 0000290a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ +00000450 00002a0a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +00000462 00002b0a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +00000478 0000270a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +00000484 00001c0a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000492 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +000004a0 00001c0a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +000004aa 0000280a R_ARM_THM_CALL 00000000 MPI_Comm_split │ │ │ │ │ +000004bc 00002b0a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +000004ce 0000270a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +000004e2 00002c0a R_ARM_THM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ +0000053c 00002d0a R_ARM_THM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ +0000054c 00002d0a R_ARM_THM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ +0000055a 00001d0a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000560 00001d0a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000566 00001d0a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000592 00002e0a R_ARM_THM_CALL 00000000 fftw_mktensor_3d │ │ │ │ │ +0000059a 0000250a R_ARM_THM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ +000005ac 0000260a R_ARM_THM_CALL 00000000 fftw_mkplan_f_d │ │ │ │ │ +000005e6 00002f0a R_ARM_THM_CALL 00000000 fftw_mktensor_4d │ │ │ │ │ +00000618 0000290a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ +00000620 00002a0a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +0000063e 0000200a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000650 0000200a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000654 0000300a R_ARM_THM_CALL 00000000 fftw_toobig │ │ │ │ │ +0000066c 00000103 R_ARM_REL32 00000001 apply │ │ │ │ │ +00000670 00001403 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +00000694 0000320a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ +000006a6 0000330a R_ARM_THM_CALL 00000000 fftw_solver_register │ │ │ │ │ +000006b0 0000320a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ +000006c6 0000330a R_ARM_THM_CALL 00000000 fftw_solver_register │ │ │ │ │ +000006e4 00001703 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +000006e8 00000b03 R_ARM_REL32 000000c9 radix_sqrt │ │ │ │ │ +000006ec 00001003 R_ARM_REL32 0000003c .LC3 │ │ │ │ │ +000006f0 00000a03 R_ARM_REL32 000000a1 radix_first │ │ │ │ │ +000006f4 00001103 R_ARM_REL32 00000044 .LC4 │ │ │ │ │ +00000116 00001d1e R_ARM_THM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000144 00001e1e R_ARM_THM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0xf18 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0xfc4 contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000000 00003402 R_ARM_ABS32 00000000 fftw_mpi_transpose_solve │ │ │ │ │ -00000004 00000d02 R_ARM_ABS32 000000e5 awake │ │ │ │ │ -00000008 00000702 R_ARM_ABS32 00000039 print │ │ │ │ │ -0000000c 00000c02 R_ARM_ABS32 000000c9 destroy │ │ │ │ │ +00000004 00000d02 R_ARM_ABS32 0000011d awake │ │ │ │ │ +00000008 00000702 R_ARM_ABS32 00000049 print │ │ │ │ │ +0000000c 00000c02 R_ARM_ABS32 000000fd destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0xf38 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0xfe4 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000e02 R_ARM_ABS32 00000105 mkplan │ │ │ │ │ +00000004 00000e02 R_ARM_ABS32 00000149 mkplan │ │ │ │ ├── strings --all --bytes=8 {} │ │ │ │ │ @@ -1,8 +1,7 @@ │ │ │ │ │ -^JX ^IzDyD │ │ │ │ │ (mpi-transpose-recurse/%s/%d%s%(%p%)%(%p%)%(%p%)) │ │ │ │ │ radix_first │ │ │ │ │ radix_sqrt │ │ │ │ │ fftw_first_divisor │ │ │ │ │ fftw_isqrt │ │ │ │ │ __aeabi_idivmod │ │ │ │ │ fftw_plan_destroy_internal │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,239 +1,259 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, r5, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r5, r2 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r6, lr, [sp, #8] │ │ │ │ │ mov r6, r1 │ │ │ │ │ - mov r5, r2 │ │ │ │ │ - cbz r0, 10 │ │ │ │ │ + cbz r0, 16 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ ldr r3, [r4, #76] @ 0x4c │ │ │ │ │ cmp r3, #0 │ │ │ │ │ it ne │ │ │ │ │ movne r6, r5 │ │ │ │ │ - cbz r0, 24 │ │ │ │ │ + cbz r0, 2a │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ - cbz r0, 34 │ │ │ │ │ + cbz r0, 40 │ │ │ │ │ + ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ mov r2, r5 │ │ │ │ │ mov r1, r6 │ │ │ │ │ - ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, lr, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ bx r3 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ - nop │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + pop {r6, pc} │ │ │ │ │ │ │ │ │ │ -00000038 : │ │ │ │ │ +00000048 : │ │ │ │ │ print(): │ │ │ │ │ mov ip, r0 │ │ │ │ │ - push {r4, r5, lr} │ │ │ │ │ mov r0, r1 │ │ │ │ │ + str.w r4, [sp, #-12]! │ │ │ │ │ ldr r4, [r1, #0] │ │ │ │ │ + strd r5, lr, [sp, #4] │ │ │ │ │ sub sp, #20 │ │ │ │ │ - ldr.w r1, [ip, #76] @ 0x4c │ │ │ │ │ - ldrd r3, r2, [ip, #80] @ 0x50 │ │ │ │ │ + ldrd r1, r3, [ip, #76] @ 0x4c │ │ │ │ │ + ldr.w r2, [ip, #84] @ 0x54 │ │ │ │ │ cmp r1, #2 │ │ │ │ │ - beq.n 70 │ │ │ │ │ - ldr r1, [pc, #40] @ (78 ) │ │ │ │ │ + beq.n 8e │ │ │ │ │ + ldr r1, [pc, #44] @ (94 ) │ │ │ │ │ add r1, pc │ │ │ │ │ ldr.w r5, [ip, #72] @ 0x48 │ │ │ │ │ str r5, [sp, #12] │ │ │ │ │ ldr.w r5, [ip, #68] @ 0x44 │ │ │ │ │ str r5, [sp, #8] │ │ │ │ │ ldr.w r5, [ip, #64] @ 0x40 │ │ │ │ │ strd r1, r5, [sp] │ │ │ │ │ - ldr r1, [pc, #20] @ (7c ) │ │ │ │ │ + ldr r1, [pc, #24] @ (98 ) │ │ │ │ │ add r1, pc │ │ │ │ │ blx r4 │ │ │ │ │ add sp, #20 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ - ldr r1, [pc, #12] @ (80 ) │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + ldr r1, [pc, #12] @ (9c ) │ │ │ │ │ add r1, pc │ │ │ │ │ - b.n 52 │ │ │ │ │ - nop │ │ │ │ │ - .word 0x00000024 │ │ │ │ │ + b.n 68 │ │ │ │ │ + .word 0x0000002a │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x00000010 │ │ │ │ │ + .word 0x00000016 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ - .word 0x0000000a │ │ │ │ │ + .word 0x00000008 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ -00000084 : │ │ │ │ │ +000000a0 : │ │ │ │ │ radix_first(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ mov r5, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_first_divisor │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_isqrt │ │ │ │ │ cmp r0, r4 │ │ │ │ │ ite gt │ │ │ │ │ movgt r0, r4 │ │ │ │ │ movle r0, #0 │ │ │ │ │ - pop {r3, r4, r5, pc} │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + pop {r5, pc} │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -000000a0 : │ │ │ │ │ +000000c8 : │ │ │ │ │ radix_sqrt(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ mov r5, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_isqrt │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ - cbz r1, c2 │ │ │ │ │ - adds r4, #1 │ │ │ │ │ + cbz r1, f2 │ │ │ │ │ + add.w r4, r4, #1 │ │ │ │ │ mov r0, r5 │ │ │ │ │ mov r1, r4 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - bne.n b4 │ │ │ │ │ + bne.n e2 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r3, r4, r5, pc} │ │ │ │ │ - nop │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + pop {r5, pc} │ │ │ │ │ │ │ │ │ │ -000000c8 : │ │ │ │ │ +000000fc : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #72] @ 0x48 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - ldmia.w sp!, {r4, lr} │ │ │ │ │ + ldrd r4, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_plan_destroy_internal │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -000000e4 : │ │ │ │ │ +0000011c : │ │ │ │ │ awake(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ + mov r5, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_awake │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_awake │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, lr} │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + ldrd r5, lr, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_plan_awake │ │ │ │ │ │ │ │ │ │ -00000104 : │ │ │ │ │ +00000148 : │ │ │ │ │ mkplan(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ sub sp, #116 @ 0x74 │ │ │ │ │ add r3, sp, #108 @ 0x6c │ │ │ │ │ - str r0, [sp, #64] @ 0x40 │ │ │ │ │ - str r1, [sp, #52] @ 0x34 │ │ │ │ │ + strd r1, r3, [sp, #52] @ 0x34 │ │ │ │ │ mov r1, r3 │ │ │ │ │ + strd r2, r0, [sp, #60] @ 0x3c │ │ │ │ │ ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ - str r2, [sp, #60] @ 0x3c │ │ │ │ │ - str r3, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r0, [sp, #108] @ 0x6c │ │ │ │ │ ldr r3, [r4, #32] │ │ │ │ │ ldr r2, [r4, #12] │ │ │ │ │ mul.w r3, r0, r3 │ │ │ │ │ cmp r3, r2 │ │ │ │ │ - beq.n 134 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + beq.n 19c │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add sp, #116 @ 0x74 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ ldr r3, [r3, #16] │ │ │ │ │ - cbz r3, 14e │ │ │ │ │ + cbz r3, 1b6 │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ ldr.w r3, [r3, #164] @ 0xa4 │ │ │ │ │ lsls r4, r3, #19 │ │ │ │ │ - bmi.n 12c │ │ │ │ │ + bmi.n 180 │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ ldrd r2, r3, [r3, #16] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - beq.n 12c │ │ │ │ │ + beq.n 180 │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ ldr r3, [r3, #8] │ │ │ │ │ blx r3 │ │ │ │ │ - mov r6, r0 │ │ │ │ │ + mov r5, r0 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n 12c │ │ │ │ │ + beq.n 180 │ │ │ │ │ ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bge.n 12c │ │ │ │ │ + bge.n 180 │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble.n 12c │ │ │ │ │ + ble.n 180 │ │ │ │ │ ldr r2, [sp, #52] @ 0x34 │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r3 │ │ │ │ │ - str r3, [sp, #72] @ 0x48 │ │ │ │ │ - ldr r4, [r2, #28] │ │ │ │ │ - ldr r5, [r2, #32] │ │ │ │ │ ldrd r9, r7, [r2, #8] │ │ │ │ │ - str r4, [sp, #68] @ 0x44 │ │ │ │ │ - str r5, [sp, #76] @ 0x4c │ │ │ │ │ + ldrd r4, r6, [r2, #28] │ │ │ │ │ + strd r4, r3, [sp, #68] @ 0x44 │ │ │ │ │ + str r6, [sp, #76] @ 0x4c │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ ldr r3, [sp, #72] @ 0x48 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 23a │ │ │ │ │ - mul.w r2, r4, r6 │ │ │ │ │ + ble.n 2a2 │ │ │ │ │ + mul.w r2, r4, r5 │ │ │ │ │ mov.w r8, #0 │ │ │ │ │ str r2, [sp, #80] @ 0x50 │ │ │ │ │ - mul.w r2, r0, r5 │ │ │ │ │ + mul.w r2, r0, r6 │ │ │ │ │ str r2, [sp, #72] @ 0x48 │ │ │ │ │ - strd r6, r3, [sp, #88] @ 0x58 │ │ │ │ │ + strd r5, r3, [sp, #88] @ 0x58 │ │ │ │ │ ldr r1, [sp, #68] @ 0x44 │ │ │ │ │ mov r2, r8 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ mul.w r4, r0, r7 │ │ │ │ │ - mov r2, r8 │ │ │ │ │ ldr r1, [sp, #76] @ 0x4c │ │ │ │ │ + mov r2, r8 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ mul.w r1, r0, r9 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_imax │ │ │ │ │ ldr r1, [sp, #88] @ 0x58 │ │ │ │ │ mov fp, r0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ mov r4, r1 │ │ │ │ │ - mov r2, r0 │ │ │ │ │ ldr r1, [sp, #80] @ 0x50 │ │ │ │ │ + mov r2, r0 │ │ │ │ │ mov r5, r0 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ ldr r1, [sp, #72] @ 0x48 │ │ │ │ │ mov r6, r0 │ │ │ │ │ mov r2, r4 │ │ │ │ │ @@ -242,27 +262,27 @@ │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ ldr r1, [sp, #68] @ 0x44 │ │ │ │ │ mov r2, r4 │ │ │ │ │ mov sl, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ - ldr r1, [sp, #72] @ 0x48 │ │ │ │ │ mul.w r3, r0, r7 │ │ │ │ │ + ldr r1, [sp, #72] @ 0x48 │ │ │ │ │ mov r2, r4 │ │ │ │ │ mov r0, r7 │ │ │ │ │ str r3, [sp, #84] @ 0x54 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ mul.w r1, r0, r6 │ │ │ │ │ ldr r0, [sp, #84] @ 0x54 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_imax │ │ │ │ │ cmp r0, fp │ │ │ │ │ - bgt.n 12c │ │ │ │ │ + bgt.n 180 │ │ │ │ │ ldr r1, [sp, #80] @ 0x50 │ │ │ │ │ mov r2, r5 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ mul.w r4, r0, sl │ │ │ │ │ ldr r1, [sp, #76] @ 0x4c │ │ │ │ │ @@ -271,442 +291,449 @@ │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ mul.w r1, r0, r9 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_imax │ │ │ │ │ cmp fp, r0 │ │ │ │ │ - blt.w 12c │ │ │ │ │ + blt.w 180 │ │ │ │ │ ldr r3, [sp, #92] @ 0x5c │ │ │ │ │ add.w r8, r8, #1 │ │ │ │ │ cmp r3, r8 │ │ │ │ │ - bne.n 196 │ │ │ │ │ - ldr r6, [sp, #88] @ 0x58 │ │ │ │ │ + bne.n 1fe │ │ │ │ │ + ldr r5, [sp, #88] @ 0x58 │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ ldr.w r3, [r3, #164] @ 0xa4 │ │ │ │ │ ubfx r2, r3, #0, #20 │ │ │ │ │ ubfx r3, r3, #14, #1 │ │ │ │ │ eor.w r3, r3, #1 │ │ │ │ │ - cmp r6, #8 │ │ │ │ │ + cmp r5, #8 │ │ │ │ │ it gt │ │ │ │ │ orrgt.w r3, r3, #1 │ │ │ │ │ lsls r1, r3, #31 │ │ │ │ │ - bpl.w 5a8 │ │ │ │ │ + bpl.w 638 │ │ │ │ │ lsls r3, r2, #28 │ │ │ │ │ - bpl.n 284 │ │ │ │ │ + bpl.n 2ec │ │ │ │ │ ldr r4, [sp, #52] @ 0x34 │ │ │ │ │ - ldr r5, [sp, #108] @ 0x6c │ │ │ │ │ + ldr r6, [sp, #108] @ 0x6c │ │ │ │ │ ldr r0, [r4, #12] │ │ │ │ │ - mov r1, r5 │ │ │ │ │ + mov r1, r6 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ - mov r1, r5 │ │ │ │ │ + mov r1, r6 │ │ │ │ │ mul.w r3, r0, r3 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mul.w r0, r3, r0 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ cmp.w r0, #2048 @ 0x800 │ │ │ │ │ - bgt.w 12c │ │ │ │ │ + bgt.w 180 │ │ │ │ │ ldr r4, [sp, #52] @ 0x34 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ bics.w r8, r3, #12 │ │ │ │ │ - bne.w 12c │ │ │ │ │ - add r1, sp, #104 @ 0x68 │ │ │ │ │ + bne.w 180 │ │ │ │ │ ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ + add r1, sp, #104 @ 0x68 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ - add r1, sp, #100 @ 0x64 │ │ │ │ │ ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ + add r1, sp, #100 @ 0x64 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ ldr r0, [sp, #104] @ 0x68 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ ldr r2, [sp, #100] @ 0x64 │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ - mov r7, r0 │ │ │ │ │ + mov r6, r0 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ ldrd r9, fp, [r4, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ - ldr r5, [r4, #24] │ │ │ │ │ - mov r3, r0 │ │ │ │ │ ldr r2, [r4, #4] │ │ │ │ │ + mov r3, r0 │ │ │ │ │ + ldr r7, [r4, #24] │ │ │ │ │ ldr r1, [r4, #32] │ │ │ │ │ - ands.w r5, r5, #4 │ │ │ │ │ - bne.w 4ec │ │ │ │ │ - mul.w lr, r1, r2 │ │ │ │ │ + ands.w r7, r7, #4 │ │ │ │ │ + bne.w 570 │ │ │ │ │ cmp r9, fp │ │ │ │ │ - beq.w 530 │ │ │ │ │ + mul.w lr, r1, r2 │ │ │ │ │ + beq.w 5ba │ │ │ │ │ mov.w r8, #1 │ │ │ │ │ - strd r8, r8, [sp, #36] @ 0x24 │ │ │ │ │ - mul.w r8, r2, r0 │ │ │ │ │ - str r1, [sp, #20] │ │ │ │ │ - strd r2, r8, [sp, #24] │ │ │ │ │ - mul.w ip, r6, r7 │ │ │ │ │ - mul.w r8, r1, r7 │ │ │ │ │ - str r2, [sp, #32] │ │ │ │ │ + mul.w ip, r5, r6 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ mul.w r3, r1, r3 │ │ │ │ │ - str r6, [sp, #8] │ │ │ │ │ + strd r1, r2, [sp, #20] │ │ │ │ │ + strd r2, r8, [sp, #32] │ │ │ │ │ + str.w r8, [sp, #40] @ 0x28 │ │ │ │ │ + mul.w r8, r2, r0 │ │ │ │ │ mul.w ip, r1, ip │ │ │ │ │ - mul.w r8, r0, r8 │ │ │ │ │ - mul.w r1, r6, r1 │ │ │ │ │ mul.w r3, r2, r3 │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ - mov r3, r7 │ │ │ │ │ - mul.w r8, r2, r8 │ │ │ │ │ + str.w r8, [sp, #28] │ │ │ │ │ + mul.w r8, r1, r6 │ │ │ │ │ + mul.w r1, r5, r1 │ │ │ │ │ + mul.w r8, r0, r8 │ │ │ │ │ mul.w r1, r2, r1 │ │ │ │ │ - strd lr, r8, [sp, #12] │ │ │ │ │ - str r1, [sp, #0] │ │ │ │ │ + mul.w r8, r2, r8 │ │ │ │ │ + strd r1, r3, [sp] │ │ │ │ │ mul.w r1, r2, ip │ │ │ │ │ + mov r3, r6 │ │ │ │ │ + str.w r8, [sp, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor_5d │ │ │ │ │ mov r2, fp │ │ │ │ │ mov r1, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkproblem_rdft_0_d │ │ │ │ │ - movs r3, #8 │ │ │ │ │ + mov.w r3, #8 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - mov r2, r5 │ │ │ │ │ - str r3, [sp, #0] │ │ │ │ │ - mov r3, r5 │ │ │ │ │ ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ + mov r2, r7 │ │ │ │ │ + str r3, [sp, #0] │ │ │ │ │ + mov r3, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_f_d │ │ │ │ │ - mov r5, r0 │ │ │ │ │ + mov r7, r0 │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - clz r0, r5 │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + clz r0, r7 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ ldr r1, [r3, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.w 5a0 │ │ │ │ │ + bne.w 630 │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ ldr r3, [r3, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.w 4e8 │ │ │ │ │ + bne.w 56c │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ ldr.w r3, [r3, #164] @ 0xa4 │ │ │ │ │ tst.w r3, #4096 @ 0x1000 │ │ │ │ │ it ne │ │ │ │ │ movne r9, fp │ │ │ │ │ ldr r0, [sp, #100] @ 0x64 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ ldr r4, [sp, #52] @ 0x34 │ │ │ │ │ mov r2, r0 │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ - mul.w r1, r6, r1 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ + mul.w r1, r5, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ ldr r4, [sp, #100] @ 0x64 │ │ │ │ │ mov r8, r0 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ - mov r0, r4 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ mov sl, r8 │ │ │ │ │ + mov r0, r4 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ mov r2, r4 │ │ │ │ │ - ldr r4, [sp, #52] @ 0x34 │ │ │ │ │ + ldrd r4, r3, [sp, #52] @ 0x34 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_split │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ cmp.w r8, #0 │ │ │ │ │ - beq.n 3e8 │ │ │ │ │ - ldrd lr, r3, [r4, #28] │ │ │ │ │ - ldr r1, [r4, #12] │ │ │ │ │ + beq.n 45e │ │ │ │ │ + mov r0, r4 │ │ │ │ │ ldr r2, [r4, #4] │ │ │ │ │ - ldrd r4, r0, [r4, #16] │ │ │ │ │ - mul.w r3, r7, r3 │ │ │ │ │ + ldrd r1, r4, [r4, #12] │ │ │ │ │ + ldrd lr, r3, [r0, #28] │ │ │ │ │ + ldr r0, [r0, #20] │ │ │ │ │ ldr.w ip, [sp, #108] @ 0x6c │ │ │ │ │ + mul.w r3, r6, r3 │ │ │ │ │ cmp r4, r0 │ │ │ │ │ - itee ne │ │ │ │ │ - movne r0, #4 │ │ │ │ │ + itet eq │ │ │ │ │ ldreq r0, [sp, #52] @ 0x34 │ │ │ │ │ + movne r0, #4 │ │ │ │ │ ldreq r0, [r0, #24] │ │ │ │ │ - strd lr, r3, [sp, #4] │ │ │ │ │ + strd r9, lr, [sp] │ │ │ │ │ + strd r3, ip, [sp, #8] │ │ │ │ │ mov r3, fp │ │ │ │ │ it eq │ │ │ │ │ andeq.w r0, r0, #4 │ │ │ │ │ - str.w r9, [sp] │ │ │ │ │ - strd ip, r0, [sp, #12] │ │ │ │ │ + str r0, [sp, #16] │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkproblem_transpose │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_d │ │ │ │ │ clz r3, r0 │ │ │ │ │ mov sl, r0 │ │ │ │ │ - lsrs r3, r3, #5 │ │ │ │ │ + mov.w r3, r3, lsr #5 │ │ │ │ │ ldr r0, [sp, #56] @ 0x38 │ │ │ │ │ str r3, [sp, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_free │ │ │ │ │ ldr r4, [sp, #52] @ 0x34 │ │ │ │ │ ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ ldr r1, [r4, #36] @ 0x24 │ │ │ │ │ cmp.w r8, #0 │ │ │ │ │ ite eq │ │ │ │ │ moveq r0, #0 │ │ │ │ │ andne.w r0, r3, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.n 4d0 │ │ │ │ │ + bne.n 554 │ │ │ │ │ ldr r0, [sp, #100] @ 0x64 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ mov r2, r1 │ │ │ │ │ - ldr r1, [r4, #32] │ │ │ │ │ ldr r0, [r4, #12] │ │ │ │ │ - mul.w r1, r7, r1 │ │ │ │ │ + ldr r1, [r4, #32] │ │ │ │ │ + mul.w r1, r6, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ ldr.w r8, [sp, #100] @ 0x64 │ │ │ │ │ - mov r7, r0 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ + mov r6, r0 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ - ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ mov r2, r8 │ │ │ │ │ + ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_split │ │ │ │ │ - cmp r7, #0 │ │ │ │ │ - bne.w 560 │ │ │ │ │ + cmp r6, #0 │ │ │ │ │ + bne.w 5ee │ │ │ │ │ mov.w r9, #1 │ │ │ │ │ - mov r8, r7 │ │ │ │ │ + mov r8, r6 │ │ │ │ │ ldr r0, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_free │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - cmp r7, #0 │ │ │ │ │ + cmp r6, #0 │ │ │ │ │ ite eq │ │ │ │ │ moveq r0, #0 │ │ │ │ │ andne.w r0, r9, #1 │ │ │ │ │ ldr r1, [r3, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.n 4d4 │ │ │ │ │ - ldr r2, [pc, #376] @ (5dc ) │ │ │ │ │ - movs r0, #88 @ 0x58 │ │ │ │ │ - ldr r1, [pc, #376] @ (5e0 ) │ │ │ │ │ + bne.n 558 │ │ │ │ │ + ldr r2, [pc, #404] @ (66c ) │ │ │ │ │ + mov.w r0, #88 @ 0x58 │ │ │ │ │ + ldr r1, [pc, #400] @ (670 ) │ │ │ │ │ add r2, pc │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_rdft │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ mov r4, r0 │ │ │ │ │ - strd r5, sl, [r0, #64] @ 0x40 │ │ │ │ │ - str.w r8, [r0, #72] @ 0x48 │ │ │ │ │ ldr r3, [r3, #16] │ │ │ │ │ + strd r7, sl, [r0, #64] @ 0x40 │ │ │ │ │ + str.w r8, [r0, #72] @ 0x48 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.n 52c │ │ │ │ │ + bne.n 5b4 │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ ldr.w r3, [r3, #164] @ 0xa4 │ │ │ │ │ and.w r3, r3, #4096 @ 0x1000 │ │ │ │ │ - strd r3, r6, [r4, #76] @ 0x4c │ │ │ │ │ - adds r5, #8 │ │ │ │ │ + ldrd r0, r1, [r7, #8] │ │ │ │ │ + strd r3, r5, [r4, #76] @ 0x4c │ │ │ │ │ + add.w r5, r4, #8 │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ - add.w r7, r4, #8 │ │ │ │ │ - mov r6, r7 │ │ │ │ │ ldr r3, [r3, #12] │ │ │ │ │ + strd r0, r1, [r4, #8] │ │ │ │ │ + ldrd r0, r1, [r7, #16] │ │ │ │ │ str r3, [r4, #84] @ 0x54 │ │ │ │ │ - ldmia r5!, {r0, r1, r2, r3} │ │ │ │ │ - stmia r6!, {r0, r1, r2, r3} │ │ │ │ │ - ldmia.w r5, {r0, r1, r2, r3} │ │ │ │ │ - stmia.w r6, {r0, r1, r2, r3} │ │ │ │ │ + strd r0, r1, [r5, #8] │ │ │ │ │ + ldrd r0, r1, [r7, #24] │ │ │ │ │ + strd r0, r1, [r5, #16] │ │ │ │ │ + ldrd r2, r3, [r7, #32] │ │ │ │ │ + strd r2, r3, [r5, #24] │ │ │ │ │ cmp.w sl, #0 │ │ │ │ │ - beq.n 4b8 │ │ │ │ │ - mov r1, r7 │ │ │ │ │ + beq.n 540 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ add.w r0, sl, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ops_add2 │ │ │ │ │ cmp.w r8, #0 │ │ │ │ │ - beq.n 4c8 │ │ │ │ │ - mov r1, r7 │ │ │ │ │ + beq.n 550 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ add.w r0, r8, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ops_add2 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - add sp, #116 @ 0x74 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b.n 184 │ │ │ │ │ mov.w r8, #0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ - mov r0, r5 │ │ │ │ │ + mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ - b.n 12c │ │ │ │ │ + b.n 180 │ │ │ │ │ mov r9, fp │ │ │ │ │ - b.n 364 │ │ │ │ │ + b.n 3d6 │ │ │ │ │ mul.w r3, r2, r3 │ │ │ │ │ - mov r0, r7 │ │ │ │ │ + mov r0, r6 │ │ │ │ │ mul.w r2, r1, r3 │ │ │ │ │ - movs r3, #1 │ │ │ │ │ - strd r3, r3, [sp, #12] │ │ │ │ │ - str r2, [sp, #8] │ │ │ │ │ - mul.w r3, r2, r7 │ │ │ │ │ - mul.w r1, r6, r2 │ │ │ │ │ - strd r2, r3, [sp] │ │ │ │ │ - mov r3, r6 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + str r3, [sp, #16] │ │ │ │ │ + mul.w r1, r5, r2 │ │ │ │ │ + strd r2, r3, [sp, #8] │ │ │ │ │ + mul.w r3, r2, r6 │ │ │ │ │ + str r2, [sp, #0] │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + mov r3, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor_3d │ │ │ │ │ mov r2, fp │ │ │ │ │ mov r1, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkproblem_rdft_0_d │ │ │ │ │ - movs r3, #8 │ │ │ │ │ + mov.w r3, #8 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [sp, #0] │ │ │ │ │ ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ - mov r3, r8 │ │ │ │ │ mov r2, r8 │ │ │ │ │ + str r3, [sp, #0] │ │ │ │ │ + mov r3, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_f_d │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - b.n 338 │ │ │ │ │ - movs r3, #2 │ │ │ │ │ - b.n 48a │ │ │ │ │ + mov r7, r0 │ │ │ │ │ + b.n 3a8 │ │ │ │ │ + mov.w r3, #2 │ │ │ │ │ + b.n 502 │ │ │ │ │ ldr r2, [sp, #104] @ 0x68 │ │ │ │ │ - movs r3, #1 │ │ │ │ │ - strd r3, r3, [sp, #12] │ │ │ │ │ - mul.w r3, lr, r7 │ │ │ │ │ - str r0, [sp, #20] │ │ │ │ │ - mul.w r1, lr, r6 │ │ │ │ │ - strd lr, r3, [sp] │ │ │ │ │ - mov r0, r7 │ │ │ │ │ + mul.w r1, lr, r5 │ │ │ │ │ + mov r0, r6 │ │ │ │ │ + str.w lr, [sp] │ │ │ │ │ + str.w lr, [sp, #8] │ │ │ │ │ mul.w r2, r2, lr │ │ │ │ │ - mov r3, r6 │ │ │ │ │ - strd r2, r2, [sp, #24] │ │ │ │ │ + strd r3, r2, [sp, #20] │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + strd r3, r3, [sp, #12] │ │ │ │ │ + mul.w r3, lr, r6 │ │ │ │ │ + str r2, [sp, #28] │ │ │ │ │ mov r2, lr │ │ │ │ │ - str.w lr, [sp, #8] │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + mov r3, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor_4d │ │ │ │ │ mov r2, r9 │ │ │ │ │ - b.n 320 │ │ │ │ │ + b.n 38e │ │ │ │ │ ldr r0, [sp, #52] @ 0x34 │ │ │ │ │ - mov r1, r7 │ │ │ │ │ + mov r1, r6 │ │ │ │ │ ldr r3, [r0, #24] │ │ │ │ │ + mov r2, r0 │ │ │ │ │ and.w r3, r3, #8 │ │ │ │ │ orr.w r3, r3, #4 │ │ │ │ │ str r3, [sp, #16] │ │ │ │ │ ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ ldr r3, [r0, #32] │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [r0, #28] │ │ │ │ │ - mul.w r3, r6, r3 │ │ │ │ │ + mul.w r3, r5, r3 │ │ │ │ │ strd fp, r3, [sp] │ │ │ │ │ mov r3, r9 │ │ │ │ │ - ldr r2, [r0, #4] │ │ │ │ │ + ldr r2, [r2, #4] │ │ │ │ │ ldr r0, [r0, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkproblem_transpose │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_d │ │ │ │ │ clz r9, r0 │ │ │ │ │ mov r8, r0 │ │ │ │ │ mov.w r9, r9, lsr #5 │ │ │ │ │ - b.n 444 │ │ │ │ │ + b.n 4ba │ │ │ │ │ mov.w r8, #0 │ │ │ │ │ mov sl, r8 │ │ │ │ │ - b.n 4d4 │ │ │ │ │ + b.n 558 │ │ │ │ │ ldr r4, [sp, #52] @ 0x34 │ │ │ │ │ ldr r1, [sp, #108] @ 0x6c │ │ │ │ │ ldr r0, [r4, #12] │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ - mov r1, r6 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ mul.w r3, r0, r3 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mul.w r0, r3, r0 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_toobig │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.w 12c │ │ │ │ │ + bne.w 180 │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ ldr.w r2, [r3, #164] @ 0xa4 │ │ │ │ │ ubfx r2, r2, #0, #20 │ │ │ │ │ - b.n 25a │ │ │ │ │ + b.n 2c2 │ │ │ │ │ nop │ │ │ │ │ - .word 0x00000172 │ │ │ │ │ + .word 0x0000018a │ │ │ │ │ R_ARM_REL32 apply │ │ │ │ │ - .word 0x00000174 │ │ │ │ │ + .word 0x0000018c │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -000005e4 : │ │ │ │ │ +00000674 : │ │ │ │ │ fftw_mpi_transpose_recurse_register(): │ │ │ │ │ - push {r3, r4, r5, r6, r7, lr} │ │ │ │ │ + strd r3, r4, [sp, #-24]! │ │ │ │ │ + mov.w r4, #0 │ │ │ │ │ + strd r5, r6, [sp, #8] │ │ │ │ │ mov r5, r0 │ │ │ │ │ - ldr r6, [pc, #76] @ (638 ) │ │ │ │ │ - ldr r7, [pc, #80] @ (63c ) │ │ │ │ │ - movs r4, #0 │ │ │ │ │ + ldr r6, [pc, #96] @ (6e4 ) │ │ │ │ │ + strd r7, lr, [sp, #16] │ │ │ │ │ + ldr r7, [pc, #92] @ (6e8 ) │ │ │ │ │ add r6, pc │ │ │ │ │ add r7, pc │ │ │ │ │ mov r1, r6 │ │ │ │ │ - movs r0, #20 │ │ │ │ │ + mov.w r0, #20 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mksolver │ │ │ │ │ - ldr r3, [pc, #68] @ (640 ) │ │ │ │ │ + ldr r3, [pc, #80] @ (6ec ) │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r4, [r0, #16] │ │ │ │ │ - add r3, pc │ │ │ │ │ - str r7, [r0, #8] │ │ │ │ │ - str r3, [r0, #12] │ │ │ │ │ mov r0, r5 │ │ │ │ │ + str r4, [r1, #16] │ │ │ │ │ + add r3, pc │ │ │ │ │ + strd r7, r3, [r1, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_solver_register │ │ │ │ │ mov r1, r6 │ │ │ │ │ - movs r0, #20 │ │ │ │ │ + mov.w r0, #20 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mksolver │ │ │ │ │ - ldr r3, [pc, #44] @ (644 ) │ │ │ │ │ - str r4, [r0, #16] │ │ │ │ │ + ldr r3, [pc, #56] @ (6f0 ) │ │ │ │ │ mov r1, r0 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ + str r4, [r1, #16] │ │ │ │ │ add r3, pc │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ - ldr r3, [pc, #40] @ (648 ) │ │ │ │ │ + str r3, [r1, #8] │ │ │ │ │ + ldr r3, [pc, #48] @ (6f4 ) │ │ │ │ │ add r3, pc │ │ │ │ │ - str r3, [r0, #12] │ │ │ │ │ - mov r0, r5 │ │ │ │ │ + str r3, [r1, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_solver_register │ │ │ │ │ - adds r3, r4, #1 │ │ │ │ │ - cmp r3, #2 │ │ │ │ │ + add.w r3, r4, #1 │ │ │ │ │ mov.w r4, #1 │ │ │ │ │ - bne.n 5f2 │ │ │ │ │ - pop {r3, r4, r5, r6, r7, pc} │ │ │ │ │ + cmp r3, #2 │ │ │ │ │ + bne.n 68e │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + ldrd r5, r6, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + pop {r7, pc} │ │ │ │ │ nop │ │ │ │ │ - .word 0x00000046 │ │ │ │ │ + .word 0x00000056 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ │ │ - .word 0x00000048 │ │ │ │ │ + .word 0x00000058 │ │ │ │ │ R_ARM_REL32 radix_sqrt │ │ │ │ │ - .word 0x0000003c │ │ │ │ │ + .word 0x00000048 │ │ │ │ │ R_ARM_REL32 .LC3 │ │ │ │ │ - .word 0x00000026 │ │ │ │ │ + .word 0x00000030 │ │ │ │ │ R_ARM_REL32 radix_first │ │ │ │ │ - .word 0x00000024 │ │ │ │ │ + .word 0x0000002e │ │ │ │ │ R_ARM_REL32 .LC4 │ │ │ ├── transpose-problem.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 1604 (bytes into file) │ │ │ │ │ + Start of section headers: 1692 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 13 │ │ │ │ │ Section header string table index: 12 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,22 +1,22 @@ │ │ │ │ │ -There are 13 section headers, starting at offset 0x644: │ │ │ │ │ +There are 13 section headers, starting at offset 0x69c: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 000178 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0004fc 0000b0 08 I 10 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 0001ac 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 0001ac 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 0001ac 00003a 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro.local PROGBITS 00000000 0001e6 000014 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro.local REL 00000000 0005ac 000020 08 I 10 6 4 │ │ │ │ │ - [ 8] .note.GNU-stack PROGBITS 00000000 0001fa 000000 00 0 0 1 │ │ │ │ │ - [ 9] .ARM.attributes ARM_ATTRIBUTES 00000000 0001fa 000033 00 0 0 1 │ │ │ │ │ - [10] .symtab SYMTAB 00000000 000230 0001e0 10 11 17 4 │ │ │ │ │ - [11] .strtab STRTAB 00000000 000410 0000ea 00 0 0 1 │ │ │ │ │ - [12] .shstrtab STRTAB 00000000 0005cc 000076 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0001d0 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000554 0000b0 08 I 10 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000204 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000204 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 000204 00003a 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro.local PROGBITS 00000000 00023e 000014 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro.local REL 00000000 000604 000020 08 I 10 6 4 │ │ │ │ │ + [ 8] .note.GNU-stack PROGBITS 00000000 000252 000000 00 0 0 1 │ │ │ │ │ + [ 9] .ARM.attributes ARM_ATTRIBUTES 00000000 000252 000033 00 0 0 1 │ │ │ │ │ + [10] .symtab SYMTAB 00000000 000288 0001e0 10 11 17 4 │ │ │ │ │ + [11] .strtab STRTAB 00000000 000468 0000ea 00 0 0 1 │ │ │ │ │ + [12] .shstrtab STRTAB 00000000 000624 000076 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,33 +1,33 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 30 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ - 1: 00000001 20 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 1: 00000001 26 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ 2: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ 3: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 4: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ - 5: 00000015 96 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 6: 00000070 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 7: 00000074 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 8: 00000075 56 FUNC LOCAL DEFAULT 1 zero │ │ │ │ │ + 5: 0000001d 116 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 6: 0000008c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 7: 00000090 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 8: 00000091 72 FUNC LOCAL DEFAULT 1 zero │ │ │ │ │ 9: 0000002c 0 NOTYPE LOCAL DEFAULT 5 .LC1 │ │ │ │ │ - 10: 000000ad 100 FUNC LOCAL DEFAULT 1 hash │ │ │ │ │ - 11: 0000010c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 12: 00000110 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 13: 00000174 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 10: 000000d9 120 FUNC LOCAL DEFAULT 1 hash │ │ │ │ │ + 11: 0000014c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 12: 00000150 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 13: 000001cc 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 14: 00000000 0 SECTION LOCAL DEFAULT 6 .data.rel.ro.local │ │ │ │ │ 15: 00000000 0 NOTYPE LOCAL DEFAULT 6 $d │ │ │ │ │ 16: 00000000 20 OBJECT LOCAL DEFAULT 6 padt │ │ │ │ │ 17: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_free │ │ │ │ │ 18: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ifree │ │ │ │ │ 19: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_size │ │ │ │ │ 20: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ialignment_of │ │ │ │ │ 21: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_rank │ │ │ │ │ 22: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_block │ │ │ │ │ 23: 00000000 0 NOTYPE GLOBAL DEFAULT UND memset │ │ │ │ │ 24: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_md5puts │ │ │ │ │ 25: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_md5int │ │ │ │ │ 26: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_md5INT │ │ │ │ │ - 27: 00000111 104 FUNC GLOBAL DEFAULT 1 fftw_mpi_mkproblem_transpose │ │ │ │ │ + 27: 00000151 128 FUNC GLOBAL DEFAULT 1 fftw_mpi_mkproblem_transpose │ │ │ │ │ 28: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mkproblem │ │ │ │ │ 29: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_dup │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,32 +1,32 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x4fc contains 22 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x554 contains 22 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000006 0000110a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -00000022 0000130a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000030 0000140a R_ARM_THM_CALL 00000000 fftw_ialignment_of │ │ │ │ │ -00000038 0000140a R_ARM_THM_CALL 00000000 fftw_ialignment_of │ │ │ │ │ -00000070 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -00000088 0000150a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000092 0000160a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -000000a4 0000170a R_ARM_THM_CALL 00000000 memset │ │ │ │ │ -000000ba 0000180a R_ARM_THM_CALL 00000000 fftw_md5puts │ │ │ │ │ -000000cc 0000190a R_ARM_THM_CALL 00000000 fftw_md5int │ │ │ │ │ -000000d4 00001a0a R_ARM_THM_CALL 00000000 fftw_md5INT │ │ │ │ │ -000000dc 00001a0a R_ARM_THM_CALL 00000000 fftw_md5INT │ │ │ │ │ -000000e4 00001a0a R_ARM_THM_CALL 00000000 fftw_md5INT │ │ │ │ │ -000000ec 00001a0a R_ARM_THM_CALL 00000000 fftw_md5INT │ │ │ │ │ -000000f4 00001a0a R_ARM_THM_CALL 00000000 fftw_md5INT │ │ │ │ │ -000000fc 0000130a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000104 0000190a R_ARM_THM_CALL 00000000 fftw_md5int │ │ │ │ │ -0000010c 00000903 R_ARM_REL32 0000002c .LC1 │ │ │ │ │ -00000126 00001c0a R_ARM_THM_CALL 00000000 fftw_mkproblem │ │ │ │ │ -00000168 00001d0a R_ARM_THM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ -00000174 00000e03 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -00000010 0000121e R_ARM_THM_JUMP24 00000000 fftw_ifree │ │ │ │ │ +0000000a 0000110a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +00000032 0000130a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000042 0000140a R_ARM_THM_CALL 00000000 fftw_ialignment_of │ │ │ │ │ +0000004e 0000140a R_ARM_THM_CALL 00000000 fftw_ialignment_of │ │ │ │ │ +0000008c 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +000000aa 0000150a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000000b4 0000160a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +000000ca 0000170a R_ARM_THM_CALL 00000000 memset │ │ │ │ │ +000000ec 0000180a R_ARM_THM_CALL 00000000 fftw_md5puts │ │ │ │ │ +00000102 0000190a R_ARM_THM_CALL 00000000 fftw_md5int │ │ │ │ │ +0000010a 00001a0a R_ARM_THM_CALL 00000000 fftw_md5INT │ │ │ │ │ +00000112 00001a0a R_ARM_THM_CALL 00000000 fftw_md5INT │ │ │ │ │ +0000011a 00001a0a R_ARM_THM_CALL 00000000 fftw_md5INT │ │ │ │ │ +00000122 00001a0a R_ARM_THM_CALL 00000000 fftw_md5INT │ │ │ │ │ +0000012a 00001a0a R_ARM_THM_CALL 00000000 fftw_md5INT │ │ │ │ │ +00000132 0000130a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +0000013a 0000190a R_ARM_THM_CALL 00000000 fftw_md5int │ │ │ │ │ +0000014c 00000903 R_ARM_REL32 0000002c .LC1 │ │ │ │ │ +00000174 00001c0a R_ARM_THM_CALL 00000000 fftw_mkproblem │ │ │ │ │ +000001b4 00001d0a R_ARM_THM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ +000001cc 00000e03 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +00000016 0000121e R_ARM_THM_JUMP24 00000000 fftw_ifree │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0x5ac contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0x604 contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000a02 R_ARM_ABS32 000000ad hash │ │ │ │ │ -00000008 00000802 R_ARM_ABS32 00000075 zero │ │ │ │ │ -0000000c 00000502 R_ARM_ABS32 00000015 print │ │ │ │ │ +00000004 00000a02 R_ARM_ABS32 000000d9 hash │ │ │ │ │ +00000008 00000802 R_ARM_ABS32 00000091 zero │ │ │ │ │ +0000000c 00000502 R_ARM_ABS32 0000001d print │ │ │ │ │ 00000010 00000102 R_ARM_ABS32 00000001 destroy │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,114 +1,123 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - adds r0, #36 @ 0x24 │ │ │ │ │ + add.w r0, r0, #36 @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_free │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r4, lr} │ │ │ │ │ + ldrd r4, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_ifree │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -00000014 : │ │ │ │ │ +0000001c : │ │ │ │ │ print(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ sub sp, #40 @ 0x28 │ │ │ │ │ ldr r0, [r0, #36] @ 0x24 │ │ │ │ │ add r1, sp, #36 @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ - ldr.w r8, [r5] │ │ │ │ │ ldrd r0, r6, [r4, #16] │ │ │ │ │ - subs r6, r6, r0 │ │ │ │ │ + ldr.w r8, [r5] │ │ │ │ │ + sub.w r6, r6, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ialignment_of │ │ │ │ │ mov r7, r0 │ │ │ │ │ ldr r0, [r4, #20] │ │ │ │ │ + clz r6, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ialignment_of │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ + mov.w r6, r6, lsr #5 │ │ │ │ │ + ldr r1, [pc, #48] @ (8c ) │ │ │ │ │ + mov r2, r6 │ │ │ │ │ str r3, [sp, #24] │ │ │ │ │ - clz r6, r6 │ │ │ │ │ - ldr r1, [pc, #40] @ (70 ) │ │ │ │ │ ldr r3, [r4, #32] │ │ │ │ │ - lsrs r6, r6, #5 │ │ │ │ │ - str r3, [sp, #20] │ │ │ │ │ - mov r2, r6 │ │ │ │ │ add r1, pc │ │ │ │ │ + str r3, [sp, #20] │ │ │ │ │ ldr r3, [r4, #28] │ │ │ │ │ str r3, [sp, #16] │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ strd r0, r3, [sp] │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r0, r5 │ │ │ │ │ blx r8 │ │ │ │ │ add sp, #40 @ 0x28 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, pc} │ │ │ │ │ - nop │ │ │ │ │ - .word 0x0000001e │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + ldmia.w sp!, {r8, pc} │ │ │ │ │ + .word 0x00000028 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ -00000074 : │ │ │ │ │ +00000090 : │ │ │ │ │ zero(): │ │ │ │ │ ldr r2, [r0, #4] │ │ │ │ │ - ldr r3, [r0, #12] │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, r5, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r6, [r0, #16] │ │ │ │ │ + strd r6, lr, [sp, #8] │ │ │ │ │ sub sp, #8 │ │ │ │ │ + ldrd r3, r6, [r0, #12] │ │ │ │ │ + add r1, sp, #4 │ │ │ │ │ ldr r0, [r0, #36] @ 0x24 │ │ │ │ │ mul.w r5, r3, r2 │ │ │ │ │ - add r1, sp, #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ ldr r2, [sp, #4] │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ mul.w r0, r5, r0 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - ble.n a8 │ │ │ │ │ - lsls r2, r0, #3 │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + ble.n ce │ │ │ │ │ + mov.w r2, r0, lsl #3 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL memset │ │ │ │ │ add sp, #8 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + pop {r6, pc} │ │ │ │ │ │ │ │ │ │ -000000ac : │ │ │ │ │ +000000d8 : │ │ │ │ │ hash(): │ │ │ │ │ - push {r4, r5, lr} │ │ │ │ │ + str.w r4, [sp, #-12]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - ldr r1, [pc, #88] @ (10c ) │ │ │ │ │ + ldr r1, [pc, #108] @ (14c ) │ │ │ │ │ + strd r5, lr, [sp, #4] │ │ │ │ │ sub sp, #12 │ │ │ │ │ + mov r5, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_md5puts │ │ │ │ │ - mov r0, r4 │ │ │ │ │ ldrd r1, r3, [r5, #16] │ │ │ │ │ - subs r1, r1, r3 │ │ │ │ │ + mov r0, r4 │ │ │ │ │ + sub.w r1, r1, r3 │ │ │ │ │ clz r1, r1 │ │ │ │ │ - lsrs r1, r1, #5 │ │ │ │ │ + mov.w r1, r1, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_md5int │ │ │ │ │ ldr r1, [r5, #4] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_md5INT │ │ │ │ │ ldr r1, [r5, #8] │ │ │ │ │ @@ -123,65 +132,72 @@ │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_md5INT │ │ │ │ │ ldr r1, [r5, #32] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_md5INT │ │ │ │ │ - add r1, sp, #4 │ │ │ │ │ ldr r0, [r5, #36] @ 0x24 │ │ │ │ │ + add r1, sp, #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #4] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_md5int │ │ │ │ │ add sp, #12 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ - .word 0x00000050 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + nop │ │ │ │ │ + .word 0x0000005e │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ │ │ │ │ │ -00000110 : │ │ │ │ │ +00000150 : │ │ │ │ │ fftw_mpi_mkproblem_transpose(): │ │ │ │ │ - stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + strd r3, r4, [sp, #-32]! │ │ │ │ │ + strd r5, r6, [sp, #8] │ │ │ │ │ mov r5, r1 │ │ │ │ │ - ldr r1, [pc, #92] @ (174 ) │ │ │ │ │ mov r6, r0 │ │ │ │ │ - movs r0, #40 @ 0x28 │ │ │ │ │ - add r1, pc │ │ │ │ │ - ldr.w r9, [sp, #48] @ 0x30 │ │ │ │ │ + ldr r1, [pc, #108] @ (1cc ) │ │ │ │ │ + mov.w r0, #40 @ 0x28 │ │ │ │ │ + strd r7, r8, [sp, #16] │ │ │ │ │ mov r8, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + strd r9, lr, [sp, #24] │ │ │ │ │ + ldr.w r9, [sp, #48] @ 0x30 │ │ │ │ │ + add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkproblem │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ - str r3, [r0, #20] │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ add.w r1, r0, #36 @ 0x24 │ │ │ │ │ - strd r6, r5, [r0, #8] │ │ │ │ │ + strd r8, r6, [r0, #4] │ │ │ │ │ + strd r5, r7, [r0, #12] │ │ │ │ │ + str r3, [r0, #20] │ │ │ │ │ + ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ cmp r6, r3 │ │ │ │ │ - str.w r8, [r0, #4] │ │ │ │ │ it ge │ │ │ │ │ movge r6, r3 │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ - str r7, [r0, #16] │ │ │ │ │ cmp r5, r3 │ │ │ │ │ - str r6, [r0, #28] │ │ │ │ │ it ge │ │ │ │ │ movge r5, r3 │ │ │ │ │ cmp r6, #1 │ │ │ │ │ it eq │ │ │ │ │ orreq.w r9, r9, #4 │ │ │ │ │ cmp r5, #1 │ │ │ │ │ it eq │ │ │ │ │ orreq.w r9, r9, #8 │ │ │ │ │ - str r5, [r0, #32] │ │ │ │ │ - str.w r9, [r0, #24] │ │ │ │ │ + strd r6, r5, [r0, #28] │ │ │ │ │ ldr r0, [sp, #44] @ 0x2c │ │ │ │ │ + str.w r9, [r4, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_dup │ │ │ │ │ + ldrd r5, r6, [sp, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ - nop │ │ │ │ │ - .word 0x00000054 │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + ldrd r7, r8, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldmia.w sp!, {r9, pc} │ │ │ │ │ + .word 0x00000056 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ ├── transpose-solve.o │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,10 +1,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftw_mpi_transpose_solve(): │ │ │ │ │ - ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ ldrd r1, r2, [r1, #16] │ │ │ │ │ + ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ bx r3 │ │ │ ├── dft-serial.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 2028 (bytes into file) │ │ │ │ │ + Start of section headers: 2080 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 15 │ │ │ │ │ Section header string table index: 14 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,24 +1,24 @@ │ │ │ │ │ -There are 15 section headers, starting at offset 0x7ec: │ │ │ │ │ +There are 15 section headers, starting at offset 0x820: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 0001f8 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 00067c 0000c0 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 00022c 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 00022c 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 00022c 000018 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 000244 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 00073c 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 000254 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 00075c 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 000260 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000260 000033 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 000294 000260 10 13 20 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 0004f4 000187 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 000764 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 00022c 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 0006b0 0000c0 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000260 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000260 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 000260 000018 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 000278 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 000770 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 000288 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 000790 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 000294 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000294 000033 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 0002c8 000260 10 13 20 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 000528 000187 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 000798 000087 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,24 +1,24 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 38 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ - 1: 00000001 46 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ + 1: 00000001 48 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ 2: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ 3: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 4: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ 5: 00000031 20 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ 6: 00000040 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 7: 00000044 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ 8: 00000045 6 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ 9: 0000004d 6 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 10: 00000055 340 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 11: 000001a0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 12: 000001a8 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 13: 000001f4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 10: 00000055 380 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 11: 000001c8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 12: 000001d0 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 13: 00000228 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 14: 00000000 0 SECTION LOCAL DEFAULT 6 .data.rel.ro │ │ │ │ │ 15: 00000000 0 NOTYPE LOCAL DEFAULT 6 $d │ │ │ │ │ 16: 00000000 16 OBJECT LOCAL DEFAULT 6 padt.0 │ │ │ │ │ 17: 00000000 0 SECTION LOCAL DEFAULT 8 .data.rel.ro.local │ │ │ │ │ 18: 00000000 0 NOTYPE LOCAL DEFAULT 8 $d │ │ │ │ │ 19: 00000000 12 OBJECT LOCAL DEFAULT 8 sadt.1 │ │ │ │ │ 20: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_plan_destroy_internal │ │ │ │ │ @@ -30,12 +30,12 @@ │ │ │ │ │ 26: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mktensor_1d │ │ │ │ │ 27: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mkproblem_dft_d │ │ │ │ │ 28: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mkplan_d │ │ │ │ │ 29: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_any_true │ │ │ │ │ 30: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mkplan_rdft │ │ │ │ │ 31: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ops_cpy │ │ │ │ │ 32: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mktensor │ │ │ │ │ - 33: 000001a9 46 FUNC GLOBAL DEFAULT 1 fftw_mpi_dft_serial_applicable │ │ │ │ │ - 34: 000001d9 32 FUNC GLOBAL DEFAULT 1 fftw_mpi_dft_serial_register │ │ │ │ │ + 33: 000001d1 56 FUNC GLOBAL DEFAULT 1 fftw_mpi_dft_serial_applicable │ │ │ │ │ + 34: 00000209 36 FUNC GLOBAL DEFAULT 1 fftw_mpi_dft_serial_register │ │ │ │ │ 35: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mksolver │ │ │ │ │ 36: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_solver_register │ │ │ │ │ 37: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_dft_solve │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,38 +1,38 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x67c contains 24 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x6b0 contains 24 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000040 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -00000068 0000160a R_ARM_THM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ -00000080 0000170a R_ARM_THM_CALL 00000000 fftw_extract_reim │ │ │ │ │ -0000008c 0000170a R_ARM_THM_CALL 00000000 fftw_extract_reim │ │ │ │ │ -00000094 0000180a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000000a2 0000190a R_ARM_THM_CALL 00000000 fftw_mktensor_0d │ │ │ │ │ -000000ae 00001a0a R_ARM_THM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ -000000c2 00001b0a R_ARM_THM_CALL 00000000 fftw_mkproblem_dft_d │ │ │ │ │ -000000ca 00001c0a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -000000d8 00001d0a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -000000ea 00001e0a R_ARM_THM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ -0000010c 00001f0a R_ARM_THM_CALL 00000000 fftw_ops_cpy │ │ │ │ │ -0000011c 0000200a R_ARM_THM_CALL 00000000 fftw_mktensor │ │ │ │ │ -00000178 00001a0a R_ARM_THM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ -00000192 0000160a R_ARM_THM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ -000001a0 00000103 R_ARM_REL32 00000001 apply │ │ │ │ │ -000001a4 00000e03 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -000001b6 0000160a R_ARM_THM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ -000001ca 0000160a R_ARM_THM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ -000001e2 0000230a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ -000001f4 00001103 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +00000080 0000160a R_ARM_THM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ +00000098 0000170a R_ARM_THM_CALL 00000000 fftw_extract_reim │ │ │ │ │ +000000a4 0000170a R_ARM_THM_CALL 00000000 fftw_extract_reim │ │ │ │ │ +000000ac 0000180a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000000ba 0000190a R_ARM_THM_CALL 00000000 fftw_mktensor_0d │ │ │ │ │ +000000c8 00001a0a R_ARM_THM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ +000000dc 00001b0a R_ARM_THM_CALL 00000000 fftw_mkproblem_dft_d │ │ │ │ │ +000000e4 00001c0a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +000000f4 00001d0a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +00000108 00001e0a R_ARM_THM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ +00000132 00001f0a R_ARM_THM_CALL 00000000 fftw_ops_cpy │ │ │ │ │ +0000014a 0000200a R_ARM_THM_CALL 00000000 fftw_mktensor │ │ │ │ │ +000001a0 00001a0a R_ARM_THM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ +000001bc 0000160a R_ARM_THM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ +000001c8 00000103 R_ARM_REL32 00000001 apply │ │ │ │ │ +000001cc 00000e03 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +000001e2 0000160a R_ARM_THM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ +000001fa 0000160a R_ARM_THM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ +00000216 0000230a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ +00000228 00001103 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ 00000046 0000141e R_ARM_THM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ 0000004e 0000151e R_ARM_THM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ -000001ee 0000241e R_ARM_THM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ +00000224 0000241e R_ARM_THM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0x73c contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0x770 contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000000 00002502 R_ARM_ABS32 00000000 fftw_mpi_dft_solve │ │ │ │ │ 00000004 00000902 R_ARM_ABS32 0000004d awake │ │ │ │ │ 00000008 00000502 R_ARM_ABS32 00000031 print │ │ │ │ │ 0000000c 00000802 R_ARM_ABS32 00000045 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0x75c contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0x790 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000004 00000a02 R_ARM_ABS32 00000055 mkplan │ │ │ │ ├── strings --all --bytes=8 {} │ │ │ │ │ @@ -1,8 +1,7 @@ │ │ │ │ │ -/JP /IzDyD │ │ │ │ │ (mpi-dft-serial %(%p%)) │ │ │ │ │ fftw_plan_destroy_internal │ │ │ │ │ fftw_plan_awake │ │ │ │ │ fftw_mpi_is_local │ │ │ │ │ fftw_extract_reim │ │ │ │ │ MPI_Comm_rank │ │ │ │ │ fftw_mktensor_0d │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -2,37 +2,36 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply(): │ │ │ │ │ mov ip, r0 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ - ldrd r0, r3, [r0, #64] @ 0x40 │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ sub sp, #8 │ │ │ │ │ ldr.w r4, [ip, #72] @ 0x48 │ │ │ │ │ - mov.w lr, r3, lsl #3 │ │ │ │ │ + ldrd r0, r3, [r0, #64] @ 0x40 │ │ │ │ │ mov.w ip, r4, lsl #3 │ │ │ │ │ + mov.w lr, r3, lsl #3 │ │ │ │ │ add.w r3, r2, ip │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ add.w r3, r2, lr │ │ │ │ │ add.w r2, r1, ip │ │ │ │ │ ldr r4, [r0, #56] @ 0x38 │ │ │ │ │ add r1, lr │ │ │ │ │ blx r4 │ │ │ │ │ add sp, #8 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ - nop │ │ │ │ │ │ │ │ │ │ 00000030 : │ │ │ │ │ print(): │ │ │ │ │ mov r2, r0 │ │ │ │ │ - ldr r3, [r1, #0] │ │ │ │ │ mov r0, r1 │ │ │ │ │ ldr r1, [pc, #8] @ (40 ) │ │ │ │ │ + ldr r3, [r0, #0] │ │ │ │ │ ldr r2, [r2, #64] @ 0x40 │ │ │ │ │ add r1, pc │ │ │ │ │ bx r3 │ │ │ │ │ nop │ │ │ │ │ .word 0x00000002 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ @@ -48,197 +47,200 @@ │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_plan_awake │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ 00000054 : │ │ │ │ │ mkplan(): │ │ │ │ │ - push {r4, r5, r6, r7, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ ldr r1, [r1, #24] │ │ │ │ │ - sub sp, #36 @ 0x24 │ │ │ │ │ - cbz r1, 64 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ - add sp, #36 @ 0x24 │ │ │ │ │ - pop {r4, r5, r6, r7, pc} │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ + sub sp, #32 │ │ │ │ │ + cbz r1, 7c │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + ldmia.w sp!, {r8, pc} │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mov r6, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.w 18e │ │ │ │ │ + bne.w 1b6 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.n 5e │ │ │ │ │ + bne.n 68 │ │ │ │ │ ldr r1, [r4, #12] │ │ │ │ │ add r3, sp, #20 │ │ │ │ │ - ldr r0, [r4, #20] │ │ │ │ │ add r2, sp, #16 │ │ │ │ │ + ldr r0, [r4, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_extract_reim │ │ │ │ │ - add r3, sp, #28 │ │ │ │ │ ldrd r1, r0, [r4, #16] │ │ │ │ │ + add r3, sp, #28 │ │ │ │ │ add r2, sp, #24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_extract_reim │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ add r1, sp, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ - cbnz r3, a2 │ │ │ │ │ + cbnz r3, ba │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bgt.n 116 │ │ │ │ │ + bgt.n 13a │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor_0d │ │ │ │ │ - movs r2, #0 │ │ │ │ │ - mov r1, r2 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ mov r5, r0 │ │ │ │ │ + mov r1, r2 │ │ │ │ │ mov r0, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor_1d │ │ │ │ │ + ldr r2, [sp, #16] │ │ │ │ │ + mov r1, r0 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - mov r1, r0 │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ - mov r0, r5 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - ldrd r2, r3, [sp, #16] │ │ │ │ │ + ldr r3, [sp, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_d │ │ │ │ │ mov r6, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.n 5e │ │ │ │ │ - ldr r2, [pc, #188] @ (1a0 ) │ │ │ │ │ - movs r0, #80 @ 0x50 │ │ │ │ │ - ldr r1, [pc, #188] @ (1a4 ) │ │ │ │ │ + bne.n 68 │ │ │ │ │ + ldr r2, [pc, #200] @ (1c8 ) │ │ │ │ │ + mov.w r0, #80 @ 0x50 │ │ │ │ │ + ldr r1, [pc, #200] @ (1cc ) │ │ │ │ │ add r2, pc │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_rdft │ │ │ │ │ ldr r2, [r4, #16] │ │ │ │ │ - ldr r3, [sp, #24] │ │ │ │ │ mov r5, r0 │ │ │ │ │ add.w r1, r0, #8 │ │ │ │ │ - str r6, [r0, #64] @ 0x40 │ │ │ │ │ - subs r3, r3, r2 │ │ │ │ │ - asrs r3, r3, #3 │ │ │ │ │ - str r3, [r0, #68] @ 0x44 │ │ │ │ │ - ldr r3, [sp, #28] │ │ │ │ │ - subs r3, r3, r2 │ │ │ │ │ - asrs r3, r3, #3 │ │ │ │ │ - str r3, [r0, #72] @ 0x48 │ │ │ │ │ add.w r0, r6, #8 │ │ │ │ │ + ldr r3, [sp, #24] │ │ │ │ │ + sub.w r3, r3, r2 │ │ │ │ │ + mov.w r3, r3, asr #3 │ │ │ │ │ + strd r6, r3, [r5, #64] @ 0x40 │ │ │ │ │ + ldr r3, [sp, #28] │ │ │ │ │ + sub.w r3, r3, r2 │ │ │ │ │ + mov.w r3, r3, asr #3 │ │ │ │ │ + str r3, [r5, #72] @ 0x48 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ops_cpy │ │ │ │ │ mov r0, r5 │ │ │ │ │ - add sp, #36 @ 0x24 │ │ │ │ │ - pop {r4, r5, r6, r7, pc} │ │ │ │ │ + b.n 6c │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - ldr r5, [r3, #0] │ │ │ │ │ - mov r0, r5 │ │ │ │ │ + ldr.w r8, [r3] │ │ │ │ │ + mov r0, r8 │ │ │ │ │ + add.w r5, r8, #4294967295 @ 0xffffffff │ │ │ │ │ + add.w r8, r8, r8, lsl #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor │ │ │ │ │ - add.w ip, r5, #4294967295 @ 0xffffffff │ │ │ │ │ - movs r3, #12 │ │ │ │ │ + ldrd r2, ip, [r4, #4] │ │ │ │ │ mov r7, r0 │ │ │ │ │ - ldr r0, [r4, #8] │ │ │ │ │ - cmp.w ip, #0 │ │ │ │ │ - mul.w r2, r3, ip │ │ │ │ │ - mov.w r1, r0, lsl #1 │ │ │ │ │ - add.w lr, r7, r2 │ │ │ │ │ - str.w r1, [lr, #12] │ │ │ │ │ - mul.w lr, r3, r5 │ │ │ │ │ - ldr r5, [r4, #4] │ │ │ │ │ + add.w r0, r5, r5, lsl #1 │ │ │ │ │ + mov.w lr, r8, lsl #2 │ │ │ │ │ + cmp r5, #0 │ │ │ │ │ + mov.w r0, r0, lsl #2 │ │ │ │ │ + add.w r3, r7, r0 │ │ │ │ │ + add r0, r2 │ │ │ │ │ + mov.w r1, ip, lsl #1 │ │ │ │ │ + ldr r0, [r0, #4] │ │ │ │ │ + str r1, [r3, #12] │ │ │ │ │ add.w r3, r7, lr │ │ │ │ │ - add r2, r5 │ │ │ │ │ - str.w r1, [r3, #-4] │ │ │ │ │ - ldr r2, [r2, #4] │ │ │ │ │ - str.w r2, [r3, #-8] │ │ │ │ │ - ble.n 174 │ │ │ │ │ - add r5, lr │ │ │ │ │ - mul.w r1, r2, r1 │ │ │ │ │ - subs r5, #12 │ │ │ │ │ + strd r0, r1, [r3, #-8] │ │ │ │ │ + ble.n 198 │ │ │ │ │ + add r2, lr │ │ │ │ │ + mul.w r1, r0, r1 │ │ │ │ │ + subs r5, #1 │ │ │ │ │ + sub.w r2, r2, #12 │ │ │ │ │ strd r1, r1, [r3, #-16] │ │ │ │ │ - subs.w ip, ip, #1 │ │ │ │ │ sub.w r3, r3, #12 │ │ │ │ │ - ldr.w r2, [r5, #-8] │ │ │ │ │ - str.w r2, [r3, #-8] │ │ │ │ │ - bne.n 158 │ │ │ │ │ - movs r2, #2 │ │ │ │ │ + ldr.w r0, [r2, #-8] │ │ │ │ │ + str.w r0, [r3, #-8] │ │ │ │ │ + bne.n 17c │ │ │ │ │ + mov.w r2, #2 │ │ │ │ │ + mov r0, ip │ │ │ │ │ mov r1, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor_1d │ │ │ │ │ + ldr r2, [sp, #16] │ │ │ │ │ + mov r1, r0 │ │ │ │ │ + mov r0, r7 │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - mov r1, r0 │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ - mov r0, r7 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - ldrd r2, r3, [sp, #16] │ │ │ │ │ - b.n c2 │ │ │ │ │ + ldr r3, [sp, #20] │ │ │ │ │ + b.n dc │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.w 72 │ │ │ │ │ - b.n 78 │ │ │ │ │ - nop │ │ │ │ │ - .word 0x000000b6 │ │ │ │ │ + beq.w 8a │ │ │ │ │ + b.n 90 │ │ │ │ │ + .word 0x000000c0 │ │ │ │ │ R_ARM_REL32 apply │ │ │ │ │ - .word 0x000000b8 │ │ │ │ │ + .word 0x000000c2 │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -000001a8 : │ │ │ │ │ +000001d0 : │ │ │ │ │ fftw_mpi_dft_serial_applicable(): │ │ │ │ │ ldr r1, [r0, #24] │ │ │ │ │ - cbz r1, 1b0 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + cbz r1, 1da │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ bx lr │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_is_local │ │ │ │ │ - cbnz r0, 1c6 │ │ │ │ │ + cbnz r0, 1f4 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ clz r0, r0 │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n 1bc │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + beq.n 1e8 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ - nop │ │ │ │ │ │ │ │ │ │ -000001d8 : │ │ │ │ │ +00000208 : │ │ │ │ │ fftw_mpi_dft_serial_register(): │ │ │ │ │ - ldr r1, [pc, #24] @ (1f4 ) │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + ldr r1, [pc, #28] @ (228 ) │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov.w r0, #8 │ │ │ │ │ add r1, pc │ │ │ │ │ - movs r0, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mksolver │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r4, lr} │ │ │ │ │ + ldrd r4, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_solver_register │ │ │ │ │ - nop │ │ │ │ │ - .word 0x00000012 │ │ │ │ │ + .word 0x00000010 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ ├── dft-rank-geq2.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 2744 (bytes into file) │ │ │ │ │ + Start of section headers: 2872 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 15 │ │ │ │ │ Section header string table index: 14 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,24 +1,24 @@ │ │ │ │ │ -There are 15 section headers, starting at offset 0xab8: │ │ │ │ │ +There are 15 section headers, starting at offset 0xb38: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 000394 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0008e8 000120 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 0003c8 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 0003c8 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 0003c8 00002a 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 0003f2 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 000a08 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 000402 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 000a28 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 00040e 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 00040e 000033 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 000444 0002c0 10 13 22 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 000704 0001e1 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 000a30 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000414 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000968 000120 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000448 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000448 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 000448 00002a 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 000472 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 000a88 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 000482 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 000aa8 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 00048e 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 00048e 000033 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 0004c4 0002c0 10 13 22 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 000784 0001e1 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 000ab0 000087 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,26 +1,26 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 44 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ - 1: 00000001 76 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ + 1: 00000001 98 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ 2: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ 3: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 4: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ 5: 00000004 0 NOTYPE LOCAL DEFAULT 5 .LC1 │ │ │ │ │ 6: 00000008 0 NOTYPE LOCAL DEFAULT 5 .LC2 │ │ │ │ │ - 7: 0000004d 56 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 8: 00000078 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 9: 00000084 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 10: 00000085 20 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 11: 00000099 684 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 12: 0000033c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 13: 00000344 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 14: 00000345 24 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 15: 00000390 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 7: 00000065 56 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 8: 00000090 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 0000009c 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 10: 0000009d 24 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 11: 000000b5 752 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 12: 0000039c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 13: 000003a4 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 14: 000003a5 36 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 15: 00000410 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 16: 00000000 0 SECTION LOCAL DEFAULT 6 .data.rel.ro │ │ │ │ │ 17: 00000000 0 NOTYPE LOCAL DEFAULT 6 $d │ │ │ │ │ 18: 00000000 16 OBJECT LOCAL DEFAULT 6 padt.0 │ │ │ │ │ 19: 00000000 0 SECTION LOCAL DEFAULT 8 .data.rel.ro.local │ │ │ │ │ 20: 00000000 0 NOTYPE LOCAL DEFAULT 8 $d │ │ │ │ │ 21: 00000000 12 OBJECT LOCAL DEFAULT 8 sadt.1 │ │ │ │ │ 22: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_plan_destroy_internal │ │ │ │ │ @@ -37,11 +37,11 @@ │ │ │ │ │ 33: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_any_true │ │ │ │ │ 34: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_mkdtensor │ │ │ │ │ 35: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_mkproblem_dft_d │ │ │ │ │ 36: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mkplan_rdft │ │ │ │ │ 37: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ops_add │ │ │ │ │ 38: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_dft_serial_applicable │ │ │ │ │ 39: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_plan_awake │ │ │ │ │ - 40: 0000035d 56 FUNC GLOBAL DEFAULT 1 fftw_mpi_dft_rank_geq2_register │ │ │ │ │ + 40: 000003c9 76 FUNC GLOBAL DEFAULT 1 fftw_mpi_dft_rank_geq2_register │ │ │ │ │ 41: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mksolver │ │ │ │ │ 42: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_solver_register │ │ │ │ │ 43: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_dft_solve │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,50 +1,50 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x8e8 contains 36 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x968 contains 36 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000078 00000503 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ -0000007c 00000603 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -00000080 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -0000008a 0000160a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000000d0 0000170a R_ARM_THM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ -000000de 0000170a R_ARM_THM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ -000000fc 0000180a R_ARM_THM_CALL 00000000 fftw_extract_reim │ │ │ │ │ -0000010c 0000180a R_ARM_THM_CALL 00000000 fftw_extract_reim │ │ │ │ │ -0000012e 0000190a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000136 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000140 00001b0a R_ARM_THM_CALL 00000000 fftw_mktensor │ │ │ │ │ -00000216 00001c0a R_ARM_THM_CALL 00000000 fftw_tensor_sz │ │ │ │ │ -0000022c 00001d0a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -0000023a 00001e0a R_ARM_THM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ -0000024e 00001f0a R_ARM_THM_CALL 00000000 fftw_mkproblem_dft_d │ │ │ │ │ -00000256 0000200a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -00000264 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -0000026e 0000220a R_ARM_THM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ -000002a0 0000230a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_dft_d │ │ │ │ │ -000002a8 0000200a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -000002b6 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -000002c6 0000240a R_ARM_THM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ -00000302 0000250a R_ARM_THM_CALL 00000000 fftw_ops_add │ │ │ │ │ -00000318 0000160a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -0000031e 0000160a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -0000032e 0000260a R_ARM_THM_CALL 00000000 fftw_mpi_dft_serial_applicable │ │ │ │ │ -0000033c 00000103 R_ARM_REL32 00000001 apply │ │ │ │ │ -00000340 00001003 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -0000034c 0000270a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -00000368 0000290a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ -00000374 00002a0a R_ARM_THM_CALL 00000000 fftw_solver_register │ │ │ │ │ -0000037c 0000290a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ -00000390 00001303 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -00000094 0000161e R_ARM_THM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000358 0000271e R_ARM_THM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ -0000038c 00002a1e R_ARM_THM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ +00000090 00000503 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ +00000094 00000603 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +00000098 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +000000a4 0000160a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000114 0000170a R_ARM_THM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ +00000124 0000170a R_ARM_THM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ +00000142 0000180a R_ARM_THM_CALL 00000000 fftw_extract_reim │ │ │ │ │ +00000150 0000180a R_ARM_THM_CALL 00000000 fftw_extract_reim │ │ │ │ │ +00000174 0000190a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +0000017c 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000188 00001b0a R_ARM_THM_CALL 00000000 fftw_mktensor │ │ │ │ │ +0000026c 00001c0a R_ARM_THM_CALL 00000000 fftw_tensor_sz │ │ │ │ │ +00000282 00001d0a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00000290 00001e0a R_ARM_THM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ +000002a4 00001f0a R_ARM_THM_CALL 00000000 fftw_mkproblem_dft_d │ │ │ │ │ +000002ac 0000200a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +000002bc 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +000002c8 0000220a R_ARM_THM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ +000002f8 0000230a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_dft_d │ │ │ │ │ +00000300 0000200a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +00000310 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +00000322 0000240a R_ARM_THM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ +00000368 0000250a R_ARM_THM_CALL 00000000 fftw_ops_add │ │ │ │ │ +0000037a 0000160a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000380 0000160a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000390 0000260a R_ARM_THM_CALL 00000000 fftw_mpi_dft_serial_applicable │ │ │ │ │ +0000039c 00000103 R_ARM_REL32 00000001 apply │ │ │ │ │ +000003a0 00001003 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +000003b2 0000270a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +000003dc 0000290a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ +000003ea 00002a0a R_ARM_THM_CALL 00000000 fftw_solver_register │ │ │ │ │ +000003f4 0000290a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ +00000410 00001303 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +000000b0 0000161e R_ARM_THM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000003c4 0000271e R_ARM_THM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ +0000040c 00002a1e R_ARM_THM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0xa08 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0xa88 contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000000 00002b02 R_ARM_ABS32 00000000 fftw_mpi_dft_solve │ │ │ │ │ -00000004 00000e02 R_ARM_ABS32 00000345 awake │ │ │ │ │ -00000008 00000702 R_ARM_ABS32 0000004d print │ │ │ │ │ -0000000c 00000a02 R_ARM_ABS32 00000085 destroy │ │ │ │ │ +00000004 00000e02 R_ARM_ABS32 000003a5 awake │ │ │ │ │ +00000008 00000702 R_ARM_ABS32 00000065 print │ │ │ │ │ +0000000c 00000a02 R_ARM_ABS32 0000009d destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0xa28 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0xaa8 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000b02 R_ARM_ABS32 00000099 mkplan │ │ │ │ │ +00000004 00000b02 R_ARM_ABS32 000000b5 mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,395 +1,413 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply(): │ │ │ │ │ - push {r4, r5, r6, r7, lr} │ │ │ │ │ + str.w r4, [sp, #-20]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r5, r1 │ │ │ │ │ - ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ - ldr r2, [r4, #76] @ 0x4c │ │ │ │ │ + ldrd r3, r2, [r4, #72] @ 0x48 │ │ │ │ │ + strd r7, lr, [sp, #12] │ │ │ │ │ sub sp, #12 │ │ │ │ │ - ldr r3, [r4, #72] @ 0x48 │ │ │ │ │ - ldr r7, [r0, #56] @ 0x38 │ │ │ │ │ + ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + mov.w r3, r3, lsl #3 │ │ │ │ │ mov.w ip, r2, lsl #3 │ │ │ │ │ - lsls r3, r3, #3 │ │ │ │ │ - add.w r2, r1, ip │ │ │ │ │ add.w lr, r1, r3 │ │ │ │ │ + ldr r7, [r0, #56] @ 0x38 │ │ │ │ │ + add.w r2, r1, ip │ │ │ │ │ ldr r1, [r4, #80] @ 0x50 │ │ │ │ │ - cbz r1, 42 │ │ │ │ │ + cbz r1, 58 │ │ │ │ │ add.w r5, r6, ip │ │ │ │ │ - str r5, [sp, #0] │ │ │ │ │ - mov r5, r6 │ │ │ │ │ add r3, r6 │ │ │ │ │ mov r1, lr │ │ │ │ │ + str r5, [sp, #0] │ │ │ │ │ + mov r5, r6 │ │ │ │ │ blx r7 │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ add sp, #12 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + ldr.w lr, [sp], #4 │ │ │ │ │ bx r3 │ │ │ │ │ mov r3, lr │ │ │ │ │ mov r1, lr │ │ │ │ │ str r2, [sp, #0] │ │ │ │ │ blx r7 │ │ │ │ │ - b.n 32 │ │ │ │ │ + b.n 3e │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -0000004c : │ │ │ │ │ +00000064 : │ │ │ │ │ print(): │ │ │ │ │ mov r3, r0 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r0, r1 │ │ │ │ │ - ldr r4, [r1, #0] │ │ │ │ │ - sub sp, #8 │ │ │ │ │ ldr r2, [r3, #80] @ 0x50 │ │ │ │ │ + sub sp, #8 │ │ │ │ │ + ldr r4, [r1, #0] │ │ │ │ │ cmp r2, #2 │ │ │ │ │ - beq.n 70 │ │ │ │ │ - ldr r2, [pc, #24] @ (78 ) │ │ │ │ │ + beq.n 8a │ │ │ │ │ + ldr r2, [pc, #24] @ (90 ) │ │ │ │ │ add r2, pc │ │ │ │ │ ldr r1, [r3, #68] @ 0x44 │ │ │ │ │ str r1, [sp, #0] │ │ │ │ │ - ldr r1, [pc, #20] @ (7c ) │ │ │ │ │ + ldr r1, [pc, #20] @ (94 ) │ │ │ │ │ ldr r3, [r3, #64] @ 0x40 │ │ │ │ │ add r1, pc │ │ │ │ │ blx r4 │ │ │ │ │ add sp, #8 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ - ldr r2, [pc, #12] @ (80 ) │ │ │ │ │ + ldr r2, [pc, #12] @ (98 ) │ │ │ │ │ add r2, pc │ │ │ │ │ - b.n 60 │ │ │ │ │ - nop │ │ │ │ │ - .word 0x00000016 │ │ │ │ │ + b.n 7a │ │ │ │ │ + .word 0x00000014 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x00000010 │ │ │ │ │ + .word 0x0000000e │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ - .word 0x0000000a │ │ │ │ │ + .word 0x00000008 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ -00000084 : │ │ │ │ │ +0000009c : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - ldmia.w sp!, {r4, lr} │ │ │ │ │ + ldrd r4, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_plan_destroy_internal │ │ │ │ │ │ │ │ │ │ -00000098 : │ │ │ │ │ +000000b4 : │ │ │ │ │ mkplan(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ ldr r1, [r1, #4] │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ sub sp, #52 @ 0x34 │ │ │ │ │ ldr r3, [r1, #0] │ │ │ │ │ + str r0, [sp, #20] │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - ble.n ac │ │ │ │ │ + ble.n da │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ - cbz r3, b4 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + cbz r3, f6 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add sp, #52 @ 0x34 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldr r3, [r0, #8] │ │ │ │ │ - mov r7, r0 │ │ │ │ │ mov r6, r2 │ │ │ │ │ - cbz r3, cc │ │ │ │ │ + cbz r3, 10c │ │ │ │ │ ldr.w r3, [r2, #164] @ 0xa4 │ │ │ │ │ lsls r0, r3, #19 │ │ │ │ │ - bmi.n ac │ │ │ │ │ + bmi.n da │ │ │ │ │ ldrd r2, r3, [r4, #12] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - beq.n ac │ │ │ │ │ - movs r2, #0 │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + beq.n da │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n ac │ │ │ │ │ - movs r2, #1 │ │ │ │ │ + beq.n da │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ ldr r1, [r4, #4] │ │ │ │ │ mov r0, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n ac │ │ │ │ │ + beq.n da │ │ │ │ │ ldr.w r3, [r6, #164] @ 0xa4 │ │ │ │ │ lsls r2, r3, #28 │ │ │ │ │ - bmi.w 32c │ │ │ │ │ + bmi.w 38e │ │ │ │ │ ldr.w sl, [r4, #12] │ │ │ │ │ add r3, sp, #28 │ │ │ │ │ - ldr r0, [r4, #20] │ │ │ │ │ add r2, sp, #24 │ │ │ │ │ + ldr r0, [r4, #20] │ │ │ │ │ mov r1, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_extract_reim │ │ │ │ │ - ldr.w fp, [r4, #16] │ │ │ │ │ + ldrd fp, r0, [r4, #16] │ │ │ │ │ add r3, sp, #36 @ 0x24 │ │ │ │ │ - ldr r0, [r4, #20] │ │ │ │ │ add r2, sp, #32 │ │ │ │ │ mov r1, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_extract_reim │ │ │ │ │ - ldr r3, [r7, #8] │ │ │ │ │ + ldr r3, [sp, #20] │ │ │ │ │ + ldr r3, [r3, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.w 30e │ │ │ │ │ + bne.w 370 │ │ │ │ │ ldr.w r3, [r6, #164] @ 0xa4 │ │ │ │ │ lsls r3, r3, #19 │ │ │ │ │ - bmi.w 30e │ │ │ │ │ + bmi.w 370 │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ str r3, [sp, #32] │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ str r3, [sp, #36] @ 0x24 │ │ │ │ │ - add r1, sp, #40 @ 0x28 │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + add r1, sp, #40 @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ - add r1, sp, #44 @ 0x2c │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + add r1, sp, #44 @ 0x2c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r0, [r3, #0] │ │ │ │ │ - subs r0, #1 │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor │ │ │ │ │ ldr.w r9, [r4, #4] │ │ │ │ │ - mov.w ip, #12 │ │ │ │ │ mov r5, r0 │ │ │ │ │ - ldr.w r8, [r9] │ │ │ │ │ - add.w r2, r8, #4294967295 @ 0xffffffff │ │ │ │ │ - sub.w r1, r8, #2 │ │ │ │ │ - mul.w r3, ip, r8 │ │ │ │ │ - mla r2, ip, r2, r9 │ │ │ │ │ - add r0, r3 │ │ │ │ │ - mla r1, ip, r1, r5 │ │ │ │ │ - ldr r2, [r2, #4] │ │ │ │ │ - str.w r2, [r0, #-20] │ │ │ │ │ + ldr.w lr, [r9] │ │ │ │ │ + add.w r2, lr, lr, lsl #1 │ │ │ │ │ + add.w r3, lr, lr, lsl #1 │ │ │ │ │ + add.w r2, r9, r2, lsl #2 │ │ │ │ │ + mov.w r3, r3, lsl #2 │ │ │ │ │ + ldr.w r2, [r2, #-8] │ │ │ │ │ + add.w r1, r0, r3 │ │ │ │ │ + str.w r2, [r1, #-20] │ │ │ │ │ ldr r2, [r4, #8] │ │ │ │ │ - lsls r2, r2, #1 │ │ │ │ │ - str r2, [r1, #12] │ │ │ │ │ - str.w r2, [r0, #-16] │ │ │ │ │ - subs.w r0, r8, #3 │ │ │ │ │ - bmi.n 210 │ │ │ │ │ + mov.w r0, r2, lsl #1 │ │ │ │ │ + add.w r2, lr, lr, lsl #1 │ │ │ │ │ + add.w r2, r5, r2, lsl #2 │ │ │ │ │ + str.w r0, [r2, #-12] │ │ │ │ │ + str.w r0, [r1, #-16] │ │ │ │ │ + subs.w r0, lr, #3 │ │ │ │ │ + bmi.n 266 │ │ │ │ │ + cmp.w lr, #4 │ │ │ │ │ sub.w r2, r3, #16 │ │ │ │ │ sub.w r1, r3, #20 │ │ │ │ │ - cmp.w r8, #4 │ │ │ │ │ - ble.w 328 │ │ │ │ │ + ble.w 38a │ │ │ │ │ + ldr r2, [r5, r2] │ │ │ │ │ + sub.w lr, lr, #5 │ │ │ │ │ + and.w lr, lr, #1 │ │ │ │ │ ldr.w ip, [r5, r1] │ │ │ │ │ - sub.w r8, r8, #5 │ │ │ │ │ add.w r1, r9, r3 │ │ │ │ │ - ldr r2, [r5, r2] │ │ │ │ │ - subs r3, #28 │ │ │ │ │ - and.w r8, r8, #1 │ │ │ │ │ + sub.w r3, r3, #28 │ │ │ │ │ add r3, r5 │ │ │ │ │ - ldr.w lr, [r1, #-20] │ │ │ │ │ + ldr.w r8, [r1, #-20] │ │ │ │ │ mul.w r2, ip, r2 │ │ │ │ │ - strd r2, r2, [r3] │ │ │ │ │ - subs r0, #2 │ │ │ │ │ - str.w lr, [r3, #-4] │ │ │ │ │ - subs r1, #24 │ │ │ │ │ - cmp r0, r8 │ │ │ │ │ + sub.w r0, r0, #2 │ │ │ │ │ + cmp r0, lr │ │ │ │ │ + sub.w r1, r1, #24 │ │ │ │ │ + strd r8, r2, [r3, #-4] │ │ │ │ │ + str r2, [r3, #4] │ │ │ │ │ + mul.w r2, r2, r8 │ │ │ │ │ ldr.w ip, [r1, #-8] │ │ │ │ │ - mul.w r2, r2, lr │ │ │ │ │ - str.w ip, [r3, #-16] │ │ │ │ │ - strd r2, r2, [r3, #-12] │ │ │ │ │ + strd ip, r2, [r3, #-16] │ │ │ │ │ sub.w r3, r3, #24 │ │ │ │ │ - bne.n 1a4 │ │ │ │ │ - mov.w ip, #12 │ │ │ │ │ - add.w lr, r8, #4294967295 @ 0xffffffff │ │ │ │ │ - mul.w r3, ip, r8 │ │ │ │ │ + str r2, [r3, #16] │ │ │ │ │ + bne.n 1f6 │ │ │ │ │ + add.w r3, lr, lr, lsl #1 │ │ │ │ │ + add.w ip, lr, #4294967295 @ 0xffffffff │ │ │ │ │ + mov.w r3, r3, lsl #2 │ │ │ │ │ add r9, r3 │ │ │ │ │ add r3, r5 │ │ │ │ │ - ldrd r2, r0, [r3, #16] │ │ │ │ │ - ldr.w r1, [r9, #16] │ │ │ │ │ - str r1, [r3, #4] │ │ │ │ │ - mul.w r2, r0, r2 │ │ │ │ │ - strd r2, r2, [r3, #8] │ │ │ │ │ - cmp.w r8, #0 │ │ │ │ │ - beq.n 210 │ │ │ │ │ - mla lr, ip, lr, r5 │ │ │ │ │ - ldr.w r0, [r9, #4] │ │ │ │ │ + ldrd r2, r1, [r3, #16] │ │ │ │ │ + ldr.w r0, [r9, #16] │ │ │ │ │ mul.w r2, r1, r2 │ │ │ │ │ - str.w r0, [r3, #-8] │ │ │ │ │ - str.w r2, [lr, #12] │ │ │ │ │ + strd r0, r2, [r3, #4] │ │ │ │ │ + str r2, [r3, #12] │ │ │ │ │ + cmp.w lr, #0 │ │ │ │ │ + beq.n 266 │ │ │ │ │ + ldr.w r1, [r9, #4] │ │ │ │ │ + add.w ip, ip, ip, lsl #1 │ │ │ │ │ + mul.w r2, r0, r2 │ │ │ │ │ + add.w ip, r5, ip, lsl #2 │ │ │ │ │ + str.w r1, [r3, #-8] │ │ │ │ │ + str.w r2, [ip, #12] │ │ │ │ │ str.w r2, [r3, #-4] │ │ │ │ │ mov r0, r5 │ │ │ │ │ mov.w r8, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_tensor_sz │ │ │ │ │ - str r0, [sp, #20] │ │ │ │ │ ldrd r3, r2, [r5, #4] │ │ │ │ │ + mov r7, r0 │ │ │ │ │ mul.w r9, r2, r3 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ ldrd r0, r1, [r3, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ - strd r8, r8, [sp] │ │ │ │ │ mov r2, r9 │ │ │ │ │ mov r1, r9 │ │ │ │ │ + strd r8, r8, [sp] │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor_2d │ │ │ │ │ + ldr r2, [sp, #24] │ │ │ │ │ + mov r1, r0 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - mov r1, r0 │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ - mov r0, r5 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - ldrd r2, r3, [sp, #24] │ │ │ │ │ + ldr r3, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_d │ │ │ │ │ mov r5, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.n 312 │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + bne.n 374 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkdtensor │ │ │ │ │ - ldr r3, [r4, #4] │ │ │ │ │ - add.w lr, r0, #4 │ │ │ │ │ - mov ip, r0 │ │ │ │ │ - adds r3, #4 │ │ │ │ │ - ldmia.w r3, {r0, r1, r2} │ │ │ │ │ - stmia.w lr, {r0, r1, r2} │ │ │ │ │ - movs r3, #16 │ │ │ │ │ + ldr.w ip, [r4, #4] │ │ │ │ │ + mov.w r3, #16 │ │ │ │ │ + ldrd r1, r2, [ip, #4] │ │ │ │ │ + strd r1, r2, [r0, #4] │ │ │ │ │ + ldr.w r2, [ip, #12] │ │ │ │ │ ldr r1, [r4, #8] │ │ │ │ │ + str r2, [r0, #12] │ │ │ │ │ mov r2, sl │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ - ldr r0, [sp, #20] │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ + mul.w r7, r1, r7 │ │ │ │ │ + mov r1, r7 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - mul.w r0, r1, r0 │ │ │ │ │ ldr r3, [r4, #28] │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ mov r3, fp │ │ │ │ │ - mov r1, r0 │ │ │ │ │ - mov r0, ip │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_d │ │ │ │ │ mov sl, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_any_true │ │ │ │ │ - cbnz r0, 316 │ │ │ │ │ - ldr r2, [pc, #124] @ (33c ) │ │ │ │ │ - movs r0, #88 @ 0x58 │ │ │ │ │ - ldr r1, [pc, #124] @ (340 ) │ │ │ │ │ + cbnz r0, 378 │ │ │ │ │ + ldr r2, [pc, #132] @ (39c ) │ │ │ │ │ + mov.w r0, #88 @ 0x58 │ │ │ │ │ + ldr r1, [pc, #128] @ (3a0 ) │ │ │ │ │ add r2, pc │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_rdft │ │ │ │ │ - ldr r3, [r7, #8] │ │ │ │ │ + ldr r3, [sp, #20] │ │ │ │ │ mov r9, r0 │ │ │ │ │ + ldr r3, [r3, #8] │ │ │ │ │ strd r5, sl, [r0, #64] @ 0x40 │ │ │ │ │ - cbnz r3, 324 │ │ │ │ │ + cbnz r3, 386 │ │ │ │ │ ldr.w r3, [r6, #164] @ 0xa4 │ │ │ │ │ and.w r3, r3, #4096 @ 0x1000 │ │ │ │ │ ldr r2, [r4, #12] │ │ │ │ │ add.w r0, r5, #8 │ │ │ │ │ - str.w r3, [r9, #80] @ 0x50 │ │ │ │ │ add.w r1, sl, #8 │ │ │ │ │ + str.w r3, [r9, #80] @ 0x50 │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ - subs r3, r3, r2 │ │ │ │ │ - asrs r3, r3, #3 │ │ │ │ │ + sub.w r3, r3, r2 │ │ │ │ │ + mov.w r3, r3, asr #3 │ │ │ │ │ str.w r3, [r9, #72] @ 0x48 │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ - subs r3, r3, r2 │ │ │ │ │ + sub.w r3, r3, r2 │ │ │ │ │ add.w r2, r9, #8 │ │ │ │ │ - asrs r3, r3, #3 │ │ │ │ │ + mov.w r3, r3, asr #3 │ │ │ │ │ str.w r3, [r9, #76] @ 0x4c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ops_add │ │ │ │ │ mov r0, r9 │ │ │ │ │ - add sp, #52 @ 0x34 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b.n de │ │ │ │ │ mov sl, fp │ │ │ │ │ - b.n 12a │ │ │ │ │ + b.n 170 │ │ │ │ │ mov.w sl, #0 │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ - b.n ac │ │ │ │ │ + b.n da │ │ │ │ │ mov r3, r8 │ │ │ │ │ - b.n 2dc │ │ │ │ │ - mov r8, r0 │ │ │ │ │ - b.n 1d0 │ │ │ │ │ + b.n 33a │ │ │ │ │ + mov lr, r0 │ │ │ │ │ + b.n 222 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dft_serial_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.w f0 │ │ │ │ │ - b.n ac │ │ │ │ │ - nop │ │ │ │ │ - .word 0x00000076 │ │ │ │ │ + beq.w 136 │ │ │ │ │ + b.n da │ │ │ │ │ + .word 0x0000007a │ │ │ │ │ R_ARM_REL32 apply │ │ │ │ │ - .word 0x00000078 │ │ │ │ │ + .word 0x0000007c │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -00000344 : │ │ │ │ │ +000003a4 : │ │ │ │ │ awake(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ + mov r5, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_awake │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, lr} │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + ldrd r5, lr, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_plan_awake │ │ │ │ │ │ │ │ │ │ -0000035c : │ │ │ │ │ +000003c8 : │ │ │ │ │ fftw_mpi_dft_rank_geq2_register(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r5, [pc, #44] @ (390 ) │ │ │ │ │ - movs r0, #12 │ │ │ │ │ + mov.w r0, #12 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ + ldr r5, [pc, #56] @ (410 ) │ │ │ │ │ add r5, pc │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mksolver │ │ │ │ │ - movs r3, #0 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ + str r3, [r1, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_solver_register │ │ │ │ │ mov r1, r5 │ │ │ │ │ - movs r0, #12 │ │ │ │ │ + mov.w r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mksolver │ │ │ │ │ - movs r3, #1 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + ldrd r5, lr, [sp, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, lr} │ │ │ │ │ + str r3, [r1, #8] │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + add sp, #16 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_solver_register │ │ │ │ │ - .word 0x00000028 │ │ │ │ │ + .word 0x00000034 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ ├── dft-rank-geq2-transposed.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 3100 (bytes into file) │ │ │ │ │ + Start of section headers: 3248 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 15 │ │ │ │ │ Section header string table index: 14 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,24 +1,24 @@ │ │ │ │ │ -There are 15 section headers, starting at offset 0xc1c: │ │ │ │ │ +There are 15 section headers, starting at offset 0xcb0: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 000468 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0009fc 000170 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 00049c 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 00049c 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 00049c 00003b 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 0004d7 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 000b6c 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 0004e7 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 000b8c 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 0004f3 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 0004f3 000033 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 000528 0002d0 10 13 22 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 0007f8 000201 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 000b94 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0004fc 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000a90 000170 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000530 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000530 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 000530 00003b 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 00056b 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 000c00 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 00057b 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 000c20 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 000587 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000587 000033 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 0005bc 0002d0 10 13 22 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 00088c 000201 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 000c28 000087 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,26 +1,26 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 45 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ - 1: 00000001 92 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ + 1: 00000001 120 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ 2: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ 3: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 4: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ 5: 00000004 0 NOTYPE LOCAL DEFAULT 5 .LC1 │ │ │ │ │ 6: 00000008 0 NOTYPE LOCAL DEFAULT 5 .LC2 │ │ │ │ │ - 7: 0000005d 60 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 8: 0000008c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 9: 00000098 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 10: 00000099 26 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 11: 000000b5 860 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 12: 00000408 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 13: 00000410 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 14: 00000411 32 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 15: 00000464 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 7: 00000079 60 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 8: 000000a8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 000000b4 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 10: 000000b5 30 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 11: 000000d5 944 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 12: 0000047c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 13: 00000484 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 14: 00000485 44 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 15: 000004f8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 16: 00000000 0 SECTION LOCAL DEFAULT 6 .data.rel.ro │ │ │ │ │ 17: 00000000 0 NOTYPE LOCAL DEFAULT 6 $d │ │ │ │ │ 18: 00000000 16 OBJECT LOCAL DEFAULT 6 padt.0 │ │ │ │ │ 19: 00000000 0 SECTION LOCAL DEFAULT 8 .data.rel.ro.local │ │ │ │ │ 20: 00000000 0 NOTYPE LOCAL DEFAULT 8 $d │ │ │ │ │ 21: 00000000 12 OBJECT LOCAL DEFAULT 8 sadt.1 │ │ │ │ │ 22: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_plan_destroy_internal │ │ │ │ │ @@ -38,11 +38,11 @@ │ │ │ │ │ 34: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_mkproblem_transpose │ │ │ │ │ 35: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mktensor_1d │ │ │ │ │ 36: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mkplan_rdft │ │ │ │ │ 37: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ops_add │ │ │ │ │ 38: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ops_add2 │ │ │ │ │ 39: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_dft_serial_applicable │ │ │ │ │ 40: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_plan_awake │ │ │ │ │ - 41: 00000431 56 FUNC GLOBAL DEFAULT 1 fftw_mpi_dft_rank_geq2_transposed_register │ │ │ │ │ + 41: 000004b1 76 FUNC GLOBAL DEFAULT 1 fftw_mpi_dft_rank_geq2_transposed_register │ │ │ │ │ 42: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mksolver │ │ │ │ │ 43: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_solver_register │ │ │ │ │ 44: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_dft_solve │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,60 +1,60 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x9fc contains 46 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0xa90 contains 46 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -0000008c 00000503 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ -00000090 00000603 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -00000094 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -0000009e 0000160a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000000a4 0000160a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000000ee 0000170a R_ARM_THM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ -000000fc 0000170a R_ARM_THM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ -0000010a 0000180a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -0000012a 0000190a R_ARM_THM_CALL 00000000 fftw_extract_reim │ │ │ │ │ -0000013e 0000190a R_ARM_THM_CALL 00000000 fftw_extract_reim │ │ │ │ │ -00000162 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -0000016a 00001b0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000174 00001c0a R_ARM_THM_CALL 00000000 fftw_mktensor │ │ │ │ │ -0000027e 00001d0a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -0000028c 00001e0a R_ARM_THM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ -000002a0 00001f0a R_ARM_THM_CALL 00000000 fftw_mkproblem_dft_d │ │ │ │ │ -000002a8 0000200a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -000002b6 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -000002e8 0000220a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ -000002f0 0000200a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -000002fe 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -0000030e 0000190a R_ARM_THM_CALL 00000000 fftw_extract_reim │ │ │ │ │ -00000324 00001d0a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00000332 0000230a R_ARM_THM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ -00000344 00001e0a R_ARM_THM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ -00000354 00001f0a R_ARM_THM_CALL 00000000 fftw_mkproblem_dft_d │ │ │ │ │ +000000a8 00000503 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ +000000ac 00000603 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +000000b0 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +000000bc 0000160a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000000c2 0000160a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000136 0000170a R_ARM_THM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ +00000148 0000170a R_ARM_THM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ +00000156 0000180a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +00000176 0000190a R_ARM_THM_CALL 00000000 fftw_extract_reim │ │ │ │ │ +00000188 0000190a R_ARM_THM_CALL 00000000 fftw_extract_reim │ │ │ │ │ +000001ac 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000001b4 00001b0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000001c0 00001c0a R_ARM_THM_CALL 00000000 fftw_mktensor │ │ │ │ │ +000002e4 00001d0a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +000002f2 00001e0a R_ARM_THM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ +00000306 00001f0a R_ARM_THM_CALL 00000000 fftw_mkproblem_dft_d │ │ │ │ │ +0000030e 0000200a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +0000031e 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +00000354 0000220a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ 0000035c 0000200a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -0000036a 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -0000037a 0000240a R_ARM_THM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ -000003b8 0000250a R_ARM_THM_CALL 00000000 fftw_ops_add │ │ │ │ │ -000003c2 0000260a R_ARM_THM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ -000003dc 0000160a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000003e2 0000160a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000003e8 0000160a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000003fa 0000270a R_ARM_THM_CALL 00000000 fftw_mpi_dft_serial_applicable │ │ │ │ │ -00000408 00000103 R_ARM_REL32 00000001 apply │ │ │ │ │ -0000040c 00001003 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -00000418 0000280a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -00000420 0000280a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -0000043c 00002a0a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ -00000448 00002b0a R_ARM_THM_CALL 00000000 fftw_solver_register │ │ │ │ │ -00000450 00002a0a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ -00000464 00001303 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -000000ae 0000161e R_ARM_THM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ -0000042c 0000281e R_ARM_THM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ -00000460 00002b1e R_ARM_THM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ +0000036c 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +0000037c 0000190a R_ARM_THM_CALL 00000000 fftw_extract_reim │ │ │ │ │ +00000392 00001d0a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +000003a2 0000230a R_ARM_THM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ +000003b4 00001e0a R_ARM_THM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ +000003c4 00001f0a R_ARM_THM_CALL 00000000 fftw_mkproblem_dft_d │ │ │ │ │ +000003cc 0000200a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +000003dc 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +000003ee 0000240a R_ARM_THM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ +00000434 0000250a R_ARM_THM_CALL 00000000 fftw_ops_add │ │ │ │ │ +0000043e 0000260a R_ARM_THM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ +00000452 0000160a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000458 0000160a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +0000045e 0000160a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000470 0000270a R_ARM_THM_CALL 00000000 fftw_mpi_dft_serial_applicable │ │ │ │ │ +0000047c 00000103 R_ARM_REL32 00000001 apply │ │ │ │ │ +00000480 00001003 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +00000492 0000280a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +0000049a 0000280a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +000004c4 00002a0a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ +000004d2 00002b0a R_ARM_THM_CALL 00000000 fftw_solver_register │ │ │ │ │ +000004dc 00002a0a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ +000004f8 00001303 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +000000ce 0000161e R_ARM_THM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000004ac 0000281e R_ARM_THM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ +000004f4 00002b1e R_ARM_THM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0xb6c contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0xc00 contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000000 00002c02 R_ARM_ABS32 00000000 fftw_mpi_dft_solve │ │ │ │ │ -00000004 00000e02 R_ARM_ABS32 00000411 awake │ │ │ │ │ -00000008 00000702 R_ARM_ABS32 0000005d print │ │ │ │ │ -0000000c 00000a02 R_ARM_ABS32 00000099 destroy │ │ │ │ │ +00000004 00000e02 R_ARM_ABS32 00000485 awake │ │ │ │ │ +00000008 00000702 R_ARM_ABS32 00000079 print │ │ │ │ │ +0000000c 00000a02 R_ARM_ABS32 000000b5 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0xb8c contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0xc20 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000b02 R_ARM_ABS32 000000b5 mkplan │ │ │ │ │ +00000004 00000b02 R_ARM_ABS32 000000d5 mkplan │ │ │ │ ├── strings --all --bytes=8 {} │ │ │ │ │ @@ -1,8 +1,7 @@ │ │ │ │ │ -%JX %IzDyD │ │ │ │ │ (mpi-dft-rank-geq2-transposed%s%(%p%)%(%p%)%(%p%)) │ │ │ │ │ fftw_plan_destroy_internal │ │ │ │ │ fftw_mpi_is_local_after │ │ │ │ │ fftw_mpi_num_blocks │ │ │ │ │ fftw_extract_reim │ │ │ │ │ MPI_Comm_rank │ │ │ │ │ MPI_Comm_size │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,490 +1,509 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r1 │ │ │ │ │ - ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ mov r6, r2 │ │ │ │ │ - ldr r3, [r4, #80] @ 0x50 │ │ │ │ │ + ldrd r1, r3, [r4, #76] @ 0x4c │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ sub sp, #12 │ │ │ │ │ - ldr r1, [r4, #76] @ 0x4c │ │ │ │ │ - ldr.w r9, [r0, #56] @ 0x38 │ │ │ │ │ mov.w ip, r3, lsl #3 │ │ │ │ │ ldr r3, [r4, #84] @ 0x54 │ │ │ │ │ - lsls r1, r1, #3 │ │ │ │ │ + mov.w r1, r1, lsl #3 │ │ │ │ │ + ldr.w r9, [r0, #56] @ 0x38 │ │ │ │ │ add.w r7, r2, ip │ │ │ │ │ add.w r8, r2, r1 │ │ │ │ │ add r1, r5 │ │ │ │ │ add.w r2, r5, ip │ │ │ │ │ - cbz r3, 54 │ │ │ │ │ - mov r5, r6 │ │ │ │ │ + cbz r3, 70 │ │ │ │ │ mov r3, r8 │ │ │ │ │ str r7, [sp, #0] │ │ │ │ │ + mov r5, r6 │ │ │ │ │ blx r9 │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ - str r7, [sp, #0] │ │ │ │ │ mov r3, r8 │ │ │ │ │ mov r2, r7 │ │ │ │ │ + str r7, [sp, #0] │ │ │ │ │ mov r1, r8 │ │ │ │ │ ldr r4, [r0, #56] @ 0x38 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, #12 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ mov r3, r1 │ │ │ │ │ str r2, [sp, #0] │ │ │ │ │ blx r9 │ │ │ │ │ - b.n 36 │ │ │ │ │ + b.n 44 │ │ │ │ │ │ │ │ │ │ -0000005c : │ │ │ │ │ +00000078 : │ │ │ │ │ print(): │ │ │ │ │ mov r3, r0 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r0, r1 │ │ │ │ │ - ldr r4, [r1, #0] │ │ │ │ │ - sub sp, #8 │ │ │ │ │ ldr r2, [r3, #84] @ 0x54 │ │ │ │ │ + sub sp, #8 │ │ │ │ │ + ldr r4, [r1, #0] │ │ │ │ │ cmp r2, #2 │ │ │ │ │ - beq.n 84 │ │ │ │ │ - ldr r2, [pc, #28] @ (8c ) │ │ │ │ │ + beq.n a2 │ │ │ │ │ + ldr r2, [pc, #28] @ (a8 ) │ │ │ │ │ add r2, pc │ │ │ │ │ ldr r1, [r3, #72] @ 0x48 │ │ │ │ │ str r1, [sp, #4] │ │ │ │ │ ldr r1, [r3, #68] @ 0x44 │ │ │ │ │ str r1, [sp, #0] │ │ │ │ │ - ldr r1, [pc, #20] @ (90 ) │ │ │ │ │ + ldr r1, [pc, #20] @ (ac ) │ │ │ │ │ ldr r3, [r3, #64] @ 0x40 │ │ │ │ │ add r1, pc │ │ │ │ │ blx r4 │ │ │ │ │ add sp, #8 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ - ldr r2, [pc, #12] @ (94 ) │ │ │ │ │ + ldr r2, [pc, #12] @ (b0 ) │ │ │ │ │ add r2, pc │ │ │ │ │ - b.n 70 │ │ │ │ │ - nop │ │ │ │ │ - .word 0x0000001a │ │ │ │ │ + b.n 8e │ │ │ │ │ + .word 0x00000018 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x00000010 │ │ │ │ │ + .word 0x0000000e │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ - .word 0x0000000a │ │ │ │ │ + .word 0x00000008 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ -00000098 : │ │ │ │ │ +000000b4 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #72] @ 0x48 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - ldmia.w sp!, {r4, lr} │ │ │ │ │ + ldrd r4, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_plan_destroy_internal │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -000000b4 : │ │ │ │ │ +000000d4 : │ │ │ │ │ mkplan(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ ldr r1, [r1, #4] │ │ │ │ │ - sub sp, #76 @ 0x4c │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #68 @ 0x44 │ │ │ │ │ ldr r3, [r1, #0] │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - ble.n ca │ │ │ │ │ + ble.n fa │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ cmp r3, #8 │ │ │ │ │ - beq.n d2 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ - add sp, #76 @ 0x4c │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + beq.n 116 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ + add sp, #68 @ 0x44 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldr r3, [r0, #8] │ │ │ │ │ mov fp, r0 │ │ │ │ │ mov sl, r2 │ │ │ │ │ - cbz r3, ea │ │ │ │ │ + cbz r3, 12e │ │ │ │ │ ldr.w r3, [r2, #164] @ 0xa4 │ │ │ │ │ lsls r0, r3, #19 │ │ │ │ │ - bmi.n ca │ │ │ │ │ + bmi.n fa │ │ │ │ │ ldrd r2, r3, [r4, #12] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - beq.n ca │ │ │ │ │ - movs r2, #0 │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + beq.n fa │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n ca │ │ │ │ │ + beq.n fa │ │ │ │ │ ldr r1, [r4, #4] │ │ │ │ │ - movs r2, #1 │ │ │ │ │ - movs r0, #2 │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ + mov.w r0, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n ca │ │ │ │ │ + beq.n fa │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - ldr r1, [r3, #12] │ │ │ │ │ ldr r0, [r3, #4] │ │ │ │ │ + ldr r1, [r3, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks │ │ │ │ │ - mov r5, r0 │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - bne.n ca │ │ │ │ │ + mov r5, r0 │ │ │ │ │ + bne.n fa │ │ │ │ │ ldr.w r3, [sl, #164] @ 0xa4 │ │ │ │ │ lsls r2, r3, #28 │ │ │ │ │ - bmi.w 3f8 │ │ │ │ │ - ldr r3, [r4, #12] │ │ │ │ │ - add r2, sp, #48 @ 0x30 │ │ │ │ │ + bmi.w 46e │ │ │ │ │ + ldr.w r8, [r4, #12] │ │ │ │ │ + add r3, sp, #44 @ 0x2c │ │ │ │ │ + add r2, sp, #40 @ 0x28 │ │ │ │ │ ldr r0, [r4, #20] │ │ │ │ │ - mov r1, r3 │ │ │ │ │ - str r3, [sp, #28] │ │ │ │ │ - add r3, sp, #52 @ 0x34 │ │ │ │ │ + mov r1, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_extract_reim │ │ │ │ │ - ldr.w r9, [r4, #16] │ │ │ │ │ - add r3, sp, #60 @ 0x3c │ │ │ │ │ - add r2, sp, #56 @ 0x38 │ │ │ │ │ - ldr r0, [r4, #20] │ │ │ │ │ + ldrd r9, r0, [r4, #16] │ │ │ │ │ + add r3, sp, #52 @ 0x34 │ │ │ │ │ + add r2, sp, #48 @ 0x30 │ │ │ │ │ + strd r2, r3, [sp, #28] │ │ │ │ │ mov r1, r9 │ │ │ │ │ - str r3, [sp, #36] @ 0x24 │ │ │ │ │ - str r2, [sp, #32] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_extract_reim │ │ │ │ │ ldr.w r3, [fp, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.w 3ce │ │ │ │ │ + bne.w 446 │ │ │ │ │ ldr.w r3, [sl, #164] @ 0xa4 │ │ │ │ │ lsls r3, r3, #19 │ │ │ │ │ - bmi.w 3ce │ │ │ │ │ - ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ - str r3, [sp, #56] @ 0x38 │ │ │ │ │ - ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - str r3, [sp, #60] @ 0x3c │ │ │ │ │ - add r1, sp, #64 @ 0x40 │ │ │ │ │ + bmi.w 446 │ │ │ │ │ + ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ + str r3, [sp, #48] @ 0x30 │ │ │ │ │ + ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ + str r3, [sp, #52] @ 0x34 │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + add r1, sp, #56 @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ - add r1, sp, #68 @ 0x44 │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + add r1, sp, #60 @ 0x3c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r0, [r3, #0] │ │ │ │ │ - subs r0, #1 │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor │ │ │ │ │ ldr r7, [r4, #4] │ │ │ │ │ - movs r1, #12 │ │ │ │ │ mov r6, r0 │ │ │ │ │ ldr.w lr, [r7] │ │ │ │ │ - add.w r2, lr, #4294967295 @ 0xffffffff │ │ │ │ │ - sub.w ip, lr, #2 │ │ │ │ │ - mul.w r3, r1, lr │ │ │ │ │ - mla r2, r1, r2, r7 │ │ │ │ │ - add r0, r3 │ │ │ │ │ - mla ip, r1, ip, r6 │ │ │ │ │ - ldr r2, [r2, #4] │ │ │ │ │ - str.w r2, [r0, #-20] │ │ │ │ │ + add.w r2, lr, lr, lsl #1 │ │ │ │ │ + add.w r3, lr, lr, lsl #1 │ │ │ │ │ + add.w r2, r7, r2, lsl #2 │ │ │ │ │ + mov.w r3, r3, lsl #2 │ │ │ │ │ + ldr.w r2, [r2, #-8] │ │ │ │ │ + add.w r1, r0, r3 │ │ │ │ │ + add.w r0, lr, lr, lsl #1 │ │ │ │ │ + add.w r0, r6, r0, lsl #2 │ │ │ │ │ + str.w r2, [r1, #-20] │ │ │ │ │ ldr r2, [r4, #8] │ │ │ │ │ - lsls r2, r2, #1 │ │ │ │ │ - str.w r2, [ip, #12] │ │ │ │ │ - str.w r2, [r0, #-16] │ │ │ │ │ + mov.w r2, r2, lsl #1 │ │ │ │ │ + str.w r2, [r0, #-12] │ │ │ │ │ subs.w r0, lr, #3 │ │ │ │ │ - bmi.n 24e │ │ │ │ │ + str.w r2, [r1, #-16] │ │ │ │ │ + bmi.n 2aa │ │ │ │ │ + cmp.w lr, #4 │ │ │ │ │ sub.w r2, r3, #16 │ │ │ │ │ sub.w r1, r3, #20 │ │ │ │ │ - cmp.w lr, #4 │ │ │ │ │ - ble.w 3f4 │ │ │ │ │ + ble.w 46a │ │ │ │ │ ldr.w ip, [r6, r1] │ │ │ │ │ sub.w lr, lr, #5 │ │ │ │ │ - adds r1, r7, r3 │ │ │ │ │ + add.w r1, r7, r3 │ │ │ │ │ + sub.w r3, r3, #28 │ │ │ │ │ + and.w lr, lr, #1 │ │ │ │ │ + str r7, [sp, #24] │ │ │ │ │ ldr r2, [r6, r2] │ │ │ │ │ - subs r3, #28 │ │ │ │ │ - mov r8, r4 │ │ │ │ │ add r3, r6 │ │ │ │ │ - mov r4, ip │ │ │ │ │ - and.w lr, lr, #1 │ │ │ │ │ - mov ip, r5 │ │ │ │ │ - ldr.w r5, [r1, #-20] │ │ │ │ │ - mul.w r2, r4, r2 │ │ │ │ │ - strd r2, r2, [r3] │ │ │ │ │ - subs r0, #2 │ │ │ │ │ - str.w r5, [r3, #-4] │ │ │ │ │ - subs r1, #24 │ │ │ │ │ + mov r7, ip │ │ │ │ │ + mov ip, r4 │ │ │ │ │ + ldr.w r4, [r1, #-20] │ │ │ │ │ + mul.w r2, r7, r2 │ │ │ │ │ + sub.w r0, r0, #2 │ │ │ │ │ cmp r0, lr │ │ │ │ │ - ldr.w r4, [r1, #-8] │ │ │ │ │ - mul.w r2, r5, r2 │ │ │ │ │ - str.w r4, [r3, #-16] │ │ │ │ │ - strd r2, r2, [r3, #-12] │ │ │ │ │ + sub.w r1, r1, #24 │ │ │ │ │ + strd r4, r2, [r3, #-4] │ │ │ │ │ + str r2, [r3, #4] │ │ │ │ │ + mul.w r2, r4, r2 │ │ │ │ │ + ldr.w r7, [r1, #-8] │ │ │ │ │ + strd r7, r2, [r3, #-16] │ │ │ │ │ sub.w r3, r3, #24 │ │ │ │ │ - bne.n 1da │ │ │ │ │ - mov r5, ip │ │ │ │ │ - mov r4, r8 │ │ │ │ │ - movs r0, #12 │ │ │ │ │ - mul.w r1, r0, lr │ │ │ │ │ - add.w r8, r7, r1 │ │ │ │ │ + str r2, [r3, #16] │ │ │ │ │ + bne.n 232 │ │ │ │ │ + ldr r7, [sp, #24] │ │ │ │ │ + mov r4, ip │ │ │ │ │ + add.w r1, lr, lr, lsl #1 │ │ │ │ │ + mov.w r1, r1, lsl #2 │ │ │ │ │ + add.w ip, r7, r1 │ │ │ │ │ add r1, r6 │ │ │ │ │ ldrd r3, r2, [r1, #16] │ │ │ │ │ - ldr.w ip, [r8, #16] │ │ │ │ │ - str.w ip, [r1, #4] │ │ │ │ │ + ldr.w r0, [ip, #16] │ │ │ │ │ mul.w r3, r2, r3 │ │ │ │ │ add.w r2, lr, #4294967295 @ 0xffffffff │ │ │ │ │ - strd r3, r3, [r1, #8] │ │ │ │ │ - str r2, [sp, #40] @ 0x28 │ │ │ │ │ + str r2, [sp, #24] │ │ │ │ │ + strd r0, r3, [r1, #4] │ │ │ │ │ + str r3, [r1, #12] │ │ │ │ │ cmp.w lr, #0 │ │ │ │ │ - beq.n 24e │ │ │ │ │ - ldr.w r2, [r8, #4] │ │ │ │ │ - mul.w r3, ip, r3 │ │ │ │ │ + beq.n 2aa │ │ │ │ │ + ldr.w r2, [ip, #4] │ │ │ │ │ + mul.w r3, r0, r3 │ │ │ │ │ str.w r2, [r1, #-8] │ │ │ │ │ - ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ - mla r2, r0, r2, r6 │ │ │ │ │ + ldr r2, [sp, #24] │ │ │ │ │ + add.w r2, r2, r2, lsl #1 │ │ │ │ │ + add.w r2, r6, r2, lsl #2 │ │ │ │ │ str r3, [r2, #12] │ │ │ │ │ str.w r3, [r1, #-4] │ │ │ │ │ ldr r1, [r6, #0] │ │ │ │ │ cmp r1, #1 │ │ │ │ │ - ble.n 26e │ │ │ │ │ + ble.n 2d0 │ │ │ │ │ add.w r1, r1, r1, lsl #1 │ │ │ │ │ - movs r3, #0 │ │ │ │ │ - subs r1, #3 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ add.w r0, r6, #16 │ │ │ │ │ + sub.w r1, r1, #3 │ │ │ │ │ ldr.w r2, [r0, r3, lsl #2] │ │ │ │ │ - adds r3, #3 │ │ │ │ │ + add.w r3, r3, #3 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ mul.w r5, r2, r5 │ │ │ │ │ - bne.n 260 │ │ │ │ │ + bne.n 2c0 │ │ │ │ │ ldrd r3, r2, [r6, #4] │ │ │ │ │ ldrd r0, r1, [r7, #4] │ │ │ │ │ - movs r7, #2 │ │ │ │ │ - mul.w r8, r2, r3 │ │ │ │ │ - ldr r2, [sp, #64] @ 0x40 │ │ │ │ │ + mov.w r7, #2 │ │ │ │ │ + mul.w r3, r2, r3 │ │ │ │ │ + ldr r2, [sp, #56] @ 0x38 │ │ │ │ │ + str r3, [sp, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ + ldr r2, [sp, #24] │ │ │ │ │ strd r7, r7, [sp] │ │ │ │ │ - mov r2, r8 │ │ │ │ │ - mov r1, r8 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ + mov r1, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor_2d │ │ │ │ │ - ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ + ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ mov r0, r6 │ │ │ │ │ + ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - ldrd r2, r3, [sp, #48] @ 0x30 │ │ │ │ │ + ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_d │ │ │ │ │ mov r6, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_any_true │ │ │ │ │ mov r2, r0 │ │ │ │ │ - str r0, [sp, #40] @ 0x28 │ │ │ │ │ + str r0, [sp, #24] │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.w 3d4 │ │ │ │ │ + bne.w 44a │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ mul.w r5, r3, r5 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - lsls r1, r5, #1 │ │ │ │ │ + mov.w r1, r5, lsl #1 │ │ │ │ │ ldr r0, [r3, #4] │ │ │ │ │ - str r1, [sp, #44] @ 0x2c │ │ │ │ │ + str r1, [sp, #36] @ 0x24 │ │ │ │ │ ldr r1, [r3, #16] │ │ │ │ │ str r2, [sp, #16] │ │ │ │ │ ldr r2, [r4, #28] │ │ │ │ │ str r2, [sp, #12] │ │ │ │ │ ldr r2, [r3, #24] │ │ │ │ │ str r2, [sp, #8] │ │ │ │ │ - lsls r2, r5, #1 │ │ │ │ │ + mov.w r2, r5, lsl #1 │ │ │ │ │ ldr r3, [r3, #8] │ │ │ │ │ strd r9, r3, [sp] │ │ │ │ │ - ldr r3, [sp, #28] │ │ │ │ │ + mov r3, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkproblem_transpose │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_d │ │ │ │ │ mov r8, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.n 3ee │ │ │ │ │ - ldrd r2, r3, [sp, #32] │ │ │ │ │ - mov r1, r9 │ │ │ │ │ + bne.n 464 │ │ │ │ │ ldr r0, [r4, #20] │ │ │ │ │ + mov r1, r9 │ │ │ │ │ + ldrd r2, r3, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_extract_reim │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r2, [r3, #4] │ │ │ │ │ - ldr r1, [r3, #24] │ │ │ │ │ ldr r0, [r3, #16] │ │ │ │ │ + ldr r1, [r3, #24] │ │ │ │ │ mul.w r2, r5, r2 │ │ │ │ │ mov.w r9, r2, lsl #1 │ │ │ │ │ - ldr r2, [sp, #64] @ 0x40 │ │ │ │ │ + ldr r2, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - lsls r2, r5, #1 │ │ │ │ │ - str r0, [sp, #32] │ │ │ │ │ + mov.w r2, r5, lsl #1 │ │ │ │ │ + str r0, [sp, #28] │ │ │ │ │ mov r1, r2 │ │ │ │ │ ldr r0, [r3, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor_1d │ │ │ │ │ mov r2, r9 │ │ │ │ │ mov r1, r9 │ │ │ │ │ - mov r3, r5 │ │ │ │ │ - str r0, [sp, #28] │ │ │ │ │ strd r7, r7, [sp] │ │ │ │ │ - ldr r0, [sp, #32] │ │ │ │ │ + mov r3, r5 │ │ │ │ │ + str r0, [sp, #24] │ │ │ │ │ + ldr r0, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor_2d │ │ │ │ │ + ldrd r2, r3, [sp, #48] @ 0x30 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - ldrd r2, r3, [sp, #56] @ 0x38 │ │ │ │ │ + ldr r0, [sp, #24] │ │ │ │ │ strd r2, r3, [sp] │ │ │ │ │ - ldr r0, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_d │ │ │ │ │ mov r9, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_any_true │ │ │ │ │ - cbnz r0, 3da │ │ │ │ │ - ldr r2, [pc, #148] @ (408 ) │ │ │ │ │ - movs r0, #88 @ 0x58 │ │ │ │ │ - ldr r1, [pc, #148] @ (40c ) │ │ │ │ │ + cbnz r0, 450 │ │ │ │ │ + ldr r2, [pc, #152] @ (47c ) │ │ │ │ │ + mov.w r0, #88 @ 0x58 │ │ │ │ │ + ldr r1, [pc, #148] @ (480 ) │ │ │ │ │ add r2, pc │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_rdft │ │ │ │ │ ldr.w r3, [fp, #8] │ │ │ │ │ mov r5, r0 │ │ │ │ │ strd r6, r8, [r0, #64] @ 0x40 │ │ │ │ │ str.w r9, [r0, #72] @ 0x48 │ │ │ │ │ - cbnz r3, 396 │ │ │ │ │ + cbnz r3, 40a │ │ │ │ │ ldr.w r7, [sl, #164] @ 0xa4 │ │ │ │ │ and.w r7, r7, #4096 @ 0x1000 │ │ │ │ │ ldr r2, [r4, #12] │ │ │ │ │ add.w r4, r5, #8 │ │ │ │ │ - ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ add.w r1, r9, #8 │ │ │ │ │ add.w r0, r6, #8 │ │ │ │ │ str r7, [r5, #84] @ 0x54 │ │ │ │ │ - subs r3, r3, r2 │ │ │ │ │ - asrs r3, r3, #3 │ │ │ │ │ + ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ + sub.w r3, r3, r2 │ │ │ │ │ + mov.w r3, r3, asr #3 │ │ │ │ │ str r3, [r5, #76] @ 0x4c │ │ │ │ │ - ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - subs r3, r3, r2 │ │ │ │ │ + ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ + sub.w r3, r3, r2 │ │ │ │ │ mov r2, r4 │ │ │ │ │ - asrs r3, r3, #3 │ │ │ │ │ + mov.w r3, r3, asr #3 │ │ │ │ │ str r3, [r5, #80] @ 0x50 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ops_add │ │ │ │ │ add.w r0, r8, #8 │ │ │ │ │ mov r1, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ops_add2 │ │ │ │ │ mov r0, r5 │ │ │ │ │ - add sp, #76 @ 0x4c │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ - str.w r9, [sp, #28] │ │ │ │ │ - b.n 15e │ │ │ │ │ + b.n fe │ │ │ │ │ + mov r8, r9 │ │ │ │ │ + b.n 1a8 │ │ │ │ │ mov.w r9, #0 │ │ │ │ │ mov r8, r9 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ - b.n ca │ │ │ │ │ - ldr.w r9, [sp, #40] @ 0x28 │ │ │ │ │ - b.n 3da │ │ │ │ │ + b.n fa │ │ │ │ │ + ldr.w r9, [sp, #24] │ │ │ │ │ + b.n 450 │ │ │ │ │ mov lr, r0 │ │ │ │ │ - b.n 20a │ │ │ │ │ + b.n 262 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dft_serial_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.w 11e │ │ │ │ │ - b.n ca │ │ │ │ │ - nop │ │ │ │ │ + beq.w 16a │ │ │ │ │ + b.n fa │ │ │ │ │ .word 0x0000008e │ │ │ │ │ R_ARM_REL32 apply │ │ │ │ │ .word 0x00000090 │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -00000410 : │ │ │ │ │ +00000484 : │ │ │ │ │ awake(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ + mov r5, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_awake │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_awake │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, lr} │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + ldrd r5, lr, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_plan_awake │ │ │ │ │ │ │ │ │ │ -00000430 : │ │ │ │ │ +000004b0 : │ │ │ │ │ fftw_mpi_dft_rank_geq2_transposed_register(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r5, [pc, #44] @ (464 ) │ │ │ │ │ - movs r0, #12 │ │ │ │ │ + mov.w r0, #12 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ + ldr r5, [pc, #56] @ (4f8 ) │ │ │ │ │ add r5, pc │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mksolver │ │ │ │ │ - movs r3, #0 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ + str r3, [r1, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_solver_register │ │ │ │ │ mov r1, r5 │ │ │ │ │ - movs r0, #12 │ │ │ │ │ + mov.w r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mksolver │ │ │ │ │ - movs r3, #1 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + ldrd r5, lr, [sp, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, lr} │ │ │ │ │ + str r3, [r1, #8] │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + add sp, #16 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_solver_register │ │ │ │ │ - .word 0x00000028 │ │ │ │ │ + .word 0x00000034 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ ├── dft-rank1.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 4164 (bytes into file) │ │ │ │ │ + Start of section headers: 4444 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 15 │ │ │ │ │ Section header string table index: 14 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,24 +1,24 @@ │ │ │ │ │ -There are 15 section headers, starting at offset 0x1044: │ │ │ │ │ +There are 15 section headers, starting at offset 0x115c: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 000798 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000db4 0001e0 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 0007cc 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 0007cc 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 0007cc 000041 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 00080d 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 000f94 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 00081d 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 000fb4 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 000829 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000829 000033 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 00085c 000320 10 13 25 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 000b7c 000237 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 000fbc 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0008b0 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000ecc 0001e0 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 0008e4 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 0008e4 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 0008e4 000041 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 000925 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 0010ac 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 000935 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 0010cc 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 000941 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000941 000033 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 000974 000320 10 13 25 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 000c94 000237 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 0010d4 000087 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,29 +1,29 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 50 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ - 1: 00000001 332 FUNC LOCAL DEFAULT 1 apply_ddft_first │ │ │ │ │ + 1: 00000001 396 FUNC LOCAL DEFAULT 1 apply_ddft_first │ │ │ │ │ 2: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ 3: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 4: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC1 │ │ │ │ │ 5: 00000008 0 NOTYPE LOCAL DEFAULT 5 .LC2 │ │ │ │ │ 6: 00000010 0 NOTYPE LOCAL DEFAULT 5 .LC3 │ │ │ │ │ 7: 00000014 0 NOTYPE LOCAL DEFAULT 5 .LC4 │ │ │ │ │ 8: 00000018 0 NOTYPE LOCAL DEFAULT 5 .LC5 │ │ │ │ │ - 9: 0000014d 108 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 10: 000001a0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 11: 000001b8 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 12: 000001b9 26 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 13: 000001d5 1000 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 14: 000005a0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 15: 000005f9 314 FUNC LOCAL DEFAULT 1 apply_ddft_last │ │ │ │ │ - 16: 000005bc 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 17: 000005bd 60 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 18: 0000078c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 0000018d 124 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 10: 000001f0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 11: 00000208 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 12: 00000209 30 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 13: 00000229 1088 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 14: 0000064c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 15: 000006b9 364 FUNC LOCAL DEFAULT 1 apply_ddft_last │ │ │ │ │ + 16: 00000668 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 17: 00000669 80 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 18: 000008a4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 19: 00000000 0 SECTION LOCAL DEFAULT 6 .data.rel.ro │ │ │ │ │ 20: 00000000 0 NOTYPE LOCAL DEFAULT 6 $d │ │ │ │ │ 21: 00000000 16 OBJECT LOCAL DEFAULT 6 padt.0 │ │ │ │ │ 22: 00000000 0 SECTION LOCAL DEFAULT 8 .data.rel.ro.local │ │ │ │ │ 23: 00000000 0 NOTYPE LOCAL DEFAULT 8 $d │ │ │ │ │ 24: 00000000 12 OBJECT LOCAL DEFAULT 8 sadt.1 │ │ │ │ │ 25: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_plan_destroy_internal │ │ │ │ │ @@ -43,11 +43,11 @@ │ │ │ │ │ 39: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mkplan_rdft │ │ │ │ │ 40: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ops_add │ │ │ │ │ 41: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ops_add2 │ │ │ │ │ 42: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_dft_serial_applicable │ │ │ │ │ 43: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_plan_awake │ │ │ │ │ 44: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_triggen_destroy │ │ │ │ │ 45: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mktriggen │ │ │ │ │ - 46: 00000735 100 FUNC GLOBAL DEFAULT 1 fftw_mpi_dft_rank1_register │ │ │ │ │ + 46: 00000825 140 FUNC GLOBAL DEFAULT 1 fftw_mpi_dft_rank1_register │ │ │ │ │ 47: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mksolver │ │ │ │ │ 48: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_solver_register │ │ │ │ │ 49: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_dft_solve │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,74 +1,74 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0xdb4 contains 60 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0xecc contains 60 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -000001a0 00000103 R_ARM_REL32 00000001 apply_ddft_first │ │ │ │ │ -000001a4 00000503 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -000001a8 00000703 R_ARM_REL32 00000014 .LC4 │ │ │ │ │ -000001ac 00000803 R_ARM_REL32 00000018 .LC5 │ │ │ │ │ -000001b0 00000603 R_ARM_REL32 00000010 .LC3 │ │ │ │ │ -000001b4 00000403 R_ARM_REL32 00000000 .LC1 │ │ │ │ │ -000001be 0000190a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000001c4 0000190a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000001e6 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000252 00001b0a R_ARM_THM_CALL 00000000 fftw_mpi_choose_radix │ │ │ │ │ -00000260 00001c0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000268 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000272 00001d0a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -0000029a 00001e0a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -000002ca 00001f0a R_ARM_THM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ -000002f4 0000200a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_dft_d │ │ │ │ │ -000002fc 0000210a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -0000030a 0000220a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -0000033e 0000230a R_ARM_THM_CALL 00000000 fftw_extract_reim │ │ │ │ │ -0000034e 0000230a R_ARM_THM_CALL 00000000 fftw_extract_reim │ │ │ │ │ -0000035a 0000240a R_ARM_THM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ -00000366 0000240a R_ARM_THM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ -0000037a 0000250a R_ARM_THM_CALL 00000000 fftw_mkproblem_dft_d │ │ │ │ │ -00000382 0000210a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -00000390 0000220a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -000003dc 0000260a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ -000003e4 0000210a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -000003f2 0000220a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -00000404 0000270a R_ARM_THM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ -0000041c 0000230a R_ARM_THM_CALL 00000000 fftw_extract_reim │ │ │ │ │ -00000474 0000280a R_ARM_THM_CALL 00000000 fftw_ops_add │ │ │ │ │ -00000480 0000290a R_ARM_THM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ -0000050c 0000200a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_dft_d │ │ │ │ │ -00000514 0000210a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -00000522 0000220a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -0000052e 0000190a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000534 0000190a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -0000053a 0000190a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -0000056a 00001e0a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00000592 00002a0a R_ARM_THM_CALL 00000000 fftw_mpi_dft_serial_applicable │ │ │ │ │ -000005a0 00000f03 R_ARM_REL32 000005f9 apply_ddft_last │ │ │ │ │ -000005a4 00000103 R_ARM_REL32 00000001 apply_ddft_first │ │ │ │ │ -000005a8 00000103 R_ARM_REL32 00000001 apply_ddft_first │ │ │ │ │ -000005ac 00001303 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -000005b0 00000103 R_ARM_REL32 00000001 apply_ddft_first │ │ │ │ │ -000005b4 00000103 R_ARM_REL32 00000001 apply_ddft_first │ │ │ │ │ -000005b8 00000103 R_ARM_REL32 00000001 apply_ddft_first │ │ │ │ │ -000005c4 00002b0a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -000005cc 00002b0a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -000005d4 00002b0a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -000005dc 00002c0a R_ARM_THM_CALL 00000000 fftw_triggen_destroy │ │ │ │ │ -000005ee 00002d0a R_ARM_THM_CALL 00000000 fftw_mktriggen │ │ │ │ │ -0000075c 00002f0a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ -00000768 0000300a R_ARM_THM_CALL 00000000 fftw_solver_register │ │ │ │ │ -00000770 00002f0a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ -0000077e 0000300a R_ARM_THM_CALL 00000000 fftw_solver_register │ │ │ │ │ -0000078c 00000103 R_ARM_REL32 00000001 apply_ddft_first │ │ │ │ │ -00000790 00001603 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -00000794 00000f03 R_ARM_REL32 000005f9 apply_ddft_last │ │ │ │ │ -000001ce 0000191e R_ARM_THM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000001f0 00000103 R_ARM_REL32 00000001 apply_ddft_first │ │ │ │ │ +000001f4 00000503 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +000001f8 00000703 R_ARM_REL32 00000014 .LC4 │ │ │ │ │ +000001fc 00000803 R_ARM_REL32 00000018 .LC5 │ │ │ │ │ +00000200 00000603 R_ARM_REL32 00000010 .LC3 │ │ │ │ │ +00000204 00000403 R_ARM_REL32 00000000 .LC1 │ │ │ │ │ +00000210 0000190a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000216 0000190a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +0000024a 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000002cc 00001b0a R_ARM_THM_CALL 00000000 fftw_mpi_choose_radix │ │ │ │ │ +000002da 00001c0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000002e2 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000002ec 00001d0a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000314 00001e0a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00000348 00001f0a R_ARM_THM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ +00000376 0000200a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_dft_d │ │ │ │ │ +0000037e 0000210a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +0000038e 0000220a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +000003c2 0000230a R_ARM_THM_CALL 00000000 fftw_extract_reim │ │ │ │ │ +000003d2 0000230a R_ARM_THM_CALL 00000000 fftw_extract_reim │ │ │ │ │ +000003e0 0000240a R_ARM_THM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ +000003ee 0000240a R_ARM_THM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ +00000402 0000250a R_ARM_THM_CALL 00000000 fftw_mkproblem_dft_d │ │ │ │ │ +0000040a 0000210a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +0000041a 0000220a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +0000046a 0000260a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ +00000472 0000210a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +00000482 0000220a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +00000496 0000270a R_ARM_THM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ +000004ae 0000230a R_ARM_THM_CALL 00000000 fftw_extract_reim │ │ │ │ │ +00000516 0000280a R_ARM_THM_CALL 00000000 fftw_ops_add │ │ │ │ │ +00000522 0000290a R_ARM_THM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ +000005b0 0000200a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_dft_d │ │ │ │ │ +000005b8 0000210a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +000005c8 0000220a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +000005d4 0000190a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000005da 0000190a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000005e0 0000190a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000610 00001e0a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +0000063c 00002a0a R_ARM_THM_CALL 00000000 fftw_mpi_dft_serial_applicable │ │ │ │ │ +0000064c 00000f03 R_ARM_REL32 000006b9 apply_ddft_last │ │ │ │ │ +00000650 00000103 R_ARM_REL32 00000001 apply_ddft_first │ │ │ │ │ +00000654 00000103 R_ARM_REL32 00000001 apply_ddft_first │ │ │ │ │ +00000658 00001303 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +0000065c 00000103 R_ARM_REL32 00000001 apply_ddft_first │ │ │ │ │ +00000660 00000103 R_ARM_REL32 00000001 apply_ddft_first │ │ │ │ │ +00000664 00000103 R_ARM_REL32 00000001 apply_ddft_first │ │ │ │ │ +00000676 00002b0a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +0000067e 00002b0a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +00000686 00002b0a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +0000068e 00002c0a R_ARM_THM_CALL 00000000 fftw_triggen_destroy │ │ │ │ │ +000006a8 00002d0a R_ARM_THM_CALL 00000000 fftw_mktriggen │ │ │ │ │ +0000085c 00002f0a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ +00000868 0000300a R_ARM_THM_CALL 00000000 fftw_solver_register │ │ │ │ │ +00000872 00002f0a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ +00000882 0000300a R_ARM_THM_CALL 00000000 fftw_solver_register │ │ │ │ │ +000008a4 00000103 R_ARM_REL32 00000001 apply_ddft_first │ │ │ │ │ +000008a8 00001603 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +000008ac 00000f03 R_ARM_REL32 000006b9 apply_ddft_last │ │ │ │ │ +00000222 0000191e R_ARM_THM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0xf94 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0x10ac contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000000 00003102 R_ARM_ABS32 00000000 fftw_mpi_dft_solve │ │ │ │ │ -00000004 00001102 R_ARM_ABS32 000005bd awake │ │ │ │ │ -00000008 00000902 R_ARM_ABS32 0000014d print │ │ │ │ │ -0000000c 00000c02 R_ARM_ABS32 000001b9 destroy │ │ │ │ │ +00000004 00001102 R_ARM_ABS32 00000669 awake │ │ │ │ │ +00000008 00000902 R_ARM_ABS32 0000018d print │ │ │ │ │ +0000000c 00000c02 R_ARM_ABS32 00000209 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0xfb4 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0x10cc contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000d02 R_ARM_ABS32 000001d5 mkplan │ │ │ │ │ +00000004 00000d02 R_ARM_ABS32 00000229 mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,825 +1,869 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply_ddft_first(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ + mov r4, r2 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r8, r0 │ │ │ │ │ ldr r0, [r0, #72] @ 0x48 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ sub sp, #92 @ 0x5c │ │ │ │ │ mov fp, r1 │ │ │ │ │ - mov r4, r2 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ - ldr.w r5, [r8, #68] @ 0x44 │ │ │ │ │ - ldr.w r2, [r8, #88] @ 0x58 │ │ │ │ │ + ldrd r7, r5, [r8, #64] @ 0x40 │ │ │ │ │ + ldr.w ip, [r8, #80] @ 0x50 │ │ │ │ │ + ldrd r2, r6, [r8, #88] @ 0x58 │ │ │ │ │ clz r3, r5 │ │ │ │ │ - ldr.w r1, [r8, #100] @ 0x64 │ │ │ │ │ - ldr.w r0, [r8, #104] @ 0x68 │ │ │ │ │ - lsrs r3, r3, #5 │ │ │ │ │ - ldr.w r7, [r8, #64] @ 0x40 │ │ │ │ │ + mov.w r3, r3, lsr #5 │ │ │ │ │ + ldrd r1, r0, [r8, #100] @ 0x64 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ it ne │ │ │ │ │ orrne.w r3, r3, #1 │ │ │ │ │ - str r1, [sp, #56] @ 0x38 │ │ │ │ │ + ldr.w r2, [r8, #84] @ 0x54 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ it ne │ │ │ │ │ movne fp, r4 │ │ │ │ │ ldr.w r3, [r8, #76] @ 0x4c │ │ │ │ │ - str r3, [sp, #52] @ 0x34 │ │ │ │ │ + strd r3, r1, [sp, #52] @ 0x34 │ │ │ │ │ ldr.w r3, [r8, #112] @ 0x70 │ │ │ │ │ str r3, [sp, #24] │ │ │ │ │ - ldrd r6, r3, [r8, #92] @ 0x5c │ │ │ │ │ - str r3, [sp, #20] │ │ │ │ │ - ldrd ip, r2, [r8, #80] @ 0x50 │ │ │ │ │ + ldr.w r3, [r8, #96] @ 0x60 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ - blt.n 134 │ │ │ │ │ - lsls r1, r2, #3 │ │ │ │ │ - lsls r0, r0, #3 │ │ │ │ │ - adds r3, r4, r1 │ │ │ │ │ - str r3, [sp, #8] │ │ │ │ │ - add.w r9, fp, r1 │ │ │ │ │ - sub.w r3, ip, r2 │ │ │ │ │ - ldr r2, [sp, #8] │ │ │ │ │ + str r3, [sp, #20] │ │ │ │ │ + blt.n 150 │ │ │ │ │ + mov.w r1, r2, lsl #3 │ │ │ │ │ add.w r8, sp, #72 @ 0x48 │ │ │ │ │ - str r5, [sp, #60] @ 0x3c │ │ │ │ │ + strd r5, fp, [sp, #60] @ 0x3c │ │ │ │ │ + mov.w r0, r0, lsl #3 │ │ │ │ │ + str r4, [sp, #68] @ 0x44 │ │ │ │ │ + add.w r3, r4, r1 │ │ │ │ │ + add.w r9, fp, r1 │ │ │ │ │ + mov.w r1, r6, lsl #4 │ │ │ │ │ mov r5, r9 │ │ │ │ │ mov r9, r0 │ │ │ │ │ + str r3, [sp, #8] │ │ │ │ │ + sub.w r3, ip, r2 │ │ │ │ │ + ldr r2, [sp, #8] │ │ │ │ │ mov.w sl, r3, lsl #3 │ │ │ │ │ - lsls r1, r6, #4 │ │ │ │ │ - str.w sl, [sp, #32] │ │ │ │ │ str r1, [sp, #28] │ │ │ │ │ - strd fp, r4, [sp, #64] @ 0x40 │ │ │ │ │ + str.w sl, [sp, #32] │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ - adds r1, r2, r3 │ │ │ │ │ + add.w r1, r2, r3 │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ str r1, [sp, #36] @ 0x24 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 10c │ │ │ │ │ + ble.n 126 │ │ │ │ │ cmp r6, #0 │ │ │ │ │ - ble.n 10c │ │ │ │ │ - mov.w sl, #0 │ │ │ │ │ + ble.n 126 │ │ │ │ │ ldr.w fp, [r7, #8] │ │ │ │ │ + mov.w sl, #0 │ │ │ │ │ mov lr, r2 │ │ │ │ │ - str.w r9, [sp, #40] @ 0x28 │ │ │ │ │ - str r2, [sp, #44] @ 0x2c │ │ │ │ │ mov r3, sl │ │ │ │ │ + strd r9, r2, [sp, #40] @ 0x28 │ │ │ │ │ mov r9, sl │ │ │ │ │ mov r2, r1 │ │ │ │ │ str r5, [sp, #48] @ 0x30 │ │ │ │ │ add.w r5, r2, #16 │ │ │ │ │ add.w r4, lr, #16 │ │ │ │ │ - mov.w sl, #0 │ │ │ │ │ strd r3, r2, [sp, #8] │ │ │ │ │ + mov.w sl, #0 │ │ │ │ │ str.w lr, [sp, #16] │ │ │ │ │ vldr d1, [r4, #-16] │ │ │ │ │ mov r1, r9 │ │ │ │ │ - vldr d0, [r5, #-16] │ │ │ │ │ mov r0, r7 │ │ │ │ │ mov r2, r8 │ │ │ │ │ add.w sl, sl, #1 │ │ │ │ │ + vldr d0, [r5, #-16] │ │ │ │ │ + add.w r4, r4, #16 │ │ │ │ │ + add.w r5, r5, #16 │ │ │ │ │ blx fp │ │ │ │ │ - adds r5, #16 │ │ │ │ │ ldrd r0, r1, [sp, #72] @ 0x48 │ │ │ │ │ + cmp r6, sl │ │ │ │ │ strd r0, r1, [r5, #-32] │ │ │ │ │ ldrd r0, r1, [sp, #80] @ 0x50 │ │ │ │ │ - strd r0, r1, [r4, #-16] │ │ │ │ │ - cmp r6, sl │ │ │ │ │ - add.w r4, r4, #16 │ │ │ │ │ - bne.n be │ │ │ │ │ + strd r0, r1, [r4, #-32] │ │ │ │ │ + bne.n d4 │ │ │ │ │ ldrd r3, r2, [sp, #8] │ │ │ │ │ - ldr r1, [sp, #28] │ │ │ │ │ ldr.w lr, [sp, #16] │ │ │ │ │ - adds r3, #1 │ │ │ │ │ - add r2, r1 │ │ │ │ │ + ldr r1, [sp, #28] │ │ │ │ │ + add.w r3, r3, #1 │ │ │ │ │ add lr, r1 │ │ │ │ │ + add r2, r1 │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ add r9, r1 │ │ │ │ │ ldr r1, [sp, #24] │ │ │ │ │ cmp r1, r3 │ │ │ │ │ - bne.n aa │ │ │ │ │ + bne.n c0 │ │ │ │ │ ldrd r9, r2, [sp, #40] @ 0x28 │ │ │ │ │ ldr r5, [sp, #48] @ 0x30 │ │ │ │ │ - ldr r0, [sp, #52] @ 0x34 │ │ │ │ │ str r5, [sp, #0] │ │ │ │ │ - ldr r3, [sp, #32] │ │ │ │ │ - ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ - adds r3, r5, r3 │ │ │ │ │ - ldr r4, [r0, #56] @ 0x38 │ │ │ │ │ + ldrd r3, r1, [sp, #32] │ │ │ │ │ str r2, [sp, #8] │ │ │ │ │ - blx r4 │ │ │ │ │ - ldr r3, [sp, #20] │ │ │ │ │ + ldr r0, [sp, #52] @ 0x34 │ │ │ │ │ + add r3, r5 │ │ │ │ │ add r5, r9 │ │ │ │ │ + ldr r4, [r0, #56] @ 0x38 │ │ │ │ │ + blx r4 │ │ │ │ │ ldr r2, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #20] │ │ │ │ │ ldr r1, [sp, #56] @ 0x38 │ │ │ │ │ - adds r3, #1 │ │ │ │ │ add r2, r9 │ │ │ │ │ - str r3, [sp, #20] │ │ │ │ │ + add.w r3, r3, #1 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ - bge.n 82 │ │ │ │ │ + str r3, [sp, #20] │ │ │ │ │ + bge.n 98 │ │ │ │ │ ldrd r5, fp, [sp, #60] @ 0x3c │ │ │ │ │ ldr r4, [sp, #68] @ 0x44 │ │ │ │ │ - cbz r5, 146 │ │ │ │ │ + cbz r5, 174 │ │ │ │ │ ldr r3, [r5, #56] @ 0x38 │ │ │ │ │ mov r2, r4 │ │ │ │ │ mov r1, fp │ │ │ │ │ mov r0, r5 │ │ │ │ │ add sp, #92 @ 0x5c │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w lr, [sp], #4 │ │ │ │ │ bx r3 │ │ │ │ │ add sp, #92 @ 0x5c │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ │ │ │ │ │ -0000014c : │ │ │ │ │ +0000018c : │ │ │ │ │ print(): │ │ │ │ │ mov ip, r0 │ │ │ │ │ - ldr r3, [pc, #80] @ (1a0 ) │ │ │ │ │ - push {r4, r5, lr} │ │ │ │ │ + ldr r3, [pc, #96] @ (1f0 ) │ │ │ │ │ mov r0, r1 │ │ │ │ │ + str.w r4, [sp, #-12]! │ │ │ │ │ ldr r4, [r1, #0] │ │ │ │ │ + strd r5, lr, [sp, #4] │ │ │ │ │ + sub sp, #20 │ │ │ │ │ ldr.w r1, [ip, #56] @ 0x38 │ │ │ │ │ add r3, pc │ │ │ │ │ ldr.w r2, [ip, #112] @ 0x70 │ │ │ │ │ - sub sp, #20 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ - beq.n 19a │ │ │ │ │ - ldr r3, [pc, #60] @ (1a4 ) │ │ │ │ │ + beq.n 1e8 │ │ │ │ │ + ldr r3, [pc, #68] @ (1f4 ) │ │ │ │ │ add r3, pc │ │ │ │ │ ldr.w r1, [ip, #88] @ 0x58 │ │ │ │ │ cmp r1, #2 │ │ │ │ │ - beq.n 194 │ │ │ │ │ - ldr r1, [pc, #52] @ (1a8 ) │ │ │ │ │ + beq.n 1e2 │ │ │ │ │ + ldr r1, [pc, #60] @ (1f8 ) │ │ │ │ │ add r1, pc │ │ │ │ │ ldr.w r5, [ip, #68] @ 0x44 │ │ │ │ │ str r5, [sp, #12] │ │ │ │ │ ldr.w r5, [ip, #76] @ 0x4c │ │ │ │ │ str r5, [sp, #8] │ │ │ │ │ ldr.w r5, [ip, #72] @ 0x48 │ │ │ │ │ strd r1, r5, [sp] │ │ │ │ │ - ldr r1, [pc, #32] @ (1ac ) │ │ │ │ │ + ldr r1, [pc, #40] @ (1fc ) │ │ │ │ │ add r1, pc │ │ │ │ │ blx r4 │ │ │ │ │ add sp, #20 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ - ldr r1, [pc, #24] @ (1b0 ) │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + ldr r1, [pc, #28] @ (200 ) │ │ │ │ │ add r1, pc │ │ │ │ │ - b.n 176 │ │ │ │ │ - ldr r3, [pc, #24] @ (1b4 ) │ │ │ │ │ + b.n 1bc │ │ │ │ │ + ldr r3, [pc, #24] @ (204 ) │ │ │ │ │ add r3, pc │ │ │ │ │ - b.n 16a │ │ │ │ │ - .word 0x00000042 │ │ │ │ │ + b.n 1b0 │ │ │ │ │ + nop │ │ │ │ │ + .word 0x0000004a │ │ │ │ │ R_ARM_REL32 apply_ddft_first │ │ │ │ │ - .word 0x00000038 │ │ │ │ │ + .word 0x00000042 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ - .word 0x00000030 │ │ │ │ │ + .word 0x0000003a │ │ │ │ │ R_ARM_REL32 .LC4 │ │ │ │ │ - .word 0x0000001c │ │ │ │ │ + .word 0x00000026 │ │ │ │ │ R_ARM_REL32 .LC5 │ │ │ │ │ - .word 0x00000016 │ │ │ │ │ + .word 0x00000018 │ │ │ │ │ R_ARM_REL32 .LC3 │ │ │ │ │ - .word 0x00000014 │ │ │ │ │ + .word 0x00000016 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ │ │ │ │ │ -000001b8 : │ │ │ │ │ +00000208 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #76] @ 0x4c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ - ldmia.w sp!, {r4, lr} │ │ │ │ │ + ldrd r4, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_plan_destroy_internal │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -000001d4 : │ │ │ │ │ +00000228 : │ │ │ │ │ mkplan(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + mov r6, r2 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r7, r0 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ sub sp, #100 @ 0x64 │ │ │ │ │ - mov r6, r2 │ │ │ │ │ add r5, sp, #76 @ 0x4c │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r3, [r3, #0] │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - beq.n 1fa │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + beq.n 272 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add sp, #100 @ 0x64 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldr r2, [r4, #24] │ │ │ │ │ cmp r2, #3 │ │ │ │ │ - bhi.n 1f2 │ │ │ │ │ + bhi.n 256 │ │ │ │ │ ldr r3, [r7, #12] │ │ │ │ │ - cbz r3, 214 │ │ │ │ │ + cbz r3, 28c │ │ │ │ │ ldr.w r3, [r6, #164] @ 0xa4 │ │ │ │ │ lsls r3, r3, #19 │ │ │ │ │ - bmi.n 1f2 │ │ │ │ │ + bmi.n 256 │ │ │ │ │ ldrd r1, r3, [r4, #12] │ │ │ │ │ cmp r1, r3 │ │ │ │ │ - beq.n 1f2 │ │ │ │ │ + beq.n 256 │ │ │ │ │ lsls r0, r2, #31 │ │ │ │ │ - bpl.w 4d8 │ │ │ │ │ - ldr r3, [pc, #900] @ (5a0 ) │ │ │ │ │ + bpl.w 57a │ │ │ │ │ + ldr r3, [pc, #952] @ (64c ) │ │ │ │ │ ldr r1, [r7, #8] │ │ │ │ │ add r3, pc │ │ │ │ │ cmp r1, r3 │ │ │ │ │ - bne.n 1f2 │ │ │ │ │ + bne.n 256 │ │ │ │ │ lsls r3, r2, #30 │ │ │ │ │ - bmi.n 1f2 │ │ │ │ │ + bmi.n 256 │ │ │ │ │ ldr.w r3, [r6, #164] @ 0xa4 │ │ │ │ │ lsls r1, r3, #28 │ │ │ │ │ - bmi.w 590 │ │ │ │ │ - ldr r3, [sp, #76] @ 0x4c │ │ │ │ │ + bmi.w 63a │ │ │ │ │ ldr r1, [r4, #8] │ │ │ │ │ + ldr r3, [sp, #76] @ 0x4c │ │ │ │ │ cmp r1, r3 │ │ │ │ │ - blt.n 23e │ │ │ │ │ + blt.n 2b6 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - beq.n 1f2 │ │ │ │ │ - ldr r1, [r4, #4] │ │ │ │ │ + beq.n 256 │ │ │ │ │ add r0, sp, #88 @ 0x58 │ │ │ │ │ + ldr r1, [r4, #4] │ │ │ │ │ str r0, [sp, #12] │ │ │ │ │ add r0, sp, #80 @ 0x50 │ │ │ │ │ str r0, [sp, #8] │ │ │ │ │ ldr r0, [r4, #20] │ │ │ │ │ strd r2, r0, [sp] │ │ │ │ │ - adds r2, r1, #4 │ │ │ │ │ + add.w r2, r1, #4 │ │ │ │ │ ldmia r2, {r0, r1, r2} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_choose_radix │ │ │ │ │ mov r8, r0 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n 1f2 │ │ │ │ │ - add r1, sp, #72 @ 0x48 │ │ │ │ │ + beq.n 256 │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + add r1, sp, #72 @ 0x48 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ - mov r1, r5 │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ mov r1, r8 │ │ │ │ │ ldr r0, [r3, #4] │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ ldr r3, [r7, #8] │ │ │ │ │ - str r3, [sp, #40] @ 0x28 │ │ │ │ │ - mov r2, r3 │ │ │ │ │ - ldr r3, [pc, #804] @ (5a4 ) │ │ │ │ │ str r0, [sp, #24] │ │ │ │ │ + mov r2, r3 │ │ │ │ │ + ldr r3, [pc, #856] @ (650 ) │ │ │ │ │ add r3, pc │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - ldr r2, [sp, #72] @ 0x48 │ │ │ │ │ ite eq │ │ │ │ │ moveq r3, #1 │ │ │ │ │ movne r3, #0 │ │ │ │ │ - str r3, [sp, #36] @ 0x24 │ │ │ │ │ - beq.w 562 │ │ │ │ │ - ldrd sl, fp, [sp, #80] @ 0x50 │ │ │ │ │ + strd r3, r2, [sp, #36] @ 0x24 │ │ │ │ │ + ldr r2, [sp, #72] @ 0x48 │ │ │ │ │ + beq.w 608 │ │ │ │ │ mov r0, r8 │ │ │ │ │ + ldrd sl, fp, [sp, #80] @ 0x50 │ │ │ │ │ mov r1, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ ldr.w r9, [sp, #24] │ │ │ │ │ - str r0, [sp, #44] @ 0x2c │ │ │ │ │ str.w r8, [sp, #32] │ │ │ │ │ + str r0, [sp, #44] @ 0x2c │ │ │ │ │ ldr r3, [r7, #12] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.w 540 │ │ │ │ │ + bne.w 5e6 │ │ │ │ │ ldr.w r5, [r6, #164] @ 0xa4 │ │ │ │ │ and.w r3, r5, #4096 @ 0x1000 │ │ │ │ │ - str r3, [sp, #28] │ │ │ │ │ ubfx r5, r5, #12, #1 │ │ │ │ │ - ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ + str r3, [sp, #28] │ │ │ │ │ eor.w r5, r5, #1 │ │ │ │ │ - orrs r5, r3 │ │ │ │ │ + ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ + orr.w r5, r5, r3 │ │ │ │ │ uxtb r5, r5 │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkdtensor │ │ │ │ │ ldr r1, [r4, #8] │ │ │ │ │ ldr r2, [sp, #32] │ │ │ │ │ - strd r2, sl, [r0, #4] │ │ │ │ │ - ldrd r3, ip, [r4, #16] │ │ │ │ │ + ldr r3, [r4, #16] │ │ │ │ │ mul.w r1, r1, r9 │ │ │ │ │ + ldr.w ip, [r4, #20] │ │ │ │ │ + strd r2, sl, [r0, #4] │ │ │ │ │ ldr r2, [r4, #28] │ │ │ │ │ str.w fp, [r0, #12] │ │ │ │ │ cmp r5, #0 │ │ │ │ │ - beq.w 500 │ │ │ │ │ - str r2, [sp, #0] │ │ │ │ │ - movs r5, #16 │ │ │ │ │ - strd ip, r5, [sp, #4] │ │ │ │ │ + beq.w 5a2 │ │ │ │ │ + mov.w r5, #16 │ │ │ │ │ + strd r2, ip, [sp] │ │ │ │ │ + str r5, [sp, #8] │ │ │ │ │ ldr r2, [r4, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_d │ │ │ │ │ mov sl, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.w 58a │ │ │ │ │ - ldr r3, [pc, #656] @ (5a8 ) │ │ │ │ │ + bne.w 632 │ │ │ │ │ + ldr r3, [pc, #696] @ (654 ) │ │ │ │ │ ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ add r3, pc │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - bne.w 4ec │ │ │ │ │ + bne.w 58e │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ ldr r1, [r4, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.w 4fc │ │ │ │ │ + bne.w 59e │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.w 4fc │ │ │ │ │ + bne.w 59e │ │ │ │ │ ldr r5, [r4, #12] │ │ │ │ │ - ldr r0, [r4, #20] │ │ │ │ │ add r3, sp, #60 @ 0x3c │ │ │ │ │ add r2, sp, #56 @ 0x38 │ │ │ │ │ + ldr r0, [r4, #20] │ │ │ │ │ add.w fp, sp, #68 @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_extract_reim │ │ │ │ │ add r3, sp, #64 @ 0x40 │ │ │ │ │ - mov r2, r3 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ ldr r0, [r4, #20] │ │ │ │ │ - str r3, [sp, #48] @ 0x30 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ + mov r2, r3 │ │ │ │ │ mov r3, fp │ │ │ │ │ + str r2, [sp, #48] @ 0x30 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_extract_reim │ │ │ │ │ ldr r2, [r4, #8] │ │ │ │ │ mov r0, r9 │ │ │ │ │ - lsls r2, r2, #1 │ │ │ │ │ + mov.w r2, r2, lsl #1 │ │ │ │ │ mov r1, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor_1d │ │ │ │ │ - movs r2, #2 │ │ │ │ │ + mov.w r2, #2 │ │ │ │ │ mov r5, r0 │ │ │ │ │ - mov r1, r2 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ + mov r1, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor_1d │ │ │ │ │ + ldr r2, [sp, #56] @ 0x38 │ │ │ │ │ + mov r1, r0 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - mov r1, r0 │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - ldrd r2, r3, [sp, #56] @ 0x38 │ │ │ │ │ + ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_d │ │ │ │ │ mov r5, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.w 586 │ │ │ │ │ + bne.w 62c │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.w 582 │ │ │ │ │ + bne.w 628 │ │ │ │ │ ldr r2, [r4, #8] │ │ │ │ │ ldr r0, [sp, #28] │ │ │ │ │ ldr r1, [r4, #16] │ │ │ │ │ - lsls r3, r2, #1 │ │ │ │ │ + mov.w r3, r2, lsl #1 │ │ │ │ │ str r3, [sp, #52] @ 0x34 │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ ite eq │ │ │ │ │ moveq r3, #0 │ │ │ │ │ andne.w r3, r3, #1 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq.w 548 │ │ │ │ │ + beq.w 5f0 │ │ │ │ │ mov r3, r1 │ │ │ │ │ - ldr.w ip, [sp, #92] @ 0x5c │ │ │ │ │ ldr.w lr, [sp, #84] @ 0x54 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ - str r0, [sp, #16] │ │ │ │ │ + ldr.w ip, [sp, #92] @ 0x5c │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ ldr r2, [sp, #52] @ 0x34 │ │ │ │ │ + str r0, [sp, #16] │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ - strd lr, r0, [sp, #8] │ │ │ │ │ strd r1, ip, [sp] │ │ │ │ │ mov r1, r8 │ │ │ │ │ + strd lr, r0, [sp, #8] │ │ │ │ │ ldr r0, [sp, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkproblem_transpose │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_d │ │ │ │ │ mov r6, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.w 52c │ │ │ │ │ - ldr r1, [pc, #428] @ (5ac ) │ │ │ │ │ - movs r0, #120 @ 0x78 │ │ │ │ │ + bne.w 5d2 │ │ │ │ │ + ldr r1, [pc, #456] @ (658 ) │ │ │ │ │ + mov.w r0, #120 @ 0x78 │ │ │ │ │ ldr r2, [r7, #8] │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_rdft │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ mov r7, r0 │ │ │ │ │ - str r3, [r0, #88] @ 0x58 │ │ │ │ │ + ldrd r1, r0, [r4, #16] │ │ │ │ │ + strd r6, sl, [r7, #68] @ 0x44 │ │ │ │ │ ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ + str r5, [r7, #76] @ 0x4c │ │ │ │ │ + str r3, [r7, #88] @ 0x58 │ │ │ │ │ mov r3, fp │ │ │ │ │ - strd sl, r5, [r0, #72] @ 0x48 │ │ │ │ │ - str r6, [r0, #68] @ 0x44 │ │ │ │ │ - ldrd r1, r0, [r4, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_extract_reim │ │ │ │ │ ldr r2, [r4, #16] │ │ │ │ │ add.w r0, sl, #8 │ │ │ │ │ - ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ ldr r1, [sp, #40] @ 0x28 │ │ │ │ │ - subs r3, r3, r2 │ │ │ │ │ - asrs r3, r3, #3 │ │ │ │ │ + ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ + sub.w r3, r3, r2 │ │ │ │ │ + mov.w r3, r3, asr #3 │ │ │ │ │ str r3, [r7, #80] @ 0x50 │ │ │ │ │ ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ - subs r3, r3, r2 │ │ │ │ │ + sub.w r3, r3, r2 │ │ │ │ │ ldr r2, [r4, #8] │ │ │ │ │ - str r2, [r7, #92] @ 0x5c │ │ │ │ │ add.w r4, r7, #8 │ │ │ │ │ - asrs r3, r3, #3 │ │ │ │ │ + mov.w r3, r3, asr #3 │ │ │ │ │ str r3, [r7, #84] @ 0x54 │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ - strd r3, r8, [r7, #108] @ 0x6c │ │ │ │ │ + str r2, [r7, #92] @ 0x5c │ │ │ │ │ mul.w r2, r9, r2 │ │ │ │ │ - ldr r3, [pc, #356] @ (5b0 ) │ │ │ │ │ + mov.w r2, r2, lsl #1 │ │ │ │ │ + str.w r8, [r7, #112] @ 0x70 │ │ │ │ │ + str r3, [r7, #108] @ 0x6c │ │ │ │ │ + ldr r3, [pc, #368] @ (65c ) │ │ │ │ │ + str r2, [r7, #104] @ 0x68 │ │ │ │ │ + mov r2, r4 │ │ │ │ │ add r3, pc │ │ │ │ │ - lsls r2, r2, #1 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ ldr r1, [sp, #72] @ 0x48 │ │ │ │ │ - str r2, [r7, #104] @ 0x68 │ │ │ │ │ - mov r2, r4 │ │ │ │ │ ite eq │ │ │ │ │ ldreq r3, [sp, #92] @ 0x5c │ │ │ │ │ ldrne r3, [sp, #80] @ 0x50 │ │ │ │ │ mul.w r3, r1, r3 │ │ │ │ │ ldr r1, [sp, #44] @ 0x2c │ │ │ │ │ str r3, [r7, #96] @ 0x60 │ │ │ │ │ add r3, r1 │ │ │ │ │ add.w r1, r5, #8 │ │ │ │ │ - subs r3, #1 │ │ │ │ │ + add.w r3, r3, #4294967295 @ 0xffffffff │ │ │ │ │ str r3, [r7, #100] @ 0x64 │ │ │ │ │ - movs r3, #0 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ str r3, [r7, #64] @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ops_add │ │ │ │ │ - cbz r6, 484 │ │ │ │ │ + cbz r6, 526 │ │ │ │ │ mov r1, r4 │ │ │ │ │ add.w r0, r6, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ops_add2 │ │ │ │ │ - ldrd r2, r3, [r7, #96] @ 0x60 │ │ │ │ │ vmov.f64 d6, #32 @ 0x41000000 8.0 │ │ │ │ │ vldr d5, [r7, #16] │ │ │ │ │ vmov.f64 d4, #16 @ 0x40800000 4.0 │ │ │ │ │ - subs r2, r3, r2 │ │ │ │ │ - ldr r3, [sp, #32] │ │ │ │ │ mov r0, r7 │ │ │ │ │ - subs r3, #1 │ │ │ │ │ + ldrd r2, r3, [r7, #96] @ 0x60 │ │ │ │ │ + sub.w r2, r3, r2 │ │ │ │ │ + ldr r3, [sp, #32] │ │ │ │ │ + add.w r3, r3, #4294967295 @ 0xffffffff │ │ │ │ │ mla r3, r2, r3, r3 │ │ │ │ │ ldr r2, [r7, #92] @ 0x5c │ │ │ │ │ mul.w r3, r2, r3 │ │ │ │ │ vmov s15, r3 │ │ │ │ │ vcvt.f64.s32 d7, s15 │ │ │ │ │ vmul.f64 d6, d7, d6 │ │ │ │ │ vadd.f64 d5, d5, d6 │ │ │ │ │ vstr d5, [r7, #16] │ │ │ │ │ vldr d5, [r7, #8] │ │ │ │ │ vmla.f64 d5, d7, d4 │ │ │ │ │ vldr d7, [r7, #32] │ │ │ │ │ vadd.f64 d7, d7, d6 │ │ │ │ │ - vstr d7, [r7, #32] │ │ │ │ │ vstr d5, [r7, #8] │ │ │ │ │ - add sp, #100 @ 0x64 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + vstr d7, [r7, #32] │ │ │ │ │ + b.n 25a │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - beq.w 228 │ │ │ │ │ - ldr r3, [pc, #212] @ (5b4 ) │ │ │ │ │ + beq.w 2a0 │ │ │ │ │ + ldr r3, [pc, #220] @ (660 ) │ │ │ │ │ ldr r1, [r7, #8] │ │ │ │ │ add r3, pc │ │ │ │ │ cmp r1, r3 │ │ │ │ │ - bne.w 1f2 │ │ │ │ │ - b.n 228 │ │ │ │ │ + bne.w 256 │ │ │ │ │ + b.n 2a0 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.n 576 │ │ │ │ │ + bne.n 61c │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ ldr r1, [r4, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq.w 332 │ │ │ │ │ + beq.w 3b6 │ │ │ │ │ mov r5, r1 │ │ │ │ │ - b.n 334 │ │ │ │ │ + b.n 3b8 │ │ │ │ │ mov.w lr, #16 │ │ │ │ │ - str r2, [sp, #0] │ │ │ │ │ - strd ip, lr, [sp, #4] │ │ │ │ │ + strd r2, ip, [sp] │ │ │ │ │ mov r2, r3 │ │ │ │ │ + str.w lr, [sp, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_d │ │ │ │ │ mov sl, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n 4ec │ │ │ │ │ + beq.n 58e │ │ │ │ │ mov r6, r5 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ - b.n 1f2 │ │ │ │ │ - movs r3, #2 │ │ │ │ │ + b.n 256 │ │ │ │ │ + mov.w r3, #2 │ │ │ │ │ ldr r5, [sp, #36] @ 0x24 │ │ │ │ │ str r3, [sp, #28] │ │ │ │ │ - b.n 2c8 │ │ │ │ │ - ldr r0, [pc, #108] @ (5b8 ) │ │ │ │ │ + b.n 344 │ │ │ │ │ + ldr r0, [pc, #112] @ (664 ) │ │ │ │ │ ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ - add r0, pc │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ + add r0, pc │ │ │ │ │ cmp r2, r0 │ │ │ │ │ - itt ne │ │ │ │ │ - ldrne.w ip, [sp, #88] @ 0x58 │ │ │ │ │ - ldrne.w lr, [sp, #80] @ 0x50 │ │ │ │ │ - bne.w 3c8 │ │ │ │ │ - b.n 3c0 │ │ │ │ │ + beq.w 44c │ │ │ │ │ + ldr.w lr, [sp, #80] @ 0x50 │ │ │ │ │ + ldr.w ip, [sp, #88] @ 0x58 │ │ │ │ │ + b.n 454 │ │ │ │ │ ldrd sl, fp, [sp, #88] @ 0x58 │ │ │ │ │ mov r9, r8 │ │ │ │ │ mov r1, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ - str r0, [sp, #44] @ 0x2c │ │ │ │ │ str r3, [sp, #32] │ │ │ │ │ - b.n 2a8 │ │ │ │ │ + str r0, [sp, #44] @ 0x2c │ │ │ │ │ + b.n 322 │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ ldr r1, [r4, #12] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq.n 4fc │ │ │ │ │ + beq.n 59e │ │ │ │ │ ldr r5, [r4, #16] │ │ │ │ │ - b.n 334 │ │ │ │ │ + b.n 3b8 │ │ │ │ │ mov r6, r0 │ │ │ │ │ - b.n 3fc │ │ │ │ │ - movs r6, #0 │ │ │ │ │ - b.n 52c │ │ │ │ │ - movs r6, #0 │ │ │ │ │ + b.n 48c │ │ │ │ │ + mov.w r6, #0 │ │ │ │ │ + b.n 5d2 │ │ │ │ │ + mov.w r6, #0 │ │ │ │ │ mov r5, r6 │ │ │ │ │ - b.n 52c │ │ │ │ │ + b.n 5d2 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dft_serial_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.w 1f2 │ │ │ │ │ + bne.w 256 │ │ │ │ │ ldr r2, [r4, #24] │ │ │ │ │ - b.n 232 │ │ │ │ │ - .word 0x0000037e │ │ │ │ │ + b.n 2aa │ │ │ │ │ + nop │ │ │ │ │ + .word 0x000003b2 │ │ │ │ │ R_ARM_REL32 apply_ddft_last │ │ │ │ │ - .word 0x00000320 │ │ │ │ │ + .word 0x00000354 │ │ │ │ │ R_ARM_REL32 apply_ddft_first │ │ │ │ │ - .word 0x0000028c │ │ │ │ │ + .word 0x000002b4 │ │ │ │ │ R_ARM_REL32 apply_ddft_first │ │ │ │ │ - .word 0x000001a6 │ │ │ │ │ + .word 0x000001c0 │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ - .word 0x00000160 │ │ │ │ │ + .word 0x00000168 │ │ │ │ │ R_ARM_REL32 apply_ddft_first │ │ │ │ │ - .word 0x000000ce │ │ │ │ │ + .word 0x000000d8 │ │ │ │ │ R_ARM_REL32 apply_ddft_first │ │ │ │ │ - .word 0x00000068 │ │ │ │ │ + .word 0x0000006a │ │ │ │ │ R_ARM_REL32 apply_ddft_first │ │ │ │ │ │ │ │ │ │ -000005bc : │ │ │ │ │ +00000668 : │ │ │ │ │ awake(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ - mov r5, r0 │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ + mov r5, r0 │ │ │ │ │ ldr r0, [r0, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_awake │ │ │ │ │ ldr r0, [r5, #76] @ 0x4c │ │ │ │ │ mov r1, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_awake │ │ │ │ │ ldr r0, [r5, #72] @ 0x48 │ │ │ │ │ mov r1, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_awake │ │ │ │ │ - cbnz r4, 5e4 │ │ │ │ │ + cbnz r4, 69c │ │ │ │ │ ldr r0, [r5, #64] @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_triggen_destroy │ │ │ │ │ str r4, [r5, #64] @ 0x40 │ │ │ │ │ - pop {r3, r4, r5, pc} │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + pop {r5, pc} │ │ │ │ │ ldrd r1, r3, [r5, #108] @ 0x6c │ │ │ │ │ - movs r0, #2 │ │ │ │ │ + mov.w r0, #2 │ │ │ │ │ mul.w r1, r3, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktriggen │ │ │ │ │ mov r4, r0 │ │ │ │ │ str r4, [r5, #64] @ 0x40 │ │ │ │ │ - pop {r3, r4, r5, pc} │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + pop {r5, pc} │ │ │ │ │ │ │ │ │ │ -000005f8 : │ │ │ │ │ +000006b8 : │ │ │ │ │ apply_ddft_last(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ mov fp, r0 │ │ │ │ │ ldr r0, [r0, #68] @ 0x44 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + mov r8, r2 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ sub sp, #92 @ 0x5c │ │ │ │ │ mov sl, r1 │ │ │ │ │ - mov r8, r2 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.w 72e │ │ │ │ │ + beq.w 820 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ mov r2, r8 │ │ │ │ │ + ldr.w r7, [fp, #64] @ 0x40 │ │ │ │ │ ldr.w r5, [fp, #108] @ 0x6c │ │ │ │ │ - ldr.w r3, [fp, #88] @ 0x58 │ │ │ │ │ + ldrd r1, r3, [fp, #84] @ 0x54 │ │ │ │ │ + ldrd r4, r0, [fp, #100] @ 0x64 │ │ │ │ │ str r5, [sp, #28] │ │ │ │ │ - ldrd r6, r5, [fp, #92] @ 0x5c │ │ │ │ │ + ldr.w r6, [fp, #92] @ 0x5c │ │ │ │ │ cmp r3, #0 │ │ │ │ │ it ne │ │ │ │ │ movne sl, r8 │ │ │ │ │ - ldr.w r4, [fp, #100] @ 0x64 │ │ │ │ │ + ldr.w r5, [fp, #96] @ 0x60 │ │ │ │ │ ldr.w r3, [fp, #76] @ 0x4c │ │ │ │ │ - str r3, [sp, #12] │ │ │ │ │ cmp r4, r5 │ │ │ │ │ - ldrd r3, r1, [fp, #80] @ 0x50 │ │ │ │ │ - str r4, [sp, #52] @ 0x34 │ │ │ │ │ - ldr.w r0, [fp, #104] @ 0x68 │ │ │ │ │ - ldr.w r7, [fp, #64] @ 0x40 │ │ │ │ │ + str r3, [sp, #12] │ │ │ │ │ + ldr.w r3, [fp, #80] @ 0x50 │ │ │ │ │ str r5, [sp, #24] │ │ │ │ │ - blt.n 71c │ │ │ │ │ - lsls r5, r1, #3 │ │ │ │ │ - lsls r0, r0, #3 │ │ │ │ │ + str r4, [sp, #52] @ 0x34 │ │ │ │ │ + blt.n 7fc │ │ │ │ │ + mov.w r5, r1, lsl #3 │ │ │ │ │ + sub.w r3, r3, r1 │ │ │ │ │ + strd sl, r8, [sp, #64] @ 0x40 │ │ │ │ │ + mov.w r1, r3, lsl #3 │ │ │ │ │ + add.w r9, sp, #72 @ 0x48 │ │ │ │ │ add r2, r5 │ │ │ │ │ - subs r3, r3, r1 │ │ │ │ │ add r5, sl │ │ │ │ │ - str.w sl, [sp, #64] @ 0x40 │ │ │ │ │ ldr.w sl, [sp, #12] │ │ │ │ │ - add.w r9, sp, #72 @ 0x48 │ │ │ │ │ - str.w fp, [sp, #60] @ 0x3c │ │ │ │ │ + mov.w r0, r0, lsl #3 │ │ │ │ │ + strd r1, fp, [sp, #56] @ 0x38 │ │ │ │ │ + mov.w r1, r6, lsl #4 │ │ │ │ │ mov fp, r0 │ │ │ │ │ - lsls r1, r3, #3 │ │ │ │ │ - str.w r8, [sp, #68] @ 0x44 │ │ │ │ │ - str r1, [sp, #56] @ 0x38 │ │ │ │ │ - lsls r1, r6, #4 │ │ │ │ │ str r1, [sp, #32] │ │ │ │ │ ldr r1, [sp, #56] @ 0x38 │ │ │ │ │ mov r0, sl │ │ │ │ │ str r5, [sp, #0] │ │ │ │ │ - adds r3, r5, r1 │ │ │ │ │ - adds r1, r2, r1 │ │ │ │ │ ldr.w r4, [sl, #56] @ 0x38 │ │ │ │ │ - str r2, [sp, #16] │ │ │ │ │ - str r3, [sp, #12] │ │ │ │ │ + add.w r3, r5, r1 │ │ │ │ │ + add r1, r2 │ │ │ │ │ + strd r3, r2, [sp, #12] │ │ │ │ │ blx r4 │ │ │ │ │ ldr r2, [sp, #28] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ ldr r2, [sp, #16] │ │ │ │ │ - ble.n 704 │ │ │ │ │ + ble.n 7e2 │ │ │ │ │ cmp r6, #0 │ │ │ │ │ - ble.n 704 │ │ │ │ │ - movs r4, #0 │ │ │ │ │ + ble.n 7e2 │ │ │ │ │ ldr.w r8, [r7, #8] │ │ │ │ │ - ldr r3, [sp, #12] │ │ │ │ │ + mov.w r4, #0 │ │ │ │ │ mov ip, r5 │ │ │ │ │ strd fp, sl, [sp, #36] @ 0x24 │ │ │ │ │ mov fp, r4 │ │ │ │ │ - str r2, [sp, #44] @ 0x2c │ │ │ │ │ + ldr r3, [sp, #12] │ │ │ │ │ + strd r2, r5, [sp, #44] @ 0x2c │ │ │ │ │ mov r2, r4 │ │ │ │ │ - str r5, [sp, #48] @ 0x30 │ │ │ │ │ add.w sl, r3, #16 │ │ │ │ │ add.w r5, ip, #16 │ │ │ │ │ - movs r4, #0 │ │ │ │ │ strd r2, r3, [sp, #12] │ │ │ │ │ + mov.w r4, #0 │ │ │ │ │ str.w ip, [sp, #20] │ │ │ │ │ vldr d1, [r5, #-16] │ │ │ │ │ mov r1, fp │ │ │ │ │ - vldr d0, [sl, #-16] │ │ │ │ │ mov r0, r7 │ │ │ │ │ mov r2, r9 │ │ │ │ │ - adds r4, #1 │ │ │ │ │ - blx r8 │ │ │ │ │ + add.w r4, r4, #1 │ │ │ │ │ + vldr d0, [sl, #-16] │ │ │ │ │ + add.w r5, r5, #16 │ │ │ │ │ add.w sl, sl, #16 │ │ │ │ │ + blx r8 │ │ │ │ │ ldrd r0, r1, [sp, #72] @ 0x48 │ │ │ │ │ + cmp r6, r4 │ │ │ │ │ strd r0, r1, [sl, #-32] │ │ │ │ │ ldrd r0, r1, [sp, #80] @ 0x50 │ │ │ │ │ - strd r0, r1, [r5, #-16] │ │ │ │ │ - cmp r6, r4 │ │ │ │ │ - add.w r5, r5, #16 │ │ │ │ │ - bne.n 6b4 │ │ │ │ │ + strd r0, r1, [r5, #-32] │ │ │ │ │ + bne.n 78e │ │ │ │ │ ldrd r2, r3, [sp, #12] │ │ │ │ │ - ldr r1, [sp, #32] │ │ │ │ │ ldr.w ip, [sp, #20] │ │ │ │ │ - adds r2, #1 │ │ │ │ │ - add r3, r1 │ │ │ │ │ + ldr r1, [sp, #32] │ │ │ │ │ + add.w r2, r2, #1 │ │ │ │ │ add ip, r1 │ │ │ │ │ + add r3, r1 │ │ │ │ │ ldr r1, [sp, #24] │ │ │ │ │ add fp, r1 │ │ │ │ │ ldr r1, [sp, #28] │ │ │ │ │ cmp r1, r2 │ │ │ │ │ - bne.n 6a2 │ │ │ │ │ + bne.n 77a │ │ │ │ │ ldrd fp, sl, [sp, #36] @ 0x24 │ │ │ │ │ ldrd r2, r5, [sp, #44] @ 0x2c │ │ │ │ │ add r2, fp │ │ │ │ │ - ldr r3, [sp, #24] │ │ │ │ │ add r5, fp │ │ │ │ │ + ldr r3, [sp, #24] │ │ │ │ │ ldr r1, [sp, #52] @ 0x34 │ │ │ │ │ - adds r3, #1 │ │ │ │ │ - str r3, [sp, #24] │ │ │ │ │ + add.w r3, r3, #1 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ - bge.n 66c │ │ │ │ │ + str r3, [sp, #24] │ │ │ │ │ + bge.n 740 │ │ │ │ │ ldrd fp, sl, [sp, #60] @ 0x3c │ │ │ │ │ ldr.w r8, [sp, #68] @ 0x44 │ │ │ │ │ - ldr.w r0, [fp, #72] @ 0x48 │ │ │ │ │ mov r2, r8 │ │ │ │ │ mov r1, sl │ │ │ │ │ + ldr.w r0, [fp, #72] @ 0x48 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ add sp, #92 @ 0x5c │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w lr, [sp], #4 │ │ │ │ │ bx r3 │ │ │ │ │ mov r2, r1 │ │ │ │ │ - b.n 612 │ │ │ │ │ - nop │ │ │ │ │ + b.n 6e2 │ │ │ │ │ │ │ │ │ │ -00000734 : │ │ │ │ │ +00000824 : │ │ │ │ │ fftw_mpi_dft_rank1_register(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + ldr r3, [pc, #124] @ (8a4 ) │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r3, [pc, #80] @ (78c ) │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + mov.w r7, #2 │ │ │ │ │ + mov.w r8, #0 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ sub sp, #12 │ │ │ │ │ - ldr r6, [pc, #80] @ (790 ) │ │ │ │ │ add r3, pc │ │ │ │ │ + ldr r6, [pc, #96] @ (8a8 ) │ │ │ │ │ mov r9, sp │ │ │ │ │ - add.w r8, sp, #8 │ │ │ │ │ - add r6, pc │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - movs r7, #0 │ │ │ │ │ - ldr r3, [pc, #68] @ (794 ) │ │ │ │ │ + ldr r3, [pc, #96] @ (8ac ) │ │ │ │ │ + add r6, pc │ │ │ │ │ add r3, pc │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr.w r5, [r9], #4 │ │ │ │ │ mov r1, r6 │ │ │ │ │ - movs r0, #16 │ │ │ │ │ + mov.w r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mksolver │ │ │ │ │ mov r1, r0 │ │ │ │ │ - strd r5, r7, [r0, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ + strd r5, r8, [r1, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_solver_register │ │ │ │ │ mov r1, r6 │ │ │ │ │ - movs r0, #16 │ │ │ │ │ + mov.w r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mksolver │ │ │ │ │ - movs r3, #1 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r5, [r0, #8] │ │ │ │ │ - str r3, [r0, #12] │ │ │ │ │ mov r0, r4 │ │ │ │ │ + str r5, [r1, #8] │ │ │ │ │ + mov.w r5, #1 │ │ │ │ │ + str r5, [r1, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_solver_register │ │ │ │ │ - cmp r8, r9 │ │ │ │ │ - bne.n 754 │ │ │ │ │ + cmp r7, r5 │ │ │ │ │ + bne.n 89e │ │ │ │ │ add sp, #12 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ - .word 0x00000048 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + mov r7, r5 │ │ │ │ │ + b.n 852 │ │ │ │ │ + nop │ │ │ │ │ + .word 0x0000005e │ │ │ │ │ R_ARM_REL32 apply_ddft_first │ │ │ │ │ - .word 0x00000044 │ │ │ │ │ + .word 0x00000058 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ │ │ - .word 0x00000040 │ │ │ │ │ + .word 0x0000005a │ │ │ │ │ R_ARM_REL32 apply_ddft_last │ │ │ ├── dft-rank1-bigvec.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 3040 (bytes into file) │ │ │ │ │ + Start of section headers: 3184 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 16 │ │ │ │ │ Section header string table index: 15 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,25 +1,25 @@ │ │ │ │ │ -There are 16 section headers, starting at offset 0xbe0: │ │ │ │ │ +There are 16 section headers, starting at offset 0xc70: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 00037c 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0009b8 000170 08 I 13 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 0003b0 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 0003b0 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 0003b0 000039 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .rodata PROGBITS 00000000 0003e9 000050 00 A 0 0 4 │ │ │ │ │ - [ 7] .data.rel.ro PROGBITS 00000000 000439 000010 00 WA 0 0 4 │ │ │ │ │ - [ 8] .rel.data.rel.ro REL 00000000 000b28 000020 08 I 13 7 4 │ │ │ │ │ - [ 9] .data.rel.ro.local PROGBITS 00000000 000449 00000c 00 WA 0 0 4 │ │ │ │ │ - [10] .rel.data.rel.ro.local REL 00000000 000b48 000008 08 I 13 9 4 │ │ │ │ │ - [11] .note.GNU-stack PROGBITS 00000000 000455 000000 00 0 0 1 │ │ │ │ │ - [12] .ARM.attributes ARM_ATTRIBUTES 00000000 000455 000033 00 0 0 1 │ │ │ │ │ - [13] .symtab SYMTAB 00000000 000488 000310 10 14 24 4 │ │ │ │ │ - [14] .strtab STRTAB 00000000 000798 00021e 00 0 0 1 │ │ │ │ │ - [15] .shstrtab STRTAB 00000000 000b50 00008f 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 00040c 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000a48 000170 08 I 13 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000440 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000440 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 000440 000039 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .rodata PROGBITS 00000000 000479 000050 00 A 0 0 4 │ │ │ │ │ + [ 7] .data.rel.ro PROGBITS 00000000 0004c9 000010 00 WA 0 0 4 │ │ │ │ │ + [ 8] .rel.data.rel.ro REL 00000000 000bb8 000020 08 I 13 7 4 │ │ │ │ │ + [ 9] .data.rel.ro.local PROGBITS 00000000 0004d9 00000c 00 WA 0 0 4 │ │ │ │ │ + [10] .rel.data.rel.ro.local REL 00000000 000bd8 000008 08 I 13 9 4 │ │ │ │ │ + [11] .note.GNU-stack PROGBITS 00000000 0004e5 000000 00 0 0 1 │ │ │ │ │ + [12] .ARM.attributes ARM_ATTRIBUTES 00000000 0004e5 000033 00 0 0 1 │ │ │ │ │ + [13] .symtab SYMTAB 00000000 000518 000310 10 14 24 4 │ │ │ │ │ + [14] .strtab STRTAB 00000000 000828 00021e 00 0 0 1 │ │ │ │ │ + [15] .shstrtab STRTAB 00000000 000be0 00008f 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,26 +1,26 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 49 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ - 1: 00000001 68 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ + 1: 00000001 92 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ 2: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ 3: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 4: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC1 │ │ │ │ │ 5: 00000004 0 NOTYPE LOCAL DEFAULT 5 .LC2 │ │ │ │ │ 6: 00000008 0 NOTYPE LOCAL DEFAULT 5 .LC3 │ │ │ │ │ - 7: 00000045 88 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 8: 0000008c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 9: 0000009c 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 10: 0000009d 26 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 11: 000000b9 608 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 12: 00000310 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 13: 00000318 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 14: 00000319 32 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 15: 00000378 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 7: 0000005d 100 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 8: 000000b0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 000000c0 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 10: 000000c1 30 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 11: 000000e1 672 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 12: 00000378 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 13: 00000380 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 14: 00000381 44 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 15: 00000408 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 16: 00000000 0 SECTION LOCAL DEFAULT 6 .rodata │ │ │ │ │ 17: 00000000 0 NOTYPE LOCAL DEFAULT 6 $d │ │ │ │ │ 18: 00000000 0 SECTION LOCAL DEFAULT 7 .data.rel.ro │ │ │ │ │ 19: 00000000 0 NOTYPE LOCAL DEFAULT 7 $d │ │ │ │ │ 20: 00000000 16 OBJECT LOCAL DEFAULT 7 padt.0 │ │ │ │ │ 21: 00000000 0 SECTION LOCAL DEFAULT 9 .data.rel.ro.local │ │ │ │ │ 22: 00000000 0 NOTYPE LOCAL DEFAULT 9 $d │ │ │ │ │ @@ -42,11 +42,11 @@ │ │ │ │ │ 38: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mktensor_2d │ │ │ │ │ 39: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mkproblem_dft_d │ │ │ │ │ 40: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mkplan_rdft │ │ │ │ │ 41: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ops_add │ │ │ │ │ 42: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ops_add2 │ │ │ │ │ 43: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_dft_serial_applicable │ │ │ │ │ 44: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_plan_awake │ │ │ │ │ - 45: 00000339 68 FUNC GLOBAL DEFAULT 1 fftw_mpi_dft_rank1_bigvec_register │ │ │ │ │ + 45: 000003ad 96 FUNC GLOBAL DEFAULT 1 fftw_mpi_dft_rank1_bigvec_register │ │ │ │ │ 46: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mksolver │ │ │ │ │ 47: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_solver_register │ │ │ │ │ 48: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_dft_solve │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,60 +1,60 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x9b8 contains 46 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0xa48 contains 46 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000056 0000180a R_ARM_THM_CALL 00000000 memcpy │ │ │ │ │ -0000008c 00001003 R_ARM_REL32 00000000 .rodata │ │ │ │ │ -00000090 00000503 R_ARM_REL32 00000004 .LC2 │ │ │ │ │ -00000094 00000603 R_ARM_REL32 00000008 .LC3 │ │ │ │ │ -00000098 00000403 R_ARM_REL32 00000000 .LC1 │ │ │ │ │ -000000a2 0000190a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000000a8 0000190a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000000ca 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -0000011a 00001b0a R_ARM_THM_CALL 00000000 fftw_mpi_rearrange_applicable │ │ │ │ │ -00000130 00001c0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000138 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -0000014e 00001d0a R_ARM_THM_CALL 00000000 fftw_mpi_rearrange_ny │ │ │ │ │ -0000015c 00001e0a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000166 00001f0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -00000190 0000200a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ -00000198 0000210a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -000001a6 0000220a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -000001ce 0000230a R_ARM_THM_CALL 00000000 fftw_extract_reim │ │ │ │ │ -000001da 0000230a R_ARM_THM_CALL 00000000 fftw_extract_reim │ │ │ │ │ -000001e4 0000240a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -000001f0 0000250a R_ARM_THM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ -00000208 0000260a R_ARM_THM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ -0000021c 0000270a R_ARM_THM_CALL 00000000 fftw_mkproblem_dft_d │ │ │ │ │ -00000224 0000210a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -00000232 0000220a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -00000256 0000200a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ -0000025e 0000210a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -0000026c 0000220a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -0000027e 0000280a R_ARM_THM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ -000002c0 0000290a R_ARM_THM_CALL 00000000 fftw_ops_add │ │ │ │ │ -000002ca 00002a0a R_ARM_THM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ -000002dc 0000190a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000002e2 0000190a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000002e8 0000190a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000302 00002b0a R_ARM_THM_CALL 00000000 fftw_mpi_dft_serial_applicable │ │ │ │ │ -00000310 00000103 R_ARM_REL32 00000001 apply │ │ │ │ │ -00000314 00001203 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -00000320 00002c0a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -00000328 00002c0a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -00000348 00002e0a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ -00000354 00002f0a R_ARM_THM_CALL 00000000 fftw_solver_register │ │ │ │ │ -0000035c 00002e0a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ -0000036c 00002f0a R_ARM_THM_CALL 00000000 fftw_solver_register │ │ │ │ │ -00000378 00001503 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -000000b2 0000191e R_ARM_THM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000334 00002c1e R_ARM_THM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ +00000076 0000180a R_ARM_THM_CALL 00000000 memcpy │ │ │ │ │ +000000b0 00001003 R_ARM_REL32 00000000 .rodata │ │ │ │ │ +000000b4 00000503 R_ARM_REL32 00000004 .LC2 │ │ │ │ │ +000000b8 00000603 R_ARM_REL32 00000008 .LC3 │ │ │ │ │ +000000bc 00000403 R_ARM_REL32 00000000 .LC1 │ │ │ │ │ +000000c8 0000190a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000000ce 0000190a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000102 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000168 00001b0a R_ARM_THM_CALL 00000000 fftw_mpi_rearrange_applicable │ │ │ │ │ +0000017e 00001c0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +00000186 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +0000019c 00001d0a R_ARM_THM_CALL 00000000 fftw_mpi_rearrange_ny │ │ │ │ │ +000001aa 00001e0a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +000001b4 00001f0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +000001e2 0000200a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ +000001ea 0000210a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +000001fc 0000220a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +00000224 0000230a R_ARM_THM_CALL 00000000 fftw_extract_reim │ │ │ │ │ +00000230 0000230a R_ARM_THM_CALL 00000000 fftw_extract_reim │ │ │ │ │ +0000023a 0000240a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00000246 0000250a R_ARM_THM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ +00000262 0000260a R_ARM_THM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ +00000276 0000270a R_ARM_THM_CALL 00000000 fftw_mkproblem_dft_d │ │ │ │ │ +0000027e 0000210a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +0000028e 0000220a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +000002b2 0000200a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ +000002ba 0000210a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +000002ca 0000220a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +000002de 0000280a R_ARM_THM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ +0000032a 0000290a R_ARM_THM_CALL 00000000 fftw_ops_add │ │ │ │ │ +00000334 00002a0a R_ARM_THM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ +00000342 0000190a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000348 0000190a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +0000034e 0000190a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +0000036a 00002b0a R_ARM_THM_CALL 00000000 fftw_mpi_dft_serial_applicable │ │ │ │ │ +00000378 00000103 R_ARM_REL32 00000001 apply │ │ │ │ │ +0000037c 00001203 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +0000038e 00002c0a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +00000396 00002c0a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +000003ca 00002e0a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ +000003d6 00002f0a R_ARM_THM_CALL 00000000 fftw_solver_register │ │ │ │ │ +000003e0 00002e0a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ +000003f4 00002f0a R_ARM_THM_CALL 00000000 fftw_solver_register │ │ │ │ │ +00000408 00001503 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +000000da 0000191e R_ARM_THM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000003a8 00002c1e R_ARM_THM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0xb28 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0xbb8 contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000000 00003002 R_ARM_ABS32 00000000 fftw_mpi_dft_solve │ │ │ │ │ -00000004 00000e02 R_ARM_ABS32 00000319 awake │ │ │ │ │ -00000008 00000702 R_ARM_ABS32 00000045 print │ │ │ │ │ -0000000c 00000a02 R_ARM_ABS32 0000009d destroy │ │ │ │ │ +00000004 00000e02 R_ARM_ABS32 00000381 awake │ │ │ │ │ +00000008 00000702 R_ARM_ABS32 0000005d print │ │ │ │ │ +0000000c 00000a02 R_ARM_ABS32 000000c1 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0xb48 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0xbd8 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000b02 R_ARM_ABS32 000000b9 mkplan │ │ │ │ │ +00000004 00000b02 R_ARM_ABS32 000000e1 mkplan │ │ │ │ ├── strings --all --bytes=8 {} │ │ │ │ │ @@ -1,8 +1,8 @@ │ │ │ │ │ -&J` &IzDyD │ │ │ │ │ +~'F~D1FO │ │ │ │ │ (mpi-dft-rank1-bigvec/%s%s %(%p%) %(%p%) %(%p%)) │ │ │ │ │ discontig │ │ │ │ │ square-after │ │ │ │ │ square-middle │ │ │ │ │ square-before │ │ │ │ │ fftw_plan_destroy_internal │ │ │ │ │ MPI_Comm_size │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,286 +1,302 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r5, r1 │ │ │ │ │ + ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ - ldrd r7, r8, [r0, #76] @ 0x4c │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ sub sp, #8 │ │ │ │ │ - ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ + ldrd r7, r8, [r4, #76] @ 0x4c │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ - ldr r3, [r4, #84] @ 0x54 │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov.w r2, r8, lsl #3 │ │ │ │ │ + ldr r3, [r4, #84] @ 0x54 │ │ │ │ │ + mov.w r1, r7, lsl #3 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ it ne │ │ │ │ │ movne r5, r6 │ │ │ │ │ - lsls r1, r7, #3 │ │ │ │ │ - adds r3, r5, r2 │ │ │ │ │ - str r3, [sp, #0] │ │ │ │ │ + add.w r3, r5, r2 │ │ │ │ │ add r2, r6 │ │ │ │ │ - adds r3, r5, r1 │ │ │ │ │ - ldr r7, [r0, #56] @ 0x38 │ │ │ │ │ + str r3, [sp, #0] │ │ │ │ │ + add.w r3, r5, r1 │ │ │ │ │ add r1, r6 │ │ │ │ │ + ldr r7, [r0, #56] @ 0x38 │ │ │ │ │ blx r7 │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ add sp, #8 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, lr, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ bx r3 │ │ │ │ │ │ │ │ │ │ -00000044 : │ │ │ │ │ +0000005c : │ │ │ │ │ print(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ - mov r4, r0 │ │ │ │ │ + strd r4, r5, [sp, #-16]! │ │ │ │ │ mov r5, r1 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + ldr r1, [pc, #72] @ (b0 ) │ │ │ │ │ + mov.w r2, #80 @ 0x50 │ │ │ │ │ + strd r6, lr, [sp, #8] │ │ │ │ │ sub sp, #96 @ 0x60 │ │ │ │ │ - ldr r1, [pc, #60] @ (8c ) │ │ │ │ │ add r3, sp, #16 │ │ │ │ │ - movs r2, #80 @ 0x50 │ │ │ │ │ mov r0, r3 │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL memcpy │ │ │ │ │ - ldr r2, [r4, #88] @ 0x58 │ │ │ │ │ - ldr r3, [r4, #84] @ 0x54 │ │ │ │ │ + ldrd r3, r2, [r4, #84] @ 0x54 │ │ │ │ │ ldr r6, [r5, #0] │ │ │ │ │ - add.w r2, r0, r2, lsl #4 │ │ │ │ │ cmp r3, #2 │ │ │ │ │ - beq.n 84 │ │ │ │ │ - ldr r3, [pc, #36] @ (90 ) │ │ │ │ │ + add.w r2, r0, r2, lsl #4 │ │ │ │ │ + beq.n aa │ │ │ │ │ + ldr r3, [pc, #40] @ (b4 ) │ │ │ │ │ add r3, pc │ │ │ │ │ ldr r1, [r4, #72] @ 0x48 │ │ │ │ │ mov r0, r5 │ │ │ │ │ str r1, [sp, #8] │ │ │ │ │ ldr r1, [r4, #68] @ 0x44 │ │ │ │ │ str r1, [sp, #4] │ │ │ │ │ ldr r1, [r4, #64] @ 0x40 │ │ │ │ │ str r1, [sp, #0] │ │ │ │ │ - ldr r1, [pc, #24] @ (94 ) │ │ │ │ │ + ldr r1, [pc, #28] @ (b8 ) │ │ │ │ │ add r1, pc │ │ │ │ │ blx r6 │ │ │ │ │ add sp, #96 @ 0x60 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ - ldr r3, [pc, #16] @ (98 ) │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + pop {r6, pc} │ │ │ │ │ + ldr r3, [pc, #16] @ (bc ) │ │ │ │ │ add r3, pc │ │ │ │ │ - b.n 6c │ │ │ │ │ - nop │ │ │ │ │ - .word 0x00000034 │ │ │ │ │ + b.n 8c │ │ │ │ │ + .word 0x00000038 │ │ │ │ │ R_ARM_REL32 .rodata │ │ │ │ │ - .word 0x00000022 │ │ │ │ │ + .word 0x00000026 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ - .word 0x00000014 │ │ │ │ │ + .word 0x00000018 │ │ │ │ │ R_ARM_REL32 .LC3 │ │ │ │ │ - .word 0x0000000e │ │ │ │ │ + .word 0x0000000c │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ │ │ │ │ │ -0000009c : │ │ │ │ │ +000000c0 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #72] @ 0x48 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - ldmia.w sp!, {r4, lr} │ │ │ │ │ + ldrd r4, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_plan_destroy_internal │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -000000b8 : │ │ │ │ │ +000000e0 : │ │ │ │ │ mkplan(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r6, r0 │ │ │ │ │ - sub sp, #76 @ 0x4c │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r7, r2 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #76 @ 0x4c │ │ │ │ │ add r5, sp, #68 @ 0x44 │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r2, [r3, #0] │ │ │ │ │ cmp r2, #1 │ │ │ │ │ - beq.n de │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + beq.n 12a │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add sp, #76 @ 0x4c │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldr r2, [r4, #24] │ │ │ │ │ bics.w r1, r2, #16 │ │ │ │ │ - bne.n d6 │ │ │ │ │ + bne.n 10e │ │ │ │ │ ldr r1, [r6, #8] │ │ │ │ │ - cbz r1, fa │ │ │ │ │ + cbz r1, 146 │ │ │ │ │ ldr.w r1, [r7, #164] @ 0xa4 │ │ │ │ │ lsls r1, r1, #19 │ │ │ │ │ - bmi.n d6 │ │ │ │ │ + bmi.n 10e │ │ │ │ │ ldrd r0, r1, [r4, #12] │ │ │ │ │ cmp r0, r1 │ │ │ │ │ - beq.n d6 │ │ │ │ │ - subs r2, #0 │ │ │ │ │ + beq.n 10e │ │ │ │ │ ldr r1, [r4, #8] │ │ │ │ │ - ldr r0, [sp, #68] @ 0x44 │ │ │ │ │ + subs r2, #0 │ │ │ │ │ it ne │ │ │ │ │ movne r2, #1 │ │ │ │ │ + ldr r0, [sp, #68] @ 0x44 │ │ │ │ │ cmp r1, r0 │ │ │ │ │ it ge │ │ │ │ │ orrge.w r2, r2, #1 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - beq.n d6 │ │ │ │ │ - adds r3, #4 │ │ │ │ │ + beq.n 10e │ │ │ │ │ + add.w r3, r3, #4 │ │ │ │ │ strd r1, r0, [sp] │ │ │ │ │ - ldr r0, [r6, #12] │ │ │ │ │ ldmia r3, {r1, r2, r3} │ │ │ │ │ + ldr r0, [r6, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_rearrange_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n d6 │ │ │ │ │ + beq.n 10e │ │ │ │ │ ldr.w r3, [r7, #164] @ 0xa4 │ │ │ │ │ lsls r3, r3, #28 │ │ │ │ │ - bmi.w 300 │ │ │ │ │ - add r1, sp, #64 @ 0x40 │ │ │ │ │ + bmi.w 368 │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + add r1, sp, #64 @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ - mov r1, r5 │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r2, [sp, #68] @ 0x44 │ │ │ │ │ ldr.w sl, [r3, #4]! │ │ │ │ │ str r2, [sp, #4] │ │ │ │ │ ldr r2, [r4, #8] │ │ │ │ │ str r2, [sp, #0] │ │ │ │ │ ldmia r3, {r1, r2, r3} │ │ │ │ │ ldr r0, [r6, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_rearrange_ny │ │ │ │ │ mov r5, r0 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n d6 │ │ │ │ │ + beq.n 10e │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ ldr r1, [sp, #68] @ 0x44 │ │ │ │ │ mov r9, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_default_block │ │ │ │ │ - movs r3, #0 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ ldrd fp, r2, [r4, #12] │ │ │ │ │ - str r3, [sp, #16] │ │ │ │ │ mov.w r8, r9, lsl #1 │ │ │ │ │ mov r1, r5 │ │ │ │ │ + str r3, [sp, #16] │ │ │ │ │ ldr r3, [r4, #28] │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ - str r0, [sp, #8] │ │ │ │ │ - str r0, [sp, #32] │ │ │ │ │ + mov r3, r0 │ │ │ │ │ + strd r2, r0, [sp, #28] │ │ │ │ │ mov r0, sl │ │ │ │ │ + str r3, [sp, #8] │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - str r2, [sp, #28] │ │ │ │ │ ldr r3, [r3, #8] │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ + strd r2, r3, [sp] │ │ │ │ │ mov r3, fp │ │ │ │ │ - str r2, [sp, #0] │ │ │ │ │ mov r2, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkproblem_transpose │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_d │ │ │ │ │ - str r0, [sp, #36] @ 0x24 │ │ │ │ │ + mov r3, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ + str r3, [sp, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.w 2f8 │ │ │ │ │ + bne.w 360 │ │ │ │ │ ldr r3, [r6, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.w 2ee │ │ │ │ │ + bne.w 354 │ │ │ │ │ ldr.w r3, [r7, #164] @ 0xa4 │ │ │ │ │ ldr r2, [sp, #28] │ │ │ │ │ tst.w r3, #4096 @ 0x1000 │ │ │ │ │ it ne │ │ │ │ │ movne fp, r2 │ │ │ │ │ ldr r0, [r4, #20] │ │ │ │ │ add r3, sp, #52 @ 0x34 │ │ │ │ │ add r2, sp, #48 @ 0x30 │ │ │ │ │ mov r1, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_extract_reim │ │ │ │ │ + ldr r0, [r4, #20] │ │ │ │ │ add r3, sp, #60 @ 0x3c │ │ │ │ │ - ldr r1, [sp, #28] │ │ │ │ │ add r2, sp, #56 @ 0x38 │ │ │ │ │ - ldr r0, [r4, #20] │ │ │ │ │ + ldr r1, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_extract_reim │ │ │ │ │ - ldr r2, [sp, #64] @ 0x40 │ │ │ │ │ ldr r1, [sp, #32] │ │ │ │ │ mov r0, r5 │ │ │ │ │ + ldr r2, [sp, #64] @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ mov r2, r8 │ │ │ │ │ mov r1, r8 │ │ │ │ │ str r0, [sp, #44] @ 0x2c │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor_1d │ │ │ │ │ mul.w r2, r9, sl │ │ │ │ │ - movs r3, #2 │ │ │ │ │ - str r0, [sp, #40] @ 0x28 │ │ │ │ │ + mov.w r3, #2 │ │ │ │ │ strd r3, r3, [sp] │ │ │ │ │ mov r3, r9 │ │ │ │ │ - lsls r2, r2, #1 │ │ │ │ │ + mov.w r2, r2, lsl #1 │ │ │ │ │ + str r0, [sp, #40] @ 0x28 │ │ │ │ │ ldr r0, [sp, #44] @ 0x2c │ │ │ │ │ mov r1, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor_2d │ │ │ │ │ - ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ + ldrd r3, r2, [sp, #52] @ 0x34 │ │ │ │ │ mov r1, r0 │ │ │ │ │ + ldr r0, [sp, #40] @ 0x28 │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - ldr r0, [sp, #40] @ 0x28 │ │ │ │ │ - ldrd r2, r3, [sp, #56] @ 0x38 │ │ │ │ │ + ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_d │ │ │ │ │ mov r9, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.n 2d6 │ │ │ │ │ + bne.n 33c │ │ │ │ │ str r0, [sp, #16] │ │ │ │ │ mov r2, r8 │ │ │ │ │ mov r1, sl │ │ │ │ │ - mov r0, r5 │ │ │ │ │ ldr r3, [r4, #28] │ │ │ │ │ + mov r0, r5 │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r3, [r3, #12] │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ @@ -291,136 +307,141 @@ │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_d │ │ │ │ │ mov r8, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.n 2da │ │ │ │ │ - ldr r2, [pc, #152] @ (310 ) │ │ │ │ │ - movs r0, #96 @ 0x60 │ │ │ │ │ - ldr r1, [pc, #152] @ (314 ) │ │ │ │ │ + bne.n 340 │ │ │ │ │ + ldr r2, [pc, #164] @ (378 ) │ │ │ │ │ + mov.w r0, #96 @ 0x60 │ │ │ │ │ + ldr r1, [pc, #160] @ (37c ) │ │ │ │ │ add r2, pc │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_rdft │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ - strd r3, r9, [r0, #64] @ 0x40 │ │ │ │ │ mov r5, r0 │ │ │ │ │ + strd r3, r9, [r0, #64] @ 0x40 │ │ │ │ │ ldr r3, [r6, #8] │ │ │ │ │ str.w r8, [r0, #72] @ 0x48 │ │ │ │ │ - cbnz r3, 2f4 │ │ │ │ │ + cbnz r3, 35a │ │ │ │ │ ldr.w r3, [r7, #164] @ 0xa4 │ │ │ │ │ and.w r3, r3, #4096 @ 0x1000 │ │ │ │ │ ldr r2, [r4, #16] │ │ │ │ │ add.w r4, r5, #8 │ │ │ │ │ - str r3, [r5, #84] @ 0x54 │ │ │ │ │ add.w r1, r9, #8 │ │ │ │ │ - ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ + str r3, [r5, #84] @ 0x54 │ │ │ │ │ ldr r0, [sp, #36] @ 0x24 │ │ │ │ │ - subs r3, r3, r2 │ │ │ │ │ - adds r0, #8 │ │ │ │ │ - asrs r3, r3, #3 │ │ │ │ │ + ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ + add.w r0, r0, #8 │ │ │ │ │ + sub.w r3, r3, r2 │ │ │ │ │ + mov.w r3, r3, asr #3 │ │ │ │ │ str r3, [r5, #76] @ 0x4c │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ - subs r3, r3, r2 │ │ │ │ │ + sub.w r3, r3, r2 │ │ │ │ │ mov r2, r4 │ │ │ │ │ - asrs r3, r3, #3 │ │ │ │ │ + mov.w r3, r3, asr #3 │ │ │ │ │ str r3, [r5, #80] @ 0x50 │ │ │ │ │ ldr r3, [r6, #12] │ │ │ │ │ str r3, [r5, #88] @ 0x58 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ops_add │ │ │ │ │ add.w r0, r8, #8 │ │ │ │ │ mov r1, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ops_add2 │ │ │ │ │ mov r0, r5 │ │ │ │ │ - add sp, #76 @ 0x4c │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b.n 112 │ │ │ │ │ mov.w r8, #0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [sp, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ - b.n d6 │ │ │ │ │ + b.n 10e │ │ │ │ │ ldr.w fp, [sp, #28] │ │ │ │ │ - b.n 1c6 │ │ │ │ │ - movs r3, #2 │ │ │ │ │ - b.n 29a │ │ │ │ │ + b.n 21c │ │ │ │ │ + mov.w r3, #2 │ │ │ │ │ + b.n 2fa │ │ │ │ │ mov.w r8, #0 │ │ │ │ │ mov r9, r8 │ │ │ │ │ - b.n 2da │ │ │ │ │ + b.n 340 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dft_serial_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.w d6 │ │ │ │ │ - b.n 12c │ │ │ │ │ + bne.w 10e │ │ │ │ │ + b.n 17a │ │ │ │ │ nop │ │ │ │ │ - .word 0x00000092 │ │ │ │ │ + .word 0x0000009a │ │ │ │ │ R_ARM_REL32 apply │ │ │ │ │ - .word 0x00000094 │ │ │ │ │ + .word 0x0000009c │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -00000318 : │ │ │ │ │ +00000380 : │ │ │ │ │ awake(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ + mov r5, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_awake │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_awake │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, lr} │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + ldrd r5, lr, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_plan_awake │ │ │ │ │ │ │ │ │ │ -00000338 : │ │ │ │ │ +000003ac : │ │ │ │ │ fftw_mpi_dft_rank1_bigvec_register(): │ │ │ │ │ - push {r3, r4, r5, r6, r7, lr} │ │ │ │ │ - movs r4, #0 │ │ │ │ │ - ldr r6, [pc, #56] @ (378 ) │ │ │ │ │ + strd r3, r4, [sp, #-24]! │ │ │ │ │ + mov.w r4, #0 │ │ │ │ │ + strd r5, r6, [sp, #8] │ │ │ │ │ mov r5, r0 │ │ │ │ │ + ldr r6, [pc, #76] @ (408 ) │ │ │ │ │ + strd r7, lr, [sp, #16] │ │ │ │ │ mov r7, r4 │ │ │ │ │ add r6, pc │ │ │ │ │ mov r1, r6 │ │ │ │ │ - movs r0, #16 │ │ │ │ │ + mov.w r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mksolver │ │ │ │ │ mov r1, r0 │ │ │ │ │ - strd r7, r4, [r0, #8] │ │ │ │ │ mov r0, r5 │ │ │ │ │ + strd r7, r4, [r1, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_solver_register │ │ │ │ │ mov r1, r6 │ │ │ │ │ - movs r0, #16 │ │ │ │ │ + mov.w r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mksolver │ │ │ │ │ - movs r3, #1 │ │ │ │ │ - str r4, [r0, #12] │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ - adds r4, #1 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ mov r0, r5 │ │ │ │ │ + strd r3, r4, [r1, #8] │ │ │ │ │ + add.w r4, r4, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_solver_register │ │ │ │ │ cmp r4, #4 │ │ │ │ │ - bne.n 344 │ │ │ │ │ - pop {r3, r4, r5, r6, r7, pc} │ │ │ │ │ - nop │ │ │ │ │ - .word 0x00000032 │ │ │ │ │ + bne.n 3c4 │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + ldrd r5, r6, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + pop {r7, pc} │ │ │ │ │ + .word 0x00000042 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ ├── dft-problem.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 2132 (bytes into file) │ │ │ │ │ + Start of section headers: 2276 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 13 │ │ │ │ │ Section header string table index: 12 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,22 +1,22 @@ │ │ │ │ │ -There are 13 section headers, starting at offset 0x854: │ │ │ │ │ +There are 13 section headers, starting at offset 0x8e4: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 000238 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0006b4 000108 08 I 10 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 00026c 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 00026c 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 00026c 000030 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro.local PROGBITS 00000000 00029c 000014 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro.local REL 00000000 0007bc 000020 08 I 10 6 4 │ │ │ │ │ - [ 8] .note.GNU-stack PROGBITS 00000000 0002b0 000000 00 0 0 1 │ │ │ │ │ - [ 9] .ARM.attributes ARM_ATTRIBUTES 00000000 0002b0 000033 00 0 0 1 │ │ │ │ │ - [10] .symtab SYMTAB 00000000 0002e4 000270 10 11 21 4 │ │ │ │ │ - [11] .strtab STRTAB 00000000 000554 00015f 00 0 0 1 │ │ │ │ │ - [12] .shstrtab STRTAB 00000000 0007dc 000076 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0002c8 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000744 000108 08 I 10 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 0002fc 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 0002fc 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 0002fc 000030 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro.local PROGBITS 00000000 00032c 000014 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro.local REL 00000000 00084c 000020 08 I 10 6 4 │ │ │ │ │ + [ 8] .note.GNU-stack PROGBITS 00000000 000340 000000 00 0 0 1 │ │ │ │ │ + [ 9] .ARM.attributes ARM_ATTRIBUTES 00000000 000340 000033 00 0 0 1 │ │ │ │ │ + [10] .symtab SYMTAB 00000000 000374 000270 10 11 21 4 │ │ │ │ │ + [11] .strtab STRTAB 00000000 0005e4 00015f 00 0 0 1 │ │ │ │ │ + [12] .shstrtab STRTAB 00000000 00086c 000076 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,28 +1,28 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 39 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ - 1: 00000001 28 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 1: 00000001 32 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ 2: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ 3: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 4: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ 5: 00000014 0 NOTYPE LOCAL DEFAULT 5 .LC1 │ │ │ │ │ 6: 00000020 0 NOTYPE LOCAL DEFAULT 5 .LC2 │ │ │ │ │ - 7: 0000001d 116 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 8: 00000084 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 9: 00000090 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 10: 00000091 50 FUNC LOCAL DEFAULT 1 zero │ │ │ │ │ + 7: 00000021 140 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 8: 000000a0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 000000ac 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 10: 000000ad 68 FUNC LOCAL DEFAULT 1 zero │ │ │ │ │ 11: 00000028 0 NOTYPE LOCAL DEFAULT 5 .LC3 │ │ │ │ │ - 12: 000000c5 92 FUNC LOCAL DEFAULT 1 hash │ │ │ │ │ - 13: 0000011c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 14: 00000120 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 15: 000001a4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 16: 000001a8 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 17: 00000234 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 12: 000000f1 112 FUNC LOCAL DEFAULT 1 hash │ │ │ │ │ + 13: 0000015c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 14: 00000160 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 15: 0000020c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 16: 00000210 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 17: 000002c4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 18: 00000000 0 SECTION LOCAL DEFAULT 6 .data.rel.ro.local │ │ │ │ │ 19: 00000000 0 NOTYPE LOCAL DEFAULT 6 $d │ │ │ │ │ 20: 00000000 20 OBJECT LOCAL DEFAULT 6 padt │ │ │ │ │ 21: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_dtensor_destroy │ │ │ │ │ 22: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_free │ │ │ │ │ 23: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ifree │ │ │ │ │ 24: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ialignment_of │ │ │ │ │ @@ -31,12 +31,12 @@ │ │ │ │ │ 27: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_rank │ │ │ │ │ 28: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_total_block │ │ │ │ │ 29: 00000000 0 NOTYPE GLOBAL DEFAULT UND memset │ │ │ │ │ 30: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_md5puts │ │ │ │ │ 31: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_md5int │ │ │ │ │ 32: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_dtensor_md5 │ │ │ │ │ 33: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_md5INT │ │ │ │ │ - 34: 00000121 136 FUNC GLOBAL DEFAULT 1 fftw_mpi_mkproblem_dft │ │ │ │ │ + 34: 00000161 176 FUNC GLOBAL DEFAULT 1 fftw_mpi_mkproblem_dft │ │ │ │ │ 35: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mkproblem │ │ │ │ │ 36: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_dtensor_canonical │ │ │ │ │ 37: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_dup │ │ │ │ │ - 38: 000001a9 144 FUNC GLOBAL DEFAULT 1 fftw_mpi_mkproblem_dft_d │ │ │ │ │ + 38: 00000211 184 FUNC GLOBAL DEFAULT 1 fftw_mpi_mkproblem_dft_d │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,43 +1,43 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x6b4 contains 33 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x744 contains 33 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000006 0000150a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -0000000e 0000160a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -00000030 0000180a R_ARM_THM_CALL 00000000 fftw_ialignment_of │ │ │ │ │ -0000003c 0000180a R_ARM_THM_CALL 00000000 fftw_ialignment_of │ │ │ │ │ -00000054 0000190a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_print │ │ │ │ │ -0000006e 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000084 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -00000088 00000503 R_ARM_REL32 00000014 .LC1 │ │ │ │ │ -0000008c 00000603 R_ARM_REL32 00000020 .LC2 │ │ │ │ │ -0000009c 00001b0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000000a8 00001c0a R_ARM_THM_CALL 00000000 fftw_mpi_total_block │ │ │ │ │ -000000ba 00001d0a R_ARM_THM_CALL 00000000 memset │ │ │ │ │ -000000d2 00001e0a R_ARM_THM_CALL 00000000 fftw_md5puts │ │ │ │ │ -000000e4 00001f0a R_ARM_THM_CALL 00000000 fftw_md5int │ │ │ │ │ -000000ec 0000200a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_md5 │ │ │ │ │ -000000f4 0000210a R_ARM_THM_CALL 00000000 fftw_md5INT │ │ │ │ │ -000000fc 00001f0a R_ARM_THM_CALL 00000000 fftw_md5int │ │ │ │ │ -00000104 00001f0a R_ARM_THM_CALL 00000000 fftw_md5int │ │ │ │ │ -0000010c 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000114 00001f0a R_ARM_THM_CALL 00000000 fftw_md5int │ │ │ │ │ -0000011c 00000b03 R_ARM_REL32 00000028 .LC3 │ │ │ │ │ -0000013a 0000230a R_ARM_THM_CALL 00000000 fftw_mkproblem │ │ │ │ │ -00000144 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -0000014c 0000240a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_canonical │ │ │ │ │ -00000196 0000250a R_ARM_THM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ -000001a4 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -000001c2 0000230a R_ARM_THM_CALL 00000000 fftw_mkproblem │ │ │ │ │ -000001cc 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000001d4 0000240a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_canonical │ │ │ │ │ -00000220 0000250a R_ARM_THM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ -00000226 0000150a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -00000234 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -00000018 0000171e R_ARM_THM_JUMP24 00000000 fftw_ifree │ │ │ │ │ +00000008 0000150a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +00000010 0000160a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +0000003e 0000180a R_ARM_THM_CALL 00000000 fftw_ialignment_of │ │ │ │ │ +0000004a 0000180a R_ARM_THM_CALL 00000000 fftw_ialignment_of │ │ │ │ │ +00000064 0000190a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_print │ │ │ │ │ +0000007e 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000000a0 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +000000a4 00000503 R_ARM_REL32 00000014 .LC1 │ │ │ │ │ +000000a8 00000603 R_ARM_REL32 00000020 .LC2 │ │ │ │ │ +000000be 00001b0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000000cc 00001c0a R_ARM_THM_CALL 00000000 fftw_mpi_total_block │ │ │ │ │ +000000e2 00001d0a R_ARM_THM_CALL 00000000 memset │ │ │ │ │ +00000104 00001e0a R_ARM_THM_CALL 00000000 fftw_md5puts │ │ │ │ │ +0000011a 00001f0a R_ARM_THM_CALL 00000000 fftw_md5int │ │ │ │ │ +00000122 0000200a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_md5 │ │ │ │ │ +0000012a 0000210a R_ARM_THM_CALL 00000000 fftw_md5INT │ │ │ │ │ +00000132 00001f0a R_ARM_THM_CALL 00000000 fftw_md5int │ │ │ │ │ +0000013a 00001f0a R_ARM_THM_CALL 00000000 fftw_md5int │ │ │ │ │ +00000142 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +0000014a 00001f0a R_ARM_THM_CALL 00000000 fftw_md5int │ │ │ │ │ +0000015c 00000b03 R_ARM_REL32 00000028 .LC3 │ │ │ │ │ +0000018c 0000230a R_ARM_THM_CALL 00000000 fftw_mkproblem │ │ │ │ │ +00000196 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000001a0 0000240a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_canonical │ │ │ │ │ +000001ee 0000250a R_ARM_THM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ +0000020c 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +0000023c 0000230a R_ARM_THM_CALL 00000000 fftw_mkproblem │ │ │ │ │ +00000246 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000250 0000240a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_canonical │ │ │ │ │ +000002a0 0000250a R_ARM_THM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ +000002a6 0000150a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +000002c4 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +0000001c 0000171e R_ARM_THM_JUMP24 00000000 fftw_ifree │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0x7bc contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0x84c contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000c02 R_ARM_ABS32 000000c5 hash │ │ │ │ │ -00000008 00000a02 R_ARM_ABS32 00000091 zero │ │ │ │ │ -0000000c 00000702 R_ARM_ABS32 0000001d print │ │ │ │ │ +00000004 00000c02 R_ARM_ABS32 000000f1 hash │ │ │ │ │ +00000008 00000a02 R_ARM_ABS32 000000ad zero │ │ │ │ │ +0000000c 00000702 R_ARM_ABS32 00000021 print │ │ │ │ │ 00000010 00000102 R_ARM_ABS32 00000001 destroy │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,127 +1,136 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ add.w r0, r4, #28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_free │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r4, lr} │ │ │ │ │ + ldrd r4, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_ifree │ │ │ │ │ │ │ │ │ │ -0000001c : │ │ │ │ │ +00000020 : │ │ │ │ │ print(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ ldrd r0, r2, [r0, #12] │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ sub sp, #16 │ │ │ │ │ ldr.w r8, [r1] │ │ │ │ │ - subs r6, r2, r0 │ │ │ │ │ + sub.w r6, r2, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ialignment_of │ │ │ │ │ - clz r6, r6 │ │ │ │ │ mov r7, r0 │ │ │ │ │ ldr r0, [r4, #16] │ │ │ │ │ + clz r6, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ialignment_of │ │ │ │ │ - ldr r1, [pc, #64] @ (84 ) │ │ │ │ │ - lsrs r6, r6, #5 │ │ │ │ │ + ldr r1, [pc, #80] @ (a0 ) │ │ │ │ │ + mov.w r6, r6, lsr #5 │ │ │ │ │ mov r3, r7 │ │ │ │ │ - mov r2, r6 │ │ │ │ │ str r0, [sp, #0] │ │ │ │ │ - add r1, pc │ │ │ │ │ mov r0, r5 │ │ │ │ │ + mov r2, r6 │ │ │ │ │ + add r1, pc │ │ │ │ │ blx r8 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_print │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ - str r3, [sp, #0] │ │ │ │ │ mov r0, r5 │ │ │ │ │ - ldr r1, [pc, #40] @ (88 ) │ │ │ │ │ - ldr r3, [r4, #20] │ │ │ │ │ - ldr r2, [r4, #8] │ │ │ │ │ - add r1, pc │ │ │ │ │ + ldr r1, [pc, #52] @ (a4 ) │ │ │ │ │ + str r3, [sp, #0] │ │ │ │ │ ldr r6, [r5, #0] │ │ │ │ │ + add r1, pc │ │ │ │ │ + ldr r2, [r4, #8] │ │ │ │ │ + ldr r3, [r4, #20] │ │ │ │ │ blx r6 │ │ │ │ │ - add r1, sp, #12 │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + add r1, sp, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ - ldr r1, [pc, #24] @ (8c ) │ │ │ │ │ - ldr r3, [r5, #0] │ │ │ │ │ + ldr r1, [pc, #36] @ (a8 ) │ │ │ │ │ mov r0, r5 │ │ │ │ │ + ldr r3, [r5, #0] │ │ │ │ │ ldr r2, [sp, #12] │ │ │ │ │ add r1, pc │ │ │ │ │ blx r3 │ │ │ │ │ add sp, #16 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, pc} │ │ │ │ │ - .word 0x00000036 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + ldmia.w sp!, {r8, pc} │ │ │ │ │ + nop │ │ │ │ │ + .word 0x00000040 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ - .word 0x00000020 │ │ │ │ │ + .word 0x0000002e │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x0000000e │ │ │ │ │ + .word 0x0000001a │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ │ │ │ │ │ -00000090 : │ │ │ │ │ +000000ac : │ │ │ │ │ zero(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, r5, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r6, [r0, #12] │ │ │ │ │ + strd r6, lr, [sp, #8] │ │ │ │ │ sub sp, #8 │ │ │ │ │ - ldr r0, [r0, #28] │ │ │ │ │ + ldr r6, [r0, #12] │ │ │ │ │ add r1, sp, #4 │ │ │ │ │ + ldr r0, [r0, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ - ldr r5, [r4, #8] │ │ │ │ │ + ldrd r0, r5, [r4, #4] │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ ldr r2, [sp, #4] │ │ │ │ │ - movs r1, #0 │ │ │ │ │ - ldr r0, [r4, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_total_block │ │ │ │ │ mul.w r0, r5, r0 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - ble.n be │ │ │ │ │ - lsls r2, r0, #4 │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + ble.n e6 │ │ │ │ │ + mov.w r2, r0, lsl #4 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL memset │ │ │ │ │ add sp, #8 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ - nop │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + pop {r6, pc} │ │ │ │ │ │ │ │ │ │ -000000c4 : │ │ │ │ │ +000000f0 : │ │ │ │ │ hash(): │ │ │ │ │ - push {r4, r5, lr} │ │ │ │ │ + str.w r4, [sp, #-12]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - ldr r1, [pc, #80] @ (11c ) │ │ │ │ │ + ldr r1, [pc, #100] @ (15c ) │ │ │ │ │ + strd r5, lr, [sp, #4] │ │ │ │ │ sub sp, #12 │ │ │ │ │ + mov r5, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_md5puts │ │ │ │ │ - mov r0, r4 │ │ │ │ │ ldrd r1, r3, [r5, #12] │ │ │ │ │ - subs r1, r1, r3 │ │ │ │ │ + mov r0, r4 │ │ │ │ │ + sub.w r1, r1, r3 │ │ │ │ │ clz r1, r1 │ │ │ │ │ - lsrs r1, r1, #5 │ │ │ │ │ + mov.w r1, r1, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_md5int │ │ │ │ │ ldr r1, [r5, #4] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_md5 │ │ │ │ │ ldr r1, [r5, #8] │ │ │ │ │ @@ -132,136 +141,158 @@ │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_md5int │ │ │ │ │ ldr r1, [r5, #24] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_md5int │ │ │ │ │ - add r1, sp, #4 │ │ │ │ │ ldr r0, [r5, #28] │ │ │ │ │ + add r1, sp, #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #4] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_md5int │ │ │ │ │ add sp, #12 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ - .word 0x00000048 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + nop │ │ │ │ │ + .word 0x00000056 │ │ │ │ │ R_ARM_REL32 .LC3 │ │ │ │ │ │ │ │ │ │ -00000120 : │ │ │ │ │ +00000160 : │ │ │ │ │ fftw_mpi_mkproblem_dft(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ - mov r8, r1 │ │ │ │ │ - ldr r1, [pc, #124] @ (1a4 ) │ │ │ │ │ - sub sp, #16 │ │ │ │ │ - mov r5, r0 │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + mov r5, r3 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + mov r7, r1 │ │ │ │ │ + ldr r1, [pc, #152] @ (20c ) │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + mov sl, r0 │ │ │ │ │ + mov.w r0, #32 │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #20 │ │ │ │ │ + mov r9, r2 │ │ │ │ │ + ldr.w r8, [sp, #56] @ 0x38 │ │ │ │ │ add r1, pc │ │ │ │ │ - movs r0, #32 │ │ │ │ │ - mov r7, r3 │ │ │ │ │ - mov sl, r2 │ │ │ │ │ - ldr.w r9, [sp, #48] @ 0x30 │ │ │ │ │ - ldr r6, [sp, #56] @ 0x38 │ │ │ │ │ + ldr r6, [sp, #64] @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkproblem │ │ │ │ │ - mov r1, sp │ │ │ │ │ mov r4, r0 │ │ │ │ │ - mov r0, r9 │ │ │ │ │ + mov r1, sp │ │ │ │ │ + mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ - movs r1, #1 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ + mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_canonical │ │ │ │ │ - ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ + ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ + tst.w r6, #4 │ │ │ │ │ + strd r0, r7, [r4, #4] │ │ │ │ │ + strd r9, r5, [r4, #12] │ │ │ │ │ str r3, [r4, #20] │ │ │ │ │ - lsls r3, r6, #29 │ │ │ │ │ - strd r0, r8, [r4, #4] │ │ │ │ │ - strd sl, r7, [r4, #12] │ │ │ │ │ - bpl.n 18e │ │ │ │ │ + beq.n 1e6 │ │ │ │ │ ldr r3, [r0, #0] │ │ │ │ │ - mov r5, r0 │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - ble.n 18e │ │ │ │ │ - adds r7, r0, #4 │ │ │ │ │ - add r3, sp, #4 │ │ │ │ │ - adds r5, #16 │ │ │ │ │ + ble.n 1e6 │ │ │ │ │ + ldrd r2, r3, [r0, #4] │ │ │ │ │ bic.w r6, r6, #4 │ │ │ │ │ eor.w r6, r6, #8 │ │ │ │ │ - ldmia.w r7, {r0, r1, r2} │ │ │ │ │ - stmia.w r3, {r0, r1, r2} │ │ │ │ │ - ldmia.w r5, {r0, r1, r2} │ │ │ │ │ - stmia.w r7, {r0, r1, r2} │ │ │ │ │ - ldmia.w r3, {r0, r1, r2} │ │ │ │ │ - stmia.w r5, {r0, r1, r2} │ │ │ │ │ + ldrd sl, fp, [r0, #16] │ │ │ │ │ + ldr r5, [r0, #24] │ │ │ │ │ + strd r2, r3, [sp, #4] │ │ │ │ │ + ldr r2, [r0, #12] │ │ │ │ │ + strd sl, fp, [r0, #4] │ │ │ │ │ + ldrd sl, fp, [sp, #4] │ │ │ │ │ + str r5, [r0, #12] │ │ │ │ │ + str r2, [sp, #12] │ │ │ │ │ + strd sl, fp, [r0, #16] │ │ │ │ │ + str r2, [r0, #24] │ │ │ │ │ add.w r1, r4, #28 │ │ │ │ │ - mov r0, r9 │ │ │ │ │ + mov r0, r8 │ │ │ │ │ str r6, [r4, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_dup │ │ │ │ │ mov r0, r4 │ │ │ │ │ - add sp, #16 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ - nop │ │ │ │ │ - .word 0x00000074 │ │ │ │ │ + add sp, #20 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + .word 0x00000080 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -000001a8 : │ │ │ │ │ +00000210 : │ │ │ │ │ fftw_mpi_mkproblem_dft_d(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - mov r9, r1 │ │ │ │ │ - ldr r1, [pc, #132] @ (234 ) │ │ │ │ │ - sub sp, #20 │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r6, r0 │ │ │ │ │ - add r1, pc │ │ │ │ │ - movs r0, #32 │ │ │ │ │ + mov.w r0, #32 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + mov sl, r1 │ │ │ │ │ + mov r9, r2 │ │ │ │ │ + ldr r1, [pc, #156] @ (2c4 ) │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r8, r3 │ │ │ │ │ - mov fp, r2 │ │ │ │ │ - ldr.w sl, [sp, #56] @ 0x38 │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #20 │ │ │ │ │ + ldr.w fp, [sp, #56] @ 0x38 │ │ │ │ │ + add r1, pc │ │ │ │ │ ldr r7, [sp, #64] @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkproblem │ │ │ │ │ - mov r1, sp │ │ │ │ │ mov r4, r0 │ │ │ │ │ - mov r0, sl │ │ │ │ │ + mov r1, sp │ │ │ │ │ + mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_canonical │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ + tst.w r7, #4 │ │ │ │ │ + strd r0, sl, [r4, #4] │ │ │ │ │ + strd r9, r8, [r4, #12] │ │ │ │ │ str r3, [r4, #20] │ │ │ │ │ - lsls r3, r7, #29 │ │ │ │ │ - strd r0, r9, [r4, #4] │ │ │ │ │ - strd fp, r8, [r4, #12] │ │ │ │ │ - bpl.n 218 │ │ │ │ │ + beq.n 298 │ │ │ │ │ ldr r3, [r0, #0] │ │ │ │ │ mov r5, r0 │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - ble.n 218 │ │ │ │ │ - add.w ip, r0, #4 │ │ │ │ │ - add r3, sp, #4 │ │ │ │ │ - adds r5, #16 │ │ │ │ │ + ble.n 298 │ │ │ │ │ + ldrd r2, r3, [r0, #4] │ │ │ │ │ bic.w r7, r7, #4 │ │ │ │ │ eor.w r7, r7, #8 │ │ │ │ │ - ldmia.w ip, {r0, r1, r2} │ │ │ │ │ - stmia.w r3, {r0, r1, r2} │ │ │ │ │ - ldmia.w r5, {r0, r1, r2} │ │ │ │ │ - stmia.w ip, {r0, r1, r2} │ │ │ │ │ - ldmia.w r3, {r0, r1, r2} │ │ │ │ │ - stmia.w r5, {r0, r1, r2} │ │ │ │ │ + strd r2, r3, [sp, #4] │ │ │ │ │ + ldrd r2, r3, [r0, #16] │ │ │ │ │ + strd r2, r3, [r0, #4] │ │ │ │ │ + ldr r3, [r5, #24] │ │ │ │ │ + ldr r0, [r0, #12] │ │ │ │ │ + str r3, [r5, #12] │ │ │ │ │ + ldrd r2, r3, [sp, #4] │ │ │ │ │ + str r0, [sp, #12] │ │ │ │ │ + strd r2, r3, [r5, #16] │ │ │ │ │ + str r0, [r5, #24] │ │ │ │ │ add.w r1, r4, #28 │ │ │ │ │ - mov r0, sl │ │ │ │ │ + mov r0, fp │ │ │ │ │ str r7, [r4, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_dup │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, #20 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ - nop │ │ │ │ │ - .word 0x0000007c │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + .word 0x00000088 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ ├── dft-solve.o │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,10 +1,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftw_mpi_dft_solve(): │ │ │ │ │ - ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ ldrd r1, r2, [r1, #12] │ │ │ │ │ + ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ bx r3 │ │ │ ├── rdft-serial.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 2100 (bytes into file) │ │ │ │ │ + Start of section headers: 2156 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 15 │ │ │ │ │ Section header string table index: 14 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,24 +1,24 @@ │ │ │ │ │ -There are 15 section headers, starting at offset 0x834: │ │ │ │ │ +There are 15 section headers, starting at offset 0x86c: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 000210 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0006bc 0000c8 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000244 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000244 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 000244 000019 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 00025d 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 000784 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 00026d 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 0007a4 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 000279 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000279 000033 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 0002ac 000270 10 13 20 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 00051c 00019e 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 0007ac 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000248 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 0006f4 0000c8 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 00027c 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 00027c 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 00027c 000019 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 000295 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 0007bc 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 0002a5 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 0007dc 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 0002b1 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 0002b1 000033 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 0002e4 000270 10 13 20 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 000554 00019e 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 0007e4 000087 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -7,18 +7,18 @@ │ │ │ │ │ 3: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 4: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ 5: 00000009 20 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ 6: 00000018 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 7: 0000001c 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ 8: 0000001d 6 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ 9: 00000025 6 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 10: 0000002d 404 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 11: 000001b8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 12: 000001c0 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 13: 0000020c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 10: 0000002d 448 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 11: 000001e4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 12: 000001ec 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 13: 00000244 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 14: 00000000 0 SECTION LOCAL DEFAULT 6 .data.rel.ro │ │ │ │ │ 15: 00000000 0 NOTYPE LOCAL DEFAULT 6 $d │ │ │ │ │ 16: 00000000 16 OBJECT LOCAL DEFAULT 6 padt.0 │ │ │ │ │ 17: 00000000 0 SECTION LOCAL DEFAULT 8 .data.rel.ro.local │ │ │ │ │ 18: 00000000 0 NOTYPE LOCAL DEFAULT 8 $d │ │ │ │ │ 19: 00000000 12 OBJECT LOCAL DEFAULT 8 sadt.1 │ │ │ │ │ 20: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_plan_destroy_internal │ │ │ │ │ @@ -31,12 +31,12 @@ │ │ │ │ │ 27: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_any_true │ │ │ │ │ 28: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mkplan_rdft │ │ │ │ │ 29: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ops_cpy │ │ │ │ │ 30: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mktensor │ │ │ │ │ 31: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_malloc_plain │ │ │ │ │ 32: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mkproblem_rdft_d │ │ │ │ │ 33: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ifree0 │ │ │ │ │ - 34: 000001c1 46 FUNC GLOBAL DEFAULT 1 fftw_mpi_rdft_serial_applicable │ │ │ │ │ - 35: 000001f1 32 FUNC GLOBAL DEFAULT 1 fftw_mpi_rdft_serial_register │ │ │ │ │ + 34: 000001ed 56 FUNC GLOBAL DEFAULT 1 fftw_mpi_rdft_serial_applicable │ │ │ │ │ + 35: 00000225 36 FUNC GLOBAL DEFAULT 1 fftw_mpi_rdft_serial_register │ │ │ │ │ 36: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mksolver │ │ │ │ │ 37: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_solver_register │ │ │ │ │ 38: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_rdft_solve │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,39 +1,39 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x6bc contains 25 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x6f4 contains 25 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000018 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -00000044 0000160a R_ARM_THM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ -00000058 0000170a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -0000006c 0000180a R_ARM_THM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ -00000074 0000190a R_ARM_THM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ -0000007c 00001a0a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -0000008a 00001b0a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -0000009c 00001c0a R_ARM_THM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ -000000ac 00001d0a R_ARM_THM_CALL 00000000 fftw_ops_cpy │ │ │ │ │ -000000c8 00001e0a R_ARM_THM_CALL 00000000 fftw_mktensor │ │ │ │ │ -000000d0 00001f0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ -00000168 0000180a R_ARM_THM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ -00000176 0000200a R_ARM_THM_CALL 00000000 fftw_mkproblem_rdft_d │ │ │ │ │ -0000017e 00001a0a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -00000186 0000210a R_ARM_THM_CALL 00000000 fftw_ifree0 │ │ │ │ │ -00000190 0000160a R_ARM_THM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ -000001b8 00000103 R_ARM_REL32 00000001 apply │ │ │ │ │ -000001bc 00000e03 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -000001ce 0000160a R_ARM_THM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ -000001e2 0000160a R_ARM_THM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ -000001fa 0000240a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ -0000020c 00001103 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +00000060 0000160a R_ARM_THM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ +00000074 0000170a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +0000008a 0000180a R_ARM_THM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ +00000092 0000190a R_ARM_THM_CALL 00000000 fftw_mkproblem_rdft_0_d │ │ │ │ │ +0000009a 00001a0a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +000000aa 00001b0a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +000000be 00001c0a R_ARM_THM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ +000000ce 00001d0a R_ARM_THM_CALL 00000000 fftw_ops_cpy │ │ │ │ │ +000000e2 00001e0a R_ARM_THM_CALL 00000000 fftw_mktensor │ │ │ │ │ +000000ee 00001f0a R_ARM_THM_CALL 00000000 fftw_malloc_plain │ │ │ │ │ +00000190 0000180a R_ARM_THM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ +0000019e 0000200a R_ARM_THM_CALL 00000000 fftw_mkproblem_rdft_d │ │ │ │ │ +000001a6 00001a0a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +000001ae 0000210a R_ARM_THM_CALL 00000000 fftw_ifree0 │ │ │ │ │ +000001ba 0000160a R_ARM_THM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ +000001e4 00000103 R_ARM_REL32 00000001 apply │ │ │ │ │ +000001e8 00000e03 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +000001fe 0000160a R_ARM_THM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ +00000216 0000160a R_ARM_THM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ +00000232 0000240a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ +00000244 00001103 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ 0000001e 0000141e R_ARM_THM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ 00000026 0000151e R_ARM_THM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ -00000206 0000251e R_ARM_THM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ +00000240 0000251e R_ARM_THM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0x784 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0x7bc contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000000 00002602 R_ARM_ABS32 00000000 fftw_mpi_rdft_solve │ │ │ │ │ 00000004 00000902 R_ARM_ABS32 00000025 awake │ │ │ │ │ 00000008 00000502 R_ARM_ABS32 00000009 print │ │ │ │ │ 0000000c 00000802 R_ARM_ABS32 0000001d destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0x7a4 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0x7dc contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000004 00000a02 R_ARM_ABS32 0000002d mkplan │ │ │ │ ├── strings --all --bytes=8 {} │ │ │ │ │ @@ -1,8 +1,7 @@ │ │ │ │ │ -IJH IIzDyD │ │ │ │ │ (mpi-rdft-serial %(%p%)) │ │ │ │ │ fftw_plan_destroy_internal │ │ │ │ │ fftw_plan_awake │ │ │ │ │ fftw_mpi_is_local │ │ │ │ │ MPI_Comm_rank │ │ │ │ │ fftw_mktensor_1d │ │ │ │ │ fftw_mkproblem_rdft_0_d │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -9,17 +9,17 @@ │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ bx r3 │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ 00000008 : │ │ │ │ │ print(): │ │ │ │ │ mov r2, r0 │ │ │ │ │ - ldr r3, [r1, #0] │ │ │ │ │ mov r0, r1 │ │ │ │ │ ldr r1, [pc, #8] @ (18 ) │ │ │ │ │ + ldr r3, [r0, #0] │ │ │ │ │ ldr r2, [r2, #64] @ 0x40 │ │ │ │ │ add r1, pc │ │ │ │ │ bx r3 │ │ │ │ │ nop │ │ │ │ │ .word 0x00000002 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ @@ -35,212 +35,217 @@ │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_plan_awake │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ 0000002c : │ │ │ │ │ mkplan(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, r5, [sp, #-32]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ ldr r1, [r1, #20] │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ + strd r8, r9, [sp, #16] │ │ │ │ │ + strd sl, lr, [sp, #24] │ │ │ │ │ sub sp, #16 │ │ │ │ │ - cbz r1, 40 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + cbz r1, 5c │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add sp, #16 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldmia.w sp!, {sl, pc} │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mov r5, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.w 18c │ │ │ │ │ + bne.w 1b4 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.n 38 │ │ │ │ │ + bne.n 44 │ │ │ │ │ ldr r0, [r4, #24] │ │ │ │ │ add r1, sp, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ - cbnz r3, 66 │ │ │ │ │ + cbnz r3, 82 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bgt.n b8 │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + bgt.n d6 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ mov r1, r2 │ │ │ │ │ mov r0, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor_1d │ │ │ │ │ ldrd r1, r2, [r4, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkproblem_rdft_0_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_d │ │ │ │ │ mov r5, r0 │ │ │ │ │ clz r0, r5 │ │ │ │ │ ldr r1, [r4, #24] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.n 38 │ │ │ │ │ - ldr r2, [pc, #292] @ (1b8 ) │ │ │ │ │ - movs r0, #72 @ 0x48 │ │ │ │ │ - ldr r1, [pc, #292] @ (1bc ) │ │ │ │ │ + bne.n 44 │ │ │ │ │ + ldr r2, [pc, #304] @ (1e4 ) │ │ │ │ │ + mov.w r0, #72 @ 0x48 │ │ │ │ │ + ldr r1, [pc, #300] @ (1e8 ) │ │ │ │ │ add r2, pc │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_rdft │ │ │ │ │ mov r4, r0 │ │ │ │ │ add.w r1, r0, #8 │ │ │ │ │ - str r5, [r0, #64] @ 0x40 │ │ │ │ │ add.w r0, r5, #8 │ │ │ │ │ + str r5, [r4, #64] @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ops_cpy │ │ │ │ │ mov r0, r4 │ │ │ │ │ - add sp, #16 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ + b.n 48 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr.w r9, [r3] │ │ │ │ │ - mov r0, r9 │ │ │ │ │ - add.w sl, r9, #4294967295 @ 0xffffffff │ │ │ │ │ mov.w r8, r9, lsl #2 │ │ │ │ │ + mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor │ │ │ │ │ mov r7, r0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ + add.w sl, r9, r9, lsl #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_malloc_plain │ │ │ │ │ - mov.w lr, #12 │ │ │ │ │ - ldr r2, [r4, #4] │ │ │ │ │ mov r6, r0 │ │ │ │ │ - ldr r0, [r4, #8] │ │ │ │ │ - cmp.w sl, #0 │ │ │ │ │ - mul.w r1, lr, sl │ │ │ │ │ - mov ip, sl │ │ │ │ │ - mul.w lr, lr, r9 │ │ │ │ │ + ldrd r2, r0, [r4, #4] │ │ │ │ │ + add.w lr, r9, #4294967295 @ 0xffffffff │ │ │ │ │ + add.w r1, lr, lr, lsl #1 │ │ │ │ │ + cmp.w lr, #0 │ │ │ │ │ + mov ip, lr │ │ │ │ │ + mov.w sl, sl, lsl #2 │ │ │ │ │ + mov.w r1, r1, lsl #2 │ │ │ │ │ add.w r3, r7, r1 │ │ │ │ │ add r1, r2 │ │ │ │ │ + ldr r1, [r1, #4] │ │ │ │ │ it gt │ │ │ │ │ - addgt r2, lr │ │ │ │ │ + addgt r2, sl │ │ │ │ │ str r0, [r3, #12] │ │ │ │ │ - add.w r3, r7, lr │ │ │ │ │ - ldr r1, [r1, #4] │ │ │ │ │ - str.w r0, [r3, #-4] │ │ │ │ │ - str.w r1, [r3, #-8] │ │ │ │ │ - ble.n 19c │ │ │ │ │ + add.w r3, r7, sl │ │ │ │ │ + strd r1, r0, [r3, #-8] │ │ │ │ │ + ble.n 1c6 │ │ │ │ │ mul.w r0, r1, r0 │ │ │ │ │ - subs r2, #12 │ │ │ │ │ - strd r0, r0, [r3, #-16] │ │ │ │ │ subs.w ip, ip, #1 │ │ │ │ │ + sub.w r2, r2, #12 │ │ │ │ │ + strd r0, r0, [r3, #-16] │ │ │ │ │ sub.w r3, r3, #12 │ │ │ │ │ ldr.w r1, [r2, #-8] │ │ │ │ │ str.w r1, [r3, #-8] │ │ │ │ │ - bne.n 108 │ │ │ │ │ - cmp.w sl, #6 │ │ │ │ │ - bls.n 1a2 │ │ │ │ │ + bne.n 126 │ │ │ │ │ + cmp.w lr, #6 │ │ │ │ │ + bls.n 1cc │ │ │ │ │ add.w r3, r4, #32 │ │ │ │ │ cmp r6, r3 │ │ │ │ │ - beq.n 1a2 │ │ │ │ │ + beq.n 1cc │ │ │ │ │ mov.w ip, r9, lsr #1 │ │ │ │ │ add.w r2, r4, #28 │ │ │ │ │ mov r3, r6 │ │ │ │ │ add.w ip, r6, ip, lsl #3 │ │ │ │ │ ldrd r1, r0, [r2] │ │ │ │ │ + add.w r2, r2, #8 │ │ │ │ │ strd r1, r0, [r3] │ │ │ │ │ - adds r3, #8 │ │ │ │ │ - adds r2, #8 │ │ │ │ │ + add.w r3, r3, #8 │ │ │ │ │ cmp r3, ip │ │ │ │ │ - bne.n 140 │ │ │ │ │ + bne.n 160 │ │ │ │ │ + tst.w r9, #1 │ │ │ │ │ bic.w r3, r9, #1 │ │ │ │ │ - cmp r9, r3 │ │ │ │ │ - beq.n 162 │ │ │ │ │ + beq.n 188 │ │ │ │ │ add.w r2, r4, r3, lsl #2 │ │ │ │ │ ldr r2, [r2, #28] │ │ │ │ │ str.w r2, [r6, r3, lsl #2] │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ - movs r2, #1 │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ mov r1, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor_1d │ │ │ │ │ - str r6, [sp, #0] │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ + str r6, [sp, #0] │ │ │ │ │ ldrd r2, r3, [r4, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkproblem_rdft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_d │ │ │ │ │ mov r5, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ifree0 │ │ │ │ │ - b.n 82 │ │ │ │ │ + b.n a0 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.w 4e │ │ │ │ │ - b.n 54 │ │ │ │ │ + beq.w 6a │ │ │ │ │ + b.n 70 │ │ │ │ │ cmp.w r9, #1 │ │ │ │ │ - bne.n 164 │ │ │ │ │ + bne.n 18a │ │ │ │ │ add.w r2, r4, #24 │ │ │ │ │ mov r3, r6 │ │ │ │ │ add r8, r6 │ │ │ │ │ ldr.w r1, [r2, #4]! │ │ │ │ │ str.w r1, [r3], #4 │ │ │ │ │ cmp r8, r3 │ │ │ │ │ - bne.n 1aa │ │ │ │ │ - b.n 162 │ │ │ │ │ - .word 0x0000011c │ │ │ │ │ + bne.n 1d4 │ │ │ │ │ + b.n 188 │ │ │ │ │ + nop │ │ │ │ │ + .word 0x00000126 │ │ │ │ │ R_ARM_REL32 apply │ │ │ │ │ - .word 0x0000011e │ │ │ │ │ + .word 0x00000128 │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -000001c0 : │ │ │ │ │ +000001ec : │ │ │ │ │ fftw_mpi_rdft_serial_applicable(): │ │ │ │ │ ldr r1, [r0, #20] │ │ │ │ │ - cbz r1, 1c8 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + cbz r1, 1f6 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ bx lr │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_is_local │ │ │ │ │ - cbnz r0, 1de │ │ │ │ │ + cbnz r0, 210 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ clz r0, r0 │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n 1d4 │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + beq.n 204 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ - nop │ │ │ │ │ │ │ │ │ │ -000001f0 : │ │ │ │ │ +00000224 : │ │ │ │ │ fftw_mpi_rdft_serial_register(): │ │ │ │ │ - ldr r1, [pc, #24] @ (20c ) │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + ldr r1, [pc, #28] @ (244 ) │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov.w r0, #8 │ │ │ │ │ add r1, pc │ │ │ │ │ - movs r0, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mksolver │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r4, lr} │ │ │ │ │ + ldrd r4, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_solver_register │ │ │ │ │ - nop │ │ │ │ │ - .word 0x00000012 │ │ │ │ │ + .word 0x00000010 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ ├── rdft-rank-geq2.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 2620 (bytes into file) │ │ │ │ │ + Start of section headers: 2736 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 15 │ │ │ │ │ Section header string table index: 14 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,24 +1,24 @@ │ │ │ │ │ -There are 15 section headers, starting at offset 0xa3c: │ │ │ │ │ +There are 15 section headers, starting at offset 0xab0: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 000348 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 00087c 000110 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 00037c 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 00037c 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 00037c 00002b 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 0003a7 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 00098c 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 0003b7 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 0009ac 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 0003c3 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 0003c3 000033 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 0003f8 0002b0 10 13 22 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 0006a8 0001d4 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 0009b4 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0003bc 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 0008f0 000110 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 0003f0 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 0003f0 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 0003f0 00002b 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 00041b 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 000a00 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 00042b 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 000a20 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 000437 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000437 000033 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 00046c 0002b0 10 13 22 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 00071c 0001d4 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 000a28 000087 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,26 +1,26 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 43 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ - 1: 00000001 42 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ + 1: 00000001 60 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ 2: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ 3: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 4: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ 5: 00000004 0 NOTYPE LOCAL DEFAULT 5 .LC1 │ │ │ │ │ 6: 00000008 0 NOTYPE LOCAL DEFAULT 5 .LC2 │ │ │ │ │ - 7: 0000002d 56 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 8: 00000058 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 9: 00000064 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 10: 00000065 20 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 11: 00000079 640 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 12: 000002f0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 13: 000002f8 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 14: 000002f9 24 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 15: 00000344 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 7: 0000003d 56 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 8: 00000068 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 00000074 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 10: 00000075 24 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 11: 0000008d 704 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 12: 00000344 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 13: 0000034c 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 14: 0000034d 36 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 15: 000003b8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 16: 00000000 0 SECTION LOCAL DEFAULT 6 .data.rel.ro │ │ │ │ │ 17: 00000000 0 NOTYPE LOCAL DEFAULT 6 $d │ │ │ │ │ 18: 00000000 16 OBJECT LOCAL DEFAULT 6 padt.0 │ │ │ │ │ 19: 00000000 0 SECTION LOCAL DEFAULT 8 .data.rel.ro.local │ │ │ │ │ 20: 00000000 0 NOTYPE LOCAL DEFAULT 8 $d │ │ │ │ │ 21: 00000000 12 OBJECT LOCAL DEFAULT 8 sadt.1 │ │ │ │ │ 22: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_plan_destroy_internal │ │ │ │ │ @@ -36,11 +36,11 @@ │ │ │ │ │ 32: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_any_true │ │ │ │ │ 33: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_mkdtensor │ │ │ │ │ 34: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_mkproblem_rdft_d │ │ │ │ │ 35: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mkplan_rdft │ │ │ │ │ 36: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ops_add │ │ │ │ │ 37: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_rdft_serial_applicable │ │ │ │ │ 38: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_plan_awake │ │ │ │ │ - 39: 00000311 56 FUNC GLOBAL DEFAULT 1 fftw_mpi_rdft_rank_geq2_register │ │ │ │ │ + 39: 00000371 76 FUNC GLOBAL DEFAULT 1 fftw_mpi_rdft_rank_geq2_register │ │ │ │ │ 40: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mksolver │ │ │ │ │ 41: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_solver_register │ │ │ │ │ 42: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_rdft_solve │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,48 +1,48 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x87c contains 34 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x8f0 contains 34 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000058 00000503 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ -0000005c 00000603 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -00000060 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -0000006a 0000160a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000000b0 0000170a R_ARM_THM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ -000000be 0000170a R_ARM_THM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ -000000e6 0000180a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000000ee 0000190a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000000f8 00001a0a R_ARM_THM_CALL 00000000 fftw_mktensor │ │ │ │ │ -000001d6 00001b0a R_ARM_THM_CALL 00000000 fftw_tensor_sz │ │ │ │ │ -000001ec 00001c0a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -000001fa 00001d0a R_ARM_THM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ -0000020c 00001e0a R_ARM_THM_CALL 00000000 fftw_mkproblem_rdft_d │ │ │ │ │ -00000214 00001f0a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -00000222 0000200a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -0000022c 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ -00000260 0000220a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_rdft_d │ │ │ │ │ -00000268 00001f0a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -00000276 0000200a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -00000286 0000230a R_ARM_THM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ -000002aa 0000240a R_ARM_THM_CALL 00000000 fftw_ops_add │ │ │ │ │ -000002bc 0000160a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000002c2 0000160a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000002e4 0000250a R_ARM_THM_CALL 00000000 fftw_mpi_rdft_serial_applicable │ │ │ │ │ -000002f0 00000103 R_ARM_REL32 00000001 apply │ │ │ │ │ -000002f4 00001003 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -00000300 0000260a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -0000031c 0000280a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ -00000328 0000290a R_ARM_THM_CALL 00000000 fftw_solver_register │ │ │ │ │ -00000330 0000280a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ -00000344 00001303 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -00000074 0000161e R_ARM_THM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ -0000030c 0000261e R_ARM_THM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ -00000340 0000291e R_ARM_THM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ +00000068 00000503 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ +0000006c 00000603 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +00000070 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +0000007c 0000160a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000000ec 0000170a R_ARM_THM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ +000000fc 0000170a R_ARM_THM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ +00000124 0000180a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +0000012c 0000190a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000138 00001a0a R_ARM_THM_CALL 00000000 fftw_mktensor │ │ │ │ │ +00000224 00001b0a R_ARM_THM_CALL 00000000 fftw_tensor_sz │ │ │ │ │ +0000023a 00001c0a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00000248 00001d0a R_ARM_THM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ +0000025a 00001e0a R_ARM_THM_CALL 00000000 fftw_mkproblem_rdft_d │ │ │ │ │ +00000262 00001f0a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +00000272 0000200a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +0000027c 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ +000002ae 0000220a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_rdft_d │ │ │ │ │ +000002b6 00001f0a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +000002c6 0000200a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +000002d8 0000230a R_ARM_THM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ +000002fe 0000240a R_ARM_THM_CALL 00000000 fftw_ops_add │ │ │ │ │ +0000030c 0000160a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000312 0000160a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000336 0000250a R_ARM_THM_CALL 00000000 fftw_mpi_rdft_serial_applicable │ │ │ │ │ +00000344 00000103 R_ARM_REL32 00000001 apply │ │ │ │ │ +00000348 00001003 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +0000035a 0000260a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +00000384 0000280a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ +00000392 0000290a R_ARM_THM_CALL 00000000 fftw_solver_register │ │ │ │ │ +0000039c 0000280a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ +000003b8 00001303 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +00000088 0000161e R_ARM_THM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ +0000036c 0000261e R_ARM_THM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ +000003b4 0000291e R_ARM_THM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0x98c contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0xa00 contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000000 00002a02 R_ARM_ABS32 00000000 fftw_mpi_rdft_solve │ │ │ │ │ -00000004 00000e02 R_ARM_ABS32 000002f9 awake │ │ │ │ │ -00000008 00000702 R_ARM_ABS32 0000002d print │ │ │ │ │ -0000000c 00000a02 R_ARM_ABS32 00000065 destroy │ │ │ │ │ +00000004 00000e02 R_ARM_ABS32 0000034d awake │ │ │ │ │ +00000008 00000702 R_ARM_ABS32 0000003d print │ │ │ │ │ +0000000c 00000a02 R_ARM_ABS32 00000075 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0x9ac contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0xa20 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000b02 R_ARM_ABS32 00000079 mkplan │ │ │ │ │ +00000004 00000b02 R_ARM_ABS32 0000008d mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,363 +1,382 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ ldr r7, [r4, #72] @ 0x48 │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ - cbz r7, 22 │ │ │ │ │ + cbz r7, 34 │ │ │ │ │ mov r5, r6 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, lr, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ bx r3 │ │ │ │ │ mov r2, r1 │ │ │ │ │ mov r5, r1 │ │ │ │ │ blx r3 │ │ │ │ │ - b.n 14 │ │ │ │ │ - nop │ │ │ │ │ + b.n 1c │ │ │ │ │ │ │ │ │ │ -0000002c : │ │ │ │ │ +0000003c : │ │ │ │ │ print(): │ │ │ │ │ mov r3, r0 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r0, r1 │ │ │ │ │ - ldr r4, [r1, #0] │ │ │ │ │ - sub sp, #8 │ │ │ │ │ ldr r2, [r3, #72] @ 0x48 │ │ │ │ │ + sub sp, #8 │ │ │ │ │ + ldr r4, [r1, #0] │ │ │ │ │ cmp r2, #2 │ │ │ │ │ - beq.n 50 │ │ │ │ │ - ldr r2, [pc, #24] @ (58 ) │ │ │ │ │ + beq.n 62 │ │ │ │ │ + ldr r2, [pc, #24] @ (68 ) │ │ │ │ │ add r2, pc │ │ │ │ │ ldr r1, [r3, #68] @ 0x44 │ │ │ │ │ str r1, [sp, #0] │ │ │ │ │ - ldr r1, [pc, #20] @ (5c ) │ │ │ │ │ + ldr r1, [pc, #20] @ (6c ) │ │ │ │ │ ldr r3, [r3, #64] @ 0x40 │ │ │ │ │ add r1, pc │ │ │ │ │ blx r4 │ │ │ │ │ add sp, #8 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ - ldr r2, [pc, #12] @ (60 ) │ │ │ │ │ + ldr r2, [pc, #12] @ (70 ) │ │ │ │ │ add r2, pc │ │ │ │ │ - b.n 40 │ │ │ │ │ - nop │ │ │ │ │ - .word 0x00000016 │ │ │ │ │ + b.n 52 │ │ │ │ │ + .word 0x00000014 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x00000010 │ │ │ │ │ + .word 0x0000000e │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ - .word 0x0000000a │ │ │ │ │ + .word 0x00000008 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ -00000064 : │ │ │ │ │ +00000074 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - ldmia.w sp!, {r4, lr} │ │ │ │ │ + ldrd r4, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_plan_destroy_internal │ │ │ │ │ │ │ │ │ │ -00000078 : │ │ │ │ │ +0000008c : │ │ │ │ │ mkplan(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ ldr r1, [r1, #4] │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ sub sp, #36 @ 0x24 │ │ │ │ │ ldr r3, [r1, #0] │ │ │ │ │ + str r0, [sp, #16] │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - ble.n 8c │ │ │ │ │ + ble.n b2 │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ - cbz r3, 94 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + cbz r3, ce │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add sp, #36 @ 0x24 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldr r3, [r0, #8] │ │ │ │ │ - mov r7, r0 │ │ │ │ │ mov r6, r2 │ │ │ │ │ - cbz r3, ac │ │ │ │ │ + cbz r3, e4 │ │ │ │ │ ldr.w r3, [r2, #164] @ 0xa4 │ │ │ │ │ lsls r2, r3, #19 │ │ │ │ │ - bmi.n 8c │ │ │ │ │ + bmi.n b2 │ │ │ │ │ ldrd r2, r3, [r4, #12] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - beq.n 8c │ │ │ │ │ - movs r2, #0 │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + beq.n b2 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n 8c │ │ │ │ │ - movs r2, #1 │ │ │ │ │ + beq.n b2 │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ ldr r1, [r4, #4] │ │ │ │ │ mov r0, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n 8c │ │ │ │ │ + beq.n b2 │ │ │ │ │ ldr.w r3, [r6, #164] @ 0xa4 │ │ │ │ │ lsls r3, r3, #28 │ │ │ │ │ - bmi.w 2e2 │ │ │ │ │ - ldr r3, [r4, #12] │ │ │ │ │ - str r3, [sp, #16] │ │ │ │ │ - ldr r3, [r7, #8] │ │ │ │ │ - ldr.w fp, [r4, #16] │ │ │ │ │ + bmi.w 334 │ │ │ │ │ + ldrd r3, fp, [r4, #12] │ │ │ │ │ + str r3, [sp, #20] │ │ │ │ │ + ldr r3, [sp, #16] │ │ │ │ │ + ldr r3, [r3, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq.w 2c8 │ │ │ │ │ + beq.w 318 │ │ │ │ │ mov r9, fp │ │ │ │ │ - add r1, sp, #24 │ │ │ │ │ ldr r0, [r4, #24] │ │ │ │ │ + add r1, sp, #24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ - add r1, sp, #28 │ │ │ │ │ ldr r0, [r4, #24] │ │ │ │ │ + add r1, sp, #28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r0, [r3, #0] │ │ │ │ │ - subs r0, #1 │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor │ │ │ │ │ - ldr.w r8, [r4, #4] │ │ │ │ │ - movs r1, #12 │ │ │ │ │ mov r5, r0 │ │ │ │ │ - ldr.w ip, [r4, #8] │ │ │ │ │ + ldrd r8, r0, [r4, #4] │ │ │ │ │ ldr.w lr, [r8] │ │ │ │ │ - add.w r2, lr, #4294967295 @ 0xffffffff │ │ │ │ │ - mul.w r3, r1, lr │ │ │ │ │ - mla r2, r1, r2, r8 │ │ │ │ │ - add r0, r3 │ │ │ │ │ - ldr r2, [r2, #4] │ │ │ │ │ - str.w r2, [r0, #-20] │ │ │ │ │ - sub.w r2, lr, #2 │ │ │ │ │ - mla r2, r1, r2, r5 │ │ │ │ │ - str.w ip, [r2, #12] │ │ │ │ │ - str.w ip, [r0, #-16] │ │ │ │ │ + add.w r2, lr, lr, lsl #1 │ │ │ │ │ + add.w r3, lr, lr, lsl #1 │ │ │ │ │ + add.w r2, r8, r2, lsl #2 │ │ │ │ │ + mov.w r3, r3, lsl #2 │ │ │ │ │ + ldr.w r2, [r2, #-8] │ │ │ │ │ + add.w r1, r5, r3 │ │ │ │ │ + str.w r2, [r1, #-20] │ │ │ │ │ + add.w r2, lr, lr, lsl #1 │ │ │ │ │ + add.w r2, r5, r2, lsl #2 │ │ │ │ │ + str.w r0, [r2, #-12] │ │ │ │ │ + str.w r0, [r1, #-16] │ │ │ │ │ subs.w r0, lr, #3 │ │ │ │ │ - bmi.n 1d0 │ │ │ │ │ + bmi.n 21e │ │ │ │ │ + cmp.w lr, #4 │ │ │ │ │ sub.w r2, r3, #16 │ │ │ │ │ sub.w r1, r3, #20 │ │ │ │ │ - cmp.w lr, #4 │ │ │ │ │ - ble.w 2de │ │ │ │ │ + ble.w 330 │ │ │ │ │ ldr.w ip, [r5, r1] │ │ │ │ │ sub.w lr, lr, #5 │ │ │ │ │ add.w r1, r8, r3 │ │ │ │ │ - ldr r2, [r5, r2] │ │ │ │ │ - subs r3, #28 │ │ │ │ │ + sub.w r3, r3, #28 │ │ │ │ │ mov sl, r4 │ │ │ │ │ + ldr r2, [r5, r2] │ │ │ │ │ add r3, r5 │ │ │ │ │ - mov r4, ip │ │ │ │ │ and.w lr, lr, #1 │ │ │ │ │ + ldr r7, [sp, #16] │ │ │ │ │ + mov r4, ip │ │ │ │ │ mov ip, r5 │ │ │ │ │ ldr.w r5, [r1, #-20] │ │ │ │ │ mul.w r2, r4, r2 │ │ │ │ │ - strd r2, r2, [r3] │ │ │ │ │ - subs r0, #2 │ │ │ │ │ - str.w r5, [r3, #-4] │ │ │ │ │ - subs r1, #24 │ │ │ │ │ + sub.w r0, r0, #2 │ │ │ │ │ cmp r0, lr │ │ │ │ │ - ldr.w r4, [r1, #-8] │ │ │ │ │ + sub.w r1, r1, #24 │ │ │ │ │ + strd r5, r2, [r3, #-4] │ │ │ │ │ + str r2, [r3, #4] │ │ │ │ │ mul.w r2, r5, r2 │ │ │ │ │ - str.w r4, [r3, #-16] │ │ │ │ │ - strd r2, r2, [r3, #-12] │ │ │ │ │ + ldr.w r4, [r1, #-8] │ │ │ │ │ + strd r4, r2, [r3, #-16] │ │ │ │ │ sub.w r3, r3, #24 │ │ │ │ │ - bne.n 162 │ │ │ │ │ + str r2, [r3, #16] │ │ │ │ │ + bne.n 1a8 │ │ │ │ │ mov r5, ip │ │ │ │ │ mov r4, sl │ │ │ │ │ - movs r0, #12 │ │ │ │ │ - add.w sl, lr, #4294967295 @ 0xffffffff │ │ │ │ │ - mul.w r3, r0, lr │ │ │ │ │ + str r7, [sp, #16] │ │ │ │ │ + add.w r3, lr, lr, lsl #1 │ │ │ │ │ + add.w ip, lr, #4294967295 @ 0xffffffff │ │ │ │ │ + mov.w r3, r3, lsl #2 │ │ │ │ │ add r8, r3 │ │ │ │ │ add r3, r5 │ │ │ │ │ ldrd r2, r1, [r3, #16] │ │ │ │ │ - ldr.w ip, [r8, #16] │ │ │ │ │ - str.w ip, [r3, #4] │ │ │ │ │ + ldr.w r0, [r8, #16] │ │ │ │ │ mul.w r2, r1, r2 │ │ │ │ │ - strd r2, r2, [r3, #8] │ │ │ │ │ + strd r0, r2, [r3, #4] │ │ │ │ │ + str r2, [r3, #12] │ │ │ │ │ cmp.w lr, #0 │ │ │ │ │ - beq.n 1d0 │ │ │ │ │ + beq.n 21e │ │ │ │ │ ldr.w r1, [r8, #4] │ │ │ │ │ - mul.w r2, ip, r2 │ │ │ │ │ + add.w ip, ip, ip, lsl #1 │ │ │ │ │ + mul.w r2, r0, r2 │ │ │ │ │ + add.w ip, r5, ip, lsl #2 │ │ │ │ │ str.w r1, [r3, #-8] │ │ │ │ │ - mla r1, r0, sl, r5 │ │ │ │ │ - str r2, [r1, #12] │ │ │ │ │ + str.w r2, [ip, #12] │ │ │ │ │ str.w r2, [r3, #-4] │ │ │ │ │ mov r0, r5 │ │ │ │ │ mov.w sl, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_tensor_sz │ │ │ │ │ - str r0, [sp, #20] │ │ │ │ │ ldrd r3, r2, [r5, #4] │ │ │ │ │ + mov r7, r0 │ │ │ │ │ mul.w r8, r2, r3 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r2, [sp, #24] │ │ │ │ │ ldrd r0, r1, [r3, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ - strd sl, sl, [sp] │ │ │ │ │ mov r2, r8 │ │ │ │ │ mov r1, r8 │ │ │ │ │ + strd sl, sl, [sp] │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor_2d │ │ │ │ │ - ldr r2, [sp, #16] │ │ │ │ │ - mov r1, r0 │ │ │ │ │ add.w r3, r4, #32 │ │ │ │ │ + ldr r2, [sp, #20] │ │ │ │ │ + mov r1, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ mov r3, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkproblem_rdft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_d │ │ │ │ │ mov r5, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #24] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.n 2b6 │ │ │ │ │ + bne.n 306 │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkdtensor │ │ │ │ │ - ldr r3, [r4, #4] │ │ │ │ │ - add.w lr, r0, #4 │ │ │ │ │ - mov ip, r0 │ │ │ │ │ - adds r3, #4 │ │ │ │ │ - ldmia.w r3, {r0, r1, r2} │ │ │ │ │ - stmia.w lr, {r0, r1, r2} │ │ │ │ │ + ldr.w ip, [r4, #4] │ │ │ │ │ + mov.w r3, #16 │ │ │ │ │ + ldrd r1, r2, [ip, #4] │ │ │ │ │ + strd r1, r2, [r0, #4] │ │ │ │ │ + ldr.w r2, [ip, #12] │ │ │ │ │ ldr r1, [r4, #8] │ │ │ │ │ - ldr r0, [sp, #20] │ │ │ │ │ - movs r3, #16 │ │ │ │ │ + str r2, [r0, #12] │ │ │ │ │ + mov r2, r9 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ add.w r3, r4, #28 │ │ │ │ │ + mul.w r7, r1, r7 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - mov r2, r9 │ │ │ │ │ - mul.w r0, r1, r0 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ + mov r1, r7 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ mov r3, fp │ │ │ │ │ - mov r1, r0 │ │ │ │ │ - mov r0, ip │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkproblem_rdft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_d │ │ │ │ │ mov r8, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #24] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_any_true │ │ │ │ │ - cbnz r0, 2ba │ │ │ │ │ - ldr r2, [pc, #112] @ (2f0 ) │ │ │ │ │ - movs r0, #80 @ 0x50 │ │ │ │ │ - ldr r1, [pc, #112] @ (2f4 ) │ │ │ │ │ + cbnz r0, 30a │ │ │ │ │ + ldr r2, [pc, #116] @ (344 ) │ │ │ │ │ + mov.w r0, #80 @ 0x50 │ │ │ │ │ + ldr r1, [pc, #116] @ (348 ) │ │ │ │ │ add r2, pc │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_rdft │ │ │ │ │ - ldr r3, [r7, #8] │ │ │ │ │ + ldr r3, [sp, #16] │ │ │ │ │ mov r4, r0 │ │ │ │ │ + ldr r3, [r3, #8] │ │ │ │ │ strd r5, r8, [r0, #64] @ 0x40 │ │ │ │ │ - cbnz r3, 2da │ │ │ │ │ + cbnz r3, 32a │ │ │ │ │ ldr.w r3, [r6, #164] @ 0xa4 │ │ │ │ │ and.w r3, r3, #4096 @ 0x1000 │ │ │ │ │ add.w r0, r5, #8 │ │ │ │ │ add.w r2, r4, #8 │ │ │ │ │ - add.w r1, r8, #8 │ │ │ │ │ str r3, [r4, #72] @ 0x48 │ │ │ │ │ + add.w r1, r8, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ops_add │ │ │ │ │ mov r0, r4 │ │ │ │ │ - add sp, #36 @ 0x24 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b.n b6 │ │ │ │ │ mov.w r8, #0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ - b.n 8c │ │ │ │ │ + b.n b2 │ │ │ │ │ ldr.w r3, [r6, #164] @ 0xa4 │ │ │ │ │ tst.w r3, #4096 @ 0x1000 │ │ │ │ │ - ldr r3, [sp, #16] │ │ │ │ │ + ldr r3, [sp, #20] │ │ │ │ │ ite ne │ │ │ │ │ movne r9, fp │ │ │ │ │ moveq r9, r3 │ │ │ │ │ - b.n e2 │ │ │ │ │ - movs r3, #2 │ │ │ │ │ - b.n 29c │ │ │ │ │ + b.n 120 │ │ │ │ │ + mov.w r3, #2 │ │ │ │ │ + b.n 2f0 │ │ │ │ │ mov lr, r0 │ │ │ │ │ - b.n 192 │ │ │ │ │ + b.n 1da │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_rdft_serial_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.w d0 │ │ │ │ │ - b.n 8c │ │ │ │ │ - .word 0x0000006a │ │ │ │ │ - R_ARM_REL32 apply │ │ │ │ │ + beq.w 10e │ │ │ │ │ + b.n b2 │ │ │ │ │ + nop │ │ │ │ │ .word 0x0000006c │ │ │ │ │ + R_ARM_REL32 apply │ │ │ │ │ + .word 0x0000006e │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -000002f8 : │ │ │ │ │ +0000034c : │ │ │ │ │ awake(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ + mov r5, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_awake │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, lr} │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + ldrd r5, lr, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_plan_awake │ │ │ │ │ │ │ │ │ │ -00000310 : │ │ │ │ │ +00000370 : │ │ │ │ │ fftw_mpi_rdft_rank_geq2_register(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r5, [pc, #44] @ (344 ) │ │ │ │ │ - movs r0, #12 │ │ │ │ │ + mov.w r0, #12 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ + ldr r5, [pc, #56] @ (3b8 ) │ │ │ │ │ add r5, pc │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mksolver │ │ │ │ │ - movs r3, #0 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ + str r3, [r1, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_solver_register │ │ │ │ │ mov r1, r5 │ │ │ │ │ - movs r0, #12 │ │ │ │ │ + mov.w r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mksolver │ │ │ │ │ - movs r3, #1 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + ldrd r5, lr, [sp, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, lr} │ │ │ │ │ + str r3, [r1, #8] │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + add sp, #16 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_solver_register │ │ │ │ │ - .word 0x00000028 │ │ │ │ │ + .word 0x00000034 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ ├── rdft-rank-geq2-transposed.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 2964 (bytes into file) │ │ │ │ │ + Start of section headers: 3088 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 15 │ │ │ │ │ Section header string table index: 14 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,24 +1,24 @@ │ │ │ │ │ -There are 15 section headers, starting at offset 0xb94: │ │ │ │ │ +There are 15 section headers, starting at offset 0xc10: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 0003f0 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 00098c 000158 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000424 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000424 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 000424 00003c 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 000460 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 000ae4 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 000470 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 000b04 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 00047c 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 00047c 000033 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 0004b0 0002d0 10 13 22 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 000780 00020b 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 000b0c 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 00046c 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000a08 000158 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 0004a0 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 0004a0 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 0004a0 00003c 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 0004dc 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 000b60 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 0004ec 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 000b80 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 0004f8 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 0004f8 000033 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 00052c 0002d0 10 13 22 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 0007fc 00020b 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 000b88 000087 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,26 +1,26 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 45 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ - 1: 00000001 52 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ + 1: 00000001 70 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ 2: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ 3: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 4: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ 5: 00000004 0 NOTYPE LOCAL DEFAULT 5 .LC1 │ │ │ │ │ 6: 00000008 0 NOTYPE LOCAL DEFAULT 5 .LC2 │ │ │ │ │ - 7: 00000035 60 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 8: 00000064 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 9: 00000070 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 10: 00000071 26 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 11: 0000008d 780 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 12: 00000390 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 13: 00000398 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 14: 00000399 32 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 15: 000003ec 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 7: 00000049 60 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 8: 00000078 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 00000084 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 10: 00000085 30 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 11: 000000a5 848 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 12: 000003ec 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 13: 000003f4 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 14: 000003f5 44 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 15: 00000468 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 16: 00000000 0 SECTION LOCAL DEFAULT 6 .data.rel.ro │ │ │ │ │ 17: 00000000 0 NOTYPE LOCAL DEFAULT 6 $d │ │ │ │ │ 18: 00000000 16 OBJECT LOCAL DEFAULT 6 padt.0 │ │ │ │ │ 19: 00000000 0 SECTION LOCAL DEFAULT 8 .data.rel.ro.local │ │ │ │ │ 20: 00000000 0 NOTYPE LOCAL DEFAULT 8 $d │ │ │ │ │ 21: 00000000 12 OBJECT LOCAL DEFAULT 8 sadt.1 │ │ │ │ │ 22: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_plan_destroy_internal │ │ │ │ │ @@ -38,11 +38,11 @@ │ │ │ │ │ 34: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mktensor_1d │ │ │ │ │ 35: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mkproblem_rdft_1_d │ │ │ │ │ 36: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mkplan_rdft │ │ │ │ │ 37: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ops_add │ │ │ │ │ 38: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ops_add2 │ │ │ │ │ 39: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_rdft_serial_applicable │ │ │ │ │ 40: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_plan_awake │ │ │ │ │ - 41: 000003b9 56 FUNC GLOBAL DEFAULT 1 fftw_mpi_rdft_rank_geq2_transposed_register │ │ │ │ │ + 41: 00000421 76 FUNC GLOBAL DEFAULT 1 fftw_mpi_rdft_rank_geq2_transposed_register │ │ │ │ │ 42: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mksolver │ │ │ │ │ 43: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_solver_register │ │ │ │ │ 44: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_rdft_solve │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,57 +1,57 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x98c contains 43 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0xa08 contains 43 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000064 00000503 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ -00000068 00000603 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -0000006c 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -00000076 0000160a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -0000007c 0000160a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000000c6 0000170a R_ARM_THM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ -000000d4 0000170a R_ARM_THM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ -000000e2 0000180a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -0000010e 0000190a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000116 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000120 00001b0a R_ARM_THM_CALL 00000000 fftw_mktensor │ │ │ │ │ -00000222 00001c0a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00000230 00001d0a R_ARM_THM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ -00000244 00001e0a R_ARM_THM_CALL 00000000 fftw_mkproblem_rdft_d │ │ │ │ │ -0000024c 00001f0a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -0000025a 0000200a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -00000288 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ -00000290 00001f0a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -0000029e 0000200a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -000002b6 00001c0a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -000002c4 0000220a R_ARM_THM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ -000002d6 00001d0a R_ARM_THM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ -000002e6 0000230a R_ARM_THM_CALL 00000000 fftw_mkproblem_rdft_1_d │ │ │ │ │ -000002ee 00001f0a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -000002fc 0000200a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -0000030c 0000240a R_ARM_THM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ -00000336 0000250a R_ARM_THM_CALL 00000000 fftw_ops_add │ │ │ │ │ -00000340 0000260a R_ARM_THM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ -00000352 0000160a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000358 0000160a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -0000035e 0000160a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000384 0000270a R_ARM_THM_CALL 00000000 fftw_mpi_rdft_serial_applicable │ │ │ │ │ -00000390 00000103 R_ARM_REL32 00000001 apply │ │ │ │ │ -00000394 00001003 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -000003a0 0000280a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -000003a8 0000280a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -000003c4 00002a0a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ -000003d0 00002b0a R_ARM_THM_CALL 00000000 fftw_solver_register │ │ │ │ │ -000003d8 00002a0a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ -000003ec 00001303 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -00000086 0000161e R_ARM_THM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000003b4 0000281e R_ARM_THM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ -000003e8 00002b1e R_ARM_THM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ +00000078 00000503 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ +0000007c 00000603 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +00000080 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +0000008c 0000160a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000092 0000160a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000106 0000170a R_ARM_THM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ +00000118 0000170a R_ARM_THM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ +00000126 0000180a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +00000152 0000190a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +0000015a 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000166 00001b0a R_ARM_THM_CALL 00000000 fftw_mktensor │ │ │ │ │ +00000274 00001c0a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00000282 00001d0a R_ARM_THM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ +00000296 00001e0a R_ARM_THM_CALL 00000000 fftw_mkproblem_rdft_d │ │ │ │ │ +0000029e 00001f0a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +000002ae 0000200a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +000002dc 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ +000002e4 00001f0a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +000002f4 0000200a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +0000030c 00001c0a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +0000031a 0000220a R_ARM_THM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ +0000032c 00001d0a R_ARM_THM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ +0000033c 0000230a R_ARM_THM_CALL 00000000 fftw_mkproblem_rdft_1_d │ │ │ │ │ +00000344 00001f0a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +00000354 0000200a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +00000366 0000240a R_ARM_THM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ +00000390 0000250a R_ARM_THM_CALL 00000000 fftw_ops_add │ │ │ │ │ +0000039a 0000260a R_ARM_THM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ +000003aa 0000160a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000003b0 0000160a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000003b6 0000160a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000003de 0000270a R_ARM_THM_CALL 00000000 fftw_mpi_rdft_serial_applicable │ │ │ │ │ +000003ec 00000103 R_ARM_REL32 00000001 apply │ │ │ │ │ +000003f0 00001003 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +00000402 0000280a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +0000040a 0000280a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +00000434 00002a0a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ +00000442 00002b0a R_ARM_THM_CALL 00000000 fftw_solver_register │ │ │ │ │ +0000044c 00002a0a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ +00000468 00001303 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +0000009e 0000161e R_ARM_THM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ +0000041c 0000281e R_ARM_THM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ +00000464 00002b1e R_ARM_THM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0xae4 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0xb60 contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000000 00002c02 R_ARM_ABS32 00000000 fftw_mpi_rdft_solve │ │ │ │ │ -00000004 00000e02 R_ARM_ABS32 00000399 awake │ │ │ │ │ -00000008 00000702 R_ARM_ABS32 00000035 print │ │ │ │ │ -0000000c 00000a02 R_ARM_ABS32 00000071 destroy │ │ │ │ │ +00000004 00000e02 R_ARM_ABS32 000003f5 awake │ │ │ │ │ +00000008 00000702 R_ARM_ABS32 00000049 print │ │ │ │ │ +0000000c 00000a02 R_ARM_ABS32 00000085 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0xb04 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0xb80 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000b02 R_ARM_ABS32 0000008d mkplan │ │ │ │ │ +00000004 00000b02 R_ARM_ABS32 000000a5 mkplan │ │ │ │ ├── strings --all --bytes=8 {} │ │ │ │ │ @@ -1,8 +1,7 @@ │ │ │ │ │ -#JX #IzDyD │ │ │ │ │ (mpi-rdft-rank-geq2-transposed%s%(%p%)%(%p%)%(%p%)) │ │ │ │ │ fftw_plan_destroy_internal │ │ │ │ │ fftw_mpi_is_local_after │ │ │ │ │ fftw_mpi_num_blocks │ │ │ │ │ MPI_Comm_rank │ │ │ │ │ MPI_Comm_size │ │ │ │ │ fftw_mktensor │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,297 +1,309 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ mov r5, r2 │ │ │ │ │ + ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ ldr r7, [r4, #84] @ 0x54 │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ - cbz r7, 2c │ │ │ │ │ + cbz r7, 3e │ │ │ │ │ mov r6, r5 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r2, r5 │ │ │ │ │ mov r1, r6 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ mov r2, r5 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, lr, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ bx r3 │ │ │ │ │ mov r2, r1 │ │ │ │ │ mov r6, r1 │ │ │ │ │ blx r3 │ │ │ │ │ - b.n 14 │ │ │ │ │ + b.n 1c │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -00000034 : │ │ │ │ │ +00000048 : │ │ │ │ │ print(): │ │ │ │ │ mov r3, r0 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r0, r1 │ │ │ │ │ - ldr r4, [r1, #0] │ │ │ │ │ - sub sp, #8 │ │ │ │ │ ldr r2, [r3, #84] @ 0x54 │ │ │ │ │ + sub sp, #8 │ │ │ │ │ + ldr r4, [r1, #0] │ │ │ │ │ cmp r2, #2 │ │ │ │ │ - beq.n 5c │ │ │ │ │ - ldr r2, [pc, #28] @ (64 ) │ │ │ │ │ + beq.n 72 │ │ │ │ │ + ldr r2, [pc, #28] @ (78 ) │ │ │ │ │ add r2, pc │ │ │ │ │ ldr r1, [r3, #72] @ 0x48 │ │ │ │ │ str r1, [sp, #4] │ │ │ │ │ ldr r1, [r3, #68] @ 0x44 │ │ │ │ │ str r1, [sp, #0] │ │ │ │ │ - ldr r1, [pc, #20] @ (68 ) │ │ │ │ │ + ldr r1, [pc, #20] @ (7c ) │ │ │ │ │ ldr r3, [r3, #64] @ 0x40 │ │ │ │ │ add r1, pc │ │ │ │ │ blx r4 │ │ │ │ │ add sp, #8 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ - ldr r2, [pc, #12] @ (6c ) │ │ │ │ │ + ldr r2, [pc, #12] @ (80 ) │ │ │ │ │ add r2, pc │ │ │ │ │ - b.n 48 │ │ │ │ │ - nop │ │ │ │ │ - .word 0x0000001a │ │ │ │ │ + b.n 5e │ │ │ │ │ + .word 0x00000018 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x00000010 │ │ │ │ │ + .word 0x0000000e │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ - .word 0x0000000a │ │ │ │ │ + .word 0x00000008 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ -00000070 : │ │ │ │ │ +00000084 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #72] @ 0x48 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - ldmia.w sp!, {r4, lr} │ │ │ │ │ + ldrd r4, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_plan_destroy_internal │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -0000008c : │ │ │ │ │ +000000a4 : │ │ │ │ │ mkplan(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ ldr r1, [r1, #4] │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ sub sp, #52 @ 0x34 │ │ │ │ │ ldr r3, [r1, #0] │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - ble.n a2 │ │ │ │ │ + ble.n ca │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #8 │ │ │ │ │ - beq.n aa │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + beq.n e6 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add sp, #52 @ 0x34 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldr r3, [r0, #8] │ │ │ │ │ mov sl, r0 │ │ │ │ │ mov fp, r2 │ │ │ │ │ - cbz r3, c2 │ │ │ │ │ + cbz r3, fe │ │ │ │ │ ldr.w r3, [r2, #164] @ 0xa4 │ │ │ │ │ lsls r2, r3, #19 │ │ │ │ │ - bmi.n a2 │ │ │ │ │ + bmi.n ca │ │ │ │ │ ldrd r2, r3, [r4, #12] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - beq.n a2 │ │ │ │ │ - movs r2, #0 │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + beq.n ca │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n a2 │ │ │ │ │ + beq.n ca │ │ │ │ │ ldr r1, [r4, #4] │ │ │ │ │ - movs r2, #1 │ │ │ │ │ - movs r0, #2 │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ + mov.w r0, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n a2 │ │ │ │ │ + beq.n ca │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - ldr r1, [r3, #12] │ │ │ │ │ ldr r0, [r3, #4] │ │ │ │ │ + ldr r1, [r3, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks │ │ │ │ │ - mov r5, r0 │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - bne.n a2 │ │ │ │ │ + mov r5, r0 │ │ │ │ │ + bne.n ca │ │ │ │ │ ldr.w r3, [fp, #164] @ 0xa4 │ │ │ │ │ lsls r3, r3, #28 │ │ │ │ │ - bmi.w 382 │ │ │ │ │ + bmi.w 3dc │ │ │ │ │ ldrd r9, r3, [r4, #12] │ │ │ │ │ str r3, [sp, #28] │ │ │ │ │ ldr.w r3, [sl, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq.w 364 │ │ │ │ │ + beq.w 3bc │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ str r3, [sp, #32] │ │ │ │ │ - add r1, sp, #40 @ 0x28 │ │ │ │ │ ldr r0, [r4, #24] │ │ │ │ │ + add r1, sp, #40 @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ - add r1, sp, #44 @ 0x2c │ │ │ │ │ ldr r0, [r4, #24] │ │ │ │ │ + add r1, sp, #44 @ 0x2c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r0, [r3, #0] │ │ │ │ │ - subs r0, #1 │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor │ │ │ │ │ - ldr.w ip, [r4, #4] │ │ │ │ │ - movs r1, #12 │ │ │ │ │ mov r6, r0 │ │ │ │ │ - ldr r7, [r4, #8] │ │ │ │ │ + ldrd ip, r0, [r4, #4] │ │ │ │ │ ldr.w lr, [ip] │ │ │ │ │ - add.w r2, lr, #4294967295 @ 0xffffffff │ │ │ │ │ - mul.w r3, r1, lr │ │ │ │ │ - mla r2, r1, r2, ip │ │ │ │ │ - add r0, r3 │ │ │ │ │ - ldr r2, [r2, #4] │ │ │ │ │ - str.w r2, [r0, #-20] │ │ │ │ │ - sub.w r2, lr, #2 │ │ │ │ │ - mla r2, r1, r2, r6 │ │ │ │ │ - str r7, [r2, #12] │ │ │ │ │ - str.w r7, [r0, #-16] │ │ │ │ │ + add.w r2, lr, lr, lsl #1 │ │ │ │ │ + add.w r3, lr, lr, lsl #1 │ │ │ │ │ + add.w r2, ip, r2, lsl #2 │ │ │ │ │ + mov.w r3, r3, lsl #2 │ │ │ │ │ + ldr.w r2, [r2, #-8] │ │ │ │ │ + add.w r1, r6, r3 │ │ │ │ │ + str.w r2, [r1, #-20] │ │ │ │ │ + add.w r2, lr, lr, lsl #1 │ │ │ │ │ + add.w r2, r6, r2, lsl #2 │ │ │ │ │ + str.w r0, [r2, #-12] │ │ │ │ │ + str.w r0, [r1, #-16] │ │ │ │ │ subs.w r0, lr, #3 │ │ │ │ │ - bmi.n 1f0 │ │ │ │ │ + bmi.n 23c │ │ │ │ │ + cmp.w lr, #4 │ │ │ │ │ sub.w r2, r3, #16 │ │ │ │ │ sub.w r1, r3, #20 │ │ │ │ │ - cmp.w lr, #4 │ │ │ │ │ - ble.w 37e │ │ │ │ │ - ldr r7, [r6, r1] │ │ │ │ │ - sub.w lr, lr, #5 │ │ │ │ │ - add.w r1, ip, r3 │ │ │ │ │ + ble.w 3d8 │ │ │ │ │ ldr r2, [r6, r2] │ │ │ │ │ - subs r3, #28 │ │ │ │ │ + sub.w lr, lr, #5 │ │ │ │ │ + mov r8, r4 │ │ │ │ │ and.w lr, lr, #1 │ │ │ │ │ + ldr r7, [r6, r1] │ │ │ │ │ + add.w r1, ip, r3 │ │ │ │ │ + sub.w r3, r3, #28 │ │ │ │ │ add r3, r6 │ │ │ │ │ - mov r8, r4 │ │ │ │ │ ldr.w r4, [r1, #-20] │ │ │ │ │ mul.w r2, r7, r2 │ │ │ │ │ - strd r2, r2, [r3] │ │ │ │ │ - subs r0, #2 │ │ │ │ │ - str.w r4, [r3, #-4] │ │ │ │ │ - subs r1, #24 │ │ │ │ │ + sub.w r0, r0, #2 │ │ │ │ │ cmp r0, lr │ │ │ │ │ - ldr.w r7, [r1, #-8] │ │ │ │ │ + sub.w r1, r1, #24 │ │ │ │ │ + strd r4, r2, [r3, #-4] │ │ │ │ │ + str r2, [r3, #4] │ │ │ │ │ mul.w r2, r4, r2 │ │ │ │ │ - str.w r7, [r3, #-16] │ │ │ │ │ - strd r2, r2, [r3, #-12] │ │ │ │ │ + ldr.w r7, [r1, #-8] │ │ │ │ │ + strd r7, r2, [r3, #-16] │ │ │ │ │ sub.w r3, r3, #24 │ │ │ │ │ - bne.n 180 │ │ │ │ │ + str r2, [r3, #16] │ │ │ │ │ + bne.n 1ce │ │ │ │ │ mov r4, r8 │ │ │ │ │ - movs r0, #12 │ │ │ │ │ - mul.w r1, r0, lr │ │ │ │ │ - add.w r8, ip, r1 │ │ │ │ │ + add.w r1, lr, lr, lsl #1 │ │ │ │ │ + mov.w r1, r1, lsl #2 │ │ │ │ │ + add.w r7, ip, r1 │ │ │ │ │ add r1, r6 │ │ │ │ │ ldrd r3, r2, [r1, #16] │ │ │ │ │ - ldr.w r7, [r8, #16] │ │ │ │ │ - str r7, [r1, #4] │ │ │ │ │ + ldr r0, [r7, #16] │ │ │ │ │ mul.w r3, r2, r3 │ │ │ │ │ add.w r2, lr, #4294967295 @ 0xffffffff │ │ │ │ │ - strd r3, r3, [r1, #8] │ │ │ │ │ - str r2, [sp, #36] @ 0x24 │ │ │ │ │ + strd r0, r3, [r1, #4] │ │ │ │ │ + str r3, [r1, #12] │ │ │ │ │ cmp.w lr, #0 │ │ │ │ │ - beq.n 1f0 │ │ │ │ │ - ldr.w r2, [r8, #4] │ │ │ │ │ - mul.w r3, r7, r3 │ │ │ │ │ - str.w r2, [r1, #-8] │ │ │ │ │ - ldr r2, [sp, #36] @ 0x24 │ │ │ │ │ - mla r2, r0, r2, r6 │ │ │ │ │ + beq.n 23c │ │ │ │ │ + ldr r7, [r7, #4] │ │ │ │ │ + add.w r2, r2, r2, lsl #1 │ │ │ │ │ + mul.w r3, r0, r3 │ │ │ │ │ + add.w r2, r6, r2, lsl #2 │ │ │ │ │ + str.w r7, [r1, #-8] │ │ │ │ │ str r3, [r2, #12] │ │ │ │ │ str.w r3, [r1, #-4] │ │ │ │ │ ldr r1, [r6, #0] │ │ │ │ │ cmp r1, #1 │ │ │ │ │ - ble.n 210 │ │ │ │ │ + ble.n 262 │ │ │ │ │ add.w r1, r1, r1, lsl #1 │ │ │ │ │ - movs r3, #0 │ │ │ │ │ - subs r1, #3 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ add.w r0, r6, #16 │ │ │ │ │ + sub.w r1, r1, #3 │ │ │ │ │ ldr.w r2, [r0, r3, lsl #2] │ │ │ │ │ - adds r3, #3 │ │ │ │ │ + add.w r3, r3, #3 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ mul.w r5, r2, r5 │ │ │ │ │ - bne.n 202 │ │ │ │ │ + bne.n 252 │ │ │ │ │ ldrd r7, r3, [r6, #4] │ │ │ │ │ mov.w r8, #1 │ │ │ │ │ ldrd r0, r1, [ip, #4] │ │ │ │ │ ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ mul.w r7, r3, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ strd r8, r8, [sp] │ │ │ │ │ + ldr r3, [r4, #8] │ │ │ │ │ mov r2, r7 │ │ │ │ │ mov r1, r7 │ │ │ │ │ - ldr r3, [r4, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor_2d │ │ │ │ │ ldr r7, [sp, #32] │ │ │ │ │ + add.w r3, r4, #32 │ │ │ │ │ mov r2, r9 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - add.w r3, r4, #32 │ │ │ │ │ mov r0, r6 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ mov r3, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkproblem_rdft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_d │ │ │ │ │ mov r6, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #24] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_any_true │ │ │ │ │ mov r9, r0 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.n 34c │ │ │ │ │ + bne.n 3a2 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ mul.w r5, r3, r5 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - ldr r1, [r3, #16] │ │ │ │ │ ldr r0, [r3, #4] │ │ │ │ │ + ldr r1, [r3, #16] │ │ │ │ │ str.w r9, [sp, #16] │ │ │ │ │ ldr r2, [r4, #24] │ │ │ │ │ str r2, [sp, #12] │ │ │ │ │ ldr r2, [r3, #24] │ │ │ │ │ str r2, [sp, #8] │ │ │ │ │ - ldr r2, [sp, #28] │ │ │ │ │ ldr r3, [r3, #8] │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ + ldr r2, [sp, #28] │ │ │ │ │ + strd r2, r3, [sp] │ │ │ │ │ mov r3, r7 │ │ │ │ │ - str r2, [sp, #0] │ │ │ │ │ mov r2, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkproblem_transpose │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_d │ │ │ │ │ mov r7, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #24] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.n 376 │ │ │ │ │ + bne.n 3ce │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r2, [r3, #4] │ │ │ │ │ ldr r0, [r3, #16] │ │ │ │ │ mul.w r1, r2, r5 │ │ │ │ │ ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ str r1, [sp, #32] │ │ │ │ │ ldr r1, [r3, #24] │ │ │ │ │ @@ -300,145 +312,150 @@ │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ mov r2, r5 │ │ │ │ │ mov r1, r5 │ │ │ │ │ str r0, [sp, #36] @ 0x24 │ │ │ │ │ ldr r0, [r3, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor_1d │ │ │ │ │ - ldr r2, [sp, #32] │ │ │ │ │ - mov r3, r5 │ │ │ │ │ mov r9, r0 │ │ │ │ │ - mov r1, r2 │ │ │ │ │ - ldr r0, [sp, #36] @ 0x24 │ │ │ │ │ + ldrd r2, r0, [sp, #32] │ │ │ │ │ + mov r3, r5 │ │ │ │ │ strd r8, r8, [sp] │ │ │ │ │ + mov r1, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor_2d │ │ │ │ │ ldr r3, [r4, #28] │ │ │ │ │ - str r3, [sp, #0] │ │ │ │ │ mov r1, r0 │ │ │ │ │ - ldr r3, [sp, #28] │ │ │ │ │ mov r0, r9 │ │ │ │ │ + str r3, [sp, #0] │ │ │ │ │ + ldr r3, [sp, #28] │ │ │ │ │ mov r2, r3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkproblem_rdft_1_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_d │ │ │ │ │ mov r5, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #24] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_any_true │ │ │ │ │ - cbnz r0, 350 │ │ │ │ │ - ldr r2, [pc, #140] @ (390 ) │ │ │ │ │ - movs r0, #88 @ 0x58 │ │ │ │ │ - ldr r1, [pc, #140] @ (394 ) │ │ │ │ │ + cbnz r0, 3a8 │ │ │ │ │ + ldr r2, [pc, #144] @ (3ec ) │ │ │ │ │ + mov.w r0, #88 @ 0x58 │ │ │ │ │ + ldr r1, [pc, #140] @ (3f0 ) │ │ │ │ │ add r2, pc │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_rdft │ │ │ │ │ ldr.w r3, [sl, #8] │ │ │ │ │ mov r4, r0 │ │ │ │ │ strd r6, r7, [r0, #64] @ 0x40 │ │ │ │ │ str r5, [r0, #72] @ 0x48 │ │ │ │ │ - cbnz r3, 37a │ │ │ │ │ + cbnz r3, 3d2 │ │ │ │ │ ldr.w r3, [fp, #164] @ 0xa4 │ │ │ │ │ and.w r3, r3, #4096 @ 0x1000 │ │ │ │ │ add.w r8, r4, #8 │ │ │ │ │ add.w r1, r5, #8 │ │ │ │ │ + str r3, [r4, #84] @ 0x54 │ │ │ │ │ mov r2, r8 │ │ │ │ │ add.w r0, r6, #8 │ │ │ │ │ - str r3, [r4, #84] @ 0x54 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ops_add │ │ │ │ │ add.w r0, r7, #8 │ │ │ │ │ mov r1, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ops_add2 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - add sp, #52 @ 0x34 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ - movs r5, #0 │ │ │ │ │ + b.n ce │ │ │ │ │ + mov.w r5, #0 │ │ │ │ │ mov r7, r5 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ - b.n a2 │ │ │ │ │ + b.n ca │ │ │ │ │ ldr.w r3, [fp, #164] @ 0xa4 │ │ │ │ │ tst.w r3, #4096 @ 0x1000 │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ it eq │ │ │ │ │ moveq r3, r9 │ │ │ │ │ str r3, [sp, #32] │ │ │ │ │ - b.n 10a │ │ │ │ │ + b.n 14e │ │ │ │ │ mov r5, r9 │ │ │ │ │ - b.n 350 │ │ │ │ │ - movs r3, #2 │ │ │ │ │ - b.n 326 │ │ │ │ │ + b.n 3a8 │ │ │ │ │ + mov.w r3, #2 │ │ │ │ │ + b.n 380 │ │ │ │ │ mov lr, r0 │ │ │ │ │ - b.n 1ae │ │ │ │ │ + b.n 1fc │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_rdft_serial_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.w f6 │ │ │ │ │ - b.n a2 │ │ │ │ │ - .word 0x00000084 │ │ │ │ │ - R_ARM_REL32 apply │ │ │ │ │ + beq.w 13a │ │ │ │ │ + b.n ca │ │ │ │ │ + nop │ │ │ │ │ .word 0x00000086 │ │ │ │ │ + R_ARM_REL32 apply │ │ │ │ │ + .word 0x00000088 │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -00000398 : │ │ │ │ │ +000003f4 : │ │ │ │ │ awake(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ + mov r5, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_awake │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_awake │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, lr} │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + ldrd r5, lr, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_plan_awake │ │ │ │ │ │ │ │ │ │ -000003b8 : │ │ │ │ │ +00000420 : │ │ │ │ │ fftw_mpi_rdft_rank_geq2_transposed_register(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r5, [pc, #44] @ (3ec ) │ │ │ │ │ - movs r0, #12 │ │ │ │ │ + mov.w r0, #12 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ + ldr r5, [pc, #56] @ (468 ) │ │ │ │ │ add r5, pc │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mksolver │ │ │ │ │ - movs r3, #0 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ + str r3, [r1, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_solver_register │ │ │ │ │ mov r1, r5 │ │ │ │ │ - movs r0, #12 │ │ │ │ │ + mov.w r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mksolver │ │ │ │ │ - movs r3, #1 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + ldrd r5, lr, [sp, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, lr} │ │ │ │ │ + str r3, [r1, #8] │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + add sp, #16 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_solver_register │ │ │ │ │ - .word 0x00000028 │ │ │ │ │ + .word 0x00000034 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ ├── rdft-rank1-bigvec.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 2900 (bytes into file) │ │ │ │ │ + Start of section headers: 3024 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 16 │ │ │ │ │ Section header string table index: 15 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,25 +1,25 @@ │ │ │ │ │ -There are 16 section headers, starting at offset 0xb54: │ │ │ │ │ +There are 16 section headers, starting at offset 0xbd0: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 000318 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 00093c 000160 08 I 13 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 00034c 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 00034c 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 00034c 00003a 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .rodata PROGBITS 00000000 000386 000050 00 A 0 0 4 │ │ │ │ │ - [ 7] .data.rel.ro PROGBITS 00000000 0003d6 000010 00 WA 0 0 4 │ │ │ │ │ - [ 8] .rel.data.rel.ro REL 00000000 000a9c 000020 08 I 13 7 4 │ │ │ │ │ - [ 9] .data.rel.ro.local PROGBITS 00000000 0003e6 00000c 00 WA 0 0 4 │ │ │ │ │ - [10] .rel.data.rel.ro.local REL 00000000 000abc 000008 08 I 13 9 4 │ │ │ │ │ - [11] .note.GNU-stack PROGBITS 00000000 0003f2 000000 00 0 0 1 │ │ │ │ │ - [12] .ARM.attributes ARM_ATTRIBUTES 00000000 0003f2 000033 00 0 0 1 │ │ │ │ │ - [13] .symtab SYMTAB 00000000 000428 000300 10 14 24 4 │ │ │ │ │ - [14] .strtab STRTAB 00000000 000728 000212 00 0 0 1 │ │ │ │ │ - [15] .shstrtab STRTAB 00000000 000ac4 00008f 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000394 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 0009b8 000160 08 I 13 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 0003c8 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 0003c8 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 0003c8 00003a 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .rodata PROGBITS 00000000 000402 000050 00 A 0 0 4 │ │ │ │ │ + [ 7] .data.rel.ro PROGBITS 00000000 000452 000010 00 WA 0 0 4 │ │ │ │ │ + [ 8] .rel.data.rel.ro REL 00000000 000b18 000020 08 I 13 7 4 │ │ │ │ │ + [ 9] .data.rel.ro.local PROGBITS 00000000 000462 00000c 00 WA 0 0 4 │ │ │ │ │ + [10] .rel.data.rel.ro.local REL 00000000 000b38 000008 08 I 13 9 4 │ │ │ │ │ + [11] .note.GNU-stack PROGBITS 00000000 00046e 000000 00 0 0 1 │ │ │ │ │ + [12] .ARM.attributes ARM_ATTRIBUTES 00000000 00046e 000033 00 0 0 1 │ │ │ │ │ + [13] .symtab SYMTAB 00000000 0004a4 000300 10 14 24 4 │ │ │ │ │ + [14] .strtab STRTAB 00000000 0007a4 000212 00 0 0 1 │ │ │ │ │ + [15] .shstrtab STRTAB 00000000 000b40 00008f 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,26 +1,26 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 48 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ - 1: 00000001 46 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ + 1: 00000001 58 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ 2: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ 3: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 4: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC1 │ │ │ │ │ 5: 00000004 0 NOTYPE LOCAL DEFAULT 5 .LC2 │ │ │ │ │ 6: 00000008 0 NOTYPE LOCAL DEFAULT 5 .LC3 │ │ │ │ │ - 7: 00000031 88 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 8: 00000078 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 9: 00000088 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 10: 00000089 26 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 11: 000000a5 528 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 12: 000002ac 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 13: 000002b4 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 14: 000002b5 32 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 15: 00000314 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 7: 0000003d 100 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 8: 00000090 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 000000a0 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 10: 000000a1 30 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 11: 000000c1 584 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 12: 00000300 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 13: 00000308 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 14: 00000309 44 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 15: 00000390 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 16: 00000000 0 SECTION LOCAL DEFAULT 6 .rodata │ │ │ │ │ 17: 00000000 0 NOTYPE LOCAL DEFAULT 6 $d │ │ │ │ │ 18: 00000000 0 SECTION LOCAL DEFAULT 7 .data.rel.ro │ │ │ │ │ 19: 00000000 0 NOTYPE LOCAL DEFAULT 7 $d │ │ │ │ │ 20: 00000000 16 OBJECT LOCAL DEFAULT 7 padt.0 │ │ │ │ │ 21: 00000000 0 SECTION LOCAL DEFAULT 9 .data.rel.ro.local │ │ │ │ │ 22: 00000000 0 NOTYPE LOCAL DEFAULT 9 $d │ │ │ │ │ @@ -41,11 +41,11 @@ │ │ │ │ │ 37: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mktensor_2d │ │ │ │ │ 38: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mkproblem_rdft_1_d │ │ │ │ │ 39: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mkplan_rdft │ │ │ │ │ 40: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ops_add │ │ │ │ │ 41: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ops_add2 │ │ │ │ │ 42: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_rdft_serial_applicable │ │ │ │ │ 43: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_plan_awake │ │ │ │ │ - 44: 000002d5 68 FUNC GLOBAL DEFAULT 1 fftw_mpi_rdft_rank1_bigvec_register │ │ │ │ │ + 44: 00000335 96 FUNC GLOBAL DEFAULT 1 fftw_mpi_rdft_rank1_bigvec_register │ │ │ │ │ 45: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mksolver │ │ │ │ │ 46: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_solver_register │ │ │ │ │ 47: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_rdft_solve │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,58 +1,58 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x93c contains 44 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x9b8 contains 44 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000042 0000180a R_ARM_THM_CALL 00000000 memcpy │ │ │ │ │ -00000078 00001003 R_ARM_REL32 00000000 .rodata │ │ │ │ │ -0000007c 00000503 R_ARM_REL32 00000004 .LC2 │ │ │ │ │ -00000080 00000603 R_ARM_REL32 00000008 .LC3 │ │ │ │ │ -00000084 00000403 R_ARM_REL32 00000000 .LC1 │ │ │ │ │ -0000008e 0000190a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000094 0000190a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000000b6 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000000f4 00001b0a R_ARM_THM_CALL 00000000 fftw_mpi_rearrange_applicable │ │ │ │ │ -0000010a 00001c0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000112 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000128 00001d0a R_ARM_THM_CALL 00000000 fftw_mpi_rearrange_ny │ │ │ │ │ -00000136 00001e0a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000140 00001f0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ -0000016a 0000200a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ -00000172 0000210a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -00000180 0000220a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -000001a4 0000230a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -000001b0 0000240a R_ARM_THM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ -000001c6 0000250a R_ARM_THM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ -000001d6 0000260a R_ARM_THM_CALL 00000000 fftw_mkproblem_rdft_1_d │ │ │ │ │ -000001de 0000210a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -000001ec 0000220a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -00000210 0000200a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ -00000218 0000210a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -00000226 0000220a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -00000236 0000270a R_ARM_THM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ -00000264 0000280a R_ARM_THM_CALL 00000000 fftw_ops_add │ │ │ │ │ -0000026e 0000290a R_ARM_THM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ -0000027e 0000190a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000284 0000190a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -0000028a 0000190a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000002a0 00002a0a R_ARM_THM_CALL 00000000 fftw_mpi_rdft_serial_applicable │ │ │ │ │ -000002ac 00000103 R_ARM_REL32 00000001 apply │ │ │ │ │ -000002b0 00001203 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -000002bc 00002b0a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -000002c4 00002b0a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -000002e4 00002d0a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ -000002f0 00002e0a R_ARM_THM_CALL 00000000 fftw_solver_register │ │ │ │ │ -000002f8 00002d0a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ -00000308 00002e0a R_ARM_THM_CALL 00000000 fftw_solver_register │ │ │ │ │ -00000314 00001503 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -0000009e 0000191e R_ARM_THM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000002d0 00002b1e R_ARM_THM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ +00000056 0000180a R_ARM_THM_CALL 00000000 memcpy │ │ │ │ │ +00000090 00001003 R_ARM_REL32 00000000 .rodata │ │ │ │ │ +00000094 00000503 R_ARM_REL32 00000004 .LC2 │ │ │ │ │ +00000098 00000603 R_ARM_REL32 00000008 .LC3 │ │ │ │ │ +0000009c 00000403 R_ARM_REL32 00000000 .LC1 │ │ │ │ │ +000000a8 0000190a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000000ae 0000190a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000000e2 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000136 00001b0a R_ARM_THM_CALL 00000000 fftw_mpi_rearrange_applicable │ │ │ │ │ +0000014c 00001c0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +00000154 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +0000016a 00001d0a R_ARM_THM_CALL 00000000 fftw_mpi_rearrange_ny │ │ │ │ │ +0000017c 00001e0a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000186 00001f0a R_ARM_THM_CALL 00000000 fftw_mpi_default_block │ │ │ │ │ +000001ae 0000200a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ +000001b6 0000210a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +000001c8 0000220a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +000001ee 0000230a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +000001fa 0000240a R_ARM_THM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ +00000212 0000250a R_ARM_THM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ +00000222 0000260a R_ARM_THM_CALL 00000000 fftw_mkproblem_rdft_1_d │ │ │ │ │ +0000022a 0000210a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +0000023a 0000220a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +0000025e 0000200a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ +00000266 0000210a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +00000276 0000220a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +00000288 0000270a R_ARM_THM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ +000002b8 0000280a R_ARM_THM_CALL 00000000 fftw_ops_add │ │ │ │ │ +000002c2 0000290a R_ARM_THM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ +000002d0 0000190a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000002d6 0000190a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000002dc 0000190a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000002f4 00002a0a R_ARM_THM_CALL 00000000 fftw_mpi_rdft_serial_applicable │ │ │ │ │ +00000300 00000103 R_ARM_REL32 00000001 apply │ │ │ │ │ +00000304 00001203 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +00000316 00002b0a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +0000031e 00002b0a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +00000352 00002d0a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ +0000035e 00002e0a R_ARM_THM_CALL 00000000 fftw_solver_register │ │ │ │ │ +00000368 00002d0a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ +0000037c 00002e0a R_ARM_THM_CALL 00000000 fftw_solver_register │ │ │ │ │ +00000390 00001503 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +000000ba 0000191e R_ARM_THM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000330 00002b1e R_ARM_THM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0xa9c contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0xb18 contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000000 00002f02 R_ARM_ABS32 00000000 fftw_mpi_rdft_solve │ │ │ │ │ -00000004 00000e02 R_ARM_ABS32 000002b5 awake │ │ │ │ │ -00000008 00000702 R_ARM_ABS32 00000031 print │ │ │ │ │ -0000000c 00000a02 R_ARM_ABS32 00000089 destroy │ │ │ │ │ +00000004 00000e02 R_ARM_ABS32 00000309 awake │ │ │ │ │ +00000008 00000702 R_ARM_ABS32 0000003d print │ │ │ │ │ +0000000c 00000a02 R_ARM_ABS32 000000a1 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0xabc contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0xb38 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000b02 R_ARM_ABS32 000000a5 mkplan │ │ │ │ │ +00000004 00000b02 R_ARM_ABS32 000000c1 mkplan │ │ │ │ ├── strings --all --bytes=8 {} │ │ │ │ │ @@ -1,7 +1,8 @@ │ │ │ │ │ +~'F~D1FO │ │ │ │ │ (mpi-rdft-rank1-bigvec/%s%s %(%p%) %(%p%) %(%p%)) │ │ │ │ │ discontig │ │ │ │ │ square-after │ │ │ │ │ square-middle │ │ │ │ │ square-before │ │ │ │ │ fftw_plan_destroy_internal │ │ │ │ │ MPI_Comm_size │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,257 +1,271 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, r5, [sp, #-16]! │ │ │ │ │ mov r5, r0 │ │ │ │ │ + mov r4, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r6, lr, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ - mov r4, r1 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ - ldr r3, [r5, #76] @ 0x4c │ │ │ │ │ ldr r0, [r5, #68] @ 0x44 │ │ │ │ │ mov r1, r6 │ │ │ │ │ + ldr r3, [r5, #76] @ 0x4c │ │ │ │ │ cmp r3, #0 │ │ │ │ │ it ne │ │ │ │ │ movne r4, r6 │ │ │ │ │ - mov r2, r4 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ + mov r2, r4 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r5, #72] @ 0x48 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r4 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, lr, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ bx r3 │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -00000030 : │ │ │ │ │ +0000003c : │ │ │ │ │ print(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ - mov r4, r0 │ │ │ │ │ + strd r4, r5, [sp, #-16]! │ │ │ │ │ mov r5, r1 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + ldr r1, [pc, #72] @ (90 ) │ │ │ │ │ + mov.w r2, #80 @ 0x50 │ │ │ │ │ + strd r6, lr, [sp, #8] │ │ │ │ │ sub sp, #96 @ 0x60 │ │ │ │ │ - ldr r1, [pc, #60] @ (78 ) │ │ │ │ │ add r3, sp, #16 │ │ │ │ │ - movs r2, #80 @ 0x50 │ │ │ │ │ mov r0, r3 │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL memcpy │ │ │ │ │ - ldr r2, [r4, #80] @ 0x50 │ │ │ │ │ - ldr r3, [r4, #76] @ 0x4c │ │ │ │ │ + ldrd r3, r2, [r4, #76] @ 0x4c │ │ │ │ │ ldr r6, [r5, #0] │ │ │ │ │ - add.w r2, r0, r2, lsl #4 │ │ │ │ │ cmp r3, #2 │ │ │ │ │ - beq.n 70 │ │ │ │ │ - ldr r3, [pc, #36] @ (7c ) │ │ │ │ │ + add.w r2, r0, r2, lsl #4 │ │ │ │ │ + beq.n 8a │ │ │ │ │ + ldr r3, [pc, #40] @ (94 ) │ │ │ │ │ add r3, pc │ │ │ │ │ ldr r1, [r4, #72] @ 0x48 │ │ │ │ │ mov r0, r5 │ │ │ │ │ str r1, [sp, #8] │ │ │ │ │ ldr r1, [r4, #68] @ 0x44 │ │ │ │ │ str r1, [sp, #4] │ │ │ │ │ ldr r1, [r4, #64] @ 0x40 │ │ │ │ │ str r1, [sp, #0] │ │ │ │ │ - ldr r1, [pc, #24] @ (80 ) │ │ │ │ │ + ldr r1, [pc, #28] @ (98 ) │ │ │ │ │ add r1, pc │ │ │ │ │ blx r6 │ │ │ │ │ add sp, #96 @ 0x60 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ - ldr r3, [pc, #16] @ (84 ) │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + pop {r6, pc} │ │ │ │ │ + ldr r3, [pc, #16] @ (9c ) │ │ │ │ │ add r3, pc │ │ │ │ │ - b.n 58 │ │ │ │ │ - nop │ │ │ │ │ - .word 0x00000034 │ │ │ │ │ + b.n 6c │ │ │ │ │ + .word 0x00000038 │ │ │ │ │ R_ARM_REL32 .rodata │ │ │ │ │ - .word 0x00000022 │ │ │ │ │ + .word 0x00000026 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ - .word 0x00000014 │ │ │ │ │ + .word 0x00000018 │ │ │ │ │ R_ARM_REL32 .LC3 │ │ │ │ │ - .word 0x0000000e │ │ │ │ │ + .word 0x0000000c │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ │ │ │ │ │ -00000088 : │ │ │ │ │ +000000a0 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #72] @ 0x48 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - ldmia.w sp!, {r4, lr} │ │ │ │ │ + ldrd r4, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_plan_destroy_internal │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -000000a4 : │ │ │ │ │ +000000c0 : │ │ │ │ │ mkplan(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r6, r0 │ │ │ │ │ - sub sp, #52 @ 0x34 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r7, r2 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #52 @ 0x34 │ │ │ │ │ add r5, sp, #44 @ 0x2c │ │ │ │ │ ldr r0, [r4, #24] │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r2, [r3, #0] │ │ │ │ │ cmp r2, #1 │ │ │ │ │ - beq.n ca │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + beq.n 10a │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add sp, #52 @ 0x34 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldr r2, [r4, #20] │ │ │ │ │ bics.w r2, r2, #16 │ │ │ │ │ - bne.n c2 │ │ │ │ │ + bne.n ee │ │ │ │ │ ldr r2, [r6, #8] │ │ │ │ │ - cbz r2, e6 │ │ │ │ │ + cbz r2, 126 │ │ │ │ │ ldr.w r2, [r7, #164] @ 0xa4 │ │ │ │ │ lsls r2, r2, #19 │ │ │ │ │ - bmi.n c2 │ │ │ │ │ + bmi.n ee │ │ │ │ │ ldrd r1, r2, [r4, #12] │ │ │ │ │ cmp r1, r2 │ │ │ │ │ - beq.n c2 │ │ │ │ │ + beq.n ee │ │ │ │ │ ldr r2, [sp, #44] @ 0x2c │ │ │ │ │ - adds r3, #4 │ │ │ │ │ + add.w r3, r3, #4 │ │ │ │ │ str r2, [sp, #4] │ │ │ │ │ ldr r2, [r4, #8] │ │ │ │ │ str r2, [sp, #0] │ │ │ │ │ ldmia r3, {r1, r2, r3} │ │ │ │ │ ldr r0, [r6, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_rearrange_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n c2 │ │ │ │ │ + beq.n ee │ │ │ │ │ ldr.w r3, [r7, #164] @ 0xa4 │ │ │ │ │ lsls r3, r3, #28 │ │ │ │ │ - bmi.w 29e │ │ │ │ │ - add r1, sp, #40 @ 0x28 │ │ │ │ │ + bmi.w 2f2 │ │ │ │ │ ldr r0, [r4, #24] │ │ │ │ │ + add r1, sp, #40 @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ - mov r1, r5 │ │ │ │ │ ldr r0, [r4, #24] │ │ │ │ │ + mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r2, [sp, #44] @ 0x2c │ │ │ │ │ ldr.w sl, [r3, #4]! │ │ │ │ │ str r2, [sp, #4] │ │ │ │ │ ldr r2, [r4, #8] │ │ │ │ │ str r2, [sp, #0] │ │ │ │ │ ldmia r3, {r1, r2, r3} │ │ │ │ │ ldr r0, [r6, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_rearrange_ny │ │ │ │ │ mov r5, r0 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n c2 │ │ │ │ │ + beq.n ee │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ + mov.w r9, #0 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ ldr r1, [sp, #44] @ 0x2c │ │ │ │ │ mov r8, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_default_block │ │ │ │ │ - mov.w r9, #0 │ │ │ │ │ ldrd fp, r2, [r4, #12] │ │ │ │ │ - str.w r9, [sp, #16] │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str r0, [sp, #28] │ │ │ │ │ + str.w r9, [sp, #16] │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ - str r0, [sp, #8] │ │ │ │ │ + mov r3, r0 │ │ │ │ │ + strd r2, r0, [sp, #24] │ │ │ │ │ mov r0, sl │ │ │ │ │ - str r2, [sp, #24] │ │ │ │ │ + str r3, [sp, #8] │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r3, [r3, #8] │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ + strd r2, r3, [sp] │ │ │ │ │ mov r3, fp │ │ │ │ │ - str r2, [sp, #0] │ │ │ │ │ mov r2, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkproblem_transpose │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_d │ │ │ │ │ - str r0, [sp, #32] │ │ │ │ │ + mov r3, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #24] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ + str r3, [sp, #32] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.w 29a │ │ │ │ │ + bne.w 2ee │ │ │ │ │ ldr r3, [r6, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.n 290 │ │ │ │ │ + bne.w 2e2 │ │ │ │ │ ldr.w r3, [r7, #164] @ 0xa4 │ │ │ │ │ ldr r2, [sp, #24] │ │ │ │ │ tst.w r3, #4096 @ 0x1000 │ │ │ │ │ it ne │ │ │ │ │ movne fp, r2 │ │ │ │ │ - ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ ldr r1, [sp, #28] │ │ │ │ │ + mov r0, r5 │ │ │ │ │ + ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ - mov r2, r8 │ │ │ │ │ mov r9, r0 │ │ │ │ │ + mov r2, r8 │ │ │ │ │ mov r1, r8 │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor_1d │ │ │ │ │ mul.w r2, r8, sl │ │ │ │ │ - movs r3, #1 │ │ │ │ │ - str r0, [sp, #36] @ 0x24 │ │ │ │ │ - mov r1, r2 │ │ │ │ │ - mov r0, r9 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ strd r3, r3, [sp] │ │ │ │ │ mov r3, r8 │ │ │ │ │ + mov r1, r2 │ │ │ │ │ + str r0, [sp, #36] @ 0x24 │ │ │ │ │ + mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor_2d │ │ │ │ │ ldr r3, [r4, #28] │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r2, [sp, #24] │ │ │ │ │ + ldr r0, [sp, #36] @ 0x24 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ mov r3, fp │ │ │ │ │ - ldr r0, [sp, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkproblem_rdft_1_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_d │ │ │ │ │ mov r9, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #24] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.n 27a │ │ │ │ │ + bne.n 2ca │ │ │ │ │ str r0, [sp, #16] │ │ │ │ │ mov r2, r8 │ │ │ │ │ mov r1, sl │ │ │ │ │ - mov r0, r5 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ + mov r0, r5 │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r3, [r3, #12] │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ @@ -262,124 +276,129 @@ │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_d │ │ │ │ │ mov r5, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #24] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_any_true │ │ │ │ │ - cbnz r0, 27c │ │ │ │ │ - ldr r2, [pc, #124] @ (2ac ) │ │ │ │ │ - movs r0, #88 @ 0x58 │ │ │ │ │ - ldr r1, [pc, #124] @ (2b0 ) │ │ │ │ │ + cbnz r0, 2ce │ │ │ │ │ + ldr r2, [pc, #128] @ (300 ) │ │ │ │ │ + mov.w r0, #88 @ 0x58 │ │ │ │ │ + ldr r1, [pc, #128] @ (304 ) │ │ │ │ │ add r2, pc │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_rdft │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ - strd r3, r9, [r0, #64] @ 0x40 │ │ │ │ │ mov r4, r0 │ │ │ │ │ + strd r3, r9, [r0, #64] @ 0x40 │ │ │ │ │ ldr r3, [r6, #8] │ │ │ │ │ str r5, [r0, #72] @ 0x48 │ │ │ │ │ - cbnz r3, 296 │ │ │ │ │ + cbnz r3, 2e8 │ │ │ │ │ ldr.w r3, [r7, #164] @ 0xa4 │ │ │ │ │ and.w r3, r3, #4096 @ 0x1000 │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ add.w r1, r9, #8 │ │ │ │ │ str r3, [r4, #76] @ 0x4c │ │ │ │ │ ldr r3, [r6, #12] │ │ │ │ │ add.w r6, r4, #8 │ │ │ │ │ mov r2, r6 │ │ │ │ │ + add.w r0, r0, #8 │ │ │ │ │ str r3, [r4, #80] @ 0x50 │ │ │ │ │ - adds r0, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ops_add │ │ │ │ │ add.w r0, r5, #8 │ │ │ │ │ mov r1, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ops_add2 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - add sp, #52 @ 0x34 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ - movs r5, #0 │ │ │ │ │ + b.n f2 │ │ │ │ │ + mov.w r5, #0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ - b.n c2 │ │ │ │ │ + b.n ee │ │ │ │ │ ldr.w fp, [sp, #24] │ │ │ │ │ - b.n 19e │ │ │ │ │ - movs r3, #2 │ │ │ │ │ - b.n 250 │ │ │ │ │ + b.n 1e8 │ │ │ │ │ + mov.w r3, #2 │ │ │ │ │ + b.n 2a2 │ │ │ │ │ mov r5, r9 │ │ │ │ │ - b.n 27c │ │ │ │ │ + b.n 2ce │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_rdft_serial_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.w c2 │ │ │ │ │ - b.n 106 │ │ │ │ │ - .word 0x00000076 │ │ │ │ │ - R_ARM_REL32 apply │ │ │ │ │ + bne.w ee │ │ │ │ │ + b.n 148 │ │ │ │ │ .word 0x00000078 │ │ │ │ │ + R_ARM_REL32 apply │ │ │ │ │ + .word 0x0000007a │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -000002b4 : │ │ │ │ │ +00000308 : │ │ │ │ │ awake(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ + mov r5, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_awake │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_awake │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, lr} │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + ldrd r5, lr, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_plan_awake │ │ │ │ │ │ │ │ │ │ -000002d4 : │ │ │ │ │ +00000334 : │ │ │ │ │ fftw_mpi_rdft_rank1_bigvec_register(): │ │ │ │ │ - push {r3, r4, r5, r6, r7, lr} │ │ │ │ │ - movs r4, #0 │ │ │ │ │ - ldr r6, [pc, #56] @ (314 ) │ │ │ │ │ + strd r3, r4, [sp, #-24]! │ │ │ │ │ + mov.w r4, #0 │ │ │ │ │ + strd r5, r6, [sp, #8] │ │ │ │ │ mov r5, r0 │ │ │ │ │ + ldr r6, [pc, #76] @ (390 ) │ │ │ │ │ + strd r7, lr, [sp, #16] │ │ │ │ │ mov r7, r4 │ │ │ │ │ add r6, pc │ │ │ │ │ mov r1, r6 │ │ │ │ │ - movs r0, #16 │ │ │ │ │ + mov.w r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mksolver │ │ │ │ │ mov r1, r0 │ │ │ │ │ - strd r7, r4, [r0, #8] │ │ │ │ │ mov r0, r5 │ │ │ │ │ + strd r7, r4, [r1, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_solver_register │ │ │ │ │ mov r1, r6 │ │ │ │ │ - movs r0, #16 │ │ │ │ │ + mov.w r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mksolver │ │ │ │ │ - movs r3, #1 │ │ │ │ │ - str r4, [r0, #12] │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ - adds r4, #1 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ mov r0, r5 │ │ │ │ │ + strd r3, r4, [r1, #8] │ │ │ │ │ + add.w r4, r4, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_solver_register │ │ │ │ │ cmp r4, #4 │ │ │ │ │ - bne.n 2e0 │ │ │ │ │ - pop {r3, r4, r5, r6, r7, pc} │ │ │ │ │ - nop │ │ │ │ │ - .word 0x00000032 │ │ │ │ │ + bne.n 34c │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + ldrd r5, r6, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + pop {r7, pc} │ │ │ │ │ + .word 0x00000042 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ ├── rdft-problem.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 2220 (bytes into file) │ │ │ │ │ + Start of section headers: 2348 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 13 │ │ │ │ │ Section header string table index: 12 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,22 +1,22 @@ │ │ │ │ │ -There are 13 section headers, starting at offset 0x8ac: │ │ │ │ │ +There are 13 section headers, starting at offset 0x92c: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 0002a0 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000724 0000f0 08 I 10 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 0002d4 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 0002d4 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 0002d4 000030 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro.local PROGBITS 00000000 000304 000014 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro.local REL 00000000 000814 000020 08 I 10 6 4 │ │ │ │ │ - [ 8] .note.GNU-stack PROGBITS 00000000 000318 000000 00 0 0 1 │ │ │ │ │ - [ 9] .ARM.attributes ARM_ATTRIBUTES 00000000 000318 000033 00 0 0 1 │ │ │ │ │ - [10] .symtab SYMTAB 00000000 00034c 000270 10 11 21 4 │ │ │ │ │ - [11] .strtab STRTAB 00000000 0005bc 000166 00 0 0 1 │ │ │ │ │ - [12] .shstrtab STRTAB 00000000 000834 000076 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000320 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 0007a4 0000f0 08 I 10 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000354 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000354 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 000354 000030 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro.local PROGBITS 00000000 000384 000014 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro.local REL 00000000 000894 000020 08 I 10 6 4 │ │ │ │ │ + [ 8] .note.GNU-stack PROGBITS 00000000 000398 000000 00 0 0 1 │ │ │ │ │ + [ 9] .ARM.attributes ARM_ATTRIBUTES 00000000 000398 000033 00 0 0 1 │ │ │ │ │ + [10] .symtab SYMTAB 00000000 0003cc 000270 10 11 21 4 │ │ │ │ │ + [11] .strtab STRTAB 00000000 00063c 000166 00 0 0 1 │ │ │ │ │ + [12] .shstrtab STRTAB 00000000 0008b4 000076 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,28 +1,28 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 39 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ - 1: 00000001 28 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 1: 00000001 32 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ 2: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ 3: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 4: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ 5: 00000014 0 NOTYPE LOCAL DEFAULT 5 .LC1 │ │ │ │ │ 6: 00000018 0 NOTYPE LOCAL DEFAULT 5 .LC2 │ │ │ │ │ 7: 00000020 0 NOTYPE LOCAL DEFAULT 5 .LC3 │ │ │ │ │ - 8: 0000001d 160 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 9: 000000ac 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 10: 000000bc 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 11: 000000bd 50 FUNC LOCAL DEFAULT 1 zero │ │ │ │ │ + 8: 00000021 188 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 9: 000000cc 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 10: 000000dc 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 11: 000000dd 68 FUNC LOCAL DEFAULT 1 zero │ │ │ │ │ 12: 00000028 0 NOTYPE LOCAL DEFAULT 5 .LC4 │ │ │ │ │ - 13: 000000f1 124 FUNC LOCAL DEFAULT 1 hash │ │ │ │ │ - 14: 00000168 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 15: 0000016c 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 16: 00000278 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 17: 0000027c 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 13: 00000121 144 FUNC LOCAL DEFAULT 1 hash │ │ │ │ │ + 14: 000001ac 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 15: 000001b0 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 16: 000002e8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 17: 000002ec 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ 18: 00000000 0 SECTION LOCAL DEFAULT 6 .data.rel.ro.local │ │ │ │ │ 19: 00000000 0 NOTYPE LOCAL DEFAULT 6 $d │ │ │ │ │ 20: 00000000 20 OBJECT LOCAL DEFAULT 6 padt │ │ │ │ │ 21: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_dtensor_destroy │ │ │ │ │ 22: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_free │ │ │ │ │ 23: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ifree │ │ │ │ │ 24: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ialignment_of │ │ │ │ │ @@ -31,12 +31,12 @@ │ │ │ │ │ 27: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_rank │ │ │ │ │ 28: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_total_block │ │ │ │ │ 29: 00000000 0 NOTYPE GLOBAL DEFAULT UND memset │ │ │ │ │ 30: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_md5puts │ │ │ │ │ 31: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_md5int │ │ │ │ │ 32: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_dtensor_md5 │ │ │ │ │ 33: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_md5INT │ │ │ │ │ - 34: 0000016d 272 FUNC GLOBAL DEFAULT 1 fftw_mpi_mkproblem_rdft │ │ │ │ │ + 34: 000001b1 316 FUNC GLOBAL DEFAULT 1 fftw_mpi_mkproblem_rdft │ │ │ │ │ 35: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mkproblem │ │ │ │ │ 36: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_dtensor_canonical │ │ │ │ │ 37: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_dup │ │ │ │ │ - 38: 0000027d 36 FUNC GLOBAL DEFAULT 1 fftw_mpi_mkproblem_rdft_d │ │ │ │ │ + 38: 000002ed 50 FUNC GLOBAL DEFAULT 1 fftw_mpi_mkproblem_rdft_d │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,40 +1,40 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x724 contains 30 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x7a4 contains 30 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000006 0000150a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -0000000e 0000160a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -00000030 0000180a R_ARM_THM_CALL 00000000 fftw_ialignment_of │ │ │ │ │ -0000003c 0000180a R_ARM_THM_CALL 00000000 fftw_ialignment_of │ │ │ │ │ -00000054 0000190a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_print │ │ │ │ │ -00000096 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000000ac 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -000000b0 00000503 R_ARM_REL32 00000014 .LC1 │ │ │ │ │ -000000b4 00000603 R_ARM_REL32 00000018 .LC2 │ │ │ │ │ -000000b8 00000703 R_ARM_REL32 00000020 .LC3 │ │ │ │ │ -000000c8 00001b0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000000d4 00001c0a R_ARM_THM_CALL 00000000 fftw_mpi_total_block │ │ │ │ │ -000000e6 00001d0a R_ARM_THM_CALL 00000000 memset │ │ │ │ │ -000000fe 00001e0a R_ARM_THM_CALL 00000000 fftw_md5puts │ │ │ │ │ -00000110 00001f0a R_ARM_THM_CALL 00000000 fftw_md5int │ │ │ │ │ -00000118 0000200a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_md5 │ │ │ │ │ -00000120 0000210a R_ARM_THM_CALL 00000000 fftw_md5INT │ │ │ │ │ -00000138 00001f0a R_ARM_THM_CALL 00000000 fftw_md5int │ │ │ │ │ -0000014e 00001f0a R_ARM_THM_CALL 00000000 fftw_md5int │ │ │ │ │ -00000156 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -0000015e 00001f0a R_ARM_THM_CALL 00000000 fftw_md5int │ │ │ │ │ -00000168 00000c03 R_ARM_REL32 00000028 .LC4 │ │ │ │ │ -00000184 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000198 0000230a R_ARM_THM_CALL 00000000 fftw_mkproblem │ │ │ │ │ -000001a2 0000240a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_canonical │ │ │ │ │ -0000021c 0000250a R_ARM_THM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ -00000278 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -0000028e 0000220a R_ARM_THM_CALL 0000016d fftw_mpi_mkproblem_rdft │ │ │ │ │ -00000296 0000150a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -00000018 0000171e R_ARM_THM_JUMP24 00000000 fftw_ifree │ │ │ │ │ +00000008 0000150a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +00000010 0000160a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +0000003e 0000180a R_ARM_THM_CALL 00000000 fftw_ialignment_of │ │ │ │ │ +0000004a 0000180a R_ARM_THM_CALL 00000000 fftw_ialignment_of │ │ │ │ │ +00000064 0000190a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_print │ │ │ │ │ +000000aa 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000000cc 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +000000d0 00000503 R_ARM_REL32 00000014 .LC1 │ │ │ │ │ +000000d4 00000603 R_ARM_REL32 00000018 .LC2 │ │ │ │ │ +000000d8 00000703 R_ARM_REL32 00000020 .LC3 │ │ │ │ │ +000000ee 00001b0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000000fc 00001c0a R_ARM_THM_CALL 00000000 fftw_mpi_total_block │ │ │ │ │ +00000112 00001d0a R_ARM_THM_CALL 00000000 memset │ │ │ │ │ +00000134 00001e0a R_ARM_THM_CALL 00000000 fftw_md5puts │ │ │ │ │ +0000014a 00001f0a R_ARM_THM_CALL 00000000 fftw_md5int │ │ │ │ │ +00000152 0000200a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_md5 │ │ │ │ │ +0000015a 0000210a R_ARM_THM_CALL 00000000 fftw_md5INT │ │ │ │ │ +00000174 00001f0a R_ARM_THM_CALL 00000000 fftw_md5int │ │ │ │ │ +0000018c 00001f0a R_ARM_THM_CALL 00000000 fftw_md5int │ │ │ │ │ +00000194 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +0000019c 00001f0a R_ARM_THM_CALL 00000000 fftw_md5int │ │ │ │ │ +000001ac 00000c03 R_ARM_REL32 00000028 .LC4 │ │ │ │ │ +000001d8 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000001ea 0000230a R_ARM_THM_CALL 00000000 fftw_mkproblem │ │ │ │ │ +000001f6 0000240a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_canonical │ │ │ │ │ +00000274 0000250a R_ARM_THM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ +000002e8 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +00000304 0000220a R_ARM_THM_CALL 000001b1 fftw_mpi_mkproblem_rdft │ │ │ │ │ +0000030c 0000150a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +0000001c 0000171e R_ARM_THM_JUMP24 00000000 fftw_ifree │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0x814 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0x894 contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000d02 R_ARM_ABS32 000000f1 hash │ │ │ │ │ -00000008 00000b02 R_ARM_ABS32 000000bd zero │ │ │ │ │ -0000000c 00000802 R_ARM_ABS32 0000001d print │ │ │ │ │ +00000004 00000d02 R_ARM_ABS32 00000121 hash │ │ │ │ │ +00000008 00000b02 R_ARM_ABS32 000000dd zero │ │ │ │ │ +0000000c 00000802 R_ARM_ABS32 00000021 print │ │ │ │ │ 00000010 00000102 R_ARM_ABS32 00000001 destroy │ │ │ │ ├── strings --all --bytes=8 {} │ │ │ │ │ @@ -1,8 +1,7 @@ │ │ │ │ │ -Iv ;F2FyD │ │ │ │ │ (mpi-rdft %d %d %d │ │ │ │ │ fftw_mpi_dtensor_destroy │ │ │ │ │ MPI_Comm_free │ │ │ │ │ fftw_ifree │ │ │ │ │ fftw_ialignment_of │ │ │ │ │ fftw_mpi_dtensor_print │ │ │ │ │ MPI_Comm_size │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,309 +1,332 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ add.w r0, r4, #24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_free │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r4, lr} │ │ │ │ │ + ldrd r4, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_ifree │ │ │ │ │ │ │ │ │ │ -0000001c : │ │ │ │ │ +00000020 : │ │ │ │ │ print(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r0, [r0, #12] │ │ │ │ │ - sub sp, #16 │ │ │ │ │ mov r5, r1 │ │ │ │ │ + ldr r0, [r0, #12] │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ ldr r2, [r4, #16] │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ + sub sp, #16 │ │ │ │ │ ldr.w r8, [r1] │ │ │ │ │ - subs r6, r2, r0 │ │ │ │ │ + sub.w r6, r2, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ialignment_of │ │ │ │ │ - clz r6, r6 │ │ │ │ │ mov r7, r0 │ │ │ │ │ ldr r0, [r4, #16] │ │ │ │ │ + clz r6, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ialignment_of │ │ │ │ │ - ldr r1, [pc, #104] @ (ac ) │ │ │ │ │ - lsrs r6, r6, #5 │ │ │ │ │ + ldr r1, [pc, #124] @ (cc ) │ │ │ │ │ + mov.w r6, r6, lsr #5 │ │ │ │ │ mov r3, r7 │ │ │ │ │ - mov r2, r6 │ │ │ │ │ - add r1, pc │ │ │ │ │ str r0, [sp, #0] │ │ │ │ │ mov r0, r5 │ │ │ │ │ + mov r2, r6 │ │ │ │ │ + add r1, pc │ │ │ │ │ blx r8 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_print │ │ │ │ │ ldr r2, [r4, #4] │ │ │ │ │ - movs r3, #0 │ │ │ │ │ - str r3, [sp, #12] │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ ldr r2, [r2, #0] │ │ │ │ │ + str r3, [sp, #12] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - ble.n 84 │ │ │ │ │ - ldr r6, [pc, #72] @ (b0 ) │ │ │ │ │ + ble.n 98 │ │ │ │ │ + ldr r6, [pc, #88] @ (d0 ) │ │ │ │ │ add r6, pc │ │ │ │ │ add.w r3, r4, r3, lsl #2 │ │ │ │ │ mov r1, r6 │ │ │ │ │ mov r0, r5 │ │ │ │ │ ldr r2, [r3, #28] │ │ │ │ │ ldr r3, [r5, #0] │ │ │ │ │ blx r3 │ │ │ │ │ ldr r2, [r4, #4] │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ ldr r2, [r2, #0] │ │ │ │ │ - adds r3, #1 │ │ │ │ │ + add.w r3, r3, #1 │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ cmp r3, r2 │ │ │ │ │ - blt.n 68 │ │ │ │ │ - ldr r1, [pc, #44] @ (b4 ) │ │ │ │ │ + blt.n 7a │ │ │ │ │ + ldr r1, [pc, #56] @ (d4 ) │ │ │ │ │ mov r0, r5 │ │ │ │ │ - ldr r3, [r4, #20] │ │ │ │ │ + ldr r6, [r5, #0] │ │ │ │ │ ldr r2, [r4, #8] │ │ │ │ │ add r1, pc │ │ │ │ │ - ldr r6, [r5, #0] │ │ │ │ │ + ldr r3, [r4, #20] │ │ │ │ │ blx r6 │ │ │ │ │ - add r1, sp, #12 │ │ │ │ │ ldr r0, [r4, #24] │ │ │ │ │ + add r1, sp, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ - ldr r1, [pc, #28] @ (b8 ) │ │ │ │ │ - ldr r3, [r5, #0] │ │ │ │ │ + ldr r1, [pc, #40] @ (d8 ) │ │ │ │ │ mov r0, r5 │ │ │ │ │ + ldr r3, [r5, #0] │ │ │ │ │ ldr r2, [sp, #12] │ │ │ │ │ add r1, pc │ │ │ │ │ blx r3 │ │ │ │ │ add sp, #16 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, pc} │ │ │ │ │ - .word 0x00000060 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + ldmia.w sp!, {r8, pc} │ │ │ │ │ + nop │ │ │ │ │ + .word 0x0000006c │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ - .word 0x00000046 │ │ │ │ │ + .word 0x00000054 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x00000024 │ │ │ │ │ + .word 0x00000030 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ - .word 0x00000012 │ │ │ │ │ + .word 0x0000001e │ │ │ │ │ R_ARM_REL32 .LC3 │ │ │ │ │ │ │ │ │ │ -000000bc : │ │ │ │ │ +000000dc : │ │ │ │ │ zero(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, r5, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r6, [r0, #12] │ │ │ │ │ + strd r6, lr, [sp, #8] │ │ │ │ │ sub sp, #8 │ │ │ │ │ - ldr r0, [r0, #24] │ │ │ │ │ + ldr r6, [r0, #12] │ │ │ │ │ add r1, sp, #4 │ │ │ │ │ + ldr r0, [r0, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ - ldr r5, [r4, #8] │ │ │ │ │ + ldrd r0, r5, [r4, #4] │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ ldr r2, [sp, #4] │ │ │ │ │ - movs r1, #0 │ │ │ │ │ - ldr r0, [r4, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_total_block │ │ │ │ │ mul.w r0, r5, r0 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - ble.n ea │ │ │ │ │ - lsls r2, r0, #3 │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + ble.n 116 │ │ │ │ │ + mov.w r2, r0, lsl #3 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL memset │ │ │ │ │ add sp, #8 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ - nop │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + pop {r6, pc} │ │ │ │ │ │ │ │ │ │ -000000f0 : │ │ │ │ │ +00000120 : │ │ │ │ │ hash(): │ │ │ │ │ - push {r4, r5, lr} │ │ │ │ │ + str.w r4, [sp, #-12]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + strd r5, lr, [sp, #4] │ │ │ │ │ mov r5, r1 │ │ │ │ │ - ldr r1, [pc, #112] @ (168 ) │ │ │ │ │ sub sp, #12 │ │ │ │ │ + ldr r1, [pc, #124] @ (1ac ) │ │ │ │ │ mov r0, r5 │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_md5puts │ │ │ │ │ - mov r0, r5 │ │ │ │ │ ldrd r1, r3, [r4, #12] │ │ │ │ │ - subs r1, r1, r3 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ + sub.w r1, r1, r3 │ │ │ │ │ clz r1, r1 │ │ │ │ │ - lsrs r1, r1, #5 │ │ │ │ │ + mov.w r1, r1, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_md5int │ │ │ │ │ ldr r1, [r4, #4] │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_md5 │ │ │ │ │ ldr r1, [r4, #8] │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_md5INT │ │ │ │ │ ldr r2, [r4, #4] │ │ │ │ │ - movs r3, #0 │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ ldr r2, [r2, #0] │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - ble.n 14a │ │ │ │ │ + ble.n 188 │ │ │ │ │ add.w r3, r4, r3, lsl #2 │ │ │ │ │ mov r0, r5 │ │ │ │ │ ldr r1, [r3, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_md5int │ │ │ │ │ ldr r2, [r4, #4] │ │ │ │ │ ldr r3, [sp, #4] │ │ │ │ │ ldr r2, [r2, #0] │ │ │ │ │ - adds r3, #1 │ │ │ │ │ + add.w r3, r3, #1 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ cmp r3, r2 │ │ │ │ │ - blt.n 130 │ │ │ │ │ + blt.n 16c │ │ │ │ │ ldr r1, [r4, #20] │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_md5int │ │ │ │ │ - add r1, sp, #4 │ │ │ │ │ ldr r0, [r4, #24] │ │ │ │ │ + add r1, sp, #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #4] │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_md5int │ │ │ │ │ add sp, #12 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ - nop │ │ │ │ │ - .word 0x00000068 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + .word 0x00000076 │ │ │ │ │ R_ARM_REL32 .LC4 │ │ │ │ │ │ │ │ │ │ -0000016c : │ │ │ │ │ +000001b0 : │ │ │ │ │ fftw_mpi_mkproblem_rdft(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - mov fp, r0 │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + mov r8, r3 │ │ │ │ │ ldr r7, [r0, #0] │ │ │ │ │ - sub sp, #20 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ mov sl, r1 │ │ │ │ │ - mov r1, sp │ │ │ │ │ - mov r8, r3 │ │ │ │ │ mov r9, r2 │ │ │ │ │ - ldr r0, [sp, #56] @ 0x38 │ │ │ │ │ - ldrd r4, r5, [sp, #60] @ 0x3c │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #20 │ │ │ │ │ + mov fp, r0 │ │ │ │ │ + ldrd r0, r4, [sp, #56] @ 0x38 │ │ │ │ │ + mov r1, sp │ │ │ │ │ + ldr r5, [sp, #64] @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ + ldr r1, [pc, #264] @ (2e8 ) │ │ │ │ │ cmp r7, #0 │ │ │ │ │ - ldr r1, [pc, #236] @ (278 ) │ │ │ │ │ - ite gt │ │ │ │ │ + itet gt │ │ │ │ │ addgt r0, r7, #7 │ │ │ │ │ movle r0, #32 │ │ │ │ │ - add r1, pc │ │ │ │ │ - it gt │ │ │ │ │ lslgt r0, r0, #2 │ │ │ │ │ + add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkproblem │ │ │ │ │ - movs r1, #0 │ │ │ │ │ mov r7, r0 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_canonical │ │ │ │ │ ldr.w lr, [r0] │ │ │ │ │ - mov ip, r0 │ │ │ │ │ - cmp.w lr, #0 │ │ │ │ │ - strd r9, r8, [r7, #12] │ │ │ │ │ strd r0, sl, [r7, #4] │ │ │ │ │ + strd r9, r8, [r7, #12] │ │ │ │ │ + cmp.w lr, #0 │ │ │ │ │ it le │ │ │ │ │ - addle.w r8, r7, #24 │ │ │ │ │ - ble.n 216 │ │ │ │ │ + addle.w r1, r7, #24 │ │ │ │ │ + ble.n 270 │ │ │ │ │ add.w r3, lr, #4294967295 @ 0xffffffff │ │ │ │ │ cmp r3, #6 │ │ │ │ │ - bls.n 25e │ │ │ │ │ + bls.n 2ce │ │ │ │ │ add.w r2, r7, #28 │ │ │ │ │ - adds r3, r4, #4 │ │ │ │ │ + add.w r3, r4, #4 │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - beq.n 25e │ │ │ │ │ - mov.w r0, lr, lsr #1 │ │ │ │ │ + beq.n 2ce │ │ │ │ │ + mov.w ip, lr, lsr #1 │ │ │ │ │ mov r3, r4 │ │ │ │ │ - add.w r0, r4, r0, lsl #3 │ │ │ │ │ + add.w ip, r4, ip, lsl #3 │ │ │ │ │ ldrd r6, r1, [r3] │ │ │ │ │ - adds r3, #8 │ │ │ │ │ + add.w r3, r3, #8 │ │ │ │ │ + cmp r3, ip │ │ │ │ │ strd r6, r1, [r2] │ │ │ │ │ - cmp r3, r0 │ │ │ │ │ add.w r2, r2, #8 │ │ │ │ │ - bne.n 1dc │ │ │ │ │ + bne.n 230 │ │ │ │ │ bic.w r3, lr, #1 │ │ │ │ │ - add.w r8, r7, #24 │ │ │ │ │ - cmp lr, r3 │ │ │ │ │ - ittt ne │ │ │ │ │ + tst.w lr, #1 │ │ │ │ │ + itt ne │ │ │ │ │ ldrne.w r2, [r4, r3, lsl #2] │ │ │ │ │ addne.w r3, r7, r3, lsl #2 │ │ │ │ │ + add.w r1, r7, #24 │ │ │ │ │ + it ne │ │ │ │ │ strne r2, [r3, #28] │ │ │ │ │ ubfx r3, r5, #2, #1 │ │ │ │ │ cmp.w lr, #1 │ │ │ │ │ ite eq │ │ │ │ │ moveq r3, #0 │ │ │ │ │ andne.w r3, r3, #1 │ │ │ │ │ - cbnz r3, 228 │ │ │ │ │ + cbnz r3, 292 │ │ │ │ │ ldr r0, [sp, #56] @ 0x38 │ │ │ │ │ - mov r1, r8 │ │ │ │ │ str r5, [r7, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_dup │ │ │ │ │ mov r0, r7 │ │ │ │ │ add sp, #20 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ - add.w r4, ip, #4 │ │ │ │ │ - add r3, sp, #4 │ │ │ │ │ - add.w ip, ip, #16 │ │ │ │ │ - ldr.w lr, [r7, #28] │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + ldrd r2, r3, [r0, #4] │ │ │ │ │ bic.w r5, r5, #4 │ │ │ │ │ - ldmia.w r4, {r0, r1, r2} │ │ │ │ │ - stmia.w r3, {r0, r1, r2} │ │ │ │ │ eor.w r5, r5, #8 │ │ │ │ │ - ldmia.w ip, {r0, r1, r2} │ │ │ │ │ - stmia.w r4, {r0, r1, r2} │ │ │ │ │ - ldmia.w r3, {r0, r1, r2} │ │ │ │ │ - stmia.w ip, {r0, r1, r2} │ │ │ │ │ + ldr.w ip, [r7, #28] │ │ │ │ │ + ldr.w lr, [r0, #12] │ │ │ │ │ + strd r2, r3, [sp, #4] │ │ │ │ │ + ldrd r2, r3, [r0, #16] │ │ │ │ │ + str.w lr, [sp, #12] │ │ │ │ │ + strd r2, r3, [r0, #4] │ │ │ │ │ + ldr r3, [r0, #24] │ │ │ │ │ + str r3, [r0, #12] │ │ │ │ │ + ldrd r2, r3, [sp, #4] │ │ │ │ │ + str.w lr, [r0, #24] │ │ │ │ │ + strd r2, r3, [r0, #16] │ │ │ │ │ ldr r3, [r7, #32] │ │ │ │ │ - strd r3, lr, [r7, #28] │ │ │ │ │ - b.n 216 │ │ │ │ │ - add.w r8, r7, #24 │ │ │ │ │ - add.w r1, r4, lr, lsl #2 │ │ │ │ │ - mov r3, r8 │ │ │ │ │ + strd r3, ip, [r7, #28] │ │ │ │ │ + b.n 270 │ │ │ │ │ + add.w r1, r7, #24 │ │ │ │ │ + add.w ip, r4, lr, lsl #2 │ │ │ │ │ + mov r3, r1 │ │ │ │ │ ldr.w r2, [r4], #4 │ │ │ │ │ + cmp r4, ip │ │ │ │ │ str.w r2, [r3, #4]! │ │ │ │ │ - cmp r4, r1 │ │ │ │ │ - bne.n 268 │ │ │ │ │ - b.n 204 │ │ │ │ │ + bne.n 2d8 │ │ │ │ │ + b.n 25e │ │ │ │ │ nop │ │ │ │ │ - .word 0x000000e2 │ │ │ │ │ + .word 0x000000fc │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -0000027c : │ │ │ │ │ +000002ec : │ │ │ │ │ fftw_mpi_mkproblem_rdft_d(): │ │ │ │ │ - push {r4, r5, lr} │ │ │ │ │ - mov r5, r0 │ │ │ │ │ + str.w r4, [sp, #-12]! │ │ │ │ │ + strd r5, lr, [sp, #4] │ │ │ │ │ sub sp, #20 │ │ │ │ │ + mov r5, r0 │ │ │ │ │ ldr r4, [sp, #40] @ 0x28 │ │ │ │ │ str r4, [sp, #8] │ │ │ │ │ ldr r4, [sp, #36] @ 0x24 │ │ │ │ │ str r4, [sp, #4] │ │ │ │ │ ldr r4, [sp, #32] │ │ │ │ │ str r4, [sp, #0] │ │ │ │ │ - bl 16c │ │ │ │ │ + bl 1b0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkproblem_rdft │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, #20 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + nop │ │ │ ├── rdft-solve.o │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,10 +1,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftw_mpi_rdft_solve(): │ │ │ │ │ - ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ ldrd r1, r2, [r1, #12] │ │ │ │ │ + ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ bx r3 │ │ │ ├── rdft2-serial.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 2128 (bytes into file) │ │ │ │ │ + Start of section headers: 2208 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 15 │ │ │ │ │ Section header string table index: 14 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,24 +1,24 @@ │ │ │ │ │ -There are 15 section headers, starting at offset 0x850: │ │ │ │ │ +There are 15 section headers, starting at offset 0x8a0: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 00025c 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0006e8 0000b8 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000290 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000290 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 000290 00001a 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 0002aa 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 0007a0 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 0002ba 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 0007c0 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 0002c6 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 0002c6 000033 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 0002fc 000260 10 13 21 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 00055c 00018b 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 0007c8 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0002ac 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000738 0000b8 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 0002e0 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 0002e0 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 0002e0 00001a 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 0002fa 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 0007f0 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 00030a 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 000810 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 000316 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000316 000033 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 00034c 000260 10 13 21 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 0005ac 00018b 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 000818 000087 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,25 +1,25 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 38 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ - 1: 00000001 28 FUNC LOCAL DEFAULT 1 apply_r2c │ │ │ │ │ + 1: 00000001 30 FUNC LOCAL DEFAULT 1 apply_r2c │ │ │ │ │ 2: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 3: 0000001d 30 FUNC LOCAL DEFAULT 1 apply_c2r │ │ │ │ │ + 3: 00000021 32 FUNC LOCAL DEFAULT 1 apply_c2r │ │ │ │ │ 4: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 5: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ - 6: 0000003d 20 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 7: 0000004c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 8: 00000050 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 9: 00000051 6 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 10: 00000059 6 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 11: 00000061 428 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 12: 00000200 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 13: 0000020c 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 14: 00000258 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 6: 00000041 20 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 7: 00000050 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 8: 00000054 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 9: 00000055 6 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 10: 0000005d 6 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 11: 00000065 492 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 12: 00000244 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 13: 00000250 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 14: 000002a8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 15: 00000000 0 SECTION LOCAL DEFAULT 6 .data.rel.ro │ │ │ │ │ 16: 00000000 0 NOTYPE LOCAL DEFAULT 6 $d │ │ │ │ │ 17: 00000000 16 OBJECT LOCAL DEFAULT 6 padt.0 │ │ │ │ │ 18: 00000000 0 SECTION LOCAL DEFAULT 8 .data.rel.ro.local │ │ │ │ │ 19: 00000000 0 NOTYPE LOCAL DEFAULT 8 $d │ │ │ │ │ 20: 00000000 12 OBJECT LOCAL DEFAULT 8 sadt.1 │ │ │ │ │ 21: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_plan_destroy_internal │ │ │ │ │ @@ -30,12 +30,12 @@ │ │ │ │ │ 26: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mktensor_1d │ │ │ │ │ 27: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mktensor_0d │ │ │ │ │ 28: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mkproblem_rdft2_d │ │ │ │ │ 29: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mkplan_d │ │ │ │ │ 30: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_any_true │ │ │ │ │ 31: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mkplan_rdft │ │ │ │ │ 32: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ops_cpy │ │ │ │ │ - 33: 0000020d 46 FUNC GLOBAL DEFAULT 1 fftw_mpi_rdft2_serial_applicable │ │ │ │ │ - 34: 0000023d 32 FUNC GLOBAL DEFAULT 1 fftw_mpi_rdft2_serial_register │ │ │ │ │ + 33: 00000251 56 FUNC GLOBAL DEFAULT 1 fftw_mpi_rdft2_serial_applicable │ │ │ │ │ + 34: 00000289 36 FUNC GLOBAL DEFAULT 1 fftw_mpi_rdft2_serial_register │ │ │ │ │ 35: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mksolver │ │ │ │ │ 36: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_solver_register │ │ │ │ │ 37: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_rdft2_solve │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,37 +1,37 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x6e8 contains 23 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x738 contains 23 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -0000004c 00000503 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -00000078 0000170a R_ARM_THM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ -000000a2 0000180a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000000d0 0000190a R_ARM_THM_CALL 00000000 fftw_mktensor │ │ │ │ │ -00000142 00001a0a R_ARM_THM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ -00000158 00001b0a R_ARM_THM_CALL 00000000 fftw_mktensor_0d │ │ │ │ │ -00000164 00001a0a R_ARM_THM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ -00000178 00001c0a R_ARM_THM_CALL 00000000 fftw_mkproblem_rdft2_d │ │ │ │ │ -00000180 00001d0a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -0000018e 00001e0a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -000001a6 00001f0a R_ARM_THM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ -000001ba 0000200a R_ARM_THM_CALL 00000000 fftw_ops_cpy │ │ │ │ │ -000001f2 0000170a R_ARM_THM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ -00000200 00000103 R_ARM_REL32 00000001 apply_r2c │ │ │ │ │ -00000204 00000f03 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -00000208 00000303 R_ARM_REL32 0000001d apply_c2r │ │ │ │ │ -0000021a 0000170a R_ARM_THM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ -0000022e 0000170a R_ARM_THM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ -00000246 0000230a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ -00000258 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -00000052 0000151e R_ARM_THM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ -0000005a 0000161e R_ARM_THM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ -00000252 0000241e R_ARM_THM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ +00000050 00000503 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +000000a0 0000170a R_ARM_THM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ +000000cc 0000180a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000000fe 0000190a R_ARM_THM_CALL 00000000 fftw_mktensor │ │ │ │ │ +0000017a 00001a0a R_ARM_THM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ +00000190 00001b0a R_ARM_THM_CALL 00000000 fftw_mktensor_0d │ │ │ │ │ +0000019e 00001a0a R_ARM_THM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ +000001b4 00001c0a R_ARM_THM_CALL 00000000 fftw_mkproblem_rdft2_d │ │ │ │ │ +000001bc 00001d0a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +000001cc 00001e0a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +000001e6 00001f0a R_ARM_THM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ +000001fa 0000200a R_ARM_THM_CALL 00000000 fftw_ops_cpy │ │ │ │ │ +00000236 0000170a R_ARM_THM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ +00000244 00000103 R_ARM_REL32 00000001 apply_r2c │ │ │ │ │ +00000248 00000f03 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +0000024c 00000303 R_ARM_REL32 00000021 apply_c2r │ │ │ │ │ +00000262 0000170a R_ARM_THM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ +0000027a 0000170a R_ARM_THM_CALL 00000000 fftw_mpi_is_local │ │ │ │ │ +00000296 0000230a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ +000002a8 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +00000056 0000151e R_ARM_THM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ +0000005e 0000161e R_ARM_THM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ +000002a4 0000241e R_ARM_THM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0x7a0 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0x7f0 contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000000 00002502 R_ARM_ABS32 00000000 fftw_mpi_rdft2_solve │ │ │ │ │ -00000004 00000a02 R_ARM_ABS32 00000059 awake │ │ │ │ │ -00000008 00000602 R_ARM_ABS32 0000003d print │ │ │ │ │ -0000000c 00000902 R_ARM_ABS32 00000051 destroy │ │ │ │ │ +00000004 00000a02 R_ARM_ABS32 0000005d awake │ │ │ │ │ +00000008 00000602 R_ARM_ABS32 00000041 print │ │ │ │ │ +0000000c 00000902 R_ARM_ABS32 00000055 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0x7c0 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0x810 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000b02 R_ARM_ABS32 00000061 mkplan │ │ │ │ │ +00000004 00000b02 R_ARM_ABS32 00000065 mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,282 +1,287 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply_r2c(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r3, r2 │ │ │ │ │ - add.w r4, r3, #8 │ │ │ │ │ - sub sp, #8 │ │ │ │ │ + add.w r4, r2, #8 │ │ │ │ │ ldrd r0, r2, [r0, #64] @ 0x40 │ │ │ │ │ + sub sp, #8 │ │ │ │ │ str r4, [sp, #0] │ │ │ │ │ - add.w r2, r1, r2, lsl #3 │ │ │ │ │ ldr r4, [r0, #56] @ 0x38 │ │ │ │ │ + add.w r2, r1, r2, lsl #3 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, #8 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -0000001c : │ │ │ │ │ +00000020 : │ │ │ │ │ apply_c2r(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ mov r3, r1 │ │ │ │ │ mov r1, r2 │ │ │ │ │ - sub sp, #8 │ │ │ │ │ - add.w r4, r3, #8 │ │ │ │ │ ldrd r0, r2, [r0, #64] @ 0x40 │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ + add.w r4, r3, #8 │ │ │ │ │ + sub sp, #8 │ │ │ │ │ str r4, [sp, #0] │ │ │ │ │ - add.w r2, r1, r2, lsl #3 │ │ │ │ │ ldr r4, [r0, #56] @ 0x38 │ │ │ │ │ + add.w r2, r1, r2, lsl #3 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, #8 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ - nop │ │ │ │ │ │ │ │ │ │ -0000003c : │ │ │ │ │ +00000040 : │ │ │ │ │ print(): │ │ │ │ │ mov r2, r0 │ │ │ │ │ - ldr r3, [r1, #0] │ │ │ │ │ mov r0, r1 │ │ │ │ │ - ldr r1, [pc, #8] @ (4c ) │ │ │ │ │ + ldr r1, [pc, #8] @ (50 ) │ │ │ │ │ + ldr r3, [r0, #0] │ │ │ │ │ ldr r2, [r2, #64] @ 0x40 │ │ │ │ │ add r1, pc │ │ │ │ │ bx r3 │ │ │ │ │ nop │ │ │ │ │ .word 0x00000002 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ -00000050 : │ │ │ │ │ +00000054 : │ │ │ │ │ destroy(): │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_plan_destroy_internal │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -00000058 : │ │ │ │ │ +0000005c : │ │ │ │ │ awake(): │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_plan_awake │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -00000060 : │ │ │ │ │ +00000064 : │ │ │ │ │ mkplan(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ ldr r1, [r1, #24] │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ sub sp, #44 @ 0x2c │ │ │ │ │ - cbz r1, 74 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + cbz r1, 9c │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add sp, #44 @ 0x2c │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mov r5, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.w 1ee │ │ │ │ │ + bne.w 230 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.n 6c │ │ │ │ │ - ldr r2, [r4, #20] │ │ │ │ │ - lsls r3, r3, #3 │ │ │ │ │ + bne.n 80 │ │ │ │ │ ldrd r7, r6, [r4, #12] │ │ │ │ │ + mov.w r3, r3, lsl #3 │ │ │ │ │ + ldr r2, [r4, #20] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - bne.w 1c6 │ │ │ │ │ + bne.w 202 │ │ │ │ │ + add r3, r7 │ │ │ │ │ add.w r8, r6, #8 │ │ │ │ │ - adds r3, r7, r3 │ │ │ │ │ str r3, [sp, #16] │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ add r1, sp, #36 @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.n 158 │ │ │ │ │ + bne.n 190 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 158 │ │ │ │ │ + ble.n 190 │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #4 │ │ │ │ │ - beq.w 1e4 │ │ │ │ │ + beq.w 222 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.w 1dc │ │ │ │ │ - movs r3, #2 │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + bne.w 218 │ │ │ │ │ + mov.w r3, #2 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ strd r3, r1, [sp, #24] │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr.w sl, [r3] │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor │ │ │ │ │ - ldr r3, [r4, #8] │ │ │ │ │ add.w ip, sl, #4294967295 @ 0xffffffff │ │ │ │ │ - movs r2, #12 │ │ │ │ │ - str r3, [sp, #20] │ │ │ │ │ + add.w sl, sl, sl, lsl #1 │ │ │ │ │ mov r9, r0 │ │ │ │ │ - lsls r1, r3, #1 │ │ │ │ │ cmp.w ip, #0 │ │ │ │ │ - mul.w r3, r2, ip │ │ │ │ │ - mul.w lr, r2, sl │ │ │ │ │ - add r0, r3 │ │ │ │ │ - add.w sl, r9, lr │ │ │ │ │ - str r1, [r0, #12] │ │ │ │ │ - ldr r0, [r4, #4] │ │ │ │ │ - str.w r1, [sl, #-4] │ │ │ │ │ + mov.w lr, sl, lsl #2 │ │ │ │ │ + add.w sl, r0, lr │ │ │ │ │ + ldrd r0, r3, [r4, #4] │ │ │ │ │ + mov.w r1, r3, lsl #1 │ │ │ │ │ + str r3, [sp, #20] │ │ │ │ │ + add.w r3, ip, ip, lsl #1 │ │ │ │ │ + mov.w r3, r3, lsl #2 │ │ │ │ │ + add.w r2, r9, r3 │ │ │ │ │ add r3, r0 │ │ │ │ │ - it gt │ │ │ │ │ - addgt r0, lr │ │ │ │ │ ldr.w fp, [r3, #4] │ │ │ │ │ - it gt │ │ │ │ │ + itt gt │ │ │ │ │ + addgt r0, lr │ │ │ │ │ movgt r3, sl │ │ │ │ │ + str r1, [r2, #12] │ │ │ │ │ + str.w r1, [sl, #-4] │ │ │ │ │ add.w r2, fp, fp, lsr #31 │ │ │ │ │ mov.w r2, r2, asr #1 │ │ │ │ │ add.w r2, r2, #1 │ │ │ │ │ str.w r2, [sl, #-8] │ │ │ │ │ - ble.n 138 │ │ │ │ │ + ble.n 170 │ │ │ │ │ mul.w r1, r2, r1 │ │ │ │ │ - subs r0, #12 │ │ │ │ │ - strd r1, r1, [r3, #-16] │ │ │ │ │ subs.w ip, ip, #1 │ │ │ │ │ + sub.w r0, r0, #12 │ │ │ │ │ + strd r1, r1, [r3, #-16] │ │ │ │ │ sub.w r3, r3, #12 │ │ │ │ │ ldr.w r2, [r0, #-8] │ │ │ │ │ str.w r2, [r3, #-8] │ │ │ │ │ - bne.n 11c │ │ │ │ │ - ldrd r2, r1, [sp, #24] │ │ │ │ │ + bne.n 152 │ │ │ │ │ + ldrd r0, r2, [sp, #20] │ │ │ │ │ str.w fp, [sl, #-8] │ │ │ │ │ - ldr r0, [sp, #20] │ │ │ │ │ + ldr r1, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor_1d │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ mov r1, r0 │ │ │ │ │ - strd r8, r3, [sp, #4] │ │ │ │ │ mov r2, r7 │ │ │ │ │ - ldr r3, [sp, #16] │ │ │ │ │ mov r0, r9 │ │ │ │ │ - str r6, [sp, #0] │ │ │ │ │ - b.n 178 │ │ │ │ │ + strd r6, r8, [sp] │ │ │ │ │ + str r3, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #16] │ │ │ │ │ + b.n 1b4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor_0d │ │ │ │ │ - movs r2, #0 │ │ │ │ │ - mov r1, r2 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ mov r7, r0 │ │ │ │ │ + mov r1, r2 │ │ │ │ │ mov r0, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor_1d │ │ │ │ │ - movs r3, #4 │ │ │ │ │ + mov.w r3, #4 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - strd r8, r3, [sp, #4] │ │ │ │ │ + strd r6, r8, [sp] │ │ │ │ │ mov r2, r6 │ │ │ │ │ - mov r3, r8 │ │ │ │ │ mov r0, r7 │ │ │ │ │ - str r6, [sp, #0] │ │ │ │ │ + str r3, [sp, #8] │ │ │ │ │ + mov r3, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkproblem_rdft2_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_d │ │ │ │ │ mov r6, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.w 6c │ │ │ │ │ + bne.w 80 │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ - cbnz r3, 1d6 │ │ │ │ │ - ldr r2, [pc, #96] @ (200 ) │ │ │ │ │ + cbnz r3, 212 │ │ │ │ │ + ldr r2, [pc, #104] @ (244 ) │ │ │ │ │ add r2, pc │ │ │ │ │ - ldr r1, [pc, #96] @ (204 ) │ │ │ │ │ - movs r0, #72 @ 0x48 │ │ │ │ │ + ldr r1, [pc, #104] @ (248 ) │ │ │ │ │ + mov.w r0, #72 @ 0x48 │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_rdft │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ mov r5, r0 │ │ │ │ │ add.w r1, r0, #8 │ │ │ │ │ - str r6, [r0, #64] @ 0x40 │ │ │ │ │ - str r3, [r0, #68] @ 0x44 │ │ │ │ │ add.w r0, r6, #8 │ │ │ │ │ + strd r6, r3, [r5, #64] @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ops_cpy │ │ │ │ │ mov r0, r5 │ │ │ │ │ - add sp, #44 @ 0x2c │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ - adds r3, r6, r3 │ │ │ │ │ + b.n 84 │ │ │ │ │ + add r3, r6 │ │ │ │ │ + add.w r8, r7, #8 │ │ │ │ │ str r3, [sp, #16] │ │ │ │ │ mov r3, r7 │ │ │ │ │ - add.w r8, r7, #8 │ │ │ │ │ mov r7, r6 │ │ │ │ │ mov r6, r3 │ │ │ │ │ - b.n 9e │ │ │ │ │ - ldr r2, [pc, #48] @ (208 ) │ │ │ │ │ + b.n c8 │ │ │ │ │ + ldr r2, [pc, #56] @ (24c ) │ │ │ │ │ add r2, pc │ │ │ │ │ - b.n 1a0 │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + b.n 1de │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ strd r3, r3, [sp, #24] │ │ │ │ │ - b.n c8 │ │ │ │ │ - movs r3, #1 │ │ │ │ │ - movs r2, #2 │ │ │ │ │ + b.n f6 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + mov.w r2, #2 │ │ │ │ │ strd r3, r2, [sp, #24] │ │ │ │ │ - b.n c8 │ │ │ │ │ + b.n f6 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.w 82 │ │ │ │ │ + beq.w aa │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ - b.n 88 │ │ │ │ │ - .word 0x0000005e │ │ │ │ │ + b.n b0 │ │ │ │ │ + .word 0x00000064 │ │ │ │ │ R_ARM_REL32 apply_r2c │ │ │ │ │ - .word 0x0000005c │ │ │ │ │ + .word 0x00000060 │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ - .word 0x0000002c │ │ │ │ │ + .word 0x00000034 │ │ │ │ │ R_ARM_REL32 apply_c2r │ │ │ │ │ │ │ │ │ │ -0000020c : │ │ │ │ │ +00000250 : │ │ │ │ │ fftw_mpi_rdft2_serial_applicable(): │ │ │ │ │ ldr r1, [r0, #24] │ │ │ │ │ - cbz r1, 214 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + cbz r1, 25a │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ bx lr │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_is_local │ │ │ │ │ - cbnz r0, 22a │ │ │ │ │ + cbnz r0, 274 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ clz r0, r0 │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n 220 │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + beq.n 268 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ - nop │ │ │ │ │ │ │ │ │ │ -0000023c : │ │ │ │ │ +00000288 : │ │ │ │ │ fftw_mpi_rdft2_serial_register(): │ │ │ │ │ - ldr r1, [pc, #24] @ (258 ) │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + ldr r1, [pc, #28] @ (2a8 ) │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov.w r0, #8 │ │ │ │ │ add r1, pc │ │ │ │ │ - movs r0, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mksolver │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r4, lr} │ │ │ │ │ + ldrd r4, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_solver_register │ │ │ │ │ - nop │ │ │ │ │ - .word 0x00000012 │ │ │ │ │ + .word 0x00000010 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ ├── rdft2-rank-geq2.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 2900 (bytes into file) │ │ │ │ │ + Start of section headers: 3040 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 15 │ │ │ │ │ Section header string table index: 14 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,24 +1,24 @@ │ │ │ │ │ -There are 15 section headers, starting at offset 0xb54: │ │ │ │ │ +There are 15 section headers, starting at offset 0xbe0: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 000434 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 00098c 000118 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000468 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000468 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 000468 00002c 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 000494 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 000aa4 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 0004a4 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 000ac4 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 0004b0 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 0004b0 000033 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 0004e4 0002c0 10 13 23 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 0007a4 0001e5 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 000acc 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0004c0 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000a18 000118 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 0004f4 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 0004f4 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 0004f4 00002c 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 000520 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 000b30 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 000530 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 000b50 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 00053c 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 00053c 000033 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 000570 0002c0 10 13 23 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 000830 0001e5 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 000b58 000087 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,27 +1,27 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 44 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ - 1: 00000001 64 FUNC LOCAL DEFAULT 1 apply_r2c │ │ │ │ │ + 1: 00000001 84 FUNC LOCAL DEFAULT 1 apply_r2c │ │ │ │ │ 2: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 3: 00000041 40 FUNC LOCAL DEFAULT 1 apply_c2r │ │ │ │ │ + 3: 00000055 54 FUNC LOCAL DEFAULT 1 apply_c2r │ │ │ │ │ 4: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 5: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ 6: 00000004 0 NOTYPE LOCAL DEFAULT 5 .LC1 │ │ │ │ │ 7: 00000008 0 NOTYPE LOCAL DEFAULT 5 .LC2 │ │ │ │ │ - 8: 00000069 56 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 9: 00000094 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 10: 000000a0 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 11: 000000a1 20 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 12: 000000b5 816 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 13: 000003d8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 14: 000003e4 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 15: 000003e5 24 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 16: 00000430 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 8: 0000008d 56 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 9: 000000b8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 10: 000000c4 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 11: 000000c5 24 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 12: 000000dd 884 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 13: 00000444 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 14: 00000450 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 15: 00000451 36 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 16: 000004bc 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 17: 00000000 0 SECTION LOCAL DEFAULT 6 .data.rel.ro │ │ │ │ │ 18: 00000000 0 NOTYPE LOCAL DEFAULT 6 $d │ │ │ │ │ 19: 00000000 16 OBJECT LOCAL DEFAULT 6 padt.0 │ │ │ │ │ 20: 00000000 0 SECTION LOCAL DEFAULT 8 .data.rel.ro.local │ │ │ │ │ 21: 00000000 0 NOTYPE LOCAL DEFAULT 8 $d │ │ │ │ │ 22: 00000000 12 OBJECT LOCAL DEFAULT 8 sadt.1 │ │ │ │ │ 23: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_plan_destroy_internal │ │ │ │ │ @@ -37,11 +37,11 @@ │ │ │ │ │ 33: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_any_true │ │ │ │ │ 34: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_mkdtensor │ │ │ │ │ 35: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_mkproblem_dft_d │ │ │ │ │ 36: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mkplan_rdft │ │ │ │ │ 37: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ops_add │ │ │ │ │ 38: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_rdft2_serial_applicable │ │ │ │ │ 39: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_plan_awake │ │ │ │ │ - 40: 000003fd 56 FUNC GLOBAL DEFAULT 1 fftw_mpi_rdft2_rank_geq2_register │ │ │ │ │ + 40: 00000475 76 FUNC GLOBAL DEFAULT 1 fftw_mpi_rdft2_rank_geq2_register │ │ │ │ │ 41: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mksolver │ │ │ │ │ 42: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_solver_register │ │ │ │ │ 43: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_rdft2_solve │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,49 +1,49 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x98c contains 35 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0xa18 contains 35 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000094 00000603 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ -00000098 00000703 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -0000009c 00000503 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -000000a6 0000170a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000000f2 0000180a R_ARM_THM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ -00000100 0000180a R_ARM_THM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ -00000148 0000190a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000150 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -0000015a 00001b0a R_ARM_THM_CALL 00000000 fftw_mktensor │ │ │ │ │ -0000024a 00001c0a R_ARM_THM_CALL 00000000 fftw_tensor_sz │ │ │ │ │ -00000276 00001d0a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -000002a4 00001e0a R_ARM_THM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ -000002bc 00001f0a R_ARM_THM_CALL 00000000 fftw_mkproblem_rdft2_d │ │ │ │ │ -000002c4 0000200a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -000002d2 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -000002dc 0000220a R_ARM_THM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ -00000318 0000230a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_dft_d │ │ │ │ │ -00000320 0000200a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -0000032e 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -00000344 0000240a R_ARM_THM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ -0000036c 0000250a R_ARM_THM_CALL 00000000 fftw_ops_add │ │ │ │ │ -00000390 0000170a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000396 0000170a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000003ca 0000260a R_ARM_THM_CALL 00000000 fftw_mpi_rdft2_serial_applicable │ │ │ │ │ -000003d8 00000103 R_ARM_REL32 00000001 apply_r2c │ │ │ │ │ -000003dc 00001103 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -000003e0 00000303 R_ARM_REL32 00000041 apply_c2r │ │ │ │ │ -000003ec 0000270a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -00000408 0000290a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ -00000414 00002a0a R_ARM_THM_CALL 00000000 fftw_solver_register │ │ │ │ │ -0000041c 0000290a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ -00000430 00001403 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -000000b0 0000171e R_ARM_THM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000003f8 0000271e R_ARM_THM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ -0000042c 00002a1e R_ARM_THM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ +000000b8 00000603 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ +000000bc 00000703 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +000000c0 00000503 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +000000cc 0000170a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000142 0000180a R_ARM_THM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ +00000152 0000180a R_ARM_THM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ +0000019a 0000190a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000001a2 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000001ae 00001b0a R_ARM_THM_CALL 00000000 fftw_mktensor │ │ │ │ │ +000002a8 00001c0a R_ARM_THM_CALL 00000000 fftw_tensor_sz │ │ │ │ │ +000002d8 00001d0a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +00000308 00001e0a R_ARM_THM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ +00000320 00001f0a R_ARM_THM_CALL 00000000 fftw_mkproblem_rdft2_d │ │ │ │ │ +00000328 0000200a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +00000338 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +00000344 0000220a R_ARM_THM_CALL 00000000 fftw_mpi_mkdtensor │ │ │ │ │ +0000037c 0000230a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_dft_d │ │ │ │ │ +00000384 0000200a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +00000394 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +000003ac 0000240a R_ARM_THM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ +000003d4 0000250a R_ARM_THM_CALL 00000000 fftw_ops_add │ │ │ │ │ +000003f2 0000170a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +000003f8 0000170a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000436 0000260a R_ARM_THM_CALL 00000000 fftw_mpi_rdft2_serial_applicable │ │ │ │ │ +00000444 00000103 R_ARM_REL32 00000001 apply_r2c │ │ │ │ │ +00000448 00001103 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +0000044c 00000303 R_ARM_REL32 00000055 apply_c2r │ │ │ │ │ +0000045e 0000270a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +00000488 0000290a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ +00000496 00002a0a R_ARM_THM_CALL 00000000 fftw_solver_register │ │ │ │ │ +000004a0 0000290a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ +000004bc 00001403 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +000000d8 0000171e R_ARM_THM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000470 0000271e R_ARM_THM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ +000004b8 00002a1e R_ARM_THM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0xaa4 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0xb30 contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000000 00002b02 R_ARM_ABS32 00000000 fftw_mpi_rdft2_solve │ │ │ │ │ -00000004 00000f02 R_ARM_ABS32 000003e5 awake │ │ │ │ │ -00000008 00000802 R_ARM_ABS32 00000069 print │ │ │ │ │ -0000000c 00000b02 R_ARM_ABS32 000000a1 destroy │ │ │ │ │ +00000004 00000f02 R_ARM_ABS32 00000451 awake │ │ │ │ │ +00000008 00000802 R_ARM_ABS32 0000008d print │ │ │ │ │ +0000000c 00000b02 R_ARM_ABS32 000000c5 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0xac4 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0xb50 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000c02 R_ARM_ABS32 000000b5 mkplan │ │ │ │ │ +00000004 00000c02 R_ARM_ABS32 000000dd mkplan │ │ │ │ ├── strings --all --bytes=8 {} │ │ │ │ │ @@ -1,8 +1,7 @@ │ │ │ │ │ -'JzD'IP yD │ │ │ │ │ (mpi-rdft2-rank-geq2%s%(%p%)%(%p%)) │ │ │ │ │ apply_r2c │ │ │ │ │ apply_c2r │ │ │ │ │ fftw_plan_destroy_internal │ │ │ │ │ fftw_mpi_is_local_after │ │ │ │ │ MPI_Comm_rank │ │ │ │ │ MPI_Comm_size │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,460 +1,476 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply_r2c(): │ │ │ │ │ - push {r4, r5, r6, r7, lr} │ │ │ │ │ + str.w r4, [sp, #-20]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - mov r6, r2 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + mov r6, r2 │ │ │ │ │ + ldrd r2, r3, [r4, #72] @ 0x48 │ │ │ │ │ + strd r7, lr, [sp, #12] │ │ │ │ │ sub sp, #12 │ │ │ │ │ - ldr r3, [r4, #76] @ 0x4c │ │ │ │ │ - ldr r2, [r4, #72] @ 0x48 │ │ │ │ │ ldr r7, [r0, #56] @ 0x38 │ │ │ │ │ add.w r2, r1, r2, lsl #3 │ │ │ │ │ - cbz r3, 32 │ │ │ │ │ - mov r5, r6 │ │ │ │ │ + cbz r3, 46 │ │ │ │ │ add.w r3, r6, #8 │ │ │ │ │ + mov r5, r6 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ mov r3, r6 │ │ │ │ │ blx r7 │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ add sp, #12 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + ldr.w lr, [sp], #4 │ │ │ │ │ bx r3 │ │ │ │ │ add.w r3, r1, #8 │ │ │ │ │ + mov r5, r1 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ mov r3, r1 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ blx r7 │ │ │ │ │ - b.n 22 │ │ │ │ │ + b.n 2c │ │ │ │ │ │ │ │ │ │ -00000040 : │ │ │ │ │ +00000054 : │ │ │ │ │ apply_c2r(): │ │ │ │ │ - push {r4, r5, lr} │ │ │ │ │ + str.w r4, [sp, #-12]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #68] @ 0x44 │ │ │ │ │ + strd r5, lr, [sp, #4] │ │ │ │ │ sub sp, #12 │ │ │ │ │ mov r5, r2 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - ldr r2, [r4, #72] @ 0x48 │ │ │ │ │ add.w r3, r5, #8 │ │ │ │ │ - str r3, [sp, #0] │ │ │ │ │ mov r1, r5 │ │ │ │ │ + ldr r2, [r4, #72] @ 0x48 │ │ │ │ │ + str r3, [sp, #0] │ │ │ │ │ mov r3, r5 │ │ │ │ │ ldr r4, [r0, #56] @ 0x38 │ │ │ │ │ add.w r2, r5, r2, lsl #3 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, #12 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -00000068 : │ │ │ │ │ +0000008c : │ │ │ │ │ print(): │ │ │ │ │ mov r3, r0 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r0, r1 │ │ │ │ │ - ldr r4, [r1, #0] │ │ │ │ │ - sub sp, #8 │ │ │ │ │ ldr r2, [r3, #76] @ 0x4c │ │ │ │ │ + sub sp, #8 │ │ │ │ │ + ldr r4, [r1, #0] │ │ │ │ │ cmp r2, #2 │ │ │ │ │ - beq.n 8c │ │ │ │ │ - ldr r2, [pc, #24] @ (94 ) │ │ │ │ │ + beq.n b2 │ │ │ │ │ + ldr r2, [pc, #24] @ (b8 ) │ │ │ │ │ add r2, pc │ │ │ │ │ ldr r1, [r3, #68] @ 0x44 │ │ │ │ │ str r1, [sp, #0] │ │ │ │ │ - ldr r1, [pc, #20] @ (98 ) │ │ │ │ │ + ldr r1, [pc, #20] @ (bc ) │ │ │ │ │ ldr r3, [r3, #64] @ 0x40 │ │ │ │ │ add r1, pc │ │ │ │ │ blx r4 │ │ │ │ │ add sp, #8 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ - ldr r2, [pc, #12] @ (9c ) │ │ │ │ │ + ldr r2, [pc, #12] @ (c0 ) │ │ │ │ │ add r2, pc │ │ │ │ │ - b.n 7c │ │ │ │ │ - nop │ │ │ │ │ - .word 0x00000016 │ │ │ │ │ + b.n a2 │ │ │ │ │ + .word 0x00000014 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x00000010 │ │ │ │ │ + .word 0x0000000e │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ - .word 0x0000000a │ │ │ │ │ + .word 0x00000008 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ -000000a0 : │ │ │ │ │ +000000c4 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - ldmia.w sp!, {r4, lr} │ │ │ │ │ + ldrd r4, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_plan_destroy_internal │ │ │ │ │ │ │ │ │ │ -000000b4 : │ │ │ │ │ +000000dc : │ │ │ │ │ mkplan(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ ldr r1, [r1, #4] │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ sub sp, #52 @ 0x34 │ │ │ │ │ ldr r3, [r1, #0] │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - ble.n c8 │ │ │ │ │ + ble.n 100 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ - cbz r3, d0 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + cbz r3, 11c │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add sp, #52 @ 0x34 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldr r3, [r0, #8] │ │ │ │ │ mov r7, r0 │ │ │ │ │ mov r6, r2 │ │ │ │ │ - cbz r3, ee │ │ │ │ │ + cbz r3, 13a │ │ │ │ │ ldr.w r3, [r2, #164] @ 0xa4 │ │ │ │ │ - lsls r0, r3, #19 │ │ │ │ │ - bmi.n c8 │ │ │ │ │ + lsls r3, r3, #19 │ │ │ │ │ + bmi.n 100 │ │ │ │ │ ldrd r2, r3, [r4, #12] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - beq.n c8 │ │ │ │ │ + beq.n 100 │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.n c8 │ │ │ │ │ - movs r2, #0 │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + bne.n 100 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n c8 │ │ │ │ │ - movs r2, #1 │ │ │ │ │ + beq.n 100 │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ ldr r1, [r4, #4] │ │ │ │ │ mov r0, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n c8 │ │ │ │ │ + beq.n 100 │ │ │ │ │ ldr.w r3, [r6, #164] @ 0xa4 │ │ │ │ │ - lsls r2, r3, #28 │ │ │ │ │ - bmi.w 3c8 │ │ │ │ │ - ldr r2, [r4, #20] │ │ │ │ │ - ldr r3, [r4, #8] │ │ │ │ │ - ldrd sl, r8, [r4, #12] │ │ │ │ │ - lsls r3, r3, #3 │ │ │ │ │ + lsls r5, r3, #28 │ │ │ │ │ + bmi.w 434 │ │ │ │ │ + ldrd r3, sl, [r4, #8] │ │ │ │ │ + ldrd r8, r2, [r4, #16] │ │ │ │ │ + mov.w r3, r3, lsl #3 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - bne.w 378 │ │ │ │ │ + bne.w 3dc │ │ │ │ │ add.w fp, sl, r3 │ │ │ │ │ ldr r3, [r7, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.w 39c │ │ │ │ │ + bne.w 3fe │ │ │ │ │ ldr.w r3, [r6, #164] @ 0xa4 │ │ │ │ │ - lsls r3, r3, #19 │ │ │ │ │ - bmi.w 39c │ │ │ │ │ + lsls r0, r3, #19 │ │ │ │ │ + bmi.w 3fe │ │ │ │ │ add.w r3, sl, #8 │ │ │ │ │ - str.w sl, [sp, #20] │ │ │ │ │ - strd sl, r3, [sp, #24] │ │ │ │ │ - add r1, sp, #40 @ 0x28 │ │ │ │ │ + strd sl, sl, [sp, #16] │ │ │ │ │ + str r3, [sp, #24] │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + add r1, sp, #40 @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ - add r1, sp, #44 @ 0x2c │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + add r1, sp, #44 @ 0x2c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r0, [r3, #0] │ │ │ │ │ - subs r0, #1 │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor │ │ │ │ │ - ldr.w r9, [r4, #4] │ │ │ │ │ + ldrd r9, r2, [r4, #4] │ │ │ │ │ mov r5, r0 │ │ │ │ │ - movs r0, #12 │ │ │ │ │ - ldr r2, [r4, #8] │ │ │ │ │ ldr.w lr, [r9] │ │ │ │ │ - sub.w r3, lr, #2 │ │ │ │ │ - lsls r2, r2, #1 │ │ │ │ │ - mla r3, r0, r3, r5 │ │ │ │ │ - str r2, [r3, #12] │ │ │ │ │ - mul.w r3, r0, lr │ │ │ │ │ - adds r1, r5, r3 │ │ │ │ │ - str.w r2, [r1, #-16] │ │ │ │ │ - add.w r2, lr, #4294967295 @ 0xffffffff │ │ │ │ │ - mla r2, r0, r2, r9 │ │ │ │ │ + mov.w r2, r2, lsl #1 │ │ │ │ │ + add.w r3, lr, lr, lsl #1 │ │ │ │ │ + add.w r3, r0, r3, lsl #2 │ │ │ │ │ subs.w r0, lr, #3 │ │ │ │ │ - ldr r2, [r2, #4] │ │ │ │ │ + str.w r2, [r3, #-12] │ │ │ │ │ + add.w r3, lr, lr, lsl #1 │ │ │ │ │ + mov.w r3, r3, lsl #2 │ │ │ │ │ + add.w r1, r5, r3 │ │ │ │ │ + str.w r2, [r1, #-16] │ │ │ │ │ + add.w r2, lr, lr, lsl #1 │ │ │ │ │ + add.w r2, r9, r2, lsl #2 │ │ │ │ │ + ldr.w r2, [r2, #-8] │ │ │ │ │ add.w r2, r2, r2, lsr #31 │ │ │ │ │ mov.w r2, r2, asr #1 │ │ │ │ │ add.w r2, r2, #1 │ │ │ │ │ str.w r2, [r1, #-20] │ │ │ │ │ - bmi.n 248 │ │ │ │ │ + bmi.n 2a6 │ │ │ │ │ + cmp.w lr, #4 │ │ │ │ │ sub.w r2, r3, #16 │ │ │ │ │ sub.w r1, r3, #20 │ │ │ │ │ - cmp.w lr, #4 │ │ │ │ │ - ble.w 3c4 │ │ │ │ │ + ble.w 430 │ │ │ │ │ ldr.w ip, [r5, r1] │ │ │ │ │ sub.w lr, lr, #5 │ │ │ │ │ add.w r1, r9, r3 │ │ │ │ │ + sub.w r3, r3, #28 │ │ │ │ │ + and.w lr, lr, #1 │ │ │ │ │ + str.w r9, [sp, #28] │ │ │ │ │ ldr r2, [r5, r2] │ │ │ │ │ - subs r3, #28 │ │ │ │ │ - str.w r9, [sp, #16] │ │ │ │ │ - add r3, r5 │ │ │ │ │ mov r9, r4 │ │ │ │ │ - and.w lr, lr, #1 │ │ │ │ │ + add r3, r5 │ │ │ │ │ mov r4, ip │ │ │ │ │ mov ip, r5 │ │ │ │ │ ldr.w r5, [r1, #-20] │ │ │ │ │ mul.w r2, r4, r2 │ │ │ │ │ - strd r2, r2, [r3] │ │ │ │ │ - subs r0, #2 │ │ │ │ │ - str.w r5, [r3, #-4] │ │ │ │ │ - subs r1, #24 │ │ │ │ │ + sub.w r0, r0, #2 │ │ │ │ │ cmp r0, lr │ │ │ │ │ - ldr.w r4, [r1, #-8] │ │ │ │ │ + sub.w r1, r1, #24 │ │ │ │ │ + strd r5, r2, [r3, #-4] │ │ │ │ │ + str r2, [r3, #4] │ │ │ │ │ mul.w r2, r5, r2 │ │ │ │ │ - str.w r4, [r3, #-16] │ │ │ │ │ - strd r2, r2, [r3, #-12] │ │ │ │ │ + ldr.w r4, [r1, #-8] │ │ │ │ │ + strd r4, r2, [r3, #-16] │ │ │ │ │ sub.w r3, r3, #24 │ │ │ │ │ - bne.n 1d2 │ │ │ │ │ + str r2, [r3, #16] │ │ │ │ │ + bne.n 230 │ │ │ │ │ mov r4, r9 │ │ │ │ │ - ldr.w r9, [sp, #16] │ │ │ │ │ + ldr.w r9, [sp, #28] │ │ │ │ │ mov r5, ip │ │ │ │ │ - movs r0, #12 │ │ │ │ │ - mul.w r3, r0, lr │ │ │ │ │ + add.w r3, lr, lr, lsl #1 │ │ │ │ │ + add.w ip, lr, #4294967295 @ 0xffffffff │ │ │ │ │ + mov.w r3, r3, lsl #2 │ │ │ │ │ add r9, r3 │ │ │ │ │ add r3, r5 │ │ │ │ │ ldrd r2, r1, [r3, #16] │ │ │ │ │ - ldr.w ip, [r9, #16] │ │ │ │ │ - str.w ip, [r3, #4] │ │ │ │ │ + ldr.w r0, [r9, #16] │ │ │ │ │ mul.w r2, r1, r2 │ │ │ │ │ - add.w r1, lr, #4294967295 @ 0xffffffff │ │ │ │ │ - strd r2, r2, [r3, #8] │ │ │ │ │ - str r1, [sp, #16] │ │ │ │ │ + strd r0, r2, [r3, #4] │ │ │ │ │ + str r2, [r3, #12] │ │ │ │ │ cmp.w lr, #0 │ │ │ │ │ - beq.n 248 │ │ │ │ │ + beq.n 2a6 │ │ │ │ │ ldr.w r1, [r9, #4] │ │ │ │ │ - mul.w r2, ip, r2 │ │ │ │ │ + mul.w r2, r0, r2 │ │ │ │ │ str.w r1, [r3, #-8] │ │ │ │ │ - ldr r1, [sp, #16] │ │ │ │ │ - mla r1, r0, r1, r5 │ │ │ │ │ + add.w r1, ip, ip, lsl #1 │ │ │ │ │ + add.w r1, r5, r1, lsl #2 │ │ │ │ │ str r2, [r1, #12] │ │ │ │ │ str.w r2, [r3, #-4] │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_tensor_sz │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ str r0, [sp, #36] @ 0x24 │ │ │ │ │ cmp r3, #4 │ │ │ │ │ - beq.w 3ac │ │ │ │ │ + beq.w 40c │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.w 3be │ │ │ │ │ - movs r3, #1 │ │ │ │ │ - movs r2, #2 │ │ │ │ │ - str r2, [sp, #32] │ │ │ │ │ + bne.w 426 │ │ │ │ │ + mov.w r3, #2 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ + strd r3, r1, [sp, #28] │ │ │ │ │ ldrd r2, r1, [r5, #4] │ │ │ │ │ - str r3, [sp, #16] │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mul.w r9, r1, r2 │ │ │ │ │ ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ ldrd r0, r1, [r0, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ - ldr r2, [r4, #4] │ │ │ │ │ - mov.w lr, #12 │ │ │ │ │ - ldr r3, [sp, #32] │ │ │ │ │ - ldr r1, [r2, #0] │ │ │ │ │ - sub.w ip, r1, #2 │ │ │ │ │ - subs r1, #1 │ │ │ │ │ - mla r2, lr, r1, r2 │ │ │ │ │ - mov r1, r9 │ │ │ │ │ - mla ip, lr, ip, r5 │ │ │ │ │ - ldr r2, [r2, #4] │ │ │ │ │ - str.w r2, [ip, #4] │ │ │ │ │ + ldr r3, [r4, #4] │ │ │ │ │ + ldr r2, [r3, #0] │ │ │ │ │ + sub.w r1, r2, #2 │ │ │ │ │ + add.w r2, r2, r2, lsl #1 │ │ │ │ │ + add.w r1, r1, r1, lsl #1 │ │ │ │ │ + add.w ip, r3, r2, lsl #2 │ │ │ │ │ + ldr r3, [sp, #28] │ │ │ │ │ + add.w r1, r5, r1, lsl #2 │ │ │ │ │ + ldr.w r2, [ip, #-8] │ │ │ │ │ + str r2, [r1, #4] │ │ │ │ │ mov r2, r9 │ │ │ │ │ + mov r1, r9 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - ldr r3, [sp, #16] │ │ │ │ │ + ldr r3, [sp, #32] │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor_2d │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ - str r3, [sp, #8] │ │ │ │ │ mov r1, r0 │ │ │ │ │ - ldr r3, [sp, #28] │ │ │ │ │ mov r0, r5 │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ + ldr r2, [sp, #16] │ │ │ │ │ + str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ - ldr r2, [sp, #20] │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + ldr r3, [sp, #20] │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ mov r3, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkproblem_rdft2_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_d │ │ │ │ │ mov r9, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.n 38a │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + bne.n 3ec │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkdtensor │ │ │ │ │ - ldr r3, [r4, #4] │ │ │ │ │ - add.w ip, r0, #4 │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - adds r3, #4 │ │ │ │ │ - ldmia.w r3, {r0, r1, r2} │ │ │ │ │ - stmia.w ip, {r0, r1, r2} │ │ │ │ │ - ldr r2, [r4, #20] │ │ │ │ │ + ldr r5, [r4, #4] │ │ │ │ │ + ldr r3, [r4, #28] │ │ │ │ │ + ldrd r1, r2, [r5, #4] │ │ │ │ │ + strd r1, r2, [r0, #4] │ │ │ │ │ + ldr r2, [r5, #12] │ │ │ │ │ + mov.w r5, #16 │ │ │ │ │ ldr r1, [r4, #8] │ │ │ │ │ - movs r0, #16 │ │ │ │ │ + str r2, [r0, #12] │ │ │ │ │ + ldr r2, [r4, #20] │ │ │ │ │ + str r5, [sp, #8] │ │ │ │ │ + ldr r5, [sp, #36] @ 0x24 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - ldr r3, [r4, #28] │ │ │ │ │ ite ne │ │ │ │ │ movne r2, #1 │ │ │ │ │ moveq.w r2, #4294967295 @ 0xffffffff │ │ │ │ │ - strd r2, r0, [sp, #4] │ │ │ │ │ - mov r2, sl │ │ │ │ │ - ldr r0, [sp, #36] @ 0x24 │ │ │ │ │ - str r3, [sp, #0] │ │ │ │ │ + mul.w r5, r1, r5 │ │ │ │ │ + strd r3, r2, [sp] │ │ │ │ │ mov r3, r8 │ │ │ │ │ - mul.w r0, r1, r0 │ │ │ │ │ - mov r1, r0 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ + mov r2, sl │ │ │ │ │ + mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_d │ │ │ │ │ mov r8, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_any_true │ │ │ │ │ - cbnz r0, 38e │ │ │ │ │ + cbnz r0, 3f0 │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.n 3b8 │ │ │ │ │ - ldr r2, [pc, #156] @ (3d8 ) │ │ │ │ │ + bne.n 420 │ │ │ │ │ + ldr r2, [pc, #160] @ (444 ) │ │ │ │ │ add r2, pc │ │ │ │ │ - ldr r1, [pc, #156] @ (3dc ) │ │ │ │ │ - movs r0, #80 @ 0x50 │ │ │ │ │ + ldr r1, [pc, #160] @ (448 ) │ │ │ │ │ + mov.w r0, #80 @ 0x50 │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_rdft │ │ │ │ │ ldr r3, [r7, #8] │ │ │ │ │ mov r5, r0 │ │ │ │ │ strd r9, r8, [r0, #64] @ 0x40 │ │ │ │ │ - cbnz r3, 3b4 │ │ │ │ │ + cbnz r3, 41a │ │ │ │ │ ldr.w r3, [r6, #164] @ 0xa4 │ │ │ │ │ and.w r3, r3, #4096 @ 0x1000 │ │ │ │ │ str r3, [r5, #76] @ 0x4c │ │ │ │ │ add.w r0, r9, #8 │ │ │ │ │ - ldr r3, [r4, #8] │ │ │ │ │ add.w r2, r5, #8 │ │ │ │ │ + ldr r3, [r4, #8] │ │ │ │ │ add.w r1, r8, #8 │ │ │ │ │ str r3, [r5, #72] @ 0x48 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ops_add │ │ │ │ │ mov r0, r5 │ │ │ │ │ - add sp, #52 @ 0x34 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b.n 104 │ │ │ │ │ add.w fp, r8, r3 │ │ │ │ │ - str.w r8, [sp, #20] │ │ │ │ │ add.w r3, r8, #8 │ │ │ │ │ - strd r8, r3, [sp, #24] │ │ │ │ │ - b.n 144 │ │ │ │ │ + strd r8, r8, [sp, #16] │ │ │ │ │ + str r3, [sp, #24] │ │ │ │ │ + b.n 196 │ │ │ │ │ mov.w r8, #0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ - b.n c8 │ │ │ │ │ + b.n 100 │ │ │ │ │ add.w r3, r8, #8 │ │ │ │ │ - str.w sl, [sp, #20] │ │ │ │ │ - strd r8, r3, [sp, #24] │ │ │ │ │ + strd sl, r8, [sp, #16] │ │ │ │ │ mov sl, r8 │ │ │ │ │ - b.n 144 │ │ │ │ │ - movs r2, #1 │ │ │ │ │ - movs r3, #2 │ │ │ │ │ - str r2, [sp, #32] │ │ │ │ │ - b.n 264 │ │ │ │ │ - movs r3, #2 │ │ │ │ │ - b.n 35a │ │ │ │ │ - ldr r2, [pc, #36] @ (3e0 ) │ │ │ │ │ + str r3, [sp, #24] │ │ │ │ │ + b.n 196 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + mov.w r2, #2 │ │ │ │ │ + strd r3, r2, [sp, #28] │ │ │ │ │ + b.n 2c8 │ │ │ │ │ + mov.w r3, #2 │ │ │ │ │ + b.n 3c2 │ │ │ │ │ + ldr r2, [pc, #40] @ (44c ) │ │ │ │ │ add r2, pc │ │ │ │ │ - b.n 33e │ │ │ │ │ - movs r3, #1 │ │ │ │ │ - str r3, [sp, #32] │ │ │ │ │ - b.n 264 │ │ │ │ │ + b.n 3a4 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + strd r3, r3, [sp, #28] │ │ │ │ │ + b.n 2c8 │ │ │ │ │ mov lr, r0 │ │ │ │ │ - b.n 206 │ │ │ │ │ + b.n 264 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_rdft2_serial_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.w 112 │ │ │ │ │ - b.n c8 │ │ │ │ │ + beq.w 164 │ │ │ │ │ + b.n 100 │ │ │ │ │ nop │ │ │ │ │ - .word 0x00000098 │ │ │ │ │ + .word 0x0000009e │ │ │ │ │ R_ARM_REL32 apply_r2c │ │ │ │ │ - .word 0x00000096 │ │ │ │ │ + .word 0x0000009a │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ - .word 0x00000022 │ │ │ │ │ + .word 0x00000026 │ │ │ │ │ R_ARM_REL32 apply_c2r │ │ │ │ │ │ │ │ │ │ -000003e4 : │ │ │ │ │ +00000450 : │ │ │ │ │ awake(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ + mov r5, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_awake │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, lr} │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + ldrd r5, lr, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_plan_awake │ │ │ │ │ │ │ │ │ │ -000003fc : │ │ │ │ │ +00000474 : │ │ │ │ │ fftw_mpi_rdft2_rank_geq2_register(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r5, [pc, #44] @ (430 ) │ │ │ │ │ - movs r0, #12 │ │ │ │ │ + mov.w r0, #12 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ + ldr r5, [pc, #56] @ (4bc ) │ │ │ │ │ add r5, pc │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mksolver │ │ │ │ │ - movs r3, #0 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ + str r3, [r1, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_solver_register │ │ │ │ │ mov r1, r5 │ │ │ │ │ - movs r0, #12 │ │ │ │ │ + mov.w r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mksolver │ │ │ │ │ - movs r3, #1 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + ldrd r5, lr, [sp, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, lr} │ │ │ │ │ + str r3, [r1, #8] │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + add sp, #16 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_solver_register │ │ │ │ │ - .word 0x00000028 │ │ │ │ │ + .word 0x00000034 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ ├── rdft2-rank-geq2-transposed.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 3560 (bytes into file) │ │ │ │ │ + Start of section headers: 3760 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 15 │ │ │ │ │ Section header string table index: 14 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,24 +1,24 @@ │ │ │ │ │ -There are 15 section headers, starting at offset 0xde8: │ │ │ │ │ +There are 15 section headers, starting at offset 0xeb0: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 000604 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000bc0 000178 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000638 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000638 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 000638 00003d 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 000675 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 000d38 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 000685 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 000d58 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 000691 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000691 000033 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 0006c4 0002e0 10 13 23 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 0009a4 00021a 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 000d60 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0006cc 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000c88 000178 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000700 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000700 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 000700 00003d 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 00073d 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 000e00 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 00074d 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 000e20 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 000759 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000759 000033 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 00078c 0002e0 10 13 23 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 000a6c 00021a 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 000e28 000087 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,27 +1,27 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 46 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ - 1: 00000001 82 FUNC LOCAL DEFAULT 1 apply_r2c │ │ │ │ │ + 1: 00000001 100 FUNC LOCAL DEFAULT 1 apply_r2c │ │ │ │ │ 2: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 3: 00000055 82 FUNC LOCAL DEFAULT 1 apply_c2r │ │ │ │ │ + 3: 00000065 102 FUNC LOCAL DEFAULT 1 apply_c2r │ │ │ │ │ 4: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 5: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ 6: 00000004 0 NOTYPE LOCAL DEFAULT 5 .LC1 │ │ │ │ │ 7: 00000008 0 NOTYPE LOCAL DEFAULT 5 .LC2 │ │ │ │ │ - 8: 000000a9 60 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 9: 000000d8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 10: 000000e4 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 11: 000000e5 26 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 12: 00000101 1196 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 13: 000005a0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 14: 000005ac 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 15: 000005ad 32 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 16: 00000600 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 8: 000000cd 60 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 9: 000000fc 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 10: 00000108 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 11: 00000109 30 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 12: 00000129 1324 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 13: 00000648 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 14: 00000654 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 15: 00000655 44 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 16: 000006c8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 17: 00000000 0 SECTION LOCAL DEFAULT 6 .data.rel.ro │ │ │ │ │ 18: 00000000 0 NOTYPE LOCAL DEFAULT 6 $d │ │ │ │ │ 19: 00000000 16 OBJECT LOCAL DEFAULT 6 padt.0 │ │ │ │ │ 20: 00000000 0 SECTION LOCAL DEFAULT 8 .data.rel.ro.local │ │ │ │ │ 21: 00000000 0 NOTYPE LOCAL DEFAULT 8 $d │ │ │ │ │ 22: 00000000 12 OBJECT LOCAL DEFAULT 8 sadt.1 │ │ │ │ │ 23: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_plan_destroy_internal │ │ │ │ │ @@ -39,11 +39,11 @@ │ │ │ │ │ 35: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mktensor_1d │ │ │ │ │ 36: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mkproblem_dft_d │ │ │ │ │ 37: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mkplan_rdft │ │ │ │ │ 38: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ops_add │ │ │ │ │ 39: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ops_add2 │ │ │ │ │ 40: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_rdft2_serial_applicable │ │ │ │ │ 41: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_plan_awake │ │ │ │ │ - 42: 000005cd 56 FUNC GLOBAL DEFAULT 1 fftw_mpi_rdft2_rank_geq2_transposed_register │ │ │ │ │ + 42: 00000681 76 FUNC GLOBAL DEFAULT 1 fftw_mpi_rdft2_rank_geq2_transposed_register │ │ │ │ │ 43: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mksolver │ │ │ │ │ 44: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_solver_register │ │ │ │ │ 45: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_rdft2_solve │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,61 +1,61 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0xbc0 contains 47 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0xc88 contains 47 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -000000d8 00000603 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ -000000dc 00000703 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -000000e0 00000503 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -000000ea 0000170a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000000f0 0000170a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000148 0000180a R_ARM_THM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ -00000162 0000180a R_ARM_THM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ -00000170 0000180a R_ARM_THM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ -0000017e 0000190a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -000001e4 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000001ec 00001b0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000001f6 00001c0a R_ARM_THM_CALL 00000000 fftw_mktensor │ │ │ │ │ -0000032c 00001d0a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -00000354 00001e0a R_ARM_THM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ -0000036a 00001f0a R_ARM_THM_CALL 00000000 fftw_mkproblem_rdft2_d │ │ │ │ │ -00000372 0000200a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -00000380 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -000003e0 0000220a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ -000003e8 0000200a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -000003f6 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -0000040c 00001d0a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ -0000041e 0000230a R_ARM_THM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ -00000432 00001e0a R_ARM_THM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ -00000446 0000240a R_ARM_THM_CALL 00000000 fftw_mkproblem_dft_d │ │ │ │ │ -0000044e 0000200a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ -0000045c 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ -00000472 0000250a R_ARM_THM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ -000004a4 0000260a R_ARM_THM_CALL 00000000 fftw_ops_add │ │ │ │ │ -000004ae 0000270a R_ARM_THM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ -000004c0 0000170a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000004c6 0000170a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000004cc 0000170a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ -00000574 0000180a R_ARM_THM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ -00000584 0000190a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ -00000592 0000280a R_ARM_THM_CALL 00000000 fftw_mpi_rdft2_serial_applicable │ │ │ │ │ -000005a0 00000103 R_ARM_REL32 00000001 apply_r2c │ │ │ │ │ -000005a4 00001103 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -000005a8 00000303 R_ARM_REL32 00000055 apply_c2r │ │ │ │ │ -000005b4 0000290a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -000005bc 0000290a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ -000005d8 00002b0a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ -000005e4 00002c0a R_ARM_THM_CALL 00000000 fftw_solver_register │ │ │ │ │ -000005ec 00002b0a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ -00000600 00001403 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -000000fa 0000171e R_ARM_THM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ -000005c8 0000291e R_ARM_THM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ -000005fc 00002c1e R_ARM_THM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ +000000fc 00000603 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ +00000100 00000703 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +00000104 00000503 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +00000110 0000170a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000116 0000170a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000196 0000180a R_ARM_THM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ +000001b2 0000180a R_ARM_THM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ +000001c4 0000180a R_ARM_THM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ +000001d2 0000190a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +0000023e 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +00000246 00001b0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000252 00001c0a R_ARM_THM_CALL 00000000 fftw_mktensor │ │ │ │ │ +000003ac 00001d0a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +000003dc 00001e0a R_ARM_THM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ +000003f0 00001f0a R_ARM_THM_CALL 00000000 fftw_mkproblem_rdft2_d │ │ │ │ │ +000003f8 0000200a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +00000408 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +0000046a 0000220a R_ARM_THM_CALL 00000000 fftw_mpi_mkproblem_transpose │ │ │ │ │ +00000472 0000200a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +00000482 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +00000498 00001d0a R_ARM_THM_CALL 00000000 fftw_mpi_block │ │ │ │ │ +000004ac 0000230a R_ARM_THM_CALL 00000000 fftw_mktensor_1d │ │ │ │ │ +000004c2 00001e0a R_ARM_THM_CALL 00000000 fftw_mktensor_2d │ │ │ │ │ +000004d6 0000240a R_ARM_THM_CALL 00000000 fftw_mkproblem_dft_d │ │ │ │ │ +000004de 0000200a R_ARM_THM_CALL 00000000 fftw_mkplan_d │ │ │ │ │ +000004ee 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_any_true │ │ │ │ │ +00000506 0000250a R_ARM_THM_CALL 00000000 fftw_mkplan_rdft │ │ │ │ │ +00000538 0000260a R_ARM_THM_CALL 00000000 fftw_ops_add │ │ │ │ │ +00000542 0000270a R_ARM_THM_CALL 00000000 fftw_ops_add2 │ │ │ │ │ +00000550 0000170a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +00000556 0000170a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +0000055c 0000170a R_ARM_THM_CALL 00000000 fftw_plan_destroy_internal │ │ │ │ │ +0000061c 0000180a R_ARM_THM_CALL 00000000 fftw_mpi_is_local_after │ │ │ │ │ +0000062c 0000190a R_ARM_THM_CALL 00000000 fftw_mpi_num_blocks │ │ │ │ │ +0000063a 0000280a R_ARM_THM_CALL 00000000 fftw_mpi_rdft2_serial_applicable │ │ │ │ │ +00000648 00000103 R_ARM_REL32 00000001 apply_r2c │ │ │ │ │ +0000064c 00001103 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +00000650 00000303 R_ARM_REL32 00000065 apply_c2r │ │ │ │ │ +00000662 0000290a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +0000066a 0000290a R_ARM_THM_CALL 00000000 fftw_plan_awake │ │ │ │ │ +00000694 00002b0a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ +000006a2 00002c0a R_ARM_THM_CALL 00000000 fftw_solver_register │ │ │ │ │ +000006ac 00002b0a R_ARM_THM_CALL 00000000 fftw_mksolver │ │ │ │ │ +000006c8 00001403 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +00000122 0000171e R_ARM_THM_JUMP24 00000000 fftw_plan_destroy_internal │ │ │ │ │ +0000067c 0000291e R_ARM_THM_JUMP24 00000000 fftw_plan_awake │ │ │ │ │ +000006c4 00002c1e R_ARM_THM_JUMP24 00000000 fftw_solver_register │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0xd38 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0xe00 contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000000 00002d02 R_ARM_ABS32 00000000 fftw_mpi_rdft2_solve │ │ │ │ │ -00000004 00000f02 R_ARM_ABS32 000005ad awake │ │ │ │ │ -00000008 00000802 R_ARM_ABS32 000000a9 print │ │ │ │ │ -0000000c 00000b02 R_ARM_ABS32 000000e5 destroy │ │ │ │ │ +00000004 00000f02 R_ARM_ABS32 00000655 awake │ │ │ │ │ +00000008 00000802 R_ARM_ABS32 000000cd print │ │ │ │ │ +0000000c 00000b02 R_ARM_ABS32 00000109 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0xd58 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0xe20 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000c02 R_ARM_ABS32 00000101 mkplan │ │ │ │ │ +00000004 00000c02 R_ARM_ABS32 00000129 mkplan │ │ │ │ ├── strings --all --bytes=8 {} │ │ │ │ │ @@ -1,8 +1,7 @@ │ │ │ │ │ -MJzDMIX yD │ │ │ │ │ (mpi-rdft2-rank-geq2-transposed%s%(%p%)%(%p%)%(%p%)) │ │ │ │ │ apply_r2c │ │ │ │ │ apply_c2r │ │ │ │ │ fftw_plan_destroy_internal │ │ │ │ │ fftw_mpi_is_local_after │ │ │ │ │ fftw_mpi_num_blocks │ │ │ │ │ MPI_Comm_rank │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,661 +1,683 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply_r2c(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r2 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ add.w r7, r2, #8 │ │ │ │ │ - ldr r3, [r4, #80] @ 0x50 │ │ │ │ │ + ldrd r2, r3, [r4, #76] @ 0x4c │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ sub sp, #8 │ │ │ │ │ - ldr r2, [r4, #76] @ 0x4c │ │ │ │ │ ldr.w r8, [r0, #56] @ 0x38 │ │ │ │ │ add.w r2, r1, r2, lsl #3 │ │ │ │ │ - cbz r3, 44 │ │ │ │ │ - mov r6, r5 │ │ │ │ │ + cbz r3, 56 │ │ │ │ │ mov r3, r5 │ │ │ │ │ str r7, [sp, #0] │ │ │ │ │ + mov r6, r5 │ │ │ │ │ blx r8 │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r2, r5 │ │ │ │ │ mov r1, r6 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ - str r7, [sp, #0] │ │ │ │ │ mov r3, r5 │ │ │ │ │ mov r2, r7 │ │ │ │ │ + str r7, [sp, #0] │ │ │ │ │ mov r1, r5 │ │ │ │ │ ldr r4, [r0, #56] @ 0x38 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, #8 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + ldmia.w sp!, {r8, pc} │ │ │ │ │ add.w r3, r1, #8 │ │ │ │ │ + mov r6, r1 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ mov r3, r1 │ │ │ │ │ - mov r6, r1 │ │ │ │ │ blx r8 │ │ │ │ │ - b.n 26 │ │ │ │ │ - nop │ │ │ │ │ + b.n 2e │ │ │ │ │ │ │ │ │ │ -00000054 : │ │ │ │ │ +00000064 : │ │ │ │ │ apply_c2r(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r5, r2 │ │ │ │ │ ldr r0, [r0, #72] @ 0x48 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r6, r1 │ │ │ │ │ - sub sp, #8 │ │ │ │ │ + add.w r7, r2, #8 │ │ │ │ │ ldr r3, [r4, #80] @ 0x50 │ │ │ │ │ - mov r5, r2 │ │ │ │ │ + add.w r1, r1, #8 │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ + sub sp, #8 │ │ │ │ │ ldr.w r8, [r0, #56] @ 0x38 │ │ │ │ │ - add.w r7, r2, #8 │ │ │ │ │ - adds r1, #8 │ │ │ │ │ - cbz r3, 9c │ │ │ │ │ - str r2, [sp, #0] │ │ │ │ │ + cbz r3, c0 │ │ │ │ │ mov r2, r6 │ │ │ │ │ - mov r6, r5 │ │ │ │ │ mov r3, r7 │ │ │ │ │ + str r5, [sp, #0] │ │ │ │ │ + mov r6, r5 │ │ │ │ │ blx r8 │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r2, r5 │ │ │ │ │ mov r1, r6 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - ldr r2, [r4, #76] @ 0x4c │ │ │ │ │ mov r3, r5 │ │ │ │ │ - str r7, [sp, #0] │ │ │ │ │ mov r1, r5 │ │ │ │ │ + ldr r2, [r4, #76] @ 0x4c │ │ │ │ │ + str r7, [sp, #0] │ │ │ │ │ ldr r4, [r0, #56] @ 0x38 │ │ │ │ │ add.w r2, r5, r2, lsl #3 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, #8 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + ldmia.w sp!, {r8, pc} │ │ │ │ │ mov r3, r1 │ │ │ │ │ mov r2, r6 │ │ │ │ │ str r6, [sp, #0] │ │ │ │ │ blx r8 │ │ │ │ │ - b.n 7a │ │ │ │ │ + b.n 94 │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -000000a8 : │ │ │ │ │ +000000cc : │ │ │ │ │ print(): │ │ │ │ │ mov r3, r0 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r0, r1 │ │ │ │ │ - ldr r4, [r1, #0] │ │ │ │ │ - sub sp, #8 │ │ │ │ │ ldr r2, [r3, #80] @ 0x50 │ │ │ │ │ + sub sp, #8 │ │ │ │ │ + ldr r4, [r1, #0] │ │ │ │ │ cmp r2, #2 │ │ │ │ │ - beq.n d0 │ │ │ │ │ - ldr r2, [pc, #28] @ (d8 ) │ │ │ │ │ + beq.n f6 │ │ │ │ │ + ldr r2, [pc, #28] @ (fc ) │ │ │ │ │ add r2, pc │ │ │ │ │ ldr r1, [r3, #72] @ 0x48 │ │ │ │ │ str r1, [sp, #4] │ │ │ │ │ ldr r1, [r3, #68] @ 0x44 │ │ │ │ │ str r1, [sp, #0] │ │ │ │ │ - ldr r1, [pc, #20] @ (dc ) │ │ │ │ │ + ldr r1, [pc, #20] @ (100 ) │ │ │ │ │ ldr r3, [r3, #64] @ 0x40 │ │ │ │ │ add r1, pc │ │ │ │ │ blx r4 │ │ │ │ │ add sp, #8 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ - ldr r2, [pc, #12] @ (e0 ) │ │ │ │ │ + ldr r2, [pc, #12] @ (104 ) │ │ │ │ │ add r2, pc │ │ │ │ │ - b.n bc │ │ │ │ │ - nop │ │ │ │ │ - .word 0x0000001a │ │ │ │ │ + b.n e2 │ │ │ │ │ + .word 0x00000018 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x00000010 │ │ │ │ │ + .word 0x0000000e │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ - .word 0x0000000a │ │ │ │ │ + .word 0x00000008 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ -000000e4 : │ │ │ │ │ +00000108 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #72] @ 0x48 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - ldmia.w sp!, {r4, lr} │ │ │ │ │ + ldrd r4, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_plan_destroy_internal │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -00000100 : │ │ │ │ │ +00000128 : │ │ │ │ │ mkplan(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ ldr r1, [r1, #4] │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ sub sp, #84 @ 0x54 │ │ │ │ │ ldr r3, [r1, #0] │ │ │ │ │ str r0, [sp, #28] │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - ble.n 122 │ │ │ │ │ + ble.n 15a │ │ │ │ │ ldr r3, [r0, #8] │ │ │ │ │ mov fp, r2 │ │ │ │ │ - cbnz r3, 12a │ │ │ │ │ + cbnz r3, 176 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ cmp r3, #8 │ │ │ │ │ - beq.n 140 │ │ │ │ │ + beq.n 18c │ │ │ │ │ cmp r3, #4 │ │ │ │ │ - beq.n 156 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + beq.n 1a4 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add sp, #84 @ 0x54 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldr.w r3, [r2, #164] @ 0xa4 │ │ │ │ │ - lsls r0, r3, #19 │ │ │ │ │ - bmi.n 122 │ │ │ │ │ + lsls r6, r3, #19 │ │ │ │ │ + bmi.n 15a │ │ │ │ │ ldrd r2, r3, [r4, #12] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - beq.n 122 │ │ │ │ │ + beq.n 15a │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ cmp r3, #8 │ │ │ │ │ - bne.n 11e │ │ │ │ │ + bne.n 156 │ │ │ │ │ ldr r2, [r4, #20] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - bne.n 122 │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + bne.n 15a │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.w 56e │ │ │ │ │ + bne.w 612 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ - b.n 11e │ │ │ │ │ + b.n 156 │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #4 │ │ │ │ │ - bne.n 122 │ │ │ │ │ - movs r2, #1 │ │ │ │ │ + bne.n 15a │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ ldr r1, [r4, #4] │ │ │ │ │ mov r0, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n 122 │ │ │ │ │ + beq.n 15a │ │ │ │ │ ldr r1, [r4, #4] │ │ │ │ │ - movs r2, #0 │ │ │ │ │ - movs r0, #2 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ + mov.w r0, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n 122 │ │ │ │ │ + beq.n 15a │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldrd r0, r1, [r3, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - bne.n 122 │ │ │ │ │ + bne.n 15a │ │ │ │ │ ldr.w r3, [fp, #164] @ 0xa4 │ │ │ │ │ - lsls r2, r3, #28 │ │ │ │ │ - bmi.w 590 │ │ │ │ │ - ldr r3, [r4, #12] │ │ │ │ │ - ldrd r7, r8, [r4, #16] │ │ │ │ │ - str r3, [sp, #24] │ │ │ │ │ + lsls r5, r3, #28 │ │ │ │ │ + bmi.w 638 │ │ │ │ │ + ldrd r3, r7, [r4, #12] │ │ │ │ │ + ldr.w r8, [r4, #20] │ │ │ │ │ ldr r2, [sp, #28] │ │ │ │ │ - ldr r3, [r4, #8] │ │ │ │ │ + str r3, [sp, #24] │ │ │ │ │ add.w sl, r7, #8 │ │ │ │ │ + ldr r3, [r4, #8] │ │ │ │ │ ldr r2, [r2, #8] │ │ │ │ │ - lsls r3, r3, #3 │ │ │ │ │ + mov.w r3, r3, lsl #3 │ │ │ │ │ cmp.w r8, #0 │ │ │ │ │ - bne.w 4d2 │ │ │ │ │ + bne.w 562 │ │ │ │ │ ldr r1, [sp, #24] │ │ │ │ │ - adds r3, r1, r3 │ │ │ │ │ - str r3, [sp, #36] @ 0x24 │ │ │ │ │ + add r3, r1 │ │ │ │ │ + str r3, [sp, #32] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - bne.w 512 │ │ │ │ │ + bne.w 5a8 │ │ │ │ │ ldr.w r3, [fp, #164] @ 0xa4 │ │ │ │ │ - lsls r3, r3, #19 │ │ │ │ │ - bmi.w 512 │ │ │ │ │ + lsls r0, r3, #19 │ │ │ │ │ + bmi.w 5a8 │ │ │ │ │ add.w r3, r1, #8 │ │ │ │ │ + mov r9, r1 │ │ │ │ │ mov r2, r1 │ │ │ │ │ - str r1, [sp, #32] │ │ │ │ │ - str r2, [sp, #52] @ 0x34 │ │ │ │ │ - ldr r2, [sp, #24] │ │ │ │ │ - strd r7, sl, [sp, #64] @ 0x40 │ │ │ │ │ - str.w sl, [sp, #24] │ │ │ │ │ + strd r2, r9, [sp, #48] @ 0x30 │ │ │ │ │ + mov r2, sl │ │ │ │ │ + str.w sl, [sp, #68] @ 0x44 │ │ │ │ │ mov sl, r3 │ │ │ │ │ - str r7, [sp, #60] @ 0x3c │ │ │ │ │ - movs r3, #1 │ │ │ │ │ - str r2, [sp, #48] @ 0x30 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + str r2, [sp, #24] │ │ │ │ │ str r3, [sp, #56] @ 0x38 │ │ │ │ │ - add r1, sp, #72 @ 0x48 │ │ │ │ │ + strd r7, r7, [sp, #60] @ 0x3c │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + add r1, sp, #72 @ 0x48 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ - add r1, sp, #76 @ 0x4c │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + add r1, sp, #76 @ 0x4c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r0, [r3, #0] │ │ │ │ │ - subs r0, #1 │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor │ │ │ │ │ mov r6, r0 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ - movs r1, #12 │ │ │ │ │ ldr.w ip, [r0] │ │ │ │ │ - add.w r2, ip, #4294967295 @ 0xffffffff │ │ │ │ │ - sub.w lr, ip, #2 │ │ │ │ │ - mul.w r3, r1, ip │ │ │ │ │ - mla r2, r1, r2, r0 │ │ │ │ │ - adds r5, r6, r3 │ │ │ │ │ - mla lr, r1, lr, r6 │ │ │ │ │ - ldr r2, [r2, #4] │ │ │ │ │ + add.w r2, ip, ip, lsl #1 │ │ │ │ │ + add.w r3, ip, ip, lsl #1 │ │ │ │ │ + add.w r2, r0, r2, lsl #2 │ │ │ │ │ + mov.w r3, r3, lsl #2 │ │ │ │ │ + ldr.w r2, [r2, #-8] │ │ │ │ │ + add.w r1, ip, ip, lsl #1 │ │ │ │ │ + add.w r5, r6, r3 │ │ │ │ │ + add.w r1, r6, r1, lsl #2 │ │ │ │ │ add.w r2, r2, r2, lsr #31 │ │ │ │ │ - asrs r2, r2, #1 │ │ │ │ │ - adds r2, #1 │ │ │ │ │ + mov.w r2, r2, asr #1 │ │ │ │ │ + add.w r2, r2, #1 │ │ │ │ │ str.w r2, [r5, #-20] │ │ │ │ │ ldr r2, [r4, #8] │ │ │ │ │ - lsls r2, r2, #1 │ │ │ │ │ - str.w r2, [lr, #12] │ │ │ │ │ + mov.w r2, r2, lsl #1 │ │ │ │ │ + str.w r2, [r1, #-12] │ │ │ │ │ str.w r2, [r5, #-16] │ │ │ │ │ subs.w r5, ip, #3 │ │ │ │ │ - bmi.n 2dc │ │ │ │ │ + bmi.n 350 │ │ │ │ │ + cmp.w ip, #4 │ │ │ │ │ sub.w r2, r3, #16 │ │ │ │ │ sub.w r1, r3, #20 │ │ │ │ │ - cmp.w ip, #4 │ │ │ │ │ - ble.w 56a │ │ │ │ │ + ble.w 60e │ │ │ │ │ ldr.w lr, [r6, r1] │ │ │ │ │ + add.w r1, r0, r3 │ │ │ │ │ sub.w ip, ip, #5 │ │ │ │ │ - str r0, [sp, #40] @ 0x28 │ │ │ │ │ - adds r1, r0, r3 │ │ │ │ │ + strd r8, r0, [sp, #36] @ 0x24 │ │ │ │ │ + sub.w r3, r3, #28 │ │ │ │ │ + and.w ip, ip, #1 │ │ │ │ │ ldr r2, [r6, r2] │ │ │ │ │ - subs r3, #28 │ │ │ │ │ + add r3, r6 │ │ │ │ │ + mov r8, r4 │ │ │ │ │ mov r0, lr │ │ │ │ │ ldr.w lr, [sp, #40] @ 0x28 │ │ │ │ │ - add r3, r6 │ │ │ │ │ - and.w ip, ip, #1 │ │ │ │ │ - mov r9, r4 │ │ │ │ │ - ldr.w r4, [r1, #-20] │ │ │ │ │ mul.w r2, r0, r2 │ │ │ │ │ - strd r2, r2, [r3] │ │ │ │ │ - subs r5, #2 │ │ │ │ │ - str.w r4, [r3, #-4] │ │ │ │ │ - subs r1, #24 │ │ │ │ │ + sub.w r5, r5, #2 │ │ │ │ │ + sub.w r1, r1, #24 │ │ │ │ │ + ldr r4, [r1, #4] │ │ │ │ │ cmp r5, ip │ │ │ │ │ - ldr.w r0, [r1, #-8] │ │ │ │ │ + strd r4, r2, [r3, #-4] │ │ │ │ │ + str r2, [r3, #4] │ │ │ │ │ mul.w r2, r4, r2 │ │ │ │ │ - str.w r0, [r3, #-16] │ │ │ │ │ - strd r2, r2, [r3, #-12] │ │ │ │ │ + ldr.w r0, [r1, #-8] │ │ │ │ │ + strd r0, r2, [r3, #-16] │ │ │ │ │ sub.w r3, r3, #24 │ │ │ │ │ - bne.n 268 │ │ │ │ │ + str r2, [r3, #16] │ │ │ │ │ + bne.n 2d6 │ │ │ │ │ + mov r4, r8 │ │ │ │ │ + ldr.w r8, [sp, #36] @ 0x24 │ │ │ │ │ mov r0, lr │ │ │ │ │ - mov r4, r9 │ │ │ │ │ - movs r5, #12 │ │ │ │ │ - mul.w r1, r5, ip │ │ │ │ │ - add.w r9, r0, r1 │ │ │ │ │ + add.w r1, ip, ip, lsl #1 │ │ │ │ │ + mov.w r1, r1, lsl #2 │ │ │ │ │ + add.w lr, r0, r1 │ │ │ │ │ add r1, r6 │ │ │ │ │ ldrd r3, r2, [r1, #16] │ │ │ │ │ - ldr.w lr, [r9, #16] │ │ │ │ │ - str.w lr, [r1, #4] │ │ │ │ │ + ldr.w r5, [lr, #16] │ │ │ │ │ mul.w r3, r2, r3 │ │ │ │ │ add.w r2, ip, #4294967295 @ 0xffffffff │ │ │ │ │ - strd r3, r3, [r1, #8] │ │ │ │ │ - str r2, [sp, #40] @ 0x28 │ │ │ │ │ + str r2, [sp, #36] @ 0x24 │ │ │ │ │ + strd r5, r3, [r1, #4] │ │ │ │ │ + str r3, [r1, #12] │ │ │ │ │ cmp.w ip, #0 │ │ │ │ │ - beq.n 2dc │ │ │ │ │ - ldr.w r2, [r9, #4] │ │ │ │ │ - mul.w r3, lr, r3 │ │ │ │ │ + beq.n 350 │ │ │ │ │ + ldr.w r2, [lr, #4] │ │ │ │ │ + mul.w r3, r5, r3 │ │ │ │ │ str.w r2, [r1, #-8] │ │ │ │ │ - ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ - mla r2, r5, r2, r6 │ │ │ │ │ + ldr r2, [sp, #36] @ 0x24 │ │ │ │ │ + add.w r2, r2, r2, lsl #1 │ │ │ │ │ + add.w r2, r6, r2, lsl #2 │ │ │ │ │ str r3, [r2, #12] │ │ │ │ │ str.w r3, [r1, #-4] │ │ │ │ │ ldr r1, [r6, #0] │ │ │ │ │ cmp r1, #1 │ │ │ │ │ - ble.w 566 │ │ │ │ │ + ble.w 608 │ │ │ │ │ add.w r1, r1, r1, lsl #1 │ │ │ │ │ - movs r3, #0 │ │ │ │ │ - subs r1, #3 │ │ │ │ │ - movs r5, #1 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ + mov.w r5, #1 │ │ │ │ │ add.w ip, r6, #16 │ │ │ │ │ + sub.w r1, r1, #3 │ │ │ │ │ ldr.w r2, [ip, r3, lsl #2] │ │ │ │ │ - adds r3, #3 │ │ │ │ │ + add.w r3, r3, #3 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ mul.w r5, r2, r5 │ │ │ │ │ - bne.n 2f2 │ │ │ │ │ + bne.n 36c │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #4 │ │ │ │ │ - beq.w 51a │ │ │ │ │ - mov.w r9, #1 │ │ │ │ │ + beq.w 5b0 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.w 54a │ │ │ │ │ - movs r3, #2 │ │ │ │ │ - str r3, [sp, #44] @ 0x2c │ │ │ │ │ + bne.w 5e8 │ │ │ │ │ + mov.w r3, #2 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ + strd r3, r1, [sp, #40] @ 0x28 │ │ │ │ │ ldrd r3, r2, [r6, #4] │ │ │ │ │ add.w r8, r0, r8, lsl #2 │ │ │ │ │ ldr r0, [r0, #4] │ │ │ │ │ - mul.w r3, r2, r3 │ │ │ │ │ ldr.w r1, [r8, #8] │ │ │ │ │ + mul.w r3, r2, r3 │ │ │ │ │ ldr r2, [sp, #72] @ 0x48 │ │ │ │ │ - str r3, [sp, #40] @ 0x28 │ │ │ │ │ + str r3, [sp, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ - ldr r3, [r4, #4] │ │ │ │ │ - mov.w ip, #12 │ │ │ │ │ - ldr r2, [r3, #0] │ │ │ │ │ - subs r1, r2, #2 │ │ │ │ │ - subs r2, #1 │ │ │ │ │ - mla r3, ip, r2, r3 │ │ │ │ │ - ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ - mla r1, ip, r1, r6 │ │ │ │ │ - ldr r3, [r3, #4] │ │ │ │ │ - str r3, [r1, #4] │ │ │ │ │ + ldr r1, [r4, #4] │ │ │ │ │ + ldr r3, [r1, #0] │ │ │ │ │ + sub.w r2, r3, #2 │ │ │ │ │ + add.w r3, r3, r3, lsl #1 │ │ │ │ │ + add.w r2, r2, r2, lsl #1 │ │ │ │ │ + add.w r1, r1, r3, lsl #2 │ │ │ │ │ + add.w r2, r6, r2, lsl #2 │ │ │ │ │ + ldr.w r3, [r1, #-8] │ │ │ │ │ + ldr r1, [sp, #40] @ 0x28 │ │ │ │ │ + str r3, [r2, #4] │ │ │ │ │ + ldr r2, [sp, #36] @ 0x24 │ │ │ │ │ + str r1, [sp, #4] │ │ │ │ │ ldr r1, [sp, #44] @ 0x2c │ │ │ │ │ - strd r9, r1, [sp] │ │ │ │ │ + str r1, [sp, #0] │ │ │ │ │ mov r1, r2 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor_2d │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ - strd sl, r3, [sp, #4] │ │ │ │ │ mov r1, r0 │ │ │ │ │ - ldr r3, [sp, #32] │ │ │ │ │ mov r0, r6 │ │ │ │ │ + strd r9, sl, [sp] │ │ │ │ │ ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ - str r3, [sp, #0] │ │ │ │ │ - ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ + str r3, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #32] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkproblem_rdft2_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_d │ │ │ │ │ mov r6, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.w 542 │ │ │ │ │ + bne.w 5e0 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ ldr r2, [sp, #56] @ 0x38 │ │ │ │ │ mul.w r5, r3, r5 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ add.w r2, r3, r2, lsl #2 │ │ │ │ │ ldr.w r9, [r3, #16] │ │ │ │ │ ldr.w sl, [r2, #20] │ │ │ │ │ ldr r2, [r3, #0] │ │ │ │ │ cmp r2, #2 │ │ │ │ │ - bne.n 3bc │ │ │ │ │ + bne.n 444 │ │ │ │ │ add.w r2, r9, r9, lsr #31 │ │ │ │ │ cmp r9, sl │ │ │ │ │ mov.w r2, r2, asr #1 │ │ │ │ │ add.w r2, r2, #1 │ │ │ │ │ itet eq │ │ │ │ │ moveq sl, r2 │ │ │ │ │ movne r9, r2 │ │ │ │ │ moveq r9, sl │ │ │ │ │ - lsls r2, r5, #1 │ │ │ │ │ - str r2, [sp, #32] │ │ │ │ │ - ldr r2, [r4, #20] │ │ │ │ │ + mov.w r2, r5, lsl #1 │ │ │ │ │ ldr r0, [r3, #4] │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ + str r2, [sp, #32] │ │ │ │ │ + ldr r2, [r4, #20] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - bne.w 4fa │ │ │ │ │ - strd r1, r2, [sp, #12] │ │ │ │ │ - lsls r2, r5, #1 │ │ │ │ │ - str.w sl, [sp, #8] │ │ │ │ │ + bne.w 58c │ │ │ │ │ + strd sl, r1, [sp, #8] │ │ │ │ │ mov r1, r9 │ │ │ │ │ + str r2, [sp, #16] │ │ │ │ │ + mov.w r2, r5, lsl #1 │ │ │ │ │ ldr r3, [r3, #8] │ │ │ │ │ strd r7, r3, [sp] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_mkproblem_transpose │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_d │ │ │ │ │ mov r7, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.n 4ba │ │ │ │ │ + bne.n 54a │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ mov r1, sl │ │ │ │ │ - ldr r2, [sp, #72] @ 0x48 │ │ │ │ │ mov r0, r9 │ │ │ │ │ + ldr r2, [sp, #72] @ 0x48 │ │ │ │ │ ldr r3, [r3, #4] │ │ │ │ │ mul.w r8, r3, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_block │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - lsls r2, r5, #1 │ │ │ │ │ - mov r1, r2 │ │ │ │ │ + mov.w r2, r5, lsl #1 │ │ │ │ │ mov r9, r0 │ │ │ │ │ mov.w r8, r8, lsl #1 │ │ │ │ │ + mov r1, r2 │ │ │ │ │ ldr r0, [r3, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor_1d │ │ │ │ │ + mov.w r3, #2 │ │ │ │ │ mov r2, r8 │ │ │ │ │ mov r1, r8 │ │ │ │ │ mov sl, r0 │ │ │ │ │ - movs r3, #2 │ │ │ │ │ mov r0, r9 │ │ │ │ │ strd r3, r3, [sp] │ │ │ │ │ mov r3, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mktensor_2d │ │ │ │ │ + ldr r2, [sp, #60] @ 0x3c │ │ │ │ │ + mov r1, r0 │ │ │ │ │ + mov r0, sl │ │ │ │ │ ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - mov r1, r0 │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ - mov r0, sl │ │ │ │ │ - ldr r2, [sp, #60] @ 0x3c │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_d │ │ │ │ │ mov r8, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_any_true │ │ │ │ │ - cbnz r0, 4be │ │ │ │ │ + cbnz r0, 54e │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.n 53c │ │ │ │ │ - ldr r2, [pc, #308] @ (5a0 ) │ │ │ │ │ + bne.n 5da │ │ │ │ │ + ldr r2, [pc, #332] @ (648 ) │ │ │ │ │ add r2, pc │ │ │ │ │ - ldr r1, [pc, #308] @ (5a4 ) │ │ │ │ │ - movs r0, #88 @ 0x58 │ │ │ │ │ + ldr r1, [pc, #332] @ (64c ) │ │ │ │ │ + mov.w r0, #88 @ 0x58 │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkplan_rdft │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ mov r5, r0 │ │ │ │ │ + ldr r3, [r3, #8] │ │ │ │ │ strd r6, r7, [r0, #64] @ 0x40 │ │ │ │ │ str.w r8, [r0, #72] @ 0x48 │ │ │ │ │ - ldr r3, [r3, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.n 538 │ │ │ │ │ + bne.n 5d4 │ │ │ │ │ ldr.w r3, [fp, #164] @ 0xa4 │ │ │ │ │ and.w r3, r3, #4096 @ 0x1000 │ │ │ │ │ str r3, [r5, #80] @ 0x50 │ │ │ │ │ add.w r1, r8, #8 │ │ │ │ │ + add.w r0, r6, #8 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ add.w r4, r5, #8 │ │ │ │ │ mov r2, r4 │ │ │ │ │ - add.w r0, r6, #8 │ │ │ │ │ str r3, [r5, #76] @ 0x4c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ops_add │ │ │ │ │ add.w r0, r7, #8 │ │ │ │ │ mov r1, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ops_add2 │ │ │ │ │ mov r0, r5 │ │ │ │ │ - add sp, #84 @ 0x54 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b.n 15e │ │ │ │ │ mov.w r8, #0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_destroy_internal │ │ │ │ │ - b.n 122 │ │ │ │ │ - adds r3, r7, r3 │ │ │ │ │ - str r3, [sp, #36] @ 0x24 │ │ │ │ │ + b.n 15a │ │ │ │ │ + add r3, r7 │ │ │ │ │ + str r3, [sp, #32] │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ - adds r3, #8 │ │ │ │ │ + add.w r3, r3, #8 │ │ │ │ │ str r3, [sp, #60] @ 0x3c │ │ │ │ │ - cbnz r2, 524 │ │ │ │ │ + cbnz r2, 5be │ │ │ │ │ ldr.w r3, [fp, #164] @ 0xa4 │ │ │ │ │ ands.w r3, r3, #4096 @ 0x1000 │ │ │ │ │ - beq.n 550 │ │ │ │ │ + beq.n 5f2 │ │ │ │ │ + mov r9, r7 │ │ │ │ │ mov.w r8, #1 │ │ │ │ │ - str r7, [sp, #52] @ 0x34 │ │ │ │ │ - strd sl, r7, [sp, #64] @ 0x40 │ │ │ │ │ - str r7, [sp, #32] │ │ │ │ │ - str r7, [sp, #48] @ 0x30 │ │ │ │ │ + strd r7, r7, [sp, #48] @ 0x30 │ │ │ │ │ str r2, [sp, #56] @ 0x38 │ │ │ │ │ - b.n 1e0 │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + strd sl, r7, [sp, #64] @ 0x40 │ │ │ │ │ + b.n 23a │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ strd r1, r2, [sp, #12] │ │ │ │ │ mov r1, r0 │ │ │ │ │ - lsls r2, r5, #1 │ │ │ │ │ + mov.w r2, r5, lsl #1 │ │ │ │ │ ldr r3, [r3, #12] │ │ │ │ │ mov r0, r9 │ │ │ │ │ - strd sl, r3, [sp, #4] │ │ │ │ │ - str r7, [sp, #0] │ │ │ │ │ + strd r7, sl, [sp] │ │ │ │ │ + str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - b.n 3e0 │ │ │ │ │ + b.n 46a │ │ │ │ │ mov r3, sl │ │ │ │ │ - mov r2, r7 │ │ │ │ │ - str r7, [sp, #32] │ │ │ │ │ - b.n 1ca │ │ │ │ │ - movs r3, #1 │ │ │ │ │ - mov.w r9, #2 │ │ │ │ │ - str r3, [sp, #44] @ 0x2c │ │ │ │ │ - b.n 316 │ │ │ │ │ - movs r3, #0 │ │ │ │ │ + mov r9, r7 │ │ │ │ │ + mov r2, r1 │ │ │ │ │ + b.n 222 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + mov.w r2, #2 │ │ │ │ │ + strd r3, r2, [sp, #40] @ 0x28 │ │ │ │ │ + b.n 396 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ + mov r9, r7 │ │ │ │ │ + strd r7, r7, [sp, #48] @ 0x30 │ │ │ │ │ mov.w r8, #1 │ │ │ │ │ - str r7, [sp, #52] @ 0x34 │ │ │ │ │ - strd sl, r7, [sp, #64] @ 0x40 │ │ │ │ │ - str r7, [sp, #32] │ │ │ │ │ - str r7, [sp, #48] @ 0x30 │ │ │ │ │ str r3, [sp, #56] @ 0x38 │ │ │ │ │ - b.n 1e0 │ │ │ │ │ - movs r3, #2 │ │ │ │ │ - b.n 490 │ │ │ │ │ - ldr r2, [pc, #104] @ (5a8 ) │ │ │ │ │ + strd sl, r7, [sp, #64] @ 0x40 │ │ │ │ │ + b.n 23a │ │ │ │ │ + mov.w r3, #2 │ │ │ │ │ + b.n 524 │ │ │ │ │ + ldr r2, [pc, #116] @ (650 ) │ │ │ │ │ add r2, pc │ │ │ │ │ - b.n 46c │ │ │ │ │ + b.n 4fe │ │ │ │ │ mov.w r8, #0 │ │ │ │ │ mov r7, r8 │ │ │ │ │ - b.n 4be │ │ │ │ │ - str.w r9, [sp, #44] @ 0x2c │ │ │ │ │ - b.n 316 │ │ │ │ │ + b.n 54e │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + strd r3, r3, [sp, #40] @ 0x28 │ │ │ │ │ + b.n 396 │ │ │ │ │ ldr r2, [sp, #24] │ │ │ │ │ + mov r9, r7 │ │ │ │ │ mov.w r8, #1 │ │ │ │ │ - str r2, [sp, #52] @ 0x34 │ │ │ │ │ + strd r7, r2, [sp, #48] @ 0x30 │ │ │ │ │ + str r3, [sp, #56] @ 0x38 │ │ │ │ │ str r2, [sp, #68] @ 0x44 │ │ │ │ │ ldr r2, [sp, #60] @ 0x3c │ │ │ │ │ str r2, [sp, #64] @ 0x40 │ │ │ │ │ - str r7, [sp, #32] │ │ │ │ │ - str r7, [sp, #48] @ 0x30 │ │ │ │ │ - str r3, [sp, #56] @ 0x38 │ │ │ │ │ - b.n 1e0 │ │ │ │ │ - movs r5, #1 │ │ │ │ │ - b.n 300 │ │ │ │ │ + b.n 23a │ │ │ │ │ + mov.w r5, #1 │ │ │ │ │ + b.n 37c │ │ │ │ │ mov ip, r5 │ │ │ │ │ - b.n 298 │ │ │ │ │ + b.n 308 │ │ │ │ │ ldr r1, [r4, #4] │ │ │ │ │ - movs r2, #1 │ │ │ │ │ - movs r0, #2 │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ + mov.w r0, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.w 152 │ │ │ │ │ + beq.w 1a0 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - ldr r1, [r3, #12] │ │ │ │ │ ldr r0, [r3, #4] │ │ │ │ │ + ldr r1, [r3, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_num_blocks │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - bne.w 152 │ │ │ │ │ - b.n 186 │ │ │ │ │ + bne.w 1a0 │ │ │ │ │ + b.n 1da │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_rdft2_serial_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.w 190 │ │ │ │ │ - b.n 122 │ │ │ │ │ + beq.w 1e4 │ │ │ │ │ + b.n 15a │ │ │ │ │ nop │ │ │ │ │ - .word 0x00000132 │ │ │ │ │ + .word 0x00000148 │ │ │ │ │ R_ARM_REL32 apply_r2c │ │ │ │ │ - .word 0x00000130 │ │ │ │ │ + .word 0x00000144 │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ - .word 0x00000066 │ │ │ │ │ + .word 0x00000070 │ │ │ │ │ R_ARM_REL32 apply_c2r │ │ │ │ │ │ │ │ │ │ -000005ac : │ │ │ │ │ +00000654 : │ │ │ │ │ awake(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ + mov r5, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_awake │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_plan_awake │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, lr} │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + ldrd r5, lr, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_plan_awake │ │ │ │ │ │ │ │ │ │ -000005cc : │ │ │ │ │ +00000680 : │ │ │ │ │ fftw_mpi_rdft2_rank_geq2_transposed_register(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r5, [pc, #44] @ (600 ) │ │ │ │ │ - movs r0, #12 │ │ │ │ │ + mov.w r0, #12 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ + ldr r5, [pc, #56] @ (6c8 ) │ │ │ │ │ add r5, pc │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mksolver │ │ │ │ │ - movs r3, #0 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ + str r3, [r1, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_solver_register │ │ │ │ │ mov r1, r5 │ │ │ │ │ - movs r0, #12 │ │ │ │ │ + mov.w r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mksolver │ │ │ │ │ - movs r3, #1 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + ldrd r5, lr, [sp, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, lr} │ │ │ │ │ + str r3, [r1, #8] │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + add sp, #16 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_solver_register │ │ │ │ │ - .word 0x00000028 │ │ │ │ │ + .word 0x00000034 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ ├── rdft2-problem.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 2132 (bytes into file) │ │ │ │ │ + Start of section headers: 2264 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 13 │ │ │ │ │ Section header string table index: 12 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,22 +1,22 @@ │ │ │ │ │ -There are 13 section headers, starting at offset 0x854: │ │ │ │ │ +There are 13 section headers, starting at offset 0x8d8: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 0001f4 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0006a4 000118 08 I 10 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000228 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000228 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 000228 000036 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro.local PROGBITS 00000000 00025e 000014 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro.local REL 00000000 0007bc 000020 08 I 10 6 4 │ │ │ │ │ - [ 8] .note.GNU-stack PROGBITS 00000000 000272 000000 00 0 0 1 │ │ │ │ │ - [ 9] .ARM.attributes ARM_ATTRIBUTES 00000000 000272 000033 00 0 0 1 │ │ │ │ │ - [10] .symtab SYMTAB 00000000 0002a8 000280 10 11 21 4 │ │ │ │ │ - [11] .strtab STRTAB 00000000 000528 000179 00 0 0 1 │ │ │ │ │ - [12] .shstrtab STRTAB 00000000 0007dc 000076 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000278 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000728 000118 08 I 10 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 0002ac 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 0002ac 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 0002ac 000036 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro.local PROGBITS 00000000 0002e2 000014 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro.local REL 00000000 000840 000020 08 I 10 6 4 │ │ │ │ │ + [ 8] .note.GNU-stack PROGBITS 00000000 0002f6 000000 00 0 0 1 │ │ │ │ │ + [ 9] .ARM.attributes ARM_ATTRIBUTES 00000000 0002f6 000033 00 0 0 1 │ │ │ │ │ + [10] .symtab SYMTAB 00000000 00032c 000280 10 11 21 4 │ │ │ │ │ + [11] .strtab STRTAB 00000000 0005ac 000179 00 0 0 1 │ │ │ │ │ + [12] .shstrtab STRTAB 00000000 000860 000076 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,28 +1,28 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 40 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ - 1: 00000001 28 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 1: 00000001 32 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ 2: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ 3: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 4: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ 5: 00000018 0 NOTYPE LOCAL DEFAULT 5 .LC1 │ │ │ │ │ 6: 00000024 0 NOTYPE LOCAL DEFAULT 5 .LC2 │ │ │ │ │ - 7: 0000001d 116 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 8: 00000084 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 9: 00000090 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 10: 00000091 88 FUNC LOCAL DEFAULT 1 zero │ │ │ │ │ + 7: 00000021 140 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 8: 000000a0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 000000ac 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 10: 000000ad 112 FUNC LOCAL DEFAULT 1 zero │ │ │ │ │ 11: 0000002c 0 NOTYPE LOCAL DEFAULT 5 .LC3 │ │ │ │ │ - 12: 000000e9 92 FUNC LOCAL DEFAULT 1 hash │ │ │ │ │ - 13: 00000140 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 14: 00000144 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 15: 00000194 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 16: 00000198 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 17: 000001f0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 12: 0000011d 112 FUNC LOCAL DEFAULT 1 hash │ │ │ │ │ + 13: 00000188 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 14: 0000018c 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 15: 000001fc 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 16: 00000200 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 17: 00000274 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 18: 00000000 0 SECTION LOCAL DEFAULT 6 .data.rel.ro.local │ │ │ │ │ 19: 00000000 0 NOTYPE LOCAL DEFAULT 6 $d │ │ │ │ │ 20: 00000000 20 OBJECT LOCAL DEFAULT 6 padt │ │ │ │ │ 21: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_dtensor_destroy │ │ │ │ │ 22: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_free │ │ │ │ │ 23: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ifree │ │ │ │ │ 24: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_ialignment_of │ │ │ │ │ @@ -32,12 +32,12 @@ │ │ │ │ │ 28: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_rank │ │ │ │ │ 29: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_total_block │ │ │ │ │ 30: 00000000 0 NOTYPE GLOBAL DEFAULT UND memset │ │ │ │ │ 31: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_md5puts │ │ │ │ │ 32: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_md5int │ │ │ │ │ 33: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_dtensor_md5 │ │ │ │ │ 34: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_md5INT │ │ │ │ │ - 35: 00000145 84 FUNC GLOBAL DEFAULT 1 fftw_mpi_mkproblem_rdft2 │ │ │ │ │ + 35: 0000018d 116 FUNC GLOBAL DEFAULT 1 fftw_mpi_mkproblem_rdft2 │ │ │ │ │ 36: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mkproblem │ │ │ │ │ 37: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftw_mpi_dtensor_canonical │ │ │ │ │ 38: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_dup │ │ │ │ │ - 39: 00000199 92 FUNC GLOBAL DEFAULT 1 fftw_mpi_mkproblem_rdft2_d │ │ │ │ │ + 39: 00000201 120 FUNC GLOBAL DEFAULT 1 fftw_mpi_mkproblem_rdft2_d │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,45 +1,45 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x6a4 contains 35 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x728 contains 35 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000006 0000150a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -0000000e 0000160a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -00000030 0000180a R_ARM_THM_CALL 00000000 fftw_ialignment_of │ │ │ │ │ -0000003c 0000180a R_ARM_THM_CALL 00000000 fftw_ialignment_of │ │ │ │ │ -00000054 0000190a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_print │ │ │ │ │ -0000006e 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000084 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -00000088 00000503 R_ARM_REL32 00000018 .LC1 │ │ │ │ │ -0000008c 00000603 R_ARM_REL32 00000024 .LC2 │ │ │ │ │ -0000009a 00001b0a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_copy │ │ │ │ │ -000000bc 00001c0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000000c8 00001d0a R_ARM_THM_CALL 00000000 fftw_mpi_total_block │ │ │ │ │ -000000d2 0000150a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -000000e0 00001e0a R_ARM_THM_CALL 00000000 memset │ │ │ │ │ -000000f6 00001f0a R_ARM_THM_CALL 00000000 fftw_md5puts │ │ │ │ │ -00000108 0000200a R_ARM_THM_CALL 00000000 fftw_md5int │ │ │ │ │ -00000110 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_md5 │ │ │ │ │ -00000118 0000220a R_ARM_THM_CALL 00000000 fftw_md5INT │ │ │ │ │ -00000120 0000200a R_ARM_THM_CALL 00000000 fftw_md5int │ │ │ │ │ -00000128 0000200a R_ARM_THM_CALL 00000000 fftw_md5int │ │ │ │ │ -00000130 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000138 0000200a R_ARM_THM_CALL 00000000 fftw_md5int │ │ │ │ │ -00000140 00000b03 R_ARM_REL32 0000002c .LC3 │ │ │ │ │ -0000015c 0000240a R_ARM_THM_CALL 00000000 fftw_mkproblem │ │ │ │ │ -00000166 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -0000016e 0000250a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_canonical │ │ │ │ │ -00000188 0000260a R_ARM_THM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ -00000194 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -000001b0 0000240a R_ARM_THM_CALL 00000000 fftw_mkproblem │ │ │ │ │ -000001ba 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000001c2 0000250a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_canonical │ │ │ │ │ -000001dc 0000260a R_ARM_THM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ -000001e2 0000150a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ -000001f0 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -00000018 0000171e R_ARM_THM_JUMP24 00000000 fftw_ifree │ │ │ │ │ +00000008 0000150a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +00000010 0000160a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +0000003e 0000180a R_ARM_THM_CALL 00000000 fftw_ialignment_of │ │ │ │ │ +0000004a 0000180a R_ARM_THM_CALL 00000000 fftw_ialignment_of │ │ │ │ │ +00000064 0000190a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_print │ │ │ │ │ +0000007e 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000000a0 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +000000a4 00000503 R_ARM_REL32 00000018 .LC1 │ │ │ │ │ +000000a8 00000603 R_ARM_REL32 00000024 .LC2 │ │ │ │ │ +000000bc 00001b0a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_copy │ │ │ │ │ +000000e4 00001c0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000000f2 00001d0a R_ARM_THM_CALL 00000000 fftw_mpi_total_block │ │ │ │ │ +000000fc 0000150a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +0000010e 00001e0a R_ARM_THM_CALL 00000000 memset │ │ │ │ │ +00000130 00001f0a R_ARM_THM_CALL 00000000 fftw_md5puts │ │ │ │ │ +00000146 0000200a R_ARM_THM_CALL 00000000 fftw_md5int │ │ │ │ │ +0000014e 0000210a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_md5 │ │ │ │ │ +00000156 0000220a R_ARM_THM_CALL 00000000 fftw_md5INT │ │ │ │ │ +0000015e 0000200a R_ARM_THM_CALL 00000000 fftw_md5int │ │ │ │ │ +00000166 0000200a R_ARM_THM_CALL 00000000 fftw_md5int │ │ │ │ │ +0000016e 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000176 0000200a R_ARM_THM_CALL 00000000 fftw_md5int │ │ │ │ │ +00000188 00000b03 R_ARM_REL32 0000002c .LC3 │ │ │ │ │ +000001b2 0000240a R_ARM_THM_CALL 00000000 fftw_mkproblem │ │ │ │ │ +000001bc 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000001c6 0000250a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_canonical │ │ │ │ │ +000001e0 0000260a R_ARM_THM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ +000001fc 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +00000226 0000240a R_ARM_THM_CALL 00000000 fftw_mkproblem │ │ │ │ │ +00000230 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +0000023a 0000250a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_canonical │ │ │ │ │ +00000254 0000260a R_ARM_THM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ +0000025a 0000150a R_ARM_THM_CALL 00000000 fftw_mpi_dtensor_destroy │ │ │ │ │ +00000274 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +0000001c 0000171e R_ARM_THM_JUMP24 00000000 fftw_ifree │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0x7bc contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0x840 contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000c02 R_ARM_ABS32 000000e9 hash │ │ │ │ │ -00000008 00000a02 R_ARM_ABS32 00000091 zero │ │ │ │ │ -0000000c 00000702 R_ARM_ABS32 0000001d print │ │ │ │ │ +00000004 00000c02 R_ARM_ABS32 0000011d hash │ │ │ │ │ +00000008 00000a02 R_ARM_ABS32 000000ad zero │ │ │ │ │ +0000000c 00000702 R_ARM_ABS32 00000021 print │ │ │ │ │ 00000010 00000102 R_ARM_ABS32 00000001 destroy │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,141 +1,152 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ add.w r0, r4, #28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_free │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r4, lr} │ │ │ │ │ + ldrd r4, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftw_ifree │ │ │ │ │ │ │ │ │ │ -0000001c : │ │ │ │ │ +00000020 : │ │ │ │ │ print(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ ldrd r0, r2, [r0, #12] │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ sub sp, #16 │ │ │ │ │ ldr.w r8, [r1] │ │ │ │ │ - subs r6, r2, r0 │ │ │ │ │ + sub.w r6, r2, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ialignment_of │ │ │ │ │ - clz r6, r6 │ │ │ │ │ mov r7, r0 │ │ │ │ │ ldr r0, [r4, #16] │ │ │ │ │ + clz r6, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_ialignment_of │ │ │ │ │ - ldr r1, [pc, #64] @ (84 ) │ │ │ │ │ - lsrs r6, r6, #5 │ │ │ │ │ + ldr r1, [pc, #80] @ (a0 ) │ │ │ │ │ + mov.w r6, r6, lsr #5 │ │ │ │ │ mov r3, r7 │ │ │ │ │ - mov r2, r6 │ │ │ │ │ str r0, [sp, #0] │ │ │ │ │ - add r1, pc │ │ │ │ │ mov r0, r5 │ │ │ │ │ + mov r2, r6 │ │ │ │ │ + add r1, pc │ │ │ │ │ blx r8 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_print │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ - str r3, [sp, #0] │ │ │ │ │ mov r0, r5 │ │ │ │ │ - ldr r1, [pc, #40] @ (88 ) │ │ │ │ │ - ldr r3, [r4, #20] │ │ │ │ │ - ldr r2, [r4, #8] │ │ │ │ │ - add r1, pc │ │ │ │ │ + ldr r1, [pc, #52] @ (a4 ) │ │ │ │ │ + str r3, [sp, #0] │ │ │ │ │ ldr r6, [r5, #0] │ │ │ │ │ + add r1, pc │ │ │ │ │ + ldr r2, [r4, #8] │ │ │ │ │ + ldr r3, [r4, #20] │ │ │ │ │ blx r6 │ │ │ │ │ - add r1, sp, #12 │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + add r1, sp, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ - ldr r1, [pc, #24] @ (8c ) │ │ │ │ │ - ldr r3, [r5, #0] │ │ │ │ │ + ldr r1, [pc, #36] @ (a8 ) │ │ │ │ │ mov r0, r5 │ │ │ │ │ + ldr r3, [r5, #0] │ │ │ │ │ ldr r2, [sp, #12] │ │ │ │ │ add r1, pc │ │ │ │ │ blx r3 │ │ │ │ │ add sp, #16 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, pc} │ │ │ │ │ - .word 0x00000036 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + ldmia.w sp!, {r8, pc} │ │ │ │ │ + nop │ │ │ │ │ + .word 0x00000040 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ - .word 0x00000020 │ │ │ │ │ + .word 0x0000002e │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x0000000e │ │ │ │ │ + .word 0x0000001a │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ │ │ │ │ │ -00000090 : │ │ │ │ │ +000000ac : │ │ │ │ │ zero(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - ldr r6, [r0, #12] │ │ │ │ │ + strd r4, r5, [sp, #-16]! │ │ │ │ │ + ldr r4, [r0, #12] │ │ │ │ │ + strd r6, lr, [sp, #8] │ │ │ │ │ sub sp, #8 │ │ │ │ │ + mov r6, r0 │ │ │ │ │ ldr r0, [r0, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_copy │ │ │ │ │ ldr r2, [r0, #0] │ │ │ │ │ - movs r3, #12 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ + mov r5, r0 │ │ │ │ │ add r1, sp, #4 │ │ │ │ │ - mla r2, r3, r2, r0 │ │ │ │ │ - ldr r0, [r5, #28] │ │ │ │ │ + add.w r2, r2, r2, lsl #1 │ │ │ │ │ + add.w r2, r0, r2, lsl #2 │ │ │ │ │ + ldr r0, [r6, #28] │ │ │ │ │ ldr.w r3, [r2, #-8] │ │ │ │ │ add.w r3, r3, r3, lsr #31 │ │ │ │ │ - asrs r3, r3, #1 │ │ │ │ │ - adds r3, #1 │ │ │ │ │ + mov.w r3, r3, asr #1 │ │ │ │ │ + add.w r3, r3, #1 │ │ │ │ │ str.w r3, [r2, #-8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ - ldr r5, [r5, #8] │ │ │ │ │ + ldr r6, [r6, #8] │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ ldr r2, [sp, #4] │ │ │ │ │ - movs r1, #0 │ │ │ │ │ - mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_total_block │ │ │ │ │ - mul.w r5, r0, r5 │ │ │ │ │ - mov r0, r4 │ │ │ │ │ + mul.w r6, r0, r6 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ - cmp r5, #0 │ │ │ │ │ - ble.n e4 │ │ │ │ │ - lsls r2, r5, #4 │ │ │ │ │ - movs r1, #0 │ │ │ │ │ - mov r0, r6 │ │ │ │ │ + cmp r6, #0 │ │ │ │ │ + ble.n 112 │ │ │ │ │ + mov.w r2, r6, lsl #4 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ + mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL memset │ │ │ │ │ add sp, #8 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + pop {r6, pc} │ │ │ │ │ │ │ │ │ │ -000000e8 : │ │ │ │ │ +0000011c : │ │ │ │ │ hash(): │ │ │ │ │ - push {r4, r5, lr} │ │ │ │ │ + str.w r4, [sp, #-12]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - ldr r1, [pc, #80] @ (140 ) │ │ │ │ │ + ldr r1, [pc, #100] @ (188 ) │ │ │ │ │ + strd r5, lr, [sp, #4] │ │ │ │ │ sub sp, #12 │ │ │ │ │ + mov r5, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_md5puts │ │ │ │ │ - mov r0, r4 │ │ │ │ │ ldrd r1, r3, [r5, #12] │ │ │ │ │ - subs r1, r1, r3 │ │ │ │ │ + mov r0, r4 │ │ │ │ │ + sub.w r1, r1, r3 │ │ │ │ │ clz r1, r1 │ │ │ │ │ - lsrs r1, r1, #5 │ │ │ │ │ + mov.w r1, r1, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_md5int │ │ │ │ │ ldr r1, [r5, #4] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_md5 │ │ │ │ │ ldr r1, [r5, #8] │ │ │ │ │ @@ -146,101 +157,118 @@ │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_md5int │ │ │ │ │ ldr r1, [r5, #24] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_md5int │ │ │ │ │ - add r1, sp, #4 │ │ │ │ │ ldr r0, [r5, #28] │ │ │ │ │ + add r1, sp, #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #4] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_md5int │ │ │ │ │ add sp, #12 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ - .word 0x00000048 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + nop │ │ │ │ │ + .word 0x00000056 │ │ │ │ │ R_ARM_REL32 .LC3 │ │ │ │ │ │ │ │ │ │ -00000144 : │ │ │ │ │ +0000018c : │ │ │ │ │ fftw_mpi_mkproblem_rdft2(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - mov r7, r1 │ │ │ │ │ - ldr r1, [pc, #72] @ (194 ) │ │ │ │ │ - sub sp, #12 │ │ │ │ │ - mov r8, r0 │ │ │ │ │ - add r1, pc │ │ │ │ │ - movs r0, #32 │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r5, r3 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + mov r7, r1 │ │ │ │ │ + mov r8, r0 │ │ │ │ │ + ldr r1, [pc, #88] @ (1fc ) │ │ │ │ │ + mov.w r0, #32 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ + sub sp, #12 │ │ │ │ │ ldr.w r9, [sp, #40] @ 0x28 │ │ │ │ │ + add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkproblem │ │ │ │ │ - add r1, sp, #4 │ │ │ │ │ mov r4, r0 │ │ │ │ │ + add r1, sp, #4 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_canonical │ │ │ │ │ ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ - str r3, [r4, #20] │ │ │ │ │ add.w r1, r4, #28 │ │ │ │ │ - ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ strd r0, r7, [r4, #4] │ │ │ │ │ mov r0, r9 │ │ │ │ │ strd r6, r5, [r4, #12] │ │ │ │ │ + str r3, [r4, #20] │ │ │ │ │ + ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ str r3, [r4, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_dup │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, #12 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ - .word 0x00000040 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + nop │ │ │ │ │ + .word 0x00000048 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -00000198 : │ │ │ │ │ +00000200 : │ │ │ │ │ fftw_mpi_mkproblem_rdft2_d(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - mov r8, r1 │ │ │ │ │ - ldr r1, [pc, #80] @ (1f0 ) │ │ │ │ │ - sub sp, #12 │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r0 │ │ │ │ │ - add r1, pc │ │ │ │ │ - movs r0, #32 │ │ │ │ │ + mov.w r0, #32 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + mov r8, r1 │ │ │ │ │ mov r7, r2 │ │ │ │ │ + ldr r1, [pc, #92] @ (274 ) │ │ │ │ │ mov r6, r3 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ + sub sp, #12 │ │ │ │ │ ldr.w r9, [sp, #40] @ 0x28 │ │ │ │ │ + add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mkproblem │ │ │ │ │ - add r1, sp, #4 │ │ │ │ │ mov r4, r0 │ │ │ │ │ + add r1, sp, #4 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_canonical │ │ │ │ │ ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ - str r3, [r4, #20] │ │ │ │ │ add.w r1, r4, #28 │ │ │ │ │ - ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ strd r0, r8, [r4, #4] │ │ │ │ │ mov r0, r9 │ │ │ │ │ - str r3, [r4, #24] │ │ │ │ │ strd r7, r6, [r4, #12] │ │ │ │ │ + str r3, [r4, #20] │ │ │ │ │ + ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ + str r3, [r4, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_dup │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftw_mpi_dtensor_destroy │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, #12 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ - nop │ │ │ │ │ - .word 0x00000048 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + .word 0x0000004c │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ ├── rdft2-solve.o │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,10 +1,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftw_mpi_rdft2_solve(): │ │ │ │ │ - ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ ldrd r1, r2, [r1, #12] │ │ │ │ │ + ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ bx r3 │ │ ├── ./usr/lib/arm-linux-gnueabihf/libfftw3f_mpi.a │ │ │ ├── nm -s {} │ │ │ │ @@ -134,112 +134,112 @@ │ │ │ │ 00000008 r .LC1 │ │ │ │ U MPI_Allreduce │ │ │ │ U MPI_Bcast │ │ │ │ U MPI_Comm_rank │ │ │ │ U MPI_Comm_size │ │ │ │ U __aeabi_idiv │ │ │ │ 00000000 t bogosity_hook │ │ │ │ -00000148 t cost_hook │ │ │ │ -00000bf4 t default_sz │ │ │ │ -00000248 t default_sz.constprop.0 │ │ │ │ -00000654 t default_sz.constprop.1 │ │ │ │ -000009d8 t default_sz.constprop.2 │ │ │ │ +0000017c t cost_hook │ │ │ │ +00000dbc t default_sz │ │ │ │ +000002a8 t default_sz.constprop.0 │ │ │ │ +00000748 t default_sz.constprop.1 │ │ │ │ +00000b50 t default_sz.constprop.2 │ │ │ │ U fftwf_assertion_failed │ │ │ │ U fftwf_cleanup │ │ │ │ U fftwf_execute_r2r │ │ │ │ U fftwf_ifree │ │ │ │ U fftwf_ifree0 │ │ │ │ U fftwf_imax │ │ │ │ U fftwf_is_prime │ │ │ │ U fftwf_malloc_plain │ │ │ │ U fftwf_map_r2r_kind │ │ │ │ U fftwf_mkapiplan │ │ │ │ U fftwf_mpi_any_true │ │ │ │ U fftwf_mpi_block │ │ │ │ U fftwf_mpi_block_coords │ │ │ │ U fftwf_mpi_choose_radix │ │ │ │ -00001604 T fftwf_mpi_cleanup │ │ │ │ +00001960 T fftwf_mpi_cleanup │ │ │ │ U fftwf_mpi_conf_standard │ │ │ │ U fftwf_mpi_default_block │ │ │ │ U fftwf_mpi_dtensor_canonical │ │ │ │ U fftwf_mpi_dtensor_destroy │ │ │ │ -00002854 T fftwf_mpi_execute_dft │ │ │ │ -0000285c T fftwf_mpi_execute_dft_c2r │ │ │ │ -00002858 T fftwf_mpi_execute_dft_r2c │ │ │ │ -00002860 T fftwf_mpi_execute_r2r │ │ │ │ -000015bc T fftwf_mpi_init │ │ │ │ +00002ebc T fftwf_mpi_execute_dft │ │ │ │ +00002ec4 T fftwf_mpi_execute_dft_c2r │ │ │ │ +00002ec0 T fftwf_mpi_execute_dft_r2c │ │ │ │ +00002ec8 T fftwf_mpi_execute_r2r │ │ │ │ +00001914 T fftwf_mpi_init │ │ │ │ U fftwf_mpi_is_block1d │ │ │ │ -000016f8 T fftwf_mpi_local_size │ │ │ │ -00001764 T fftwf_mpi_local_size_1d │ │ │ │ -000017b8 T fftwf_mpi_local_size_2d │ │ │ │ -00001794 T fftwf_mpi_local_size_2d_transposed │ │ │ │ -00001800 T fftwf_mpi_local_size_3d │ │ │ │ -000017d8 T fftwf_mpi_local_size_3d_transposed │ │ │ │ -00001618 T fftwf_mpi_local_size_guru │ │ │ │ -00000e14 t fftwf_mpi_local_size_guru.part.0 │ │ │ │ -00000a80 t fftwf_mpi_local_size_guru.part.0.constprop.0 │ │ │ │ -0000167c T fftwf_mpi_local_size_many │ │ │ │ -00001738 T fftwf_mpi_local_size_many_1d │ │ │ │ -00001644 T fftwf_mpi_local_size_many_transposed │ │ │ │ -00001178 t fftwf_mpi_local_size_many_transposed.part.0 │ │ │ │ -000003f0 t fftwf_mpi_local_size_many_transposed.part.0.constprop.0 │ │ │ │ -00000770 t fftwf_mpi_local_size_many_transposed.part.0.constprop.1 │ │ │ │ -000016bc T fftwf_mpi_local_size_transposed │ │ │ │ +00001ac0 T fftwf_mpi_local_size │ │ │ │ +00001b4c T fftwf_mpi_local_size_1d │ │ │ │ +00001ba8 T fftwf_mpi_local_size_2d │ │ │ │ +00001b80 T fftwf_mpi_local_size_2d_transposed │ │ │ │ +00001bf8 T fftwf_mpi_local_size_3d │ │ │ │ +00001bcc T fftwf_mpi_local_size_3d_transposed │ │ │ │ +00001978 T fftwf_mpi_local_size_guru │ │ │ │ +00001040 t fftwf_mpi_local_size_guru.part.0 │ │ │ │ +00000c20 t fftwf_mpi_local_size_guru.part.0.constprop.0 │ │ │ │ +00001a24 T fftwf_mpi_local_size_many │ │ │ │ +00001b1c T fftwf_mpi_local_size_many_1d │ │ │ │ +000019c0 T fftwf_mpi_local_size_many_transposed │ │ │ │ +00001418 t fftwf_mpi_local_size_many_transposed.part.0 │ │ │ │ +0000047c t fftwf_mpi_local_size_many_transposed.part.0.constprop.0 │ │ │ │ +0000088c t fftwf_mpi_local_size_many_transposed.part.0.constprop.1 │ │ │ │ +00001a7c T fftwf_mpi_local_size_transposed │ │ │ │ U fftwf_mpi_mkdtensor │ │ │ │ U fftwf_mpi_mkproblem_dft_d │ │ │ │ U fftwf_mpi_mkproblem_rdft2_d │ │ │ │ U fftwf_mpi_mkproblem_rdft_d │ │ │ │ U fftwf_mpi_mkproblem_transpose │ │ │ │ U fftwf_mpi_num_blocks │ │ │ │ U fftwf_mpi_num_blocks_total │ │ │ │ -00001b88 T fftwf_mpi_plan_dft │ │ │ │ -00001c20 T fftwf_mpi_plan_dft_1d │ │ │ │ -00001d14 T fftwf_mpi_plan_dft_2d │ │ │ │ -00001e34 T fftwf_mpi_plan_dft_3d │ │ │ │ -000026e0 T fftwf_mpi_plan_dft_c2r │ │ │ │ -00002778 T fftwf_mpi_plan_dft_c2r_2d │ │ │ │ -000027e4 T fftwf_mpi_plan_dft_c2r_3d │ │ │ │ -00002574 T fftwf_mpi_plan_dft_r2c │ │ │ │ -0000260c T fftwf_mpi_plan_dft_r2c_2d │ │ │ │ -00002674 T fftwf_mpi_plan_dft_r2c_3d │ │ │ │ -000019f8 T fftwf_mpi_plan_guru_dft │ │ │ │ -00001f74 T fftwf_mpi_plan_guru_r2r │ │ │ │ -00001af0 T fftwf_mpi_plan_many_dft │ │ │ │ -000024dc T fftwf_mpi_plan_many_dft_c2r │ │ │ │ -00002444 T fftwf_mpi_plan_many_dft_r2c │ │ │ │ -00002080 T fftwf_mpi_plan_many_r2r │ │ │ │ -00001828 T fftwf_mpi_plan_many_transpose │ │ │ │ -00002118 T fftwf_mpi_plan_r2r │ │ │ │ -000021b0 T fftwf_mpi_plan_r2r_2d │ │ │ │ -000022e8 T fftwf_mpi_plan_r2r_3d │ │ │ │ -00001928 T fftwf_mpi_plan_transpose │ │ │ │ +00001ff0 T fftwf_mpi_plan_dft │ │ │ │ +000020ac T fftwf_mpi_plan_dft_1d │ │ │ │ +000021bc T fftwf_mpi_plan_dft_2d │ │ │ │ +000022fc T fftwf_mpi_plan_dft_3d │ │ │ │ +00002cec T fftwf_mpi_plan_dft_c2r │ │ │ │ +00002da8 T fftwf_mpi_plan_dft_c2r_2d │ │ │ │ +00002e30 T fftwf_mpi_plan_dft_c2r_3d │ │ │ │ +00002b28 T fftwf_mpi_plan_dft_r2c │ │ │ │ +00002be4 T fftwf_mpi_plan_dft_r2c_2d │ │ │ │ +00002c64 T fftwf_mpi_plan_dft_r2c_3d │ │ │ │ +00001e2c T fftwf_mpi_plan_guru_dft │ │ │ │ +00002458 T fftwf_mpi_plan_guru_r2r │ │ │ │ +00001f40 T fftwf_mpi_plan_many_dft │ │ │ │ +00002a74 T fftwf_mpi_plan_many_dft_c2r │ │ │ │ +000029c0 T fftwf_mpi_plan_many_dft_r2c │ │ │ │ +00002580 T fftwf_mpi_plan_many_r2r │ │ │ │ +00001c20 T fftwf_mpi_plan_many_transpose │ │ │ │ +00002630 T fftwf_mpi_plan_r2r │ │ │ │ +000026ec T fftwf_mpi_plan_r2r_2d │ │ │ │ +00002844 T fftwf_mpi_plan_r2r_3d │ │ │ │ +00001d3c T fftwf_mpi_plan_transpose │ │ │ │ U fftwf_the_planner │ │ │ │ -000001b4 t local_size │ │ │ │ +000001f0 t local_size │ │ │ │ 00000000 b mpi_inited │ │ │ │ -00000040 t nowisdom_hook │ │ │ │ -00001490 t plan_guru_rdft2 │ │ │ │ -0000128c t plan_guru_rdft2.constprop.0 │ │ │ │ -00001398 t plan_guru_rdft2.constprop.1 │ │ │ │ -00000070 t wisdom_ok_hook │ │ │ │ +00000048 t nowisdom_hook │ │ │ │ +000017b8 t plan_guru_rdft2 │ │ │ │ +00001558 t plan_guru_rdft2.constprop.0 │ │ │ │ +00001690 t plan_guru_rdft2.constprop.1 │ │ │ │ +0000007c t wisdom_ok_hook │ │ │ │ │ │ │ │ block.o: │ │ │ │ U MPI_Comm_size │ │ │ │ U __aeabi_idiv │ │ │ │ U __aeabi_idivmod │ │ │ │ -00000040 T fftwf_mpi_block │ │ │ │ -000000f4 T fftwf_mpi_block_coords │ │ │ │ -00000034 T fftwf_mpi_default_block │ │ │ │ -000000a0 T fftwf_mpi_idle_process │ │ │ │ -000002e4 T fftwf_mpi_is_block1d │ │ │ │ -0000029c T fftwf_mpi_is_local │ │ │ │ -00000248 T fftwf_mpi_is_local_after │ │ │ │ +0000005c T fftwf_mpi_block │ │ │ │ +0000015c T fftwf_mpi_block_coords │ │ │ │ +0000004c T fftwf_mpi_default_block │ │ │ │ +000000e0 T fftwf_mpi_idle_process │ │ │ │ +000003f4 T fftwf_mpi_is_block1d │ │ │ │ +00000380 T fftwf_mpi_is_local │ │ │ │ +00000304 T fftwf_mpi_is_local_after │ │ │ │ 00000000 T fftwf_mpi_num_blocks │ │ │ │ -0000000c T fftwf_mpi_num_blocks_ok │ │ │ │ -00000054 T fftwf_mpi_num_blocks_total │ │ │ │ -00000138 T fftwf_mpi_total_block │ │ │ │ +00000010 T fftwf_mpi_num_blocks_ok │ │ │ │ +00000074 T fftwf_mpi_num_blocks_total │ │ │ │ +000001bc T fftwf_mpi_total_block │ │ │ │ │ │ │ │ choose-radix.o: │ │ │ │ U __aeabi_idiv │ │ │ │ U __aeabi_idivmod │ │ │ │ U fftwf_isqrt │ │ │ │ 00000000 T fftwf_mpi_choose_radix │ │ │ │ U fftwf_mpi_default_block │ │ │ │ @@ -271,28 +271,28 @@ │ │ │ │ 0000000c r .LC3 │ │ │ │ 0000001c r .LC4 │ │ │ │ 00000020 r .LC5 │ │ │ │ U fftwf_ifree │ │ │ │ U fftwf_malloc_plain │ │ │ │ U fftwf_md5INT │ │ │ │ U fftwf_md5int │ │ │ │ -000000bc T fftwf_mpi_dtensor_canonical │ │ │ │ -00000070 T fftwf_mpi_dtensor_copy │ │ │ │ -00000028 T fftwf_mpi_dtensor_destroy │ │ │ │ -0000002c T fftwf_mpi_dtensor_md5 │ │ │ │ -00000204 T fftwf_mpi_dtensor_print │ │ │ │ -000001c8 T fftwf_mpi_dtensor_validp │ │ │ │ +00000110 T fftwf_mpi_dtensor_canonical │ │ │ │ +000000a0 T fftwf_mpi_dtensor_copy │ │ │ │ +0000003c T fftwf_mpi_dtensor_destroy │ │ │ │ +00000040 T fftwf_mpi_dtensor_md5 │ │ │ │ +000002a8 T fftwf_mpi_dtensor_print │ │ │ │ +00000260 T fftwf_mpi_dtensor_validp │ │ │ │ 00000000 T fftwf_mpi_mkdtensor │ │ │ │ U fftwf_mpi_num_blocks │ │ │ │ U memmove │ │ │ │ │ │ │ │ rearrange.o: │ │ │ │ U __aeabi_idivmod │ │ │ │ 00000000 T fftwf_mpi_rearrange_applicable │ │ │ │ -000000c8 T fftwf_mpi_rearrange_ny │ │ │ │ +000000f0 T fftwf_mpi_rearrange_ny │ │ │ │ │ │ │ │ wisdom-api.o: │ │ │ │ U MPI_Abort │ │ │ │ U MPI_Bcast │ │ │ │ U MPI_Comm_dup │ │ │ │ U MPI_Comm_free │ │ │ │ U MPI_Comm_rank │ │ │ │ @@ -301,205 +301,205 @@ │ │ │ │ U MPI_Recv │ │ │ │ U MPI_Send │ │ │ │ U fftwf_export_wisdom_to_string │ │ │ │ U fftwf_free │ │ │ │ U fftwf_ifree │ │ │ │ U fftwf_import_wisdom_from_string │ │ │ │ U fftwf_malloc_plain │ │ │ │ -0000010c T fftwf_mpi_broadcast_wisdom │ │ │ │ +00000124 T fftwf_mpi_broadcast_wisdom │ │ │ │ 00000000 T fftwf_mpi_gather_wisdom │ │ │ │ U free │ │ │ │ U strlen │ │ │ │ │ │ │ │ f03-wrap.o: │ │ │ │ U MPI_Comm_f2c │ │ │ │ U fftwf_mpi_broadcast_wisdom │ │ │ │ -00000598 T fftwf_mpi_broadcast_wisdom_f03 │ │ │ │ +000008b8 T fftwf_mpi_broadcast_wisdom_f03 │ │ │ │ U fftwf_mpi_gather_wisdom │ │ │ │ -00000588 T fftwf_mpi_gather_wisdom_f03 │ │ │ │ +000008a4 T fftwf_mpi_gather_wisdom_f03 │ │ │ │ U fftwf_mpi_local_size │ │ │ │ U fftwf_mpi_local_size_1d │ │ │ │ -000000fc T fftwf_mpi_local_size_1d_f03 │ │ │ │ +00000190 T fftwf_mpi_local_size_1d_f03 │ │ │ │ U fftwf_mpi_local_size_2d │ │ │ │ -0000012c T fftwf_mpi_local_size_2d_f03 │ │ │ │ +000001dc T fftwf_mpi_local_size_2d_f03 │ │ │ │ U fftwf_mpi_local_size_2d_transposed │ │ │ │ -00000150 T fftwf_mpi_local_size_2d_transposed_f03 │ │ │ │ +00000214 T fftwf_mpi_local_size_2d_transposed_f03 │ │ │ │ U fftwf_mpi_local_size_3d │ │ │ │ -00000180 T fftwf_mpi_local_size_3d_f03 │ │ │ │ +00000260 T fftwf_mpi_local_size_3d_f03 │ │ │ │ U fftwf_mpi_local_size_3d_transposed │ │ │ │ -000001a8 T fftwf_mpi_local_size_3d_transposed_f03 │ │ │ │ -0000009c T fftwf_mpi_local_size_f03 │ │ │ │ +0000029c T fftwf_mpi_local_size_3d_transposed_f03 │ │ │ │ +000000f8 T fftwf_mpi_local_size_f03 │ │ │ │ U fftwf_mpi_local_size_many │ │ │ │ U fftwf_mpi_local_size_many_1d │ │ │ │ -000000c0 T fftwf_mpi_local_size_many_1d_f03 │ │ │ │ -00000040 T fftwf_mpi_local_size_many_f03 │ │ │ │ +00000130 T fftwf_mpi_local_size_many_1d_f03 │ │ │ │ +00000060 T fftwf_mpi_local_size_many_f03 │ │ │ │ U fftwf_mpi_local_size_many_transposed │ │ │ │ 00000000 T fftwf_mpi_local_size_many_transposed_f03 │ │ │ │ U fftwf_mpi_local_size_transposed │ │ │ │ -0000006c T fftwf_mpi_local_size_transposed_f03 │ │ │ │ +000000ac T fftwf_mpi_local_size_transposed_f03 │ │ │ │ U fftwf_mpi_plan_dft │ │ │ │ U fftwf_mpi_plan_dft_1d │ │ │ │ -000002a8 T fftwf_mpi_plan_dft_1d_f03 │ │ │ │ +00000430 T fftwf_mpi_plan_dft_1d_f03 │ │ │ │ U fftwf_mpi_plan_dft_2d │ │ │ │ -000002d0 T fftwf_mpi_plan_dft_2d_f03 │ │ │ │ +0000046c T fftwf_mpi_plan_dft_2d_f03 │ │ │ │ U fftwf_mpi_plan_dft_3d │ │ │ │ -000002fc T fftwf_mpi_plan_dft_3d_f03 │ │ │ │ +000004b8 T fftwf_mpi_plan_dft_3d_f03 │ │ │ │ U fftwf_mpi_plan_dft_c2r │ │ │ │ U fftwf_mpi_plan_dft_c2r_2d │ │ │ │ -00000530 T fftwf_mpi_plan_dft_c2r_2d_f03 │ │ │ │ +0000081c T fftwf_mpi_plan_dft_c2r_2d_f03 │ │ │ │ U fftwf_mpi_plan_dft_c2r_3d │ │ │ │ -00000558 T fftwf_mpi_plan_dft_c2r_3d_f03 │ │ │ │ -00000508 T fftwf_mpi_plan_dft_c2r_f03 │ │ │ │ -0000027c T fftwf_mpi_plan_dft_f03 │ │ │ │ +00000858 T fftwf_mpi_plan_dft_c2r_3d_f03 │ │ │ │ +000007e0 T fftwf_mpi_plan_dft_c2r_f03 │ │ │ │ +000003e4 T fftwf_mpi_plan_dft_f03 │ │ │ │ U fftwf_mpi_plan_dft_r2c │ │ │ │ U fftwf_mpi_plan_dft_r2c_2d │ │ │ │ -00000474 T fftwf_mpi_plan_dft_r2c_2d_f03 │ │ │ │ +000006f8 T fftwf_mpi_plan_dft_r2c_2d_f03 │ │ │ │ U fftwf_mpi_plan_dft_r2c_3d │ │ │ │ -0000049c T fftwf_mpi_plan_dft_r2c_3d_f03 │ │ │ │ -0000044c T fftwf_mpi_plan_dft_r2c_f03 │ │ │ │ +00000734 T fftwf_mpi_plan_dft_r2c_3d_f03 │ │ │ │ +000006bc T fftwf_mpi_plan_dft_r2c_f03 │ │ │ │ U fftwf_mpi_plan_many_dft │ │ │ │ U fftwf_mpi_plan_many_dft_c2r │ │ │ │ -000004cc T fftwf_mpi_plan_many_dft_c2r_f03 │ │ │ │ -0000023c T fftwf_mpi_plan_many_dft_f03 │ │ │ │ +00000780 T fftwf_mpi_plan_many_dft_c2r_f03 │ │ │ │ +00000384 T fftwf_mpi_plan_many_dft_f03 │ │ │ │ U fftwf_mpi_plan_many_dft_r2c │ │ │ │ -00000410 T fftwf_mpi_plan_many_dft_r2c_f03 │ │ │ │ +0000065c T fftwf_mpi_plan_many_dft_r2c_f03 │ │ │ │ U fftwf_mpi_plan_many_r2r │ │ │ │ -00000330 T fftwf_mpi_plan_many_r2r_f03 │ │ │ │ +00000504 T fftwf_mpi_plan_many_r2r_f03 │ │ │ │ U fftwf_mpi_plan_many_transpose │ │ │ │ -000001d8 T fftwf_mpi_plan_many_transpose_f03 │ │ │ │ +000002e8 T fftwf_mpi_plan_many_transpose_f03 │ │ │ │ U fftwf_mpi_plan_r2r │ │ │ │ U fftwf_mpi_plan_r2r_2d │ │ │ │ -0000039c T fftwf_mpi_plan_r2r_2d_f03 │ │ │ │ +000005b0 T fftwf_mpi_plan_r2r_2d_f03 │ │ │ │ U fftwf_mpi_plan_r2r_3d │ │ │ │ -000003d0 T fftwf_mpi_plan_r2r_3d_f03 │ │ │ │ -00000370 T fftwf_mpi_plan_r2r_f03 │ │ │ │ +000005fc T fftwf_mpi_plan_r2r_3d_f03 │ │ │ │ +00000564 T fftwf_mpi_plan_r2r_f03 │ │ │ │ U fftwf_mpi_plan_transpose │ │ │ │ -00000214 T fftwf_mpi_plan_transpose_f03 │ │ │ │ +00000348 T fftwf_mpi_plan_transpose_f03 │ │ │ │ │ │ │ │ transpose-alltoall.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ 00000004 r .LC1 │ │ │ │ 00000008 r .LC2 │ │ │ │ U MPI_Alltoall │ │ │ │ U MPI_Alltoallv │ │ │ │ U MPI_Comm_dup │ │ │ │ U MPI_Comm_free │ │ │ │ U MPI_Comm_rank │ │ │ │ U MPI_Comm_size │ │ │ │ -000002f8 t apply │ │ │ │ -00000400 t awake │ │ │ │ -000003d0 t destroy │ │ │ │ +00000344 t apply │ │ │ │ +00000470 t awake │ │ │ │ +0000043c t destroy │ │ │ │ U fftwf_ifree0 │ │ │ │ U fftwf_malloc_plain │ │ │ │ U fftwf_mkplan_f_d │ │ │ │ U fftwf_mkplan_rdft │ │ │ │ U fftwf_mkproblem_rdft_0_d │ │ │ │ U fftwf_mksolver │ │ │ │ U fftwf_mktensor_1d │ │ │ │ U fftwf_mktensor_3d │ │ │ │ U fftwf_mpi_any_true │ │ │ │ U fftwf_mpi_block │ │ │ │ U fftwf_mpi_mkplans_posttranspose │ │ │ │ -00000428 T fftwf_mpi_transpose_alltoall_register │ │ │ │ +000004a4 T fftwf_mpi_transpose_alltoall_register │ │ │ │ U fftwf_mpi_transpose_solve │ │ │ │ U fftwf_ops_add2 │ │ │ │ U fftwf_ops_zero │ │ │ │ U fftwf_plan_awake │ │ │ │ U fftwf_plan_destroy_internal │ │ │ │ U fftwf_solver_register │ │ │ │ -0000003c t mkplan │ │ │ │ +00000040 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ 00000000 t print │ │ │ │ 00000000 d sadt.1 │ │ │ │ │ │ │ │ transpose-pairwise.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ 00000004 r .LC1 │ │ │ │ 00000008 r .LC2 │ │ │ │ U MPI_Comm_dup │ │ │ │ U MPI_Comm_free │ │ │ │ U MPI_Comm_rank │ │ │ │ U MPI_Comm_size │ │ │ │ U MPI_Sendrecv │ │ │ │ U __aeabi_idivmod │ │ │ │ -00000320 t apply │ │ │ │ -00000408 t awake │ │ │ │ -000003d4 t destroy │ │ │ │ +00000394 t apply │ │ │ │ +000004a8 t awake │ │ │ │ +00000470 t destroy │ │ │ │ U fftwf_ifree │ │ │ │ U fftwf_ifree0 │ │ │ │ U fftwf_imax │ │ │ │ U fftwf_malloc_plain │ │ │ │ U fftwf_mkplan_f_d │ │ │ │ U fftwf_mkplan_rdft │ │ │ │ U fftwf_mkproblem_rdft_0_d │ │ │ │ U fftwf_mksolver │ │ │ │ U fftwf_mktensor_2d │ │ │ │ U fftwf_mktensor_3d │ │ │ │ U fftwf_mktensor_4d │ │ │ │ U fftwf_mpi_any_true │ │ │ │ U fftwf_mpi_block │ │ │ │ -00000430 T fftwf_mpi_mkplans_posttranspose │ │ │ │ +000004dc T fftwf_mpi_mkplans_posttranspose │ │ │ │ U fftwf_mpi_num_blocks │ │ │ │ -00000a44 T fftwf_mpi_transpose_pairwise_register │ │ │ │ +00000b74 T fftwf_mpi_transpose_pairwise_register │ │ │ │ U fftwf_mpi_transpose_solve │ │ │ │ U fftwf_ops_add2 │ │ │ │ U fftwf_ops_zero │ │ │ │ U fftwf_plan_awake │ │ │ │ U fftwf_plan_destroy_internal │ │ │ │ U fftwf_solver_register │ │ │ │ 00000040 t fill1_comm_sched │ │ │ │ U memcpy │ │ │ │ U memmove │ │ │ │ -00000658 t mkplan │ │ │ │ +00000730 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ 00000000 t print │ │ │ │ 00000000 d sadt.1 │ │ │ │ -0000017c t transpose_chunks │ │ │ │ +000001b8 t transpose_chunks │ │ │ │ │ │ │ │ transpose-recurse.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ 00000004 r .LC1 │ │ │ │ 00000008 r .LC2 │ │ │ │ 0000003c r .LC3 │ │ │ │ 00000044 r .LC4 │ │ │ │ U MPI_Comm_free │ │ │ │ U MPI_Comm_rank │ │ │ │ U MPI_Comm_size │ │ │ │ U MPI_Comm_split │ │ │ │ U __aeabi_idiv │ │ │ │ U __aeabi_idivmod │ │ │ │ 00000000 t apply │ │ │ │ -000000e4 t awake │ │ │ │ -000000c8 t destroy │ │ │ │ +0000011c t awake │ │ │ │ +000000fc t destroy │ │ │ │ U fftwf_first_divisor │ │ │ │ U fftwf_imax │ │ │ │ U fftwf_isqrt │ │ │ │ U fftwf_mkplan_d │ │ │ │ U fftwf_mkplan_f_d │ │ │ │ U fftwf_mkplan_rdft │ │ │ │ U fftwf_mkproblem_rdft_0_d │ │ │ │ U fftwf_mksolver │ │ │ │ U fftwf_mktensor_3d │ │ │ │ U fftwf_mktensor_4d │ │ │ │ U fftwf_mktensor_5d │ │ │ │ U fftwf_mpi_any_true │ │ │ │ U fftwf_mpi_block │ │ │ │ U fftwf_mpi_mkproblem_transpose │ │ │ │ -000005e4 T fftwf_mpi_transpose_recurse_register │ │ │ │ +00000674 T fftwf_mpi_transpose_recurse_register │ │ │ │ U fftwf_mpi_transpose_solve │ │ │ │ U fftwf_ops_add2 │ │ │ │ U fftwf_plan_awake │ │ │ │ U fftwf_plan_destroy_internal │ │ │ │ U fftwf_solver_register │ │ │ │ U fftwf_toobig │ │ │ │ -00000104 t mkplan │ │ │ │ +00000148 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -00000038 t print │ │ │ │ -00000084 t radix_first │ │ │ │ -000000a0 t radix_sqrt │ │ │ │ +00000048 t print │ │ │ │ +000000a0 t radix_first │ │ │ │ +000000c8 t radix_sqrt │ │ │ │ 00000000 d sadt.1 │ │ │ │ │ │ │ │ transpose-problem.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ 0000002c r .LC1 │ │ │ │ U MPI_Comm_dup │ │ │ │ U MPI_Comm_free │ │ │ │ @@ -509,20 +509,20 @@ │ │ │ │ U fftwf_ialignment_of │ │ │ │ U fftwf_ifree │ │ │ │ U fftwf_md5INT │ │ │ │ U fftwf_md5int │ │ │ │ U fftwf_md5puts │ │ │ │ U fftwf_mkproblem │ │ │ │ U fftwf_mpi_block │ │ │ │ -00000110 T fftwf_mpi_mkproblem_transpose │ │ │ │ -000000ac t hash │ │ │ │ +00000150 T fftwf_mpi_mkproblem_transpose │ │ │ │ +000000d8 t hash │ │ │ │ U memset │ │ │ │ 00000000 d padt │ │ │ │ -00000014 t print │ │ │ │ -00000074 t zero │ │ │ │ +0000001c t print │ │ │ │ +00000090 t zero │ │ │ │ │ │ │ │ transpose-solve.o: │ │ │ │ 00000000 T fftwf_mpi_transpose_solve │ │ │ │ │ │ │ │ dft-serial.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ U MPI_Comm_rank │ │ │ │ @@ -534,16 +534,16 @@ │ │ │ │ U fftwf_mkplan_rdft │ │ │ │ U fftwf_mkproblem_dft_d │ │ │ │ U fftwf_mksolver │ │ │ │ U fftwf_mktensor │ │ │ │ U fftwf_mktensor_0d │ │ │ │ U fftwf_mktensor_1d │ │ │ │ U fftwf_mpi_any_true │ │ │ │ -000001a8 T fftwf_mpi_dft_serial_applicable │ │ │ │ -000001d8 T fftwf_mpi_dft_serial_register │ │ │ │ +000001d0 T fftwf_mpi_dft_serial_applicable │ │ │ │ +00000208 T fftwf_mpi_dft_serial_register │ │ │ │ U fftwf_mpi_dft_solve │ │ │ │ U fftwf_mpi_is_local │ │ │ │ U fftwf_ops_cpy │ │ │ │ U fftwf_plan_awake │ │ │ │ U fftwf_plan_destroy_internal │ │ │ │ U fftwf_solver_register │ │ │ │ 00000054 t mkplan │ │ │ │ @@ -554,151 +554,151 @@ │ │ │ │ dft-rank-geq2.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ 00000004 r .LC1 │ │ │ │ 00000008 r .LC2 │ │ │ │ U MPI_Comm_rank │ │ │ │ U MPI_Comm_size │ │ │ │ 00000000 t apply │ │ │ │ -00000344 t awake │ │ │ │ -00000084 t destroy │ │ │ │ +000003a4 t awake │ │ │ │ +0000009c t destroy │ │ │ │ U fftwf_extract_reim │ │ │ │ U fftwf_mkplan_d │ │ │ │ U fftwf_mkplan_rdft │ │ │ │ U fftwf_mkproblem_dft_d │ │ │ │ U fftwf_mksolver │ │ │ │ U fftwf_mktensor │ │ │ │ U fftwf_mktensor_2d │ │ │ │ U fftwf_mpi_any_true │ │ │ │ U fftwf_mpi_block │ │ │ │ -0000035c T fftwf_mpi_dft_rank_geq2_register │ │ │ │ +000003c8 T fftwf_mpi_dft_rank_geq2_register │ │ │ │ U fftwf_mpi_dft_serial_applicable │ │ │ │ U fftwf_mpi_dft_solve │ │ │ │ U fftwf_mpi_is_local_after │ │ │ │ U fftwf_mpi_mkdtensor │ │ │ │ U fftwf_mpi_mkproblem_dft_d │ │ │ │ U fftwf_ops_add │ │ │ │ U fftwf_plan_awake │ │ │ │ U fftwf_plan_destroy_internal │ │ │ │ U fftwf_solver_register │ │ │ │ U fftwf_tensor_sz │ │ │ │ -00000098 t mkplan │ │ │ │ +000000b4 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -0000004c t print │ │ │ │ +00000064 t print │ │ │ │ 00000000 d sadt.1 │ │ │ │ │ │ │ │ dft-rank-geq2-transposed.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ 00000004 r .LC1 │ │ │ │ 00000008 r .LC2 │ │ │ │ U MPI_Comm_rank │ │ │ │ U MPI_Comm_size │ │ │ │ 00000000 t apply │ │ │ │ -00000410 t awake │ │ │ │ -00000098 t destroy │ │ │ │ +00000484 t awake │ │ │ │ +000000b4 t destroy │ │ │ │ U fftwf_extract_reim │ │ │ │ U fftwf_mkplan_d │ │ │ │ U fftwf_mkplan_rdft │ │ │ │ U fftwf_mkproblem_dft_d │ │ │ │ U fftwf_mksolver │ │ │ │ U fftwf_mktensor │ │ │ │ U fftwf_mktensor_1d │ │ │ │ U fftwf_mktensor_2d │ │ │ │ U fftwf_mpi_any_true │ │ │ │ U fftwf_mpi_block │ │ │ │ -00000430 T fftwf_mpi_dft_rank_geq2_transposed_register │ │ │ │ +000004b0 T fftwf_mpi_dft_rank_geq2_transposed_register │ │ │ │ U fftwf_mpi_dft_serial_applicable │ │ │ │ U fftwf_mpi_dft_solve │ │ │ │ U fftwf_mpi_is_local_after │ │ │ │ U fftwf_mpi_mkproblem_transpose │ │ │ │ U fftwf_mpi_num_blocks │ │ │ │ U fftwf_ops_add │ │ │ │ U fftwf_ops_add2 │ │ │ │ U fftwf_plan_awake │ │ │ │ U fftwf_plan_destroy_internal │ │ │ │ U fftwf_solver_register │ │ │ │ -000000b4 t mkplan │ │ │ │ +000000d4 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -0000005c t print │ │ │ │ +00000078 t print │ │ │ │ 00000000 d sadt.1 │ │ │ │ │ │ │ │ dft-rank1.o: │ │ │ │ 00000000 r .LC1 │ │ │ │ 00000008 r .LC2 │ │ │ │ 00000010 r .LC3 │ │ │ │ 00000014 r .LC4 │ │ │ │ 00000018 r .LC5 │ │ │ │ U MPI_Comm_rank │ │ │ │ U MPI_Comm_size │ │ │ │ U __aeabi_idiv │ │ │ │ 00000000 t apply_ddft_first │ │ │ │ -000005f0 t apply_ddft_last │ │ │ │ -000005b4 t awake │ │ │ │ -000001b0 t destroy │ │ │ │ +000006b4 t apply_ddft_last │ │ │ │ +00000664 t awake │ │ │ │ +00000204 t destroy │ │ │ │ U fftwf_extract_reim │ │ │ │ U fftwf_mkplan_d │ │ │ │ U fftwf_mkplan_rdft │ │ │ │ U fftwf_mkproblem_dft_d │ │ │ │ U fftwf_mksolver │ │ │ │ U fftwf_mktensor_1d │ │ │ │ U fftwf_mktriggen │ │ │ │ U fftwf_mpi_any_true │ │ │ │ U fftwf_mpi_block │ │ │ │ U fftwf_mpi_choose_radix │ │ │ │ -00000724 T fftwf_mpi_dft_rank1_register │ │ │ │ +0000081c T fftwf_mpi_dft_rank1_register │ │ │ │ U fftwf_mpi_dft_serial_applicable │ │ │ │ U fftwf_mpi_dft_solve │ │ │ │ U fftwf_mpi_mkdtensor │ │ │ │ U fftwf_mpi_mkproblem_dft_d │ │ │ │ U fftwf_mpi_mkproblem_transpose │ │ │ │ U fftwf_ops_add │ │ │ │ U fftwf_ops_add2 │ │ │ │ U fftwf_plan_awake │ │ │ │ U fftwf_plan_destroy_internal │ │ │ │ U fftwf_solver_register │ │ │ │ U fftwf_triggen_destroy │ │ │ │ -000001cc t mkplan │ │ │ │ +00000224 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -00000144 t print │ │ │ │ +00000188 t print │ │ │ │ 00000000 d sadt.1 │ │ │ │ │ │ │ │ dft-rank1-bigvec.o: │ │ │ │ 00000000 r .LC1 │ │ │ │ 00000004 r .LC2 │ │ │ │ 00000008 r .LC3 │ │ │ │ U MPI_Comm_rank │ │ │ │ U MPI_Comm_size │ │ │ │ U __aeabi_idiv │ │ │ │ 00000000 t apply │ │ │ │ -00000318 t awake │ │ │ │ -0000009c t destroy │ │ │ │ +00000380 t awake │ │ │ │ +000000c0 t destroy │ │ │ │ U fftwf_extract_reim │ │ │ │ U fftwf_mkplan_d │ │ │ │ U fftwf_mkplan_rdft │ │ │ │ U fftwf_mkproblem_dft_d │ │ │ │ U fftwf_mksolver │ │ │ │ U fftwf_mktensor_1d │ │ │ │ U fftwf_mktensor_2d │ │ │ │ U fftwf_mpi_any_true │ │ │ │ U fftwf_mpi_block │ │ │ │ U fftwf_mpi_default_block │ │ │ │ -00000338 T fftwf_mpi_dft_rank1_bigvec_register │ │ │ │ +000003ac T fftwf_mpi_dft_rank1_bigvec_register │ │ │ │ U fftwf_mpi_dft_serial_applicable │ │ │ │ U fftwf_mpi_dft_solve │ │ │ │ U fftwf_mpi_mkproblem_transpose │ │ │ │ U fftwf_mpi_rearrange_applicable │ │ │ │ U fftwf_mpi_rearrange_ny │ │ │ │ U fftwf_ops_add │ │ │ │ U fftwf_ops_add2 │ │ │ │ U fftwf_plan_awake │ │ │ │ U fftwf_plan_destroy_internal │ │ │ │ U fftwf_solver_register │ │ │ │ U memcpy │ │ │ │ -000000b8 t mkplan │ │ │ │ +000000e0 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -00000044 t print │ │ │ │ +0000005c t print │ │ │ │ 00000000 d sadt.1 │ │ │ │ │ │ │ │ dft-problem.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ 00000014 r .LC1 │ │ │ │ 00000020 r .LC2 │ │ │ │ 00000028 r .LC3 │ │ │ │ @@ -713,22 +713,22 @@ │ │ │ │ U fftwf_md5int │ │ │ │ U fftwf_md5puts │ │ │ │ U fftwf_mkproblem │ │ │ │ U fftwf_mpi_dtensor_canonical │ │ │ │ U fftwf_mpi_dtensor_destroy │ │ │ │ U fftwf_mpi_dtensor_md5 │ │ │ │ U fftwf_mpi_dtensor_print │ │ │ │ -00000120 T fftwf_mpi_mkproblem_dft │ │ │ │ -000001a8 T fftwf_mpi_mkproblem_dft_d │ │ │ │ +00000160 T fftwf_mpi_mkproblem_dft │ │ │ │ +00000210 T fftwf_mpi_mkproblem_dft_d │ │ │ │ U fftwf_mpi_total_block │ │ │ │ -000000c4 t hash │ │ │ │ +000000f0 t hash │ │ │ │ U memset │ │ │ │ 00000000 d padt │ │ │ │ -0000001c t print │ │ │ │ -00000090 t zero │ │ │ │ +00000020 t print │ │ │ │ +000000ac t zero │ │ │ │ │ │ │ │ dft-solve.o: │ │ │ │ 00000000 T fftwf_mpi_dft_solve │ │ │ │ │ │ │ │ rdft-serial.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ U MPI_Comm_rank │ │ │ │ @@ -742,16 +742,16 @@ │ │ │ │ U fftwf_mkproblem_rdft_0_d │ │ │ │ U fftwf_mkproblem_rdft_d │ │ │ │ U fftwf_mksolver │ │ │ │ U fftwf_mktensor │ │ │ │ U fftwf_mktensor_1d │ │ │ │ U fftwf_mpi_any_true │ │ │ │ U fftwf_mpi_is_local │ │ │ │ -000001c0 T fftwf_mpi_rdft_serial_applicable │ │ │ │ -000001f0 T fftwf_mpi_rdft_serial_register │ │ │ │ +000001ec T fftwf_mpi_rdft_serial_applicable │ │ │ │ +00000224 T fftwf_mpi_rdft_serial_register │ │ │ │ U fftwf_mpi_rdft_solve │ │ │ │ U fftwf_ops_cpy │ │ │ │ U fftwf_plan_awake │ │ │ │ U fftwf_plan_destroy_internal │ │ │ │ U fftwf_solver_register │ │ │ │ 0000002c t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ @@ -761,109 +761,109 @@ │ │ │ │ rdft-rank-geq2.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ 00000004 r .LC1 │ │ │ │ 00000008 r .LC2 │ │ │ │ U MPI_Comm_rank │ │ │ │ U MPI_Comm_size │ │ │ │ 00000000 t apply │ │ │ │ -000002f8 t awake │ │ │ │ -00000064 t destroy │ │ │ │ +0000034c t awake │ │ │ │ +00000074 t destroy │ │ │ │ U fftwf_mkplan_d │ │ │ │ U fftwf_mkplan_rdft │ │ │ │ U fftwf_mkproblem_rdft_d │ │ │ │ U fftwf_mksolver │ │ │ │ U fftwf_mktensor │ │ │ │ U fftwf_mktensor_2d │ │ │ │ U fftwf_mpi_any_true │ │ │ │ U fftwf_mpi_block │ │ │ │ U fftwf_mpi_is_local_after │ │ │ │ U fftwf_mpi_mkdtensor │ │ │ │ U fftwf_mpi_mkproblem_rdft_d │ │ │ │ -00000310 T fftwf_mpi_rdft_rank_geq2_register │ │ │ │ +00000370 T fftwf_mpi_rdft_rank_geq2_register │ │ │ │ U fftwf_mpi_rdft_serial_applicable │ │ │ │ U fftwf_mpi_rdft_solve │ │ │ │ U fftwf_ops_add │ │ │ │ U fftwf_plan_awake │ │ │ │ U fftwf_plan_destroy_internal │ │ │ │ U fftwf_solver_register │ │ │ │ U fftwf_tensor_sz │ │ │ │ -00000078 t mkplan │ │ │ │ +0000008c t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -0000002c t print │ │ │ │ +0000003c t print │ │ │ │ 00000000 d sadt.1 │ │ │ │ │ │ │ │ rdft-rank-geq2-transposed.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ 00000004 r .LC1 │ │ │ │ 00000008 r .LC2 │ │ │ │ U MPI_Comm_rank │ │ │ │ U MPI_Comm_size │ │ │ │ 00000000 t apply │ │ │ │ -00000398 t awake │ │ │ │ -00000070 t destroy │ │ │ │ +000003f4 t awake │ │ │ │ +00000084 t destroy │ │ │ │ U fftwf_mkplan_d │ │ │ │ U fftwf_mkplan_rdft │ │ │ │ U fftwf_mkproblem_rdft_1_d │ │ │ │ U fftwf_mkproblem_rdft_d │ │ │ │ U fftwf_mksolver │ │ │ │ U fftwf_mktensor │ │ │ │ U fftwf_mktensor_1d │ │ │ │ U fftwf_mktensor_2d │ │ │ │ U fftwf_mpi_any_true │ │ │ │ U fftwf_mpi_block │ │ │ │ U fftwf_mpi_is_local_after │ │ │ │ U fftwf_mpi_mkproblem_transpose │ │ │ │ U fftwf_mpi_num_blocks │ │ │ │ -000003b8 T fftwf_mpi_rdft_rank_geq2_transposed_register │ │ │ │ +00000420 T fftwf_mpi_rdft_rank_geq2_transposed_register │ │ │ │ U fftwf_mpi_rdft_serial_applicable │ │ │ │ U fftwf_mpi_rdft_solve │ │ │ │ U fftwf_ops_add │ │ │ │ U fftwf_ops_add2 │ │ │ │ U fftwf_plan_awake │ │ │ │ U fftwf_plan_destroy_internal │ │ │ │ U fftwf_solver_register │ │ │ │ -0000008c t mkplan │ │ │ │ +000000a4 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -00000034 t print │ │ │ │ +00000048 t print │ │ │ │ 00000000 d sadt.1 │ │ │ │ │ │ │ │ rdft-rank1-bigvec.o: │ │ │ │ 00000000 r .LC1 │ │ │ │ 00000004 r .LC2 │ │ │ │ 00000008 r .LC3 │ │ │ │ U MPI_Comm_rank │ │ │ │ U MPI_Comm_size │ │ │ │ U __aeabi_idiv │ │ │ │ 00000000 t apply │ │ │ │ -000002b4 t awake │ │ │ │ -00000088 t destroy │ │ │ │ +00000308 t awake │ │ │ │ +000000a0 t destroy │ │ │ │ U fftwf_mkplan_d │ │ │ │ U fftwf_mkplan_rdft │ │ │ │ U fftwf_mkproblem_rdft_1_d │ │ │ │ U fftwf_mksolver │ │ │ │ U fftwf_mktensor_1d │ │ │ │ U fftwf_mktensor_2d │ │ │ │ U fftwf_mpi_any_true │ │ │ │ U fftwf_mpi_block │ │ │ │ U fftwf_mpi_default_block │ │ │ │ U fftwf_mpi_mkproblem_transpose │ │ │ │ -000002d4 T fftwf_mpi_rdft_rank1_bigvec_register │ │ │ │ +00000334 T fftwf_mpi_rdft_rank1_bigvec_register │ │ │ │ U fftwf_mpi_rdft_serial_applicable │ │ │ │ U fftwf_mpi_rdft_solve │ │ │ │ U fftwf_mpi_rearrange_applicable │ │ │ │ U fftwf_mpi_rearrange_ny │ │ │ │ U fftwf_ops_add │ │ │ │ U fftwf_ops_add2 │ │ │ │ U fftwf_plan_awake │ │ │ │ U fftwf_plan_destroy_internal │ │ │ │ U fftwf_solver_register │ │ │ │ U memcpy │ │ │ │ -000000a4 t mkplan │ │ │ │ +000000c0 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -00000030 t print │ │ │ │ +0000003c t print │ │ │ │ 00000000 d sadt.1 │ │ │ │ │ │ │ │ rdft-problem.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ 00000014 r .LC1 │ │ │ │ 00000018 r .LC2 │ │ │ │ 00000020 r .LC3 │ │ │ │ @@ -879,122 +879,122 @@ │ │ │ │ U fftwf_md5int │ │ │ │ U fftwf_md5puts │ │ │ │ U fftwf_mkproblem │ │ │ │ U fftwf_mpi_dtensor_canonical │ │ │ │ U fftwf_mpi_dtensor_destroy │ │ │ │ U fftwf_mpi_dtensor_md5 │ │ │ │ U fftwf_mpi_dtensor_print │ │ │ │ -0000016c T fftwf_mpi_mkproblem_rdft │ │ │ │ -0000027c T fftwf_mpi_mkproblem_rdft_d │ │ │ │ +000001b0 T fftwf_mpi_mkproblem_rdft │ │ │ │ +000002ec T fftwf_mpi_mkproblem_rdft_d │ │ │ │ U fftwf_mpi_total_block │ │ │ │ -000000f0 t hash │ │ │ │ +00000120 t hash │ │ │ │ U memset │ │ │ │ 00000000 d padt │ │ │ │ -0000001c t print │ │ │ │ -000000bc t zero │ │ │ │ +00000020 t print │ │ │ │ +000000dc t zero │ │ │ │ │ │ │ │ rdft-solve.o: │ │ │ │ 00000000 T fftwf_mpi_rdft_solve │ │ │ │ │ │ │ │ rdft2-serial.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ U MPI_Comm_rank │ │ │ │ -0000001c t apply_c2r │ │ │ │ +00000020 t apply_c2r │ │ │ │ 00000000 t apply_r2c │ │ │ │ -00000054 t awake │ │ │ │ -0000004c t destroy │ │ │ │ +0000005c t awake │ │ │ │ +00000054 t destroy │ │ │ │ U fftwf_mkplan_d │ │ │ │ U fftwf_mkplan_rdft │ │ │ │ U fftwf_mkproblem_rdft2_d │ │ │ │ U fftwf_mksolver │ │ │ │ U fftwf_mktensor │ │ │ │ U fftwf_mktensor_0d │ │ │ │ U fftwf_mktensor_1d │ │ │ │ U fftwf_mpi_any_true │ │ │ │ U fftwf_mpi_is_local │ │ │ │ -00000208 T fftwf_mpi_rdft2_serial_applicable │ │ │ │ -00000238 T fftwf_mpi_rdft2_serial_register │ │ │ │ +00000250 T fftwf_mpi_rdft2_serial_applicable │ │ │ │ +00000288 T fftwf_mpi_rdft2_serial_register │ │ │ │ U fftwf_mpi_rdft2_solve │ │ │ │ U fftwf_ops_cpy │ │ │ │ U fftwf_plan_awake │ │ │ │ U fftwf_plan_destroy_internal │ │ │ │ U fftwf_solver_register │ │ │ │ -0000005c t mkplan │ │ │ │ +00000064 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -00000038 t print │ │ │ │ +00000040 t print │ │ │ │ 00000000 d sadt.1 │ │ │ │ │ │ │ │ rdft2-rank-geq2.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ 00000004 r .LC1 │ │ │ │ 00000008 r .LC2 │ │ │ │ U MPI_Comm_rank │ │ │ │ U MPI_Comm_size │ │ │ │ -0000003c t apply_c2r │ │ │ │ +00000054 t apply_c2r │ │ │ │ 00000000 t apply_r2c │ │ │ │ -000003e0 t awake │ │ │ │ -0000009c t destroy │ │ │ │ +00000450 t awake │ │ │ │ +000000c4 t destroy │ │ │ │ U fftwf_mkplan_d │ │ │ │ U fftwf_mkplan_rdft │ │ │ │ U fftwf_mkproblem_rdft2_d │ │ │ │ U fftwf_mksolver │ │ │ │ U fftwf_mktensor │ │ │ │ U fftwf_mktensor_2d │ │ │ │ U fftwf_mpi_any_true │ │ │ │ U fftwf_mpi_block │ │ │ │ U fftwf_mpi_is_local_after │ │ │ │ U fftwf_mpi_mkdtensor │ │ │ │ U fftwf_mpi_mkproblem_dft_d │ │ │ │ -000003f8 T fftwf_mpi_rdft2_rank_geq2_register │ │ │ │ +00000474 T fftwf_mpi_rdft2_rank_geq2_register │ │ │ │ U fftwf_mpi_rdft2_serial_applicable │ │ │ │ U fftwf_mpi_rdft2_solve │ │ │ │ U fftwf_ops_add │ │ │ │ U fftwf_plan_awake │ │ │ │ U fftwf_plan_destroy_internal │ │ │ │ U fftwf_solver_register │ │ │ │ U fftwf_tensor_sz │ │ │ │ -000000b0 t mkplan │ │ │ │ +000000dc t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -00000064 t print │ │ │ │ +0000008c t print │ │ │ │ 00000000 d sadt.1 │ │ │ │ │ │ │ │ rdft2-rank-geq2-transposed.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ 00000004 r .LC1 │ │ │ │ 00000008 r .LC2 │ │ │ │ U MPI_Comm_rank │ │ │ │ U MPI_Comm_size │ │ │ │ -00000050 t apply_c2r │ │ │ │ +00000064 t apply_c2r │ │ │ │ 00000000 t apply_r2c │ │ │ │ -000005a0 t awake │ │ │ │ -000000dc t destroy │ │ │ │ +00000654 t awake │ │ │ │ +00000108 t destroy │ │ │ │ U fftwf_mkplan_d │ │ │ │ U fftwf_mkplan_rdft │ │ │ │ U fftwf_mkproblem_dft_d │ │ │ │ U fftwf_mkproblem_rdft2_d │ │ │ │ U fftwf_mksolver │ │ │ │ U fftwf_mktensor │ │ │ │ U fftwf_mktensor_1d │ │ │ │ U fftwf_mktensor_2d │ │ │ │ U fftwf_mpi_any_true │ │ │ │ U fftwf_mpi_block │ │ │ │ U fftwf_mpi_is_local_after │ │ │ │ U fftwf_mpi_mkproblem_transpose │ │ │ │ U fftwf_mpi_num_blocks │ │ │ │ -000005c0 T fftwf_mpi_rdft2_rank_geq2_transposed_register │ │ │ │ +00000680 T fftwf_mpi_rdft2_rank_geq2_transposed_register │ │ │ │ U fftwf_mpi_rdft2_serial_applicable │ │ │ │ U fftwf_mpi_rdft2_solve │ │ │ │ U fftwf_ops_add │ │ │ │ U fftwf_ops_add2 │ │ │ │ U fftwf_plan_awake │ │ │ │ U fftwf_plan_destroy_internal │ │ │ │ U fftwf_solver_register │ │ │ │ -000000f8 t mkplan │ │ │ │ +00000128 t mkplan │ │ │ │ 00000000 d padt.0 │ │ │ │ -000000a0 t print │ │ │ │ +000000cc t print │ │ │ │ 00000000 d sadt.1 │ │ │ │ │ │ │ │ rdft2-problem.o: │ │ │ │ 00000000 r .LC0 │ │ │ │ 00000018 r .LC1 │ │ │ │ 00000024 r .LC2 │ │ │ │ 0000002c r .LC3 │ │ │ │ @@ -1010,18 +1010,18 @@ │ │ │ │ U fftwf_md5puts │ │ │ │ U fftwf_mkproblem │ │ │ │ U fftwf_mpi_dtensor_canonical │ │ │ │ U fftwf_mpi_dtensor_copy │ │ │ │ U fftwf_mpi_dtensor_destroy │ │ │ │ U fftwf_mpi_dtensor_md5 │ │ │ │ U fftwf_mpi_dtensor_print │ │ │ │ -00000144 T fftwf_mpi_mkproblem_rdft2 │ │ │ │ -00000198 T fftwf_mpi_mkproblem_rdft2_d │ │ │ │ +0000018c T fftwf_mpi_mkproblem_rdft2 │ │ │ │ +00000200 T fftwf_mpi_mkproblem_rdft2_d │ │ │ │ U fftwf_mpi_total_block │ │ │ │ -000000e8 t hash │ │ │ │ +0000011c t hash │ │ │ │ U memset │ │ │ │ 00000000 d padt │ │ │ │ -0000001c t print │ │ │ │ -00000090 t zero │ │ │ │ +00000020 t print │ │ │ │ +000000ac t zero │ │ │ │ │ │ │ │ rdft2-solve.o: │ │ │ │ 00000000 T fftwf_mpi_rdft2_solve │ │ │ ├── file list │ │ │ │ @@ -1,34 +1,34 @@ │ │ │ │ ---------- 0 0 0 3902 1970-01-01 00:00:00.000000 / │ │ │ │ ---------- 0 0 0 0 1970-01-01 00:00:00.000000 // │ │ │ │ -?rw-r--r-- 0 0 0 740 1970-01-01 00:00:00.000000 any-true.o │ │ │ │ -?rw-r--r-- 0 0 0 18220 1970-01-01 00:00:00.000000 api.o │ │ │ │ -?rw-r--r-- 0 0 0 2160 1970-01-01 00:00:00.000000 block.o │ │ │ │ -?rw-r--r-- 0 0 0 980 1970-01-01 00:00:00.000000 choose-radix.o │ │ │ │ +?rw-r--r-- 0 0 0 744 1970-01-01 00:00:00.000000 any-true.o │ │ │ │ +?rw-r--r-- 0 0 0 19820 1970-01-01 00:00:00.000000 api.o │ │ │ │ +?rw-r--r-- 0 0 0 2476 1970-01-01 00:00:00.000000 block.o │ │ │ │ +?rw-r--r-- 0 0 0 1000 1970-01-01 00:00:00.000000 choose-radix.o │ │ │ │ ?rw-r--r-- 0 0 0 2708 1970-01-01 00:00:00.000000 conf.o │ │ │ │ -?rw-r--r-- 0 0 0 2200 1970-01-01 00:00:00.000000 dtensor.o │ │ │ │ -?rw-r--r-- 0 0 0 1104 1970-01-01 00:00:00.000000 rearrange.o │ │ │ │ -?rw-r--r-- 0 0 0 1904 1970-01-01 00:00:00.000000 wisdom-api.o │ │ │ │ -?rw-r--r-- 0 0 0 5300 1970-01-01 00:00:00.000000 f03-wrap.o │ │ │ │ -?rw-r--r-- 0 0 0 3748 1970-01-01 00:00:00.000000 transpose-alltoall.o │ │ │ │ -?rw-r--r-- 0 0 0 5844 1970-01-01 00:00:00.000000 transpose-pairwise.o │ │ │ │ -?rw-r--r-- 0 0 0 4660 1970-01-01 00:00:00.000000 transpose-recurse.o │ │ │ │ -?rw-r--r-- 0 0 0 2132 1970-01-01 00:00:00.000000 transpose-problem.o │ │ │ │ +?rw-r--r-- 0 0 0 2404 1970-01-01 00:00:00.000000 dtensor.o │ │ │ │ +?rw-r--r-- 0 0 0 1144 1970-01-01 00:00:00.000000 rearrange.o │ │ │ │ +?rw-r--r-- 0 0 0 1928 1970-01-01 00:00:00.000000 wisdom-api.o │ │ │ │ +?rw-r--r-- 0 0 0 6104 1970-01-01 00:00:00.000000 f03-wrap.o │ │ │ │ +?rw-r--r-- 0 0 0 3892 1970-01-01 00:00:00.000000 transpose-alltoall.o │ │ │ │ +?rw-r--r-- 0 0 0 6168 1970-01-01 00:00:00.000000 transpose-pairwise.o │ │ │ │ +?rw-r--r-- 0 0 0 4832 1970-01-01 00:00:00.000000 transpose-recurse.o │ │ │ │ +?rw-r--r-- 0 0 0 2220 1970-01-01 00:00:00.000000 transpose-problem.o │ │ │ │ ?rw-r--r-- 0 0 0 628 1970-01-01 00:00:00.000000 transpose-solve.o │ │ │ │ -?rw-r--r-- 0 0 0 2644 1970-01-01 00:00:00.000000 dft-serial.o │ │ │ │ -?rw-r--r-- 0 0 0 3364 1970-01-01 00:00:00.000000 dft-rank-geq2.o │ │ │ │ -?rw-r--r-- 0 0 0 3720 1970-01-01 00:00:00.000000 dft-rank-geq2-transposed.o │ │ │ │ -?rw-r--r-- 0 0 0 4772 1970-01-01 00:00:00.000000 dft-rank1.o │ │ │ │ -?rw-r--r-- 0 0 0 3700 1970-01-01 00:00:00.000000 dft-rank1-bigvec.o │ │ │ │ -?rw-r--r-- 0 0 0 2664 1970-01-01 00:00:00.000000 dft-problem.o │ │ │ │ +?rw-r--r-- 0 0 0 2696 1970-01-01 00:00:00.000000 dft-serial.o │ │ │ │ +?rw-r--r-- 0 0 0 3492 1970-01-01 00:00:00.000000 dft-rank-geq2.o │ │ │ │ +?rw-r--r-- 0 0 0 3868 1970-01-01 00:00:00.000000 dft-rank-geq2-transposed.o │ │ │ │ +?rw-r--r-- 0 0 0 5060 1970-01-01 00:00:00.000000 dft-rank1.o │ │ │ │ +?rw-r--r-- 0 0 0 3844 1970-01-01 00:00:00.000000 dft-rank1-bigvec.o │ │ │ │ +?rw-r--r-- 0 0 0 2808 1970-01-01 00:00:00.000000 dft-problem.o │ │ │ │ ?rw-r--r-- 0 0 0 620 1970-01-01 00:00:00.000000 dft-solve.o │ │ │ │ -?rw-r--r-- 0 0 0 2716 1970-01-01 00:00:00.000000 rdft-serial.o │ │ │ │ -?rw-r--r-- 0 0 0 3240 1970-01-01 00:00:00.000000 rdft-rank-geq2.o │ │ │ │ -?rw-r--r-- 0 0 0 3584 1970-01-01 00:00:00.000000 rdft-rank-geq2-transposed.o │ │ │ │ -?rw-r--r-- 0 0 0 3560 1970-01-01 00:00:00.000000 rdft-rank1-bigvec.o │ │ │ │ -?rw-r--r-- 0 0 0 2752 1970-01-01 00:00:00.000000 rdft-problem.o │ │ │ │ +?rw-r--r-- 0 0 0 2772 1970-01-01 00:00:00.000000 rdft-serial.o │ │ │ │ +?rw-r--r-- 0 0 0 3356 1970-01-01 00:00:00.000000 rdft-rank-geq2.o │ │ │ │ +?rw-r--r-- 0 0 0 3708 1970-01-01 00:00:00.000000 rdft-rank-geq2-transposed.o │ │ │ │ +?rw-r--r-- 0 0 0 3684 1970-01-01 00:00:00.000000 rdft-rank1-bigvec.o │ │ │ │ +?rw-r--r-- 0 0 0 2880 1970-01-01 00:00:00.000000 rdft-problem.o │ │ │ │ ?rw-r--r-- 0 0 0 624 1970-01-01 00:00:00.000000 rdft-solve.o │ │ │ │ -?rw-r--r-- 0 0 0 2740 1970-01-01 00:00:00.000000 rdft2-serial.o │ │ │ │ -?rw-r--r-- 0 0 0 3512 1970-01-01 00:00:00.000000 rdft2-rank-geq2.o │ │ │ │ -?rw-r--r-- 0 0 0 4168 1970-01-01 00:00:00.000000 rdft2-rank-geq2-transposed.o │ │ │ │ -?rw-r--r-- 0 0 0 2664 1970-01-01 00:00:00.000000 rdft2-problem.o │ │ │ │ +?rw-r--r-- 0 0 0 2824 1970-01-01 00:00:00.000000 rdft2-serial.o │ │ │ │ +?rw-r--r-- 0 0 0 3656 1970-01-01 00:00:00.000000 rdft2-rank-geq2.o │ │ │ │ +?rw-r--r-- 0 0 0 4380 1970-01-01 00:00:00.000000 rdft2-rank-geq2-transposed.o │ │ │ │ +?rw-r--r-- 0 0 0 2796 1970-01-01 00:00:00.000000 rdft2-problem.o │ │ │ │ ?rw-r--r-- 0 0 0 624 1970-01-01 00:00:00.000000 rdft2-solve.o │ │ │ ├── any-true.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 340 (bytes into file) │ │ │ │ │ + Start of section headers: 344 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 10 │ │ │ │ │ Section header string table index: 9 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,19 +1,19 @@ │ │ │ │ │ -There are 10 section headers, starting at offset 0x154: │ │ │ │ │ +There are 10 section headers, starting at offset 0x158: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 00002c 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0000fc 000008 08 I 7 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000060 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000060 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .note.GNU-stack PROGBITS 00000000 000060 000000 00 0 0 1 │ │ │ │ │ - [ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 000060 000033 00 0 0 1 │ │ │ │ │ - [ 7] .symtab SYMTAB 00000000 000094 000040 10 8 2 4 │ │ │ │ │ - [ 8] .strtab STRTAB 00000000 0000d4 000025 00 0 0 1 │ │ │ │ │ - [ 9] .shstrtab STRTAB 00000000 000104 000050 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000030 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000100 000008 08 I 7 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000064 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000064 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .note.GNU-stack PROGBITS 00000000 000064 000000 00 0 0 1 │ │ │ │ │ + [ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 000064 000033 00 0 0 1 │ │ │ │ │ + [ 7] .symtab SYMTAB 00000000 000098 000040 10 8 2 4 │ │ │ │ │ + [ 8] .strtab STRTAB 00000000 0000d8 000025 00 0 0 1 │ │ │ │ │ + [ 9] .shstrtab STRTAB 00000000 000108 000050 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,7 +1,7 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 4 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ 1: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 2: 00000001 42 FUNC GLOBAL DEFAULT 1 fftwf_mpi_any_true │ │ │ │ │ + 2: 00000001 48 FUNC GLOBAL DEFAULT 1 fftwf_mpi_any_true │ │ │ │ │ 3: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Allreduce │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,4 +1,4 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0xfc contains 1 entry: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x100 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -0000001e 0000030a R_ARM_THM_CALL 00000000 MPI_Allreduce │ │ │ │ │ +00000024 0000030a R_ARM_THM_CALL 00000000 MPI_Allreduce │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,25 +1,23 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftwf_mpi_any_true(): │ │ │ │ │ - push {lr} │ │ │ │ │ - movs r2, #1 │ │ │ │ │ - movs r3, #7 │ │ │ │ │ + mov.w r3, #7 │ │ │ │ │ movt r3, #22528 @ 0x5800 │ │ │ │ │ + str.w lr, [sp, #-4]! │ │ │ │ │ sub sp, #28 │ │ │ │ │ - str r0, [sp, #12] │ │ │ │ │ - add r0, sp, #12 │ │ │ │ │ - str r1, [sp, #4] │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ + strd r3, r1, [sp] │ │ │ │ │ add r1, sp, #20 │ │ │ │ │ - str r3, [sp, #0] │ │ │ │ │ movw r3, #1029 @ 0x405 │ │ │ │ │ movt r3, #19456 @ 0x4c00 │ │ │ │ │ + str r0, [sp, #12] │ │ │ │ │ + add r0, sp, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Allreduce │ │ │ │ │ ldr r0, [sp, #20] │ │ │ │ │ add sp, #28 │ │ │ │ │ ldr.w pc, [sp], #4 │ │ │ │ │ - nop │ │ │ ├── api.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 17780 (bytes into file) │ │ │ │ │ + Start of section headers: 19380 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 11 │ │ │ │ │ Section header string table index: 10 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,20 +1,20 @@ │ │ │ │ │ -There are 11 section headers, starting at offset 0x4574: │ │ │ │ │ +There are 11 section headers, starting at offset 0x4bb4: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 002864 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 00396c 000ba8 08 I 8 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 002898 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 002898 000004 00 WA 0 0 4 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 002898 000036 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .note.GNU-stack PROGBITS 00000000 0028ce 000000 00 0 0 1 │ │ │ │ │ - [ 7] .ARM.attributes ARM_ATTRIBUTES 00000000 0028ce 000033 00 0 0 1 │ │ │ │ │ - [ 8] .symtab SYMTAB 00000000 002904 000870 10 9 65 4 │ │ │ │ │ - [ 9] .strtab STRTAB 00000000 003174 0007f8 00 0 0 1 │ │ │ │ │ - [10] .shstrtab STRTAB 00000000 004514 00005f 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 002ecc 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 003fd4 000b80 08 I 8 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 002f00 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 002f00 000004 00 WA 0 0 4 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 002f00 000036 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .note.GNU-stack PROGBITS 00000000 002f36 000000 00 0 0 1 │ │ │ │ │ + [ 7] .ARM.attributes ARM_ATTRIBUTES 00000000 002f36 000033 00 0 0 1 │ │ │ │ │ + [ 8] .symtab SYMTAB 00000000 002f6c 000870 10 9 65 4 │ │ │ │ │ + [ 9] .strtab STRTAB 00000000 0037dc 0007f8 00 0 0 1 │ │ │ │ │ + [10] .shstrtab STRTAB 00000000 004b54 00005f 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,73 +1,73 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 135 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ 1: 00000000 0 SECTION LOCAL DEFAULT 4 .bss │ │ │ │ │ - 2: 00000001 62 FUNC LOCAL DEFAULT 1 bogosity_hook │ │ │ │ │ + 2: 00000001 70 FUNC LOCAL DEFAULT 1 bogosity_hook │ │ │ │ │ 3: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 4: 00000012 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 5: 00000016 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 6: 00000041 46 FUNC LOCAL DEFAULT 1 nowisdom_hook │ │ │ │ │ - 7: 0000004e 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 8: 00000052 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 9: 00000071 216 FUNC LOCAL DEFAULT 1 wisdom_ok_hook │ │ │ │ │ - 10: 0000008a 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 11: 0000008e 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 12: 00000149 106 FUNC LOCAL DEFAULT 1 cost_hook │ │ │ │ │ - 13: 0000015e 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 14: 00000162 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 15: 000001b5 146 FUNC LOCAL DEFAULT 1 local_size │ │ │ │ │ - 16: 00000249 422 FUNC LOCAL DEFAULT 1 default_sz.constprop.0 │ │ │ │ │ - 17: 000003f1 612 FUNC LOCAL DEFAULT 1 fftwf_mpi_local_size_many_transposed.part.0.constprop.0 │ │ │ │ │ - 18: 00000655 282 FUNC LOCAL DEFAULT 1 default_sz.constprop.1 │ │ │ │ │ - 19: 00000771 614 FUNC LOCAL DEFAULT 1 fftwf_mpi_local_size_many_transposed.part.0.constprop.1 │ │ │ │ │ - 20: 000009d9 166 FUNC LOCAL DEFAULT 1 default_sz.constprop.2 │ │ │ │ │ + 4: 00000016 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 5: 0000001a 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 6: 00000049 50 FUNC LOCAL DEFAULT 1 nowisdom_hook │ │ │ │ │ + 7: 00000058 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 8: 0000005c 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 9: 0000007d 254 FUNC LOCAL DEFAULT 1 wisdom_ok_hook │ │ │ │ │ + 10: 000000a4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 11: 000000a8 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 12: 0000017d 116 FUNC LOCAL DEFAULT 1 cost_hook │ │ │ │ │ + 13: 00000196 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 14: 0000019a 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 15: 000001f1 184 FUNC LOCAL DEFAULT 1 local_size │ │ │ │ │ + 16: 000002a9 466 FUNC LOCAL DEFAULT 1 default_sz.constprop.0 │ │ │ │ │ + 17: 0000047d 714 FUNC LOCAL DEFAULT 1 fftwf_mpi_local_size_many_transposed.part.0.constprop.0 │ │ │ │ │ + 18: 00000749 324 FUNC LOCAL DEFAULT 1 default_sz.constprop.1 │ │ │ │ │ + 19: 0000088d 706 FUNC LOCAL DEFAULT 1 fftwf_mpi_local_size_many_transposed.part.0.constprop.1 │ │ │ │ │ + 20: 00000b51 206 FUNC LOCAL DEFAULT 1 default_sz.constprop.2 │ │ │ │ │ 21: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 22: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ 23: 00000008 0 NOTYPE LOCAL DEFAULT 5 .LC1 │ │ │ │ │ - 24: 00000a81 372 FUNC LOCAL DEFAULT 1 fftwf_mpi_local_size_guru.part.0.constprop.0 │ │ │ │ │ - 25: 00000bec 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 26: 00000bf4 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 27: 00000bf5 542 FUNC LOCAL DEFAULT 1 default_sz │ │ │ │ │ - 28: 00000e15 868 FUNC LOCAL DEFAULT 1 fftwf_mpi_local_size_guru.part.0 │ │ │ │ │ - 29: 00001170 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 30: 00001178 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 31: 00001179 276 FUNC LOCAL DEFAULT 1 fftwf_mpi_local_size_many_transposed.part.0 │ │ │ │ │ - 32: 0000128d 268 FUNC LOCAL DEFAULT 1 plan_guru_rdft2.constprop.0 │ │ │ │ │ - 33: 00001384 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 34: 00001398 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 35: 00001399 248 FUNC LOCAL DEFAULT 1 plan_guru_rdft2.constprop.1 │ │ │ │ │ - 36: 0000147c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 37: 00001490 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 38: 00001491 300 FUNC LOCAL DEFAULT 1 plan_guru_rdft2 │ │ │ │ │ - 39: 000015a8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 40: 000015bc 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 41: 000015f0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 42: 00001604 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 43: 00001614 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 44: 00001618 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 45: 00001914 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 46: 00001928 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 47: 000019e4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 48: 000019f8 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 49: 00001adc 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 50: 00001af0 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 51: 00001d00 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 52: 00001d14 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 53: 00001e20 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 54: 00001e34 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 55: 00001f60 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 56: 00001f74 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 57: 0000206c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 58: 00002080 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 59: 000022d4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 60: 000022e8 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 61: 00002430 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 62: 00002444 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 24: 00000c21 412 FUNC LOCAL DEFAULT 1 fftwf_mpi_local_size_guru.part.0.constprop.0 │ │ │ │ │ + 25: 00000db4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 26: 00000dbc 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 27: 00000dbd 644 FUNC LOCAL DEFAULT 1 default_sz │ │ │ │ │ + 28: 00001041 984 FUNC LOCAL DEFAULT 1 fftwf_mpi_local_size_guru.part.0 │ │ │ │ │ + 29: 00001410 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 30: 00001418 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 31: 00001419 318 FUNC LOCAL DEFAULT 1 fftwf_mpi_local_size_many_transposed.part.0 │ │ │ │ │ + 32: 00001559 312 FUNC LOCAL DEFAULT 1 plan_guru_rdft2.constprop.0 │ │ │ │ │ + 33: 0000167c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 34: 00001690 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 35: 00001691 296 FUNC LOCAL DEFAULT 1 plan_guru_rdft2.constprop.1 │ │ │ │ │ + 36: 000017a4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 37: 000017b8 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 38: 000017b9 348 FUNC LOCAL DEFAULT 1 plan_guru_rdft2 │ │ │ │ │ + 39: 00001900 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 40: 00001914 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 41: 0000194c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 42: 00001960 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 43: 00001974 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 44: 00001978 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 45: 00001d28 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 46: 00001d3c 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 47: 00001e18 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 48: 00001e2c 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 49: 00001f2c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 50: 00001f40 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 51: 000021a8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 52: 000021bc 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 53: 000022e8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 54: 000022fc 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 55: 00002444 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 56: 00002458 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 57: 0000256c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 58: 00002580 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 59: 00002830 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 60: 00002844 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 61: 000029ac 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 62: 000029c0 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ 63: 00000000 0 NOTYPE LOCAL DEFAULT 4 $d │ │ │ │ │ 64: 00000000 4 OBJECT LOCAL DEFAULT 4 mpi_inited │ │ │ │ │ 65: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_any_true │ │ │ │ │ 66: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Bcast │ │ │ │ │ 67: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Allreduce │ │ │ │ │ 68: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_num_blocks_total │ │ │ │ │ 69: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_block_coords │ │ │ │ │ @@ -87,52 +87,52 @@ │ │ │ │ │ 83: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_is_prime │ │ │ │ │ 84: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_choose_radix │ │ │ │ │ 85: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_assertion_failed │ │ │ │ │ 86: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_mkproblem_rdft2_d │ │ │ │ │ 87: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mkapiplan │ │ │ │ │ 88: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_the_planner │ │ │ │ │ 89: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_conf_standard │ │ │ │ │ - 90: 000015bd 72 FUNC GLOBAL DEFAULT 1 fftwf_mpi_init │ │ │ │ │ - 91: 00001605 20 FUNC GLOBAL DEFAULT 1 fftwf_mpi_cleanup │ │ │ │ │ + 90: 00001915 76 FUNC GLOBAL DEFAULT 1 fftwf_mpi_init │ │ │ │ │ + 91: 00001961 24 FUNC GLOBAL DEFAULT 1 fftwf_mpi_cleanup │ │ │ │ │ 92: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_cleanup │ │ │ │ │ - 93: 00001619 44 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_guru │ │ │ │ │ - 94: 00001645 54 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_many_transposed │ │ │ │ │ - 95: 0000167d 64 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_many │ │ │ │ │ - 96: 000016bd 58 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_transposed │ │ │ │ │ - 97: 000016f9 62 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size │ │ │ │ │ - 98: 00001739 44 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_many_1d │ │ │ │ │ - 99: 00001765 46 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_1d │ │ │ │ │ - 100: 00001795 34 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_2d_transposed │ │ │ │ │ - 101: 000017b9 32 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_2d │ │ │ │ │ - 102: 000017d9 40 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_3d_transposed │ │ │ │ │ - 103: 00001801 38 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_3d │ │ │ │ │ - 104: 00001829 256 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_many_transpose │ │ │ │ │ + 93: 00001979 72 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_guru │ │ │ │ │ + 94: 000019c1 98 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_many_transposed │ │ │ │ │ + 95: 00001a25 88 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_many │ │ │ │ │ + 96: 00001a7d 66 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_transposed │ │ │ │ │ + 97: 00001ac1 90 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size │ │ │ │ │ + 98: 00001b1d 48 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_many_1d │ │ │ │ │ + 99: 00001b4d 52 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_1d │ │ │ │ │ + 100: 00001b81 38 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_2d_transposed │ │ │ │ │ + 101: 00001ba9 34 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_2d │ │ │ │ │ + 102: 00001bcd 44 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_3d_transposed │ │ │ │ │ + 103: 00001bf9 40 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_3d │ │ │ │ │ + 104: 00001c21 284 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_many_transpose │ │ │ │ │ 105: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_mkproblem_transpose │ │ │ │ │ - 106: 00001929 208 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_transpose │ │ │ │ │ - 107: 000019f9 248 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_guru_dft │ │ │ │ │ + 106: 00001d3d 240 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_transpose │ │ │ │ │ + 107: 00001e2d 276 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_guru_dft │ │ │ │ │ 108: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_mkproblem_dft_d │ │ │ │ │ - 109: 00001af1 150 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_many_dft │ │ │ │ │ - 110: 00001b89 152 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft │ │ │ │ │ - 111: 00001c21 244 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_1d │ │ │ │ │ - 112: 00001d15 288 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_2d │ │ │ │ │ - 113: 00001e35 320 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_3d │ │ │ │ │ - 114: 00001f75 268 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_guru_r2r │ │ │ │ │ + 109: 00001f41 176 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_many_dft │ │ │ │ │ + 110: 00001ff1 186 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft │ │ │ │ │ + 111: 000020ad 272 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_1d │ │ │ │ │ + 112: 000021bd 320 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_2d │ │ │ │ │ + 113: 000022fd 348 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_3d │ │ │ │ │ + 114: 00002459 296 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_guru_r2r │ │ │ │ │ 115: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_map_r2r_kind │ │ │ │ │ 116: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_mkproblem_rdft_d │ │ │ │ │ 117: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ifree0 │ │ │ │ │ - 118: 00002081 150 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_many_r2r │ │ │ │ │ - 119: 00002119 152 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_r2r │ │ │ │ │ - 120: 000021b1 312 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_r2r_2d │ │ │ │ │ - 121: 000022e9 348 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_r2r_3d │ │ │ │ │ - 122: 00002445 150 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_many_dft_r2c │ │ │ │ │ - 123: 000024dd 150 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_many_dft_c2r │ │ │ │ │ - 124: 00002575 152 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_r2c │ │ │ │ │ - 125: 0000260d 102 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_r2c_2d │ │ │ │ │ - 126: 00002675 108 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_r2c_3d │ │ │ │ │ - 127: 000026e1 152 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_c2r │ │ │ │ │ - 128: 00002779 106 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_c2r_2d │ │ │ │ │ - 129: 000027e5 112 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_c2r_3d │ │ │ │ │ - 130: 00002855 4 FUNC GLOBAL DEFAULT 1 fftwf_mpi_execute_dft │ │ │ │ │ + 118: 00002581 176 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_many_r2r │ │ │ │ │ + 119: 00002631 186 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_r2r │ │ │ │ │ + 120: 000026ed 344 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_r2r_2d │ │ │ │ │ + 121: 00002845 380 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_r2r_3d │ │ │ │ │ + 122: 000029c1 178 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_many_dft_r2c │ │ │ │ │ + 123: 00002a75 178 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_many_dft_c2r │ │ │ │ │ + 124: 00002b29 188 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_r2c │ │ │ │ │ + 125: 00002be5 128 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_r2c_2d │ │ │ │ │ + 126: 00002c65 134 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_r2c_3d │ │ │ │ │ + 127: 00002ced 188 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_c2r │ │ │ │ │ + 128: 00002da9 134 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_c2r_2d │ │ │ │ │ + 129: 00002e31 140 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_c2r_3d │ │ │ │ │ + 130: 00002ebd 4 FUNC GLOBAL DEFAULT 1 fftwf_mpi_execute_dft │ │ │ │ │ 131: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_execute_r2r │ │ │ │ │ - 132: 00002859 4 FUNC GLOBAL DEFAULT 1 fftwf_mpi_execute_dft_r2c │ │ │ │ │ - 133: 0000285d 4 FUNC GLOBAL DEFAULT 1 fftwf_mpi_execute_dft_c2r │ │ │ │ │ - 134: 00002861 4 FUNC GLOBAL DEFAULT 1 fftwf_mpi_execute_r2r │ │ │ │ │ + 132: 00002ec1 4 FUNC GLOBAL DEFAULT 1 fftwf_mpi_execute_dft_r2c │ │ │ │ │ + 133: 00002ec5 4 FUNC GLOBAL DEFAULT 1 fftwf_mpi_execute_dft_c2r │ │ │ │ │ + 134: 00002ec9 4 FUNC GLOBAL DEFAULT 1 fftwf_mpi_execute_r2r │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,376 +1,371 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x396c contains 373 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x3fd4 contains 368 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000028 0000410a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -000000be 0000410a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -000000e4 0000420a R_ARM_THM_CALL 00000000 MPI_Bcast │ │ │ │ │ -00000108 0000430a R_ARM_THM_CALL 00000000 MPI_Allreduce │ │ │ │ │ -0000018e 0000430a R_ARM_THM_CALL 00000000 MPI_Allreduce │ │ │ │ │ -000001c6 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -000001fa 0000450a R_ARM_THM_CALL 00000000 fftwf_mpi_block_coords │ │ │ │ │ -00000228 0000460a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -00000256 0000470a R_ARM_THM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ -0000025e 0000470a R_ARM_THM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ -00000300 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -0000030a 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000346 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -0000034e 00004a0a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_canonical │ │ │ │ │ -00000356 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -00000366 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -00000372 00004c0a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -0000037e 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000392 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -0000039e 00004c0a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -000003a8 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000003bc 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -000003c8 00004c0a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -00000400 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00000420 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00000446 00004e0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -0000044e 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000460 0000500a R_ARM_THM_CALL 00000000 fftwf_mpi_is_block1d │ │ │ │ │ -000004a6 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ -000004ae 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ -000004b6 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -000004d4 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ -000004da 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ -000004ea 0000500a R_ARM_THM_CALL 00000000 fftwf_mpi_is_block1d │ │ │ │ │ -00000518 00004c0a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -0000055a 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -00000566 0000460a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -00000570 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ -000005a0 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -000005aa 0000460a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -000005b6 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ -000005c2 00004c0a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -000005de 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -0000061c 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ -00000664 0000470a R_ARM_THM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ -0000066c 0000470a R_ARM_THM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ -000006d6 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -000006e0 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000712 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -0000071a 00004a0a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_canonical │ │ │ │ │ -00000722 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -00000732 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -0000073e 00004c0a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -00000748 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -0000075c 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -00000768 00004c0a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -00000780 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00000798 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -000007c0 00004e0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000007c8 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000007da 0000500a R_ARM_THM_CALL 00000000 fftwf_mpi_is_block1d │ │ │ │ │ -00000814 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ -0000081c 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ -00000824 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -00000842 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ -00000848 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ -00000858 0000500a R_ARM_THM_CALL 00000000 fftwf_mpi_is_block1d │ │ │ │ │ -00000890 00004c0a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -000008da 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -000008e4 0000460a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -000008ee 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ -0000091e 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -00000928 0000460a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -00000934 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ -00000940 00004c0a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -00000966 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -0000099e 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ -000009e2 0000470a R_ARM_THM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ -000009ea 0000470a R_ARM_THM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ -00000a1c 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -00000a24 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000a44 0000530a R_ARM_THM_CALL 00000000 fftwf_is_prime │ │ │ │ │ -00000a52 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -00000a5a 00004a0a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_canonical │ │ │ │ │ -00000a62 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -00000a6e 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -00000a78 00004c0a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -00000a9a 00004e0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000aa2 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000adc 0000540a R_ARM_THM_CALL 00000000 fftwf_mpi_choose_radix │ │ │ │ │ -00000ae8 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000b36 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ -00000b3e 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ -00000b46 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -00000b60 0000550a R_ARM_THM_CALL 00000000 fftwf_assertion_failed │ │ │ │ │ -00000b6a 0000470a R_ARM_THM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ -00000b8c 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -00000ba6 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -00000bb6 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000bbe 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ -00000bc8 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ -00000be2 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ -00000bec 00001603 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -00000bf0 00001703 R_ARM_REL32 00000008 .LC1 │ │ │ │ │ -00000c02 0000470a R_ARM_THM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ -00000c0a 0000470a R_ARM_THM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ -00000cec 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -00000cf6 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000d34 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -00000d46 00004c0a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -00000d52 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000d8c 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -00000d94 00004a0a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_canonical │ │ │ │ │ -00000d9c 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -00000dd6 0000530a R_ARM_THM_CALL 00000000 fftwf_is_prime │ │ │ │ │ -00000e26 00004e0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000e2e 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000e58 0000470a R_ARM_THM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ -00000e74 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -00000e8c 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -00000e9c 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000ea6 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ -00000ecc 0000540a R_ARM_THM_CALL 00000000 fftwf_mpi_choose_radix │ │ │ │ │ -00000eda 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000f08 0000500a R_ARM_THM_CALL 00000000 fftwf_mpi_is_block1d │ │ │ │ │ -00000f58 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ -00000f60 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ -00000f68 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -00000fb0 0000550a R_ARM_THM_CALL 00000000 fftwf_assertion_failed │ │ │ │ │ -00000fbc 0000500a R_ARM_THM_CALL 00000000 fftwf_mpi_is_block1d │ │ │ │ │ -00000fe8 00004c0a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -0000102a 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -00001034 0000460a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -00001040 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00001048 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ -0000107c 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -00001086 0000460a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -00001092 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -0000109a 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ -000010ac 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ -000010b8 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ -000010d0 00004c0a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -000010f8 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -00001134 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ -00001170 00001603 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -00001174 00001703 R_ARM_REL32 00000008 .LC1 │ │ │ │ │ -0000118e 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -000011ba 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00001224 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ -0000122a 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ -00001236 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -000012de 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000012fc 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -0000130a 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -0000132e 0000560a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_rdft2_d │ │ │ │ │ -00001338 0000570a R_ARM_THM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ -00001344 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -00001350 0000580a R_ARM_THM_CALL 00000000 fftwf_the_planner │ │ │ │ │ -0000136c 0000590a R_ARM_THM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ -00001384 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -00001388 00000c03 R_ARM_REL32 00000149 cost_hook │ │ │ │ │ -0000138c 00000903 R_ARM_REL32 00000071 wisdom_ok_hook │ │ │ │ │ -00001390 00000603 R_ARM_REL32 00000041 nowisdom_hook │ │ │ │ │ -00001394 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ -000013d8 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000013f6 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -00001404 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -00001428 0000560a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_rdft2_d │ │ │ │ │ -00001432 0000570a R_ARM_THM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ -0000143c 0000580a R_ARM_THM_CALL 00000000 fftwf_the_planner │ │ │ │ │ -00001458 0000590a R_ARM_THM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ -00001464 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -0000147c 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -00001480 00000c03 R_ARM_REL32 00000149 cost_hook │ │ │ │ │ -00001484 00000903 R_ARM_REL32 00000071 wisdom_ok_hook │ │ │ │ │ -00001488 00000603 R_ARM_REL32 00000041 nowisdom_hook │ │ │ │ │ -0000148c 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ -000014e8 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00001518 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -00001526 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -00001550 0000560a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_rdft2_d │ │ │ │ │ -0000155a 0000570a R_ARM_THM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ -00001566 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -00001572 0000580a R_ARM_THM_CALL 00000000 fftwf_the_planner │ │ │ │ │ -0000158e 0000590a R_ARM_THM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ -000015a8 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -000015ac 00000c03 R_ARM_REL32 00000149 cost_hook │ │ │ │ │ -000015b0 00000903 R_ARM_REL32 00000071 wisdom_ok_hook │ │ │ │ │ -000015b4 00000603 R_ARM_REL32 00000041 nowisdom_hook │ │ │ │ │ -000015b8 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ -000015c8 0000580a R_ARM_THM_CALL 00000000 fftwf_the_planner │ │ │ │ │ -000015e4 0000590a R_ARM_THM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ -000015f0 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -000015f4 00000c03 R_ARM_REL32 00000149 cost_hook │ │ │ │ │ -000015f8 00000903 R_ARM_REL32 00000071 wisdom_ok_hook │ │ │ │ │ -000015fc 00000603 R_ARM_REL32 00000041 nowisdom_hook │ │ │ │ │ -00001600 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ -00001606 00005c0a R_ARM_THM_CALL 00000000 fftwf_cleanup │ │ │ │ │ -00001614 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -0000185c 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -0000186e 00004c0a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -0000187c 00004c0a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -000018a0 0000690a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ -000018ac 0000570a R_ARM_THM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ -000018be 0000580a R_ARM_THM_CALL 00000000 fftwf_the_planner │ │ │ │ │ -000018da 0000590a R_ARM_THM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ -000018ea 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -000018f4 00004c0a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -00001904 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -00001914 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -00001918 00000c03 R_ARM_REL32 00000149 cost_hook │ │ │ │ │ -0000191c 00000903 R_ARM_REL32 00000071 wisdom_ok_hook │ │ │ │ │ -00001920 00000603 R_ARM_REL32 00000041 nowisdom_hook │ │ │ │ │ -00001924 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ -00001950 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00001958 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -00001962 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -0000196c 00004c0a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -0000197a 00004c0a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -0000199c 0000690a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ -000019a8 0000570a R_ARM_THM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ -000019ba 0000580a R_ARM_THM_CALL 00000000 fftwf_the_planner │ │ │ │ │ -000019d6 0000590a R_ARM_THM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ -000019e4 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -000019e8 00000c03 R_ARM_REL32 00000149 cost_hook │ │ │ │ │ -000019ec 00000903 R_ARM_REL32 00000071 wisdom_ok_hook │ │ │ │ │ -000019f0 00000603 R_ARM_REL32 00000041 nowisdom_hook │ │ │ │ │ -000019f4 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ -00001a50 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00001a64 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -00001a72 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -00001a92 00006c0a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_dft_d │ │ │ │ │ -00001a9c 0000570a R_ARM_THM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ -00001aa8 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -00001ab4 0000580a R_ARM_THM_CALL 00000000 fftwf_the_planner │ │ │ │ │ -00001ad0 0000590a R_ARM_THM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ -00001adc 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -00001ae0 00000c03 R_ARM_REL32 00000149 cost_hook │ │ │ │ │ -00001ae4 00000903 R_ARM_REL32 00000071 wisdom_ok_hook │ │ │ │ │ -00001ae8 00000603 R_ARM_REL32 00000041 nowisdom_hook │ │ │ │ │ -00001aec 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ -00001b08 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00001b6a 00006b0a R_ARM_THM_CALL 000019f9 fftwf_mpi_plan_guru_dft │ │ │ │ │ -00001b72 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ -00001ba0 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00001c04 00006b0a R_ARM_THM_CALL 000019f9 fftwf_mpi_plan_guru_dft │ │ │ │ │ -00001c0c 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ -00001c36 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00001c54 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00001c64 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -00001c72 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -00001c90 00006c0a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_dft_d │ │ │ │ │ -00001c9a 0000570a R_ARM_THM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ -00001ca2 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ -00001cb0 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -00001cb8 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ -00001cc4 0000580a R_ARM_THM_CALL 00000000 fftwf_the_planner │ │ │ │ │ -00001ce0 0000590a R_ARM_THM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ -00001d00 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -00001d04 00000c03 R_ARM_REL32 00000149 cost_hook │ │ │ │ │ -00001d08 00000903 R_ARM_REL32 00000071 wisdom_ok_hook │ │ │ │ │ -00001d0c 00000603 R_ARM_REL32 00000041 nowisdom_hook │ │ │ │ │ -00001d10 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ -00001d26 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00001d86 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00001d98 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -00001da6 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -00001dc4 00006c0a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_dft_d │ │ │ │ │ +0000002e 0000410a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +000000da 0000410a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +00000104 0000420a R_ARM_THM_CALL 00000000 MPI_Bcast │ │ │ │ │ +0000012c 0000430a R_ARM_THM_CALL 00000000 MPI_Allreduce │ │ │ │ │ +000001cc 0000430a R_ARM_THM_CALL 00000000 MPI_Allreduce │ │ │ │ │ +0000020e 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +00000256 0000450a R_ARM_THM_CALL 00000000 fftwf_mpi_block_coords │ │ │ │ │ +0000028c 0000460a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +000002c8 0000470a R_ARM_THM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ +000002d2 0000470a R_ARM_THM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ +00000378 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +00000382 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +000003be 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +000003c8 00004a0a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_canonical │ │ │ │ │ +000003d0 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +000003f2 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +000003fe 00004c0a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +0000040a 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +0000041e 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +0000042a 00004c0a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +00000434 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000448 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +00000454 00004c0a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +0000049e 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +000004c0 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +000004ea 00004e0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000004f2 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000508 0000500a R_ARM_THM_CALL 00000000 fftwf_mpi_is_block1d │ │ │ │ │ +00000554 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ +0000055c 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ +00000564 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +00000582 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ +00000588 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ +000005ac 0000500a R_ARM_THM_CALL 00000000 fftwf_mpi_is_block1d │ │ │ │ │ +000005de 00004c0a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +0000062e 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +0000063a 0000460a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00000644 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ +0000067a 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +00000684 0000460a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00000690 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ +0000069c 00004c0a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +000006bc 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +00000700 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ +0000076a 0000470a R_ARM_THM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ +00000774 0000470a R_ARM_THM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ +000007de 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +000007e8 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +0000081c 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +00000826 00004a0a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_canonical │ │ │ │ │ +0000082e 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +00000850 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +0000085c 00004c0a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +00000866 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +0000087a 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +00000886 00004c0a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +000008ae 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +000008c8 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +000008f4 00004e0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000008fc 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000912 0000500a R_ARM_THM_CALL 00000000 fftwf_mpi_is_block1d │ │ │ │ │ +00000952 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ +0000095a 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ +00000962 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +00000980 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ +00000986 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ +000009aa 0000500a R_ARM_THM_CALL 00000000 fftwf_mpi_is_block1d │ │ │ │ │ +000009e4 00004c0a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +00000a3a 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +00000a44 0000460a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00000a4e 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ +00000a84 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +00000a8e 0000460a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00000a9a 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ +00000aa6 00004c0a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +00000ace 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +00000b0a 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ +00000b6c 0000470a R_ARM_THM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ +00000b76 0000470a R_ARM_THM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ +00000ba6 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +00000bae 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000bd4 0000530a R_ARM_THM_CALL 00000000 fftwf_is_prime │ │ │ │ │ +00000be2 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +00000bec 00004a0a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_canonical │ │ │ │ │ +00000bf4 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +00000c0e 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +00000c18 00004c0a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +00000c4a 00004e0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +00000c52 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000c8c 0000540a R_ARM_THM_CALL 00000000 fftwf_mpi_choose_radix │ │ │ │ │ +00000c98 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000cea 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ +00000cf2 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ +00000cfa 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +00000d26 0000550a R_ARM_THM_CALL 00000000 fftwf_assertion_failed │ │ │ │ │ +00000d32 0000470a R_ARM_THM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ +00000d50 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +00000d68 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +00000d7a 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000d84 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ +00000d8e 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ +00000daa 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ +00000db4 00001603 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +00000db8 00001703 R_ARM_REL32 00000008 .LC1 │ │ │ │ │ +00000dda 0000470a R_ARM_THM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ +00000de2 0000470a R_ARM_THM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ +00000ee0 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +00000eea 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000f2c 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +00000f3e 00004c0a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +00000f4a 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000f92 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +00000f9c 00004a0a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_canonical │ │ │ │ │ +00000fa4 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +00000ffe 0000530a R_ARM_THM_CALL 00000000 fftwf_is_prime │ │ │ │ │ +00001062 00004e0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +0000106a 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00001098 0000470a R_ARM_THM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ +000010b6 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +000010ce 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +000010e0 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +000010e8 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ +00001118 0000540a R_ARM_THM_CALL 00000000 fftwf_mpi_choose_radix │ │ │ │ │ +00001126 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00001158 0000500a R_ARM_THM_CALL 00000000 fftwf_mpi_is_block1d │ │ │ │ │ +000011b6 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ +000011be 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ +000011c6 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +00001228 0000550a R_ARM_THM_CALL 00000000 fftwf_assertion_failed │ │ │ │ │ +00001236 0000500a R_ARM_THM_CALL 00000000 fftwf_mpi_is_block1d │ │ │ │ │ +00001264 00004c0a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +000012ae 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +000012b8 0000460a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +000012c6 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +000012ce 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ +00001308 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +00001312 0000460a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00001320 0000480a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00001328 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ +0000133c 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ +0000134a 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ +00001362 00004c0a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +0000138e 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +000013d2 0000510a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ +00001410 00001603 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +00001414 00001703 R_ARM_REL32 00000008 .LC1 │ │ │ │ │ +00001440 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +0000146e 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +000014da 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ +000014e0 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ +000014fe 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +000015b6 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000015dc 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +000015ec 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +00001616 0000560a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_rdft2_d │ │ │ │ │ +00001622 0000570a R_ARM_THM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ +0000162a 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +00001646 0000580a R_ARM_THM_CALL 00000000 fftwf_the_planner │ │ │ │ │ +00001662 0000590a R_ARM_THM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ +0000167c 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +00001680 00000c03 R_ARM_REL32 0000017d cost_hook │ │ │ │ │ +00001684 00000903 R_ARM_REL32 0000007d wisdom_ok_hook │ │ │ │ │ +00001688 00000603 R_ARM_REL32 00000049 nowisdom_hook │ │ │ │ │ +0000168c 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ +000016dc 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00001702 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +00001712 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +0000173c 0000560a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_rdft2_d │ │ │ │ │ +00001748 0000570a R_ARM_THM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ +0000174e 0000580a R_ARM_THM_CALL 00000000 fftwf_the_planner │ │ │ │ │ +0000176a 0000590a R_ARM_THM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ +00001778 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +000017a4 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +000017a8 00000c03 R_ARM_REL32 0000017d cost_hook │ │ │ │ │ +000017ac 00000903 R_ARM_REL32 0000007d wisdom_ok_hook │ │ │ │ │ +000017b0 00000603 R_ARM_REL32 00000049 nowisdom_hook │ │ │ │ │ +000017b4 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ +0000181c 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00001856 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +00001866 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +00001896 0000560a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_rdft2_d │ │ │ │ │ +000018a2 0000570a R_ARM_THM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ +000018aa 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +000018c6 0000580a R_ARM_THM_CALL 00000000 fftwf_the_planner │ │ │ │ │ +000018e2 0000590a R_ARM_THM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ +00001900 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +00001904 00000c03 R_ARM_REL32 0000017d cost_hook │ │ │ │ │ +00001908 00000903 R_ARM_REL32 0000007d wisdom_ok_hook │ │ │ │ │ +0000190c 00000603 R_ARM_REL32 00000049 nowisdom_hook │ │ │ │ │ +00001910 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ +00001922 0000580a R_ARM_THM_CALL 00000000 fftwf_the_planner │ │ │ │ │ +0000193e 0000590a R_ARM_THM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ +0000194c 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +00001950 00000c03 R_ARM_REL32 0000017d cost_hook │ │ │ │ │ +00001954 00000903 R_ARM_REL32 0000007d wisdom_ok_hook │ │ │ │ │ +00001958 00000603 R_ARM_REL32 00000049 nowisdom_hook │ │ │ │ │ +0000195c 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ +00001964 00005c0a R_ARM_THM_CALL 00000000 fftwf_cleanup │ │ │ │ │ +00001974 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +00001c60 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00001c72 00004c0a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +00001c80 00004c0a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +00001ca6 0000690a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ +00001cb2 0000570a R_ARM_THM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ +00001cd0 0000580a R_ARM_THM_CALL 00000000 fftwf_the_planner │ │ │ │ │ +00001cec 0000590a R_ARM_THM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ +00001cfe 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +00001d08 00004c0a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +00001d18 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +00001d28 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +00001d2c 00000c03 R_ARM_REL32 0000017d cost_hook │ │ │ │ │ +00001d30 00000903 R_ARM_REL32 0000007d wisdom_ok_hook │ │ │ │ │ +00001d34 00000603 R_ARM_REL32 00000049 nowisdom_hook │ │ │ │ │ +00001d38 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ +00001d70 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00001d78 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +00001d82 00004b0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +00001d8c 00004c0a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +00001d9a 00004c0a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +00001dc2 0000690a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ 00001dce 0000570a R_ARM_THM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ -00001dd6 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ -00001de4 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -00001dec 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ -00001df8 0000580a R_ARM_THM_CALL 00000000 fftwf_the_planner │ │ │ │ │ -00001e14 0000590a R_ARM_THM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ -00001e20 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -00001e24 00000c03 R_ARM_REL32 00000149 cost_hook │ │ │ │ │ -00001e28 00000903 R_ARM_REL32 00000071 wisdom_ok_hook │ │ │ │ │ -00001e2c 00000603 R_ARM_REL32 00000041 nowisdom_hook │ │ │ │ │ -00001e30 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ -00001e48 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00001ec6 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00001ed8 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -00001ee6 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -00001f06 00006c0a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_dft_d │ │ │ │ │ -00001f10 0000570a R_ARM_THM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ -00001f18 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ -00001f26 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -00001f2e 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ -00001f3a 0000580a R_ARM_THM_CALL 00000000 fftwf_the_planner │ │ │ │ │ -00001f56 0000590a R_ARM_THM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ -00001f60 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -00001f64 00000c03 R_ARM_REL32 00000149 cost_hook │ │ │ │ │ -00001f68 00000903 R_ARM_REL32 00000071 wisdom_ok_hook │ │ │ │ │ -00001f6c 00000603 R_ARM_REL32 00000041 nowisdom_hook │ │ │ │ │ -00001f70 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ -00001fcc 0000730a R_ARM_THM_CALL 00000000 fftwf_map_r2r_kind │ │ │ │ │ -00001fd6 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00001fea 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -00001ff8 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -00002016 0000740a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_rdft_d │ │ │ │ │ -00002020 0000570a R_ARM_THM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ -00002028 0000750a R_ARM_THM_CALL 00000000 fftwf_ifree0 │ │ │ │ │ -00002036 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -00002044 0000580a R_ARM_THM_CALL 00000000 fftwf_the_planner │ │ │ │ │ -00002060 0000590a R_ARM_THM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ -0000206c 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -00002070 00000c03 R_ARM_REL32 00000149 cost_hook │ │ │ │ │ -00002074 00000903 R_ARM_REL32 00000071 wisdom_ok_hook │ │ │ │ │ -00002078 00000603 R_ARM_REL32 00000041 nowisdom_hook │ │ │ │ │ -0000207c 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ -00002098 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -000020fa 0000720a R_ARM_THM_CALL 00001f75 fftwf_mpi_plan_guru_r2r │ │ │ │ │ -00002102 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ -00002130 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00002194 0000720a R_ARM_THM_CALL 00001f75 fftwf_mpi_plan_guru_r2r │ │ │ │ │ -0000219c 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ -000021ca 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -0000222a 0000730a R_ARM_THM_CALL 00000000 fftwf_map_r2r_kind │ │ │ │ │ -00002234 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00002246 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -00002254 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -00002270 0000740a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_rdft_d │ │ │ │ │ -0000227a 0000570a R_ARM_THM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ -00002282 0000750a R_ARM_THM_CALL 00000000 fftwf_ifree0 │ │ │ │ │ -00002288 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ -00002296 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -0000229e 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ -000022aa 0000580a R_ARM_THM_CALL 00000000 fftwf_the_planner │ │ │ │ │ -000022c6 0000590a R_ARM_THM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ -000022d4 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -000022d8 00000c03 R_ARM_REL32 00000149 cost_hook │ │ │ │ │ -000022dc 00000903 R_ARM_REL32 00000071 wisdom_ok_hook │ │ │ │ │ -000022e0 00000603 R_ARM_REL32 00000041 nowisdom_hook │ │ │ │ │ -000022e4 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ -00002308 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00002386 0000730a R_ARM_THM_CALL 00000000 fftwf_map_r2r_kind │ │ │ │ │ -00002390 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000023a2 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +00001dec 0000580a R_ARM_THM_CALL 00000000 fftwf_the_planner │ │ │ │ │ +00001e08 0000590a R_ARM_THM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ +00001e18 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +00001e1c 00000c03 R_ARM_REL32 0000017d cost_hook │ │ │ │ │ +00001e20 00000903 R_ARM_REL32 0000007d wisdom_ok_hook │ │ │ │ │ +00001e24 00000603 R_ARM_REL32 00000049 nowisdom_hook │ │ │ │ │ +00001e28 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ +00001e8c 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00001ea4 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +00001eb4 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +00001ed6 00006c0a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_dft_d │ │ │ │ │ +00001ee0 0000570a R_ARM_THM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ +00001ee8 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +00001f00 0000580a R_ARM_THM_CALL 00000000 fftwf_the_planner │ │ │ │ │ +00001f1c 0000590a R_ARM_THM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ +00001f2c 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +00001f30 00000c03 R_ARM_REL32 0000017d cost_hook │ │ │ │ │ +00001f34 00000903 R_ARM_REL32 0000007d wisdom_ok_hook │ │ │ │ │ +00001f38 00000603 R_ARM_REL32 00000049 nowisdom_hook │ │ │ │ │ +00001f3c 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ +00001f66 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00001fc6 00006b0a R_ARM_THM_CALL 00001e2d fftwf_mpi_plan_guru_dft │ │ │ │ │ +00001fce 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ +00002016 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +0000207e 00006b0a R_ARM_THM_CALL 00001e2d fftwf_mpi_plan_guru_dft │ │ │ │ │ +00002086 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ +000020ce 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +000020f0 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00002102 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +00002112 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +00002134 00006c0a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_dft_d │ │ │ │ │ +0000213e 0000570a R_ARM_THM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ +00002148 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +00002152 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ +0000216c 0000580a R_ARM_THM_CALL 00000000 fftwf_the_planner │ │ │ │ │ +00002188 0000590a R_ARM_THM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ +000021a8 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +000021ac 00000c03 R_ARM_REL32 0000017d cost_hook │ │ │ │ │ +000021b0 00000903 R_ARM_REL32 0000007d wisdom_ok_hook │ │ │ │ │ +000021b4 00000603 R_ARM_REL32 00000049 nowisdom_hook │ │ │ │ │ +000021b8 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ +000021dc 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +0000223c 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00002252 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +00002262 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +00002284 00006c0a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_dft_d │ │ │ │ │ +0000228e 0000570a R_ARM_THM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ +00002298 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +000022a2 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ +000022bc 0000580a R_ARM_THM_CALL 00000000 fftwf_the_planner │ │ │ │ │ +000022d8 0000590a R_ARM_THM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ +000022e8 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +000022ec 00000c03 R_ARM_REL32 0000017d cost_hook │ │ │ │ │ +000022f0 00000903 R_ARM_REL32 0000007d wisdom_ok_hook │ │ │ │ │ +000022f4 00000603 R_ARM_REL32 00000049 nowisdom_hook │ │ │ │ │ +000022f8 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ +0000231e 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +0000239a 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ 000023b0 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ -000023ce 0000740a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_rdft_d │ │ │ │ │ -000023d8 0000570a R_ARM_THM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ -000023e0 0000750a R_ARM_THM_CALL 00000000 fftwf_ifree0 │ │ │ │ │ -000023e6 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ -000023f4 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -000023fc 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ -00002408 0000580a R_ARM_THM_CALL 00000000 fftwf_the_planner │ │ │ │ │ -00002424 0000590a R_ARM_THM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ -00002430 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ -00002434 00000c03 R_ARM_REL32 00000149 cost_hook │ │ │ │ │ -00002438 00000903 R_ARM_REL32 00000071 wisdom_ok_hook │ │ │ │ │ -0000243c 00000603 R_ARM_REL32 00000041 nowisdom_hook │ │ │ │ │ -00002440 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ -0000245c 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -000024c6 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ -000024f4 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -0000255e 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ -0000258c 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -000025f8 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ -00002620 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00002666 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ -00002688 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -000026d4 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ -000026f8 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00002764 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ -0000278c 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -000027d6 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ -000027f8 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00002848 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ -0000005c 0000411e R_ARM_THM_JUMP24 00000000 fftwf_mpi_any_true │ │ │ │ │ -00002854 0000831e R_ARM_THM_JUMP24 00000000 fftwf_execute_r2r │ │ │ │ │ -00002858 0000831e R_ARM_THM_JUMP24 00000000 fftwf_execute_r2r │ │ │ │ │ -0000285c 0000831e R_ARM_THM_JUMP24 00000000 fftwf_execute_r2r │ │ │ │ │ -00002860 0000831e R_ARM_THM_JUMP24 00000000 fftwf_execute_r2r │ │ │ │ │ +000023c0 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +000023e2 00006c0a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_dft_d │ │ │ │ │ +000023ec 0000570a R_ARM_THM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ +000023f6 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +00002400 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ +0000241a 0000580a R_ARM_THM_CALL 00000000 fftwf_the_planner │ │ │ │ │ +00002436 0000590a R_ARM_THM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ +00002444 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +00002448 00000c03 R_ARM_REL32 0000017d cost_hook │ │ │ │ │ +0000244c 00000903 R_ARM_REL32 0000007d wisdom_ok_hook │ │ │ │ │ +00002450 00000603 R_ARM_REL32 00000049 nowisdom_hook │ │ │ │ │ +00002454 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ +000024b8 0000730a R_ARM_THM_CALL 00000000 fftwf_map_r2r_kind │ │ │ │ │ +000024c2 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000024da 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +000024ea 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +0000250a 0000740a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_rdft_d │ │ │ │ │ +00002516 0000570a R_ARM_THM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ +0000251e 0000750a R_ARM_THM_CALL 00000000 fftwf_ifree0 │ │ │ │ │ +00002526 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +00002540 0000580a R_ARM_THM_CALL 00000000 fftwf_the_planner │ │ │ │ │ +0000255c 0000590a R_ARM_THM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ +0000256c 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +00002570 00000c03 R_ARM_REL32 0000017d cost_hook │ │ │ │ │ +00002574 00000903 R_ARM_REL32 0000007d wisdom_ok_hook │ │ │ │ │ +00002578 00000603 R_ARM_REL32 00000049 nowisdom_hook │ │ │ │ │ +0000257c 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ +000025a6 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00002606 0000720a R_ARM_THM_CALL 00002459 fftwf_mpi_plan_guru_r2r │ │ │ │ │ +0000260e 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ +00002656 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +000026be 0000720a R_ARM_THM_CALL 00002459 fftwf_mpi_plan_guru_r2r │ │ │ │ │ +000026c6 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ +00002714 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00002776 0000730a R_ARM_THM_CALL 00000000 fftwf_map_r2r_kind │ │ │ │ │ +00002780 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00002796 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +000027a6 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +000027c6 0000740a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_rdft_d │ │ │ │ │ +000027d2 0000570a R_ARM_THM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ +000027da 0000750a R_ARM_THM_CALL 00000000 fftwf_ifree0 │ │ │ │ │ +000027e2 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +000027ec 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ +00002806 0000580a R_ARM_THM_CALL 00000000 fftwf_the_planner │ │ │ │ │ +00002822 0000590a R_ARM_THM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ +00002830 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +00002834 00000c03 R_ARM_REL32 0000017d cost_hook │ │ │ │ │ +00002838 00000903 R_ARM_REL32 0000007d wisdom_ok_hook │ │ │ │ │ +0000283c 00000603 R_ARM_REL32 00000049 nowisdom_hook │ │ │ │ │ +00002840 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ +00002872 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +000028f2 0000730a R_ARM_THM_CALL 00000000 fftwf_map_r2r_kind │ │ │ │ │ +000028fc 00004f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00002912 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +00002922 0000440a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks_total │ │ │ │ │ +00002942 0000740a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_rdft_d │ │ │ │ │ +0000294e 0000570a R_ARM_THM_CALL 00000000 fftwf_mkapiplan │ │ │ │ │ +00002956 0000750a R_ARM_THM_CALL 00000000 fftwf_ifree0 │ │ │ │ │ +0000295e 0000490a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +00002968 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ +00002982 0000580a R_ARM_THM_CALL 00000000 fftwf_the_planner │ │ │ │ │ +0000299e 0000590a R_ARM_THM_CALL 00000000 fftwf_mpi_conf_standard │ │ │ │ │ +000029ac 00000103 R_ARM_REL32 00000000 .bss │ │ │ │ │ +000029b0 00000c03 R_ARM_REL32 0000017d cost_hook │ │ │ │ │ +000029b4 00000903 R_ARM_REL32 0000007d wisdom_ok_hook │ │ │ │ │ +000029b8 00000603 R_ARM_REL32 00000049 nowisdom_hook │ │ │ │ │ +000029bc 00000203 R_ARM_REL32 00000001 bogosity_hook │ │ │ │ │ +000029e6 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00002a50 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ +00002a9a 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00002b04 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ +00002b4e 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00002bc0 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ +00002c06 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00002c4a 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ +00002c86 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00002cd0 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ +00002d12 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00002d84 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ +00002dca 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00002e14 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ +00002e52 00004d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00002ea2 0000520a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ +00000068 0000411e R_ARM_THM_JUMP24 00000000 fftwf_mpi_any_true │ │ │ │ │ +00002ebc 0000831e R_ARM_THM_JUMP24 00000000 fftwf_execute_r2r │ │ │ │ │ +00002ec0 0000831e R_ARM_THM_JUMP24 00000000 fftwf_execute_r2r │ │ │ │ │ +00002ec4 0000831e R_ARM_THM_JUMP24 00000000 fftwf_execute_r2r │ │ │ │ │ +00002ec8 0000831e R_ARM_THM_JUMP24 00000000 fftwf_execute_r2r │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -2,300 +2,311 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ bogosity_hook(): │ │ │ │ │ ldr r3, [r1, #0] │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r3, [r3, #0] │ │ │ │ │ - subs r3, #4 │ │ │ │ │ + sub.w r3, r3, #4 │ │ │ │ │ cmp r3, #3 │ │ │ │ │ - bhi.n 2e │ │ │ │ │ + bhi.n 34 │ │ │ │ │ tbb [pc, r3] │ │ │ │ │ - .short 0x1002 │ │ │ │ │ - .short 0x1202 │ │ │ │ │ + .short 0x1102 │ │ │ │ │ + .short 0x1302 │ │ │ │ │ ldr r1, [r1, #28] │ │ │ │ │ cmp.w r1, #67108864 @ 0x4000000 │ │ │ │ │ - beq.n 2e │ │ │ │ │ + beq.n 34 │ │ │ │ │ sub.w r0, r4, #2 │ │ │ │ │ clz r0, r0 │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_any_true │ │ │ │ │ - cbnz r0, 3a │ │ │ │ │ + cbnz r0, 40 │ │ │ │ │ mov r0, r4 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ ldr r1, [r1, #24] │ │ │ │ │ - b.n 18 │ │ │ │ │ + b.n 1c │ │ │ │ │ ldr r1, [r1, #36] @ 0x24 │ │ │ │ │ - b.n 18 │ │ │ │ │ - movs r0, #2 │ │ │ │ │ + b.n 1c │ │ │ │ │ + mov.w r0, #2 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -00000040 : │ │ │ │ │ +00000048 : │ │ │ │ │ nowisdom_hook(): │ │ │ │ │ ldr r3, [r0, #0] │ │ │ │ │ ldr r3, [r3, #0] │ │ │ │ │ - subs r3, #4 │ │ │ │ │ + sub.w r3, r3, #4 │ │ │ │ │ cmp r3, #3 │ │ │ │ │ - bhi.n 68 │ │ │ │ │ + bhi.n 74 │ │ │ │ │ tbb [pc, r3] │ │ │ │ │ - .short 0x0902 │ │ │ │ │ - .short 0x0e02 │ │ │ │ │ + .word 0x0f020a02 │ │ │ │ │ ldr r1, [r0, #28] │ │ │ │ │ cmp.w r1, #67108864 @ 0x4000000 │ │ │ │ │ - beq.n 68 │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + beq.n 74 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_mpi_any_true │ │ │ │ │ ldr r1, [r0, #24] │ │ │ │ │ cmp.w r1, #67108864 @ 0x4000000 │ │ │ │ │ - bne.n 5a │ │ │ │ │ + bne.n 64 │ │ │ │ │ bx lr │ │ │ │ │ ldr r1, [r0, #36] @ 0x24 │ │ │ │ │ - b.n 54 │ │ │ │ │ + b.n 5e │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -00000070 : │ │ │ │ │ +0000007c : │ │ │ │ │ wisdom_ok_hook(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, r5, [sp, #-32]! │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ + strd r8, r9, [sp, #16] │ │ │ │ │ + strd sl, lr, [sp, #24] │ │ │ │ │ sub sp, #48 @ 0x30 │ │ │ │ │ add r3, sp, #8 │ │ │ │ │ stmia.w r3, {r1, r2} │ │ │ │ │ ldr r3, [r0, #0] │ │ │ │ │ ldr r3, [r3, #0] │ │ │ │ │ - subs r3, #4 │ │ │ │ │ + sub.w r3, r3, #4 │ │ │ │ │ cmp r3, #3 │ │ │ │ │ - bhi.n 11c │ │ │ │ │ + bhi.n 14e │ │ │ │ │ tbb [pc, r3] │ │ │ │ │ - .short 0x4502 │ │ │ │ │ - .short 0x4d02 │ │ │ │ │ + .word 0x58025102 │ │ │ │ │ ldr r4, [r0, #28] │ │ │ │ │ cmp.w r4, #67108864 @ 0x4000000 │ │ │ │ │ - beq.n 11c │ │ │ │ │ - ldr r3, [sp, #12] │ │ │ │ │ + beq.n 14e │ │ │ │ │ + ldrd r6, r3, [sp, #8] │ │ │ │ │ mov r1, r4 │ │ │ │ │ - ldr r6, [sp, #8] │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ ldrb.w r7, [sp, #10] │ │ │ │ │ ldrh.w r8, [sp, #10] │ │ │ │ │ ubfx r9, r3, #0, #20 │ │ │ │ │ ldrh.w r3, [sp, #14] │ │ │ │ │ ubfx r6, r6, #0, #20 │ │ │ │ │ ubfx r7, r7, #4, #3 │ │ │ │ │ ubfx r8, r8, #7, #9 │ │ │ │ │ ubfx sl, r3, #4, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_any_true │ │ │ │ │ mov r5, r0 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ - cbnz r5, 10e │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ + cbnz r5, 132 │ │ │ │ │ mov r3, r5 │ │ │ │ │ - movs r1, #5 │ │ │ │ │ - add r0, sp, #24 │ │ │ │ │ - str r4, [sp, #0] │ │ │ │ │ movw r2, #1030 @ 0x406 │ │ │ │ │ movt r2, #19456 @ 0x4c00 │ │ │ │ │ + mov.w r1, #5 │ │ │ │ │ + str r4, [sp, #0] │ │ │ │ │ + add r0, sp, #24 │ │ │ │ │ strd r6, r7, [sp, #24] │ │ │ │ │ strd r8, r9, [sp, #32] │ │ │ │ │ str.w sl, [sp, #40] @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Bcast │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ cmp r6, r3 │ │ │ │ │ - beq.n 128 │ │ │ │ │ - movs r3, #5 │ │ │ │ │ + beq.n 158 │ │ │ │ │ + mov.w r3, #5 │ │ │ │ │ movt r3, #22528 @ 0x5800 │ │ │ │ │ - movs r2, #1 │ │ │ │ │ - str r3, [sp, #0] │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ add r1, sp, #20 │ │ │ │ │ add r0, sp, #16 │ │ │ │ │ - str r4, [sp, #4] │ │ │ │ │ + strd r3, r4, [sp] │ │ │ │ │ movw r3, #1029 @ 0x405 │ │ │ │ │ movt r3, #19456 @ 0x4c00 │ │ │ │ │ str r5, [sp, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Allreduce │ │ │ │ │ ldr r0, [sp, #20] │ │ │ │ │ add sp, #48 @ 0x30 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldmia.w sp!, {sl, pc} │ │ │ │ │ ldr r4, [r0, #24] │ │ │ │ │ cmp.w r4, #67108864 @ 0x4000000 │ │ │ │ │ - bne.n 96 │ │ │ │ │ - movs r0, #1 │ │ │ │ │ - add sp, #48 @ 0x30 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ + bne.n b0 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ + b.n 132 │ │ │ │ │ ldr r4, [r0, #36] @ 0x24 │ │ │ │ │ - b.n 90 │ │ │ │ │ + b.n aa │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ cmp r7, r3 │ │ │ │ │ - bne.n ee │ │ │ │ │ + bne.n 10e │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ cmp r8, r3 │ │ │ │ │ - bne.n ee │ │ │ │ │ + bne.n 10e │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ cmp r9, r3 │ │ │ │ │ - itttt eq │ │ │ │ │ - ldreq r5, [sp, #40] @ 0x28 │ │ │ │ │ - subeq.w r5, r5, sl │ │ │ │ │ - clzeq r5, r5 │ │ │ │ │ - lsreq r5, r5, #5 │ │ │ │ │ - b.n ee │ │ │ │ │ + bne.n 10e │ │ │ │ │ + ldr r5, [sp, #40] @ 0x28 │ │ │ │ │ + sub.w r5, r5, sl │ │ │ │ │ + clz r5, r5 │ │ │ │ │ + mov.w r5, r5, lsr #5 │ │ │ │ │ + b.n 10e │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -00000148 : │ │ │ │ │ +0000017c : │ │ │ │ │ cost_hook(): │ │ │ │ │ ldr r3, [r0, #0] │ │ │ │ │ - push {lr} │ │ │ │ │ - ldr r3, [r3, #0] │ │ │ │ │ + str.w lr, [sp, #-4]! │ │ │ │ │ sub sp, #28 │ │ │ │ │ - subs r3, #4 │ │ │ │ │ + ldr r3, [r3, #0] │ │ │ │ │ vstr d0, [sp, #8] │ │ │ │ │ + sub.w r3, r3, #4 │ │ │ │ │ cmp r3, #3 │ │ │ │ │ - bhi.n 1a4 │ │ │ │ │ + bhi.n 1e2 │ │ │ │ │ tbb [pc, r3] │ │ │ │ │ - .short 0x1f02 │ │ │ │ │ - .short 0x2802 │ │ │ │ │ + .short 0x2202 │ │ │ │ │ + .short 0x2b02 │ │ │ │ │ ldr r2, [r0, #28] │ │ │ │ │ cmp.w r2, #67108864 @ 0x4000000 │ │ │ │ │ - beq.n 1a4 │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + beq.n 1e2 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ movt r3, #22528 @ 0x5800 │ │ │ │ │ - movs r0, #3 │ │ │ │ │ + mov.w r0, #3 │ │ │ │ │ movt r0, #22528 @ 0x5800 │ │ │ │ │ cmp r1, #0 │ │ │ │ │ it eq │ │ │ │ │ moveq r3, r0 │ │ │ │ │ add r1, sp, #16 │ │ │ │ │ - strd r3, r2, [sp] │ │ │ │ │ add r0, sp, #8 │ │ │ │ │ - movs r2, #1 │ │ │ │ │ + strd r3, r2, [sp] │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ movw r3, #2059 @ 0x80b │ │ │ │ │ movt r3, #19456 @ 0x4c00 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Allreduce │ │ │ │ │ vldr d0, [sp, #16] │ │ │ │ │ add sp, #28 │ │ │ │ │ ldr.w pc, [sp], #4 │ │ │ │ │ ldr r2, [r0, #24] │ │ │ │ │ cmp.w r2, #67108864 @ 0x4000000 │ │ │ │ │ - bne.n 16a │ │ │ │ │ + bne.n 1a2 │ │ │ │ │ vldr d0, [sp, #8] │ │ │ │ │ add sp, #28 │ │ │ │ │ ldr.w pc, [sp], #4 │ │ │ │ │ ldr r2, [r0, #36] @ 0x24 │ │ │ │ │ - b.n 164 │ │ │ │ │ - nop │ │ │ │ │ + b.n 19c │ │ │ │ │ │ │ │ │ │ -000001b4 : │ │ │ │ │ +000001f0 : │ │ │ │ │ local_size(): │ │ │ │ │ - stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + strd r3, r4, [sp, #-32]! │ │ │ │ │ + mov r4, r3 │ │ │ │ │ + strd r5, r6, [sp, #8] │ │ │ │ │ mov r6, r1 │ │ │ │ │ - mov r7, r0 │ │ │ │ │ mov r1, r2 │ │ │ │ │ + strd r7, r8, [sp, #16] │ │ │ │ │ + mov r7, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ ldr r5, [sp, #32] │ │ │ │ │ mov r8, r2 │ │ │ │ │ - mov r4, r3 │ │ │ │ │ + strd r9, lr, [sp, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ cmp r0, r7 │ │ │ │ │ - bgt.n 1f2 │ │ │ │ │ + bgt.n 24e │ │ │ │ │ ldr r3, [r6, #0] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 1ee │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + ble.n 23c │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ sub.w ip, r5, #4 │ │ │ │ │ - subs r3, r4, #4 │ │ │ │ │ + sub.w r3, r4, #4 │ │ │ │ │ mov r0, r2 │ │ │ │ │ str.w r0, [ip, #4]! │ │ │ │ │ - adds r2, #1 │ │ │ │ │ + add.w r2, r2, #1 │ │ │ │ │ str.w r0, [r3, #4]! │ │ │ │ │ ldr r1, [r6, #0] │ │ │ │ │ cmp r1, r2 │ │ │ │ │ - bgt.n 1de │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + bgt.n 22a │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + ldrd r5, r6, [sp, #8] │ │ │ │ │ + ldrd r7, r8, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldmia.w sp!, {r9, pc} │ │ │ │ │ mov r3, r5 │ │ │ │ │ mov r2, r7 │ │ │ │ │ mov r1, r8 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block_coords │ │ │ │ │ ldr r3, [r6, #0] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 1ee │ │ │ │ │ + ble.n 23c │ │ │ │ │ mov.w r8, r8, lsl #2 │ │ │ │ │ - subs r5, #4 │ │ │ │ │ + sub.w r5, r5, #4 │ │ │ │ │ + sub.w r4, r4, #4 │ │ │ │ │ + mov.w r9, #0 │ │ │ │ │ add.w r7, r6, r8 │ │ │ │ │ - subs r4, #4 │ │ │ │ │ rsb r8, r8, #4 │ │ │ │ │ - mov.w r9, #0 │ │ │ │ │ ldr.w r2, [r5, #4]! │ │ │ │ │ add.w r9, r9, #1 │ │ │ │ │ - ldr r1, [r7, #8] │ │ │ │ │ ldr.w r0, [r7, r8] │ │ │ │ │ - adds r7, #12 │ │ │ │ │ + add.w r7, r7, #12 │ │ │ │ │ + ldr.w r1, [r7, #-4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ str.w r0, [r4, #4]! │ │ │ │ │ ldr.w r2, [r7, #-4] │ │ │ │ │ ldr r3, [r5, #0] │ │ │ │ │ mul.w r3, r2, r3 │ │ │ │ │ str r3, [r5, #0] │ │ │ │ │ ldr r3, [r6, #0] │ │ │ │ │ cmp r9, r3 │ │ │ │ │ - blt.n 218 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ - nop │ │ │ │ │ + blt.n 278 │ │ │ │ │ + b.n 23c │ │ │ │ │ │ │ │ │ │ -00000248 : │ │ │ │ │ +000002a8 : │ │ │ │ │ default_sz.constprop.0(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - movs r0, #3 │ │ │ │ │ - sub sp, #12 │ │ │ │ │ + mov.w r0, #3 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ mov sl, r1 │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #12 │ │ │ │ │ str r2, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkdtensor │ │ │ │ │ mov r5, r0 │ │ │ │ │ - movs r0, #3 │ │ │ │ │ + mov.w r0, #3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkdtensor │ │ │ │ │ + add.w r1, r0, #4 │ │ │ │ │ add.w r2, r4, #24 │ │ │ │ │ - adds r1, r0, #4 │ │ │ │ │ add.w r3, r0, #28 │ │ │ │ │ mov r6, r0 │ │ │ │ │ cmp r4, r3 │ │ │ │ │ it cc │ │ │ │ │ cmpcc r1, r2 │ │ │ │ │ - bcc.w 3ce │ │ │ │ │ - ldrd r0, r2, [r4, #12] │ │ │ │ │ - ldr r3, [r4, #0] │ │ │ │ │ - ldrd r1, r7, [r4, #4] │ │ │ │ │ - ldr.w ip, [r4, #20] │ │ │ │ │ - strd r2, ip, [r6, #20] │ │ │ │ │ + bcc.w 45a │ │ │ │ │ + ldrd r3, r1, [r4] │ │ │ │ │ + ldrd r7, r0, [r4, #8] │ │ │ │ │ + ldrd r2, ip, [r4, #16] │ │ │ │ │ strd r3, r1, [r6, #4] │ │ │ │ │ strd r7, r0, [r6, #12] │ │ │ │ │ + strd r2, ip, [r6, #20] │ │ │ │ │ ldrd r0, r2, [r4, #24] │ │ │ │ │ ldr r3, [r4, #32] │ │ │ │ │ strd r0, r2, [r6, #28] │ │ │ │ │ - ldr r2, [sp, #4] │ │ │ │ │ str r3, [r6, #36] @ 0x24 │ │ │ │ │ ldr r0, [r4, #0] │ │ │ │ │ ldr r1, [r4, #12] │ │ │ │ │ + ldr r2, [sp, #4] │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ str r0, [r5, #4] │ │ │ │ │ str r1, [r5, #16] │ │ │ │ │ - cbz r2, 2b4 │ │ │ │ │ + cbz r2, 32c │ │ │ │ │ add.w r3, r3, r3, lsr #31 │ │ │ │ │ - asrs r3, r3, #1 │ │ │ │ │ - adds r3, #1 │ │ │ │ │ + mov.w r3, r3, asr #1 │ │ │ │ │ + add.w r3, r3, #1 │ │ │ │ │ ldr r2, [r4, #4] │ │ │ │ │ str r3, [r5, #28] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ it eq │ │ │ │ │ moveq r2, r0 │ │ │ │ │ str r2, [r5, #8] │ │ │ │ │ ldr r2, [r4, #8] │ │ │ │ │ @@ -315,191 +326,201 @@ │ │ │ │ │ str r2, [r5, #24] │ │ │ │ │ ldr r2, [r4, #28] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ it eq │ │ │ │ │ moveq r2, r3 │ │ │ │ │ ldr r3, [r4, #32] │ │ │ │ │ str r2, [r5, #32] │ │ │ │ │ - cbnz r3, 2ee │ │ │ │ │ + cbnz r3, 366 │ │ │ │ │ ldr r3, [r5, #28] │ │ │ │ │ add.w fp, r6, #8 │ │ │ │ │ add.w r9, r5, #8 │ │ │ │ │ - mov.w r8, #0 │ │ │ │ │ str r3, [r5, #36] @ 0x24 │ │ │ │ │ + mov.w r8, #0 │ │ │ │ │ mov r1, r8 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r7, r0 │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble.n 328 │ │ │ │ │ + ble.n 3a0 │ │ │ │ │ ldr.w r2, [fp] │ │ │ │ │ - cbz r2, 362 │ │ │ │ │ + cbz r2, 3ee │ │ │ │ │ ldr.w r2, [fp, #12] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - beq.n 38e │ │ │ │ │ + beq.n 41a │ │ │ │ │ ldr.w r2, [fp, #24] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - beq.n 3b8 │ │ │ │ │ + beq.n 444 │ │ │ │ │ add.w r2, r8, #1 │ │ │ │ │ add.w fp, fp, #4 │ │ │ │ │ + cmp r2, #2 │ │ │ │ │ add.w r9, r9, #4 │ │ │ │ │ mov.w r8, #1 │ │ │ │ │ - cmp r2, #2 │ │ │ │ │ - bne.n 2fc │ │ │ │ │ + bne.n 374 │ │ │ │ │ ldr r3, [sp, #4] │ │ │ │ │ - cbz r3, 344 │ │ │ │ │ + cbz r3, 3bc │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ str r3, [r5, #28] │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_canonical │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, #12 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [r5, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_default_block │ │ │ │ │ - str.w r0, [r9] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + str.w r0, [r9] │ │ │ │ │ ldr r0, [r5, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks │ │ │ │ │ mul.w r7, r0, r7 │ │ │ │ │ mov r0, sl │ │ │ │ │ mov r1, r7 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble.n 328 │ │ │ │ │ + ble.n 3a0 │ │ │ │ │ ldr.w r2, [fp, #12] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - bne.n 320 │ │ │ │ │ + bne.n 398 │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [r5, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_default_block │ │ │ │ │ - str.w r0, [r9, #12] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + str.w r0, [r9, #12] │ │ │ │ │ ldr r0, [r5, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks │ │ │ │ │ mul.w r1, r0, r7 │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble.n 328 │ │ │ │ │ + ble.n 3a0 │ │ │ │ │ ldr.w r2, [fp, #24] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - bne.n 328 │ │ │ │ │ + bne.n 3a0 │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [r5, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_default_block │ │ │ │ │ - str.w r0, [r9, #24] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + str.w r0, [r9, #24] │ │ │ │ │ ldr r0, [r5, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks │ │ │ │ │ - b.n 328 │ │ │ │ │ - ldrd r9, r8, [r4, #4] │ │ │ │ │ - ldrd lr, ip, [r4, #12] │ │ │ │ │ - ldrd r7, r0, [r4, #20] │ │ │ │ │ - ldr r1, [r4, #0] │ │ │ │ │ - ldrd r2, r3, [r4, #28] │ │ │ │ │ + b.n 3a0 │ │ │ │ │ + ldrd r1, r9, [r4] │ │ │ │ │ + ldrd r8, lr, [r4, #8] │ │ │ │ │ + ldrd ip, r7, [r4, #16] │ │ │ │ │ + ldrd r0, r2, [r4, #24] │ │ │ │ │ + ldr r3, [r4, #32] │ │ │ │ │ strd r1, r9, [r6, #4] │ │ │ │ │ strd r8, lr, [r6, #12] │ │ │ │ │ strd ip, r7, [r6, #20] │ │ │ │ │ - b.n 298 │ │ │ │ │ + b.n 30c │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -000003f0 : │ │ │ │ │ +0000047c : │ │ │ │ │ fftwf_mpi_local_size_many_transposed.part.0.constprop.0(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r6, r0 │ │ │ │ │ - movs r0, #36 @ 0x24 │ │ │ │ │ - sub sp, #68 @ 0x44 │ │ │ │ │ + mov.w r0, #36 @ 0x24 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r8, r1 │ │ │ │ │ mov r7, r2 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #68 @ 0x44 │ │ │ │ │ mov fp, r3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_malloc_plain │ │ │ │ │ ldr r3, [r6, #0] │ │ │ │ │ - strd r3, r3, [r0, #4] │ │ │ │ │ mov r5, r0 │ │ │ │ │ - str r3, [r0, #0] │ │ │ │ │ + strd r3, r3, [r0] │ │ │ │ │ + str r3, [r0, #8] │ │ │ │ │ ldr r3, [r6, #4] │ │ │ │ │ - strd r3, r3, [r0, #16] │ │ │ │ │ - str r3, [r0, #12] │ │ │ │ │ + strd r3, r3, [r0, #12] │ │ │ │ │ + str r3, [r0, #20] │ │ │ │ │ ldr r3, [r6, #8] │ │ │ │ │ - strd r3, r3, [r0, #28] │ │ │ │ │ - str r3, [r0, #24] │ │ │ │ │ - movs r0, #48 @ 0x30 │ │ │ │ │ + strd r3, r3, [r0, #24] │ │ │ │ │ + str r3, [r0, #32] │ │ │ │ │ + mov.w r0, #48 @ 0x30 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_malloc_plain │ │ │ │ │ - movs r3, #0 │ │ │ │ │ - str r3, [r5, #4] │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ add r1, sp, #32 │ │ │ │ │ mov r4, r0 │ │ │ │ │ add.w r9, r0, #24 │ │ │ │ │ - ldr r2, [r6, #4] │ │ │ │ │ + str r3, [r5, #4] │ │ │ │ │ add.w sl, r0, #36 @ 0x24 │ │ │ │ │ + ldr r2, [r6, #4] │ │ │ │ │ cmp r2, r8 │ │ │ │ │ - ite gt │ │ │ │ │ + it gt │ │ │ │ │ strgt.w r8, [r5, #20] │ │ │ │ │ - strle r3, [r5, #8] │ │ │ │ │ add.w r8, r0, #12 │ │ │ │ │ mov r0, r7 │ │ │ │ │ + it le │ │ │ │ │ + strle r3, [r5, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ add r1, sp, #36 @ 0x24 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ - bl 248 │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + bl 2a8 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r6, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_is_block1d │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.n 4e6 │ │ │ │ │ - movs r7, #1 │ │ │ │ │ + bne.n 5a6 │ │ │ │ │ + mov.w r7, #1 │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ mov r3, r4 │ │ │ │ │ mov r1, r6 │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ str.w r8, [sp] │ │ │ │ │ - bl 1b4 │ │ │ │ │ + bl 1f0 │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ mov r3, r9 │ │ │ │ │ mov r1, r6 │ │ │ │ │ - movs r2, #1 │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ str.w sl, [sp] │ │ │ │ │ - bl 1b4 │ │ │ │ │ - ldr r2, [r4, #32] │ │ │ │ │ + bl 1f0 │ │ │ │ │ ldrd r3, r0, [r4] │ │ │ │ │ + ldrd r1, r2, [r4, #28] │ │ │ │ │ mul.w r0, r3, r0 │ │ │ │ │ - ldrd r3, r1, [r4, #24] │ │ │ │ │ + ldr r3, [r4, #24] │ │ │ │ │ mul.w r1, r3, r1 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ mul.w r1, r2, r1 │ │ │ │ │ mul.w r0, r3, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_imax │ │ │ │ │ mov r1, r0 │ │ │ │ │ @@ -507,105 +528,112 @@ │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_imax │ │ │ │ │ mov r7, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ ldr r3, [r4, #0] │ │ │ │ │ - str.w r3, [fp] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ + str.w r3, [fp] │ │ │ │ │ ldr r2, [r4, #12] │ │ │ │ │ + ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ str r2, [r3, #0] │ │ │ │ │ - ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ ldr r2, [r4, #28] │ │ │ │ │ + ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ str r2, [r3, #0] │ │ │ │ │ - ldr r3, [sp, #112] @ 0x70 │ │ │ │ │ ldr r2, [r4, #40] @ 0x28 │ │ │ │ │ + ldr r3, [sp, #112] @ 0x70 │ │ │ │ │ str r2, [r3, #0] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ifree │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ifree │ │ │ │ │ mov r0, r7 │ │ │ │ │ add sp, #68 @ 0x44 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_is_block1d │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n 468 │ │ │ │ │ - adds r3, r6, #4 │ │ │ │ │ + beq.n 510 │ │ │ │ │ + ldrd r2, r3, [r6, #4] │ │ │ │ │ add.w r7, r6, #16 │ │ │ │ │ - ldmia.w r3, {r0, r1, r2} │ │ │ │ │ - add r3, sp, #40 @ 0x28 │ │ │ │ │ - stmia.w r3, {r0, r1, r2} │ │ │ │ │ - add r3, sp, #64 @ 0x40 │ │ │ │ │ - ldmia.w r7, {r0, r1, r2} │ │ │ │ │ - stmdb r3, {r0, r1, r2} │ │ │ │ │ - movs r2, #0 │ │ │ │ │ - strd r2, r4, [sp, #12] │ │ │ │ │ + str r4, [sp, #16] │ │ │ │ │ mov r4, r6 │ │ │ │ │ + strd r2, r3, [sp, #40] @ 0x28 │ │ │ │ │ + ldr r3, [r6, #12] │ │ │ │ │ + str r3, [sp, #48] @ 0x30 │ │ │ │ │ + ldrd r2, r3, [r6, #16] │ │ │ │ │ + strd r2, r3, [sp, #52] @ 0x34 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ + ldr r3, [r7, #8] │ │ │ │ │ + str r2, [sp, #12] │ │ │ │ │ + str r3, [sp, #60] @ 0x3c │ │ │ │ │ ldrd r0, r1, [r4, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - beq.n 5be │ │ │ │ │ + beq.n 698 │ │ │ │ │ ldr r2, [sp, #12] │ │ │ │ │ - movs r3, #1 │ │ │ │ │ - adds r4, #12 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + add.w r4, r4, #12 │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ - adds r2, #1 │ │ │ │ │ + add.w r2, r2, #1 │ │ │ │ │ cmp r2, #2 │ │ │ │ │ - bne.n 514 │ │ │ │ │ + bne.n 5da │ │ │ │ │ ldr r4, [sp, #16] │ │ │ │ │ str r3, [sp, #16] │ │ │ │ │ ldr r0, [r6, #0] │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble.w 650 │ │ │ │ │ + ble.w 740 │ │ │ │ │ add.w r0, r0, r0, lsl #1 │ │ │ │ │ - movs r2, #0 │ │ │ │ │ - subs r0, #3 │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + sub.w r0, r0, #3 │ │ │ │ │ ldr.w r1, [r7, r2, lsl #2] │ │ │ │ │ - adds r2, #3 │ │ │ │ │ + add.w r2, r2, #3 │ │ │ │ │ cmp r0, r2 │ │ │ │ │ mul.w r3, r1, r3 │ │ │ │ │ - bne.n 544 │ │ │ │ │ - ldr r7, [r6, #4] │ │ │ │ │ - mov r0, r3 │ │ │ │ │ + bne.n 616 │ │ │ │ │ ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ + mov r0, r3 │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ + ldr r7, [r6, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_default_block │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r2, [sp, #32] │ │ │ │ │ mov r0, r3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ mul.w r1, r0, r7 │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_imax │ │ │ │ │ - str r0, [sp, #12] │ │ │ │ │ ldrd r1, r7, [r6] │ │ │ │ │ + str r0, [sp, #12] │ │ │ │ │ cmp r1, #2 │ │ │ │ │ - ble.n 598 │ │ │ │ │ + ble.n 672 │ │ │ │ │ add.w r1, r1, r1, lsl #1 │ │ │ │ │ - movs r3, #0 │ │ │ │ │ - subs r1, #6 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ add.w r0, r6, #28 │ │ │ │ │ + sub.w r1, r1, #6 │ │ │ │ │ ldr.w r2, [r0, r3, lsl #2] │ │ │ │ │ - adds r3, #3 │ │ │ │ │ + add.w r3, r3, #3 │ │ │ │ │ cmp r3, r1 │ │ │ │ │ mul.w r7, r2, r7 │ │ │ │ │ - bne.n 58a │ │ │ │ │ + bne.n 662 │ │ │ │ │ ldr r3, [r6, #16] │ │ │ │ │ mov r0, r7 │ │ │ │ │ ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ str r3, [sp, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_default_block │ │ │ │ │ ldr r2, [sp, #32] │ │ │ │ │ @@ -615,375 +643,389 @@ │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ ldr r3, [sp, #16] │ │ │ │ │ mul.w r1, r0, r3 │ │ │ │ │ ldr r0, [sp, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_imax │ │ │ │ │ mov r7, r0 │ │ │ │ │ - b.n 46a │ │ │ │ │ - ldr r1, [r4, #12] │ │ │ │ │ + b.n 514 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ + ldr r1, [r4, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - bne.n 520 │ │ │ │ │ - ldr r3, [sp, #12] │ │ │ │ │ - ldr r4, [sp, #16] │ │ │ │ │ - negs r3, r3 │ │ │ │ │ + bne.n 5e6 │ │ │ │ │ + ldrd r3, r4, [sp, #12] │ │ │ │ │ ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ + rsb r3, r3, #0 │ │ │ │ │ and.w r3, r3, #12 │ │ │ │ │ - str r0, [sp, #16] │ │ │ │ │ - adds r2, r6, r3 │ │ │ │ │ - str r2, [sp, #20] │ │ │ │ │ + add.w r2, r6, r3 │ │ │ │ │ + strd r0, r2, [sp, #16] │ │ │ │ │ ldr r0, [r2, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_default_block │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ ldr r2, [sp, #20] │ │ │ │ │ eor.w r1, r3, #1 │ │ │ │ │ - subs r3, #1 │ │ │ │ │ + add.w r3, r3, #4294967295 @ 0xffffffff │ │ │ │ │ and.w r3, r3, #12 │ │ │ │ │ str r1, [sp, #28] │ │ │ │ │ - adds r1, r6, r3 │ │ │ │ │ + add.w r1, r6, r3 │ │ │ │ │ str r0, [r2, #8] │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ + ldr r3, [r1, #4] │ │ │ │ │ str r1, [sp, #24] │ │ │ │ │ - movs r2, #0 │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ - ldr r3, [r1, #4] │ │ │ │ │ str r3, [r1, #8] │ │ │ │ │ mov r3, r4 │ │ │ │ │ mov r1, r6 │ │ │ │ │ str.w r8, [sp] │ │ │ │ │ - bl 1b4 │ │ │ │ │ - ldr r1, [r4, #8] │ │ │ │ │ + bl 1f0 │ │ │ │ │ ldrd r2, r3, [r4] │ │ │ │ │ + ldr r1, [r4, #8] │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ mul.w r3, r2, r3 │ │ │ │ │ mul.w r1, r3, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_imax │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ - mov.w ip, #12 │ │ │ │ │ str r0, [sp, #16] │ │ │ │ │ add r0, sp, #64 @ 0x40 │ │ │ │ │ - mla r2, ip, r3, r0 │ │ │ │ │ - ldr r3, [sp, #20] │ │ │ │ │ - subs r2, #24 │ │ │ │ │ - adds r3, #4 │ │ │ │ │ - ldmia r2, {r0, r1, r2} │ │ │ │ │ - stmia.w r3, {r0, r1, r2} │ │ │ │ │ - ldr r3, [sp, #28] │ │ │ │ │ - add r2, sp, #64 @ 0x40 │ │ │ │ │ - ldr r1, [sp, #24] │ │ │ │ │ - mla r2, ip, r3, r2 │ │ │ │ │ - adds r3, r1, #4 │ │ │ │ │ - subs r2, #24 │ │ │ │ │ - ldmia r2, {r0, r1, r2} │ │ │ │ │ - stmia.w r3, {r0, r1, r2} │ │ │ │ │ - b.n 532 │ │ │ │ │ - movs r3, #1 │ │ │ │ │ - b.n 552 │ │ │ │ │ + ldr r2, [sp, #20] │ │ │ │ │ + add.w r3, r3, r3, lsl #1 │ │ │ │ │ + add.w r3, r0, r3, lsl #2 │ │ │ │ │ + ldrd r0, r1, [r3, #-24] │ │ │ │ │ + ldr.w r3, [r3, #-16] │ │ │ │ │ + strd r0, r1, [r2, #4] │ │ │ │ │ + add r0, sp, #64 @ 0x40 │ │ │ │ │ + str r3, [r2, #12] │ │ │ │ │ + ldrd r2, r3, [sp, #24] │ │ │ │ │ + add.w r3, r3, r3, lsl #1 │ │ │ │ │ + add.w r3, r0, r3, lsl #2 │ │ │ │ │ + ldrd r0, r1, [r3, #-24] │ │ │ │ │ + ldr.w r3, [r3, #-16] │ │ │ │ │ + strd r0, r1, [r2, #4] │ │ │ │ │ + str r3, [r2, #12] │ │ │ │ │ + b.n 5fe │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + b.n 626 │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -00000654 : │ │ │ │ │ +00000748 : │ │ │ │ │ default_sz.constprop.1(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r6, r0 │ │ │ │ │ - movs r0, #2 │ │ │ │ │ - sub sp, #12 │ │ │ │ │ - mov r9, r1 │ │ │ │ │ + mov.w r0, #2 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r7, r2 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + mov r9, r1 │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #12 │ │ │ │ │ str r2, [sp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkdtensor │ │ │ │ │ mov r4, r0 │ │ │ │ │ - movs r0, #2 │ │ │ │ │ + mov.w r0, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkdtensor │ │ │ │ │ - ldr r2, [r6, #0] │ │ │ │ │ - ldr r1, [r6, #4] │ │ │ │ │ + ldrd r2, r1, [r6] │ │ │ │ │ mov r5, r0 │ │ │ │ │ - ldr.w lr, [r6, #8] │ │ │ │ │ - ldr r3, [r6, #12] │ │ │ │ │ - str r2, [r0, #4] │ │ │ │ │ - str r1, [r0, #8] │ │ │ │ │ - str.w lr, [r0, #12] │ │ │ │ │ - str r3, [r0, #16] │ │ │ │ │ + ldrd lr, r3, [r6, #8] │ │ │ │ │ + strd r2, r1, [r0, #4] │ │ │ │ │ + strd lr, r3, [r0, #12] │ │ │ │ │ ldrd ip, r0, [r6, #16] │ │ │ │ │ mov r8, r0 │ │ │ │ │ mov sl, ip │ │ │ │ │ - cbz r7, 698 │ │ │ │ │ + cbz r7, 7a0 │ │ │ │ │ add.w r3, r3, r3, lsr #31 │ │ │ │ │ - asrs r3, r3, #1 │ │ │ │ │ - adds r3, #1 │ │ │ │ │ - strd ip, r0, [r5, #20] │ │ │ │ │ + mov.w r3, r3, asr #1 │ │ │ │ │ + add.w r3, r3, #1 │ │ │ │ │ cmp r1, #0 │ │ │ │ │ it eq │ │ │ │ │ moveq r1, r2 │ │ │ │ │ - str r2, [r4, #4] │ │ │ │ │ + strd ip, r0, [r5, #20] │ │ │ │ │ + strd r2, r1, [r4, #4] │ │ │ │ │ cmp.w lr, #0 │ │ │ │ │ it ne │ │ │ │ │ movne r2, lr │ │ │ │ │ cmp.w ip, #0 │ │ │ │ │ - str r3, [r4, #16] │ │ │ │ │ it eq │ │ │ │ │ moveq sl, r3 │ │ │ │ │ - str r1, [r4, #8] │ │ │ │ │ str r2, [r4, #12] │ │ │ │ │ + str r3, [r4, #16] │ │ │ │ │ str.w sl, [r4, #20] │ │ │ │ │ - cbnz r0, 6c2 │ │ │ │ │ + cbnz r0, 7ca │ │ │ │ │ mov r8, r3 │ │ │ │ │ - str.w r8, [r4, #24] │ │ │ │ │ add.w fp, r5, #8 │ │ │ │ │ - add.w r8, r4, #8 │ │ │ │ │ mov.w sl, #0 │ │ │ │ │ + str.w r8, [r4, #24] │ │ │ │ │ + add.w r8, r4, #8 │ │ │ │ │ mov r1, sl │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r7, r0 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble.n 6f4 │ │ │ │ │ + ble.n 7fe │ │ │ │ │ ldr.w r2, [fp] │ │ │ │ │ - cbz r2, 72e │ │ │ │ │ + cbz r2, 84c │ │ │ │ │ ldr.w r2, [fp, #12] │ │ │ │ │ - cbz r2, 758 │ │ │ │ │ + cmp r2, #0 │ │ │ │ │ + beq.n 876 │ │ │ │ │ add.w r2, sl, #1 │ │ │ │ │ add.w fp, fp, #4 │ │ │ │ │ + cmp r2, #2 │ │ │ │ │ add.w r8, r8, #4 │ │ │ │ │ mov.w sl, #1 │ │ │ │ │ - cmp r2, #2 │ │ │ │ │ - bne.n 6d2 │ │ │ │ │ + bne.n 7da │ │ │ │ │ ldr r3, [sp, #4] │ │ │ │ │ - cbz r3, 710 │ │ │ │ │ + cbz r3, 81a │ │ │ │ │ ldr r3, [r6, #12] │ │ │ │ │ str r3, [r4, #16] │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_canonical │ │ │ │ │ mov r5, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ mov r0, r5 │ │ │ │ │ add sp, #12 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_default_block │ │ │ │ │ - str.w r0, [r8] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + str.w r0, [r8] │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks │ │ │ │ │ mul.w r1, r7, r0 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble.n 6f4 │ │ │ │ │ + ble.n 7fe │ │ │ │ │ ldr.w r2, [fp, #12] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - bne.n 6f4 │ │ │ │ │ + bne.n 7fe │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [r4, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_default_block │ │ │ │ │ - str.w r0, [r8, #12] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + str.w r0, [r8, #12] │ │ │ │ │ ldr r0, [r4, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks │ │ │ │ │ - b.n 6f4 │ │ │ │ │ - nop │ │ │ │ │ + b.n 7fe │ │ │ │ │ │ │ │ │ │ -00000770 : │ │ │ │ │ +0000088c : │ │ │ │ │ fftwf_mpi_local_size_many_transposed.part.0.constprop.1(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r6, r0 │ │ │ │ │ - movs r0, #24 │ │ │ │ │ - sub sp, #68 @ 0x44 │ │ │ │ │ + mov.w r0, #24 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r8, r1 │ │ │ │ │ mov r7, r2 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ mov r9, r3 │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #68 @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_malloc_plain │ │ │ │ │ ldr r3, [r6, #0] │ │ │ │ │ - strd r3, r3, [r0, #4] │ │ │ │ │ mov r5, r0 │ │ │ │ │ - str r3, [r0, #0] │ │ │ │ │ + strd r3, r3, [r0] │ │ │ │ │ + str r3, [r0, #8] │ │ │ │ │ ldr r3, [r6, #4] │ │ │ │ │ - strd r3, r3, [r0, #16] │ │ │ │ │ - str r3, [r0, #12] │ │ │ │ │ - movs r0, #32 │ │ │ │ │ + strd r3, r3, [r0, #12] │ │ │ │ │ + str r3, [r0, #20] │ │ │ │ │ + mov.w r0, #32 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_malloc_plain │ │ │ │ │ - movs r3, #0 │ │ │ │ │ - str r3, [r5, #4] │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ add r1, sp, #32 │ │ │ │ │ mov r4, r0 │ │ │ │ │ add.w sl, r0, #24 │ │ │ │ │ + str r3, [r5, #4] │ │ │ │ │ ldr r2, [r6, #4] │ │ │ │ │ cmp r2, r8 │ │ │ │ │ - ite gt │ │ │ │ │ - strgt.w r8, [r5, #20] │ │ │ │ │ + it le │ │ │ │ │ strle r3, [r5, #8] │ │ │ │ │ - add.w r8, r0, #8 │ │ │ │ │ add.w r3, r0, #16 │ │ │ │ │ + it gt │ │ │ │ │ + strgt.w r8, [r5, #20] │ │ │ │ │ + add.w r8, r0, #8 │ │ │ │ │ mov r0, r7 │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ add r1, sp, #36 @ 0x24 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ - bl 654 │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + bl 748 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r6, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_is_block1d │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.n 854 │ │ │ │ │ - movs r7, #1 │ │ │ │ │ + bne.n 9a4 │ │ │ │ │ + mov.w r7, #1 │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ mov r3, r4 │ │ │ │ │ mov r1, r6 │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ str.w r8, [sp] │ │ │ │ │ - bl 1b4 │ │ │ │ │ + bl 1f0 │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ - ldr r0, [sp, #32] │ │ │ │ │ mov r1, r6 │ │ │ │ │ - movs r2, #1 │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ str.w sl, [sp] │ │ │ │ │ - bl 1b4 │ │ │ │ │ - ldrd r1, r2, [r4, #16] │ │ │ │ │ + ldr r0, [sp, #32] │ │ │ │ │ + bl 1f0 │ │ │ │ │ ldrd r3, r0, [r4] │ │ │ │ │ - mul.w r1, r2, r1 │ │ │ │ │ + ldrd r1, r2, [r4, #16] │ │ │ │ │ mul.w r0, r3, r0 │ │ │ │ │ + mul.w r1, r2, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_imax │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_imax │ │ │ │ │ mov r7, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ ldr r3, [r4, #0] │ │ │ │ │ - str.w r3, [r9] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ + str.w r3, [r9] │ │ │ │ │ ldr r2, [r4, #8] │ │ │ │ │ + ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ str r2, [r3, #0] │ │ │ │ │ - ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ ldr r2, [r4, #20] │ │ │ │ │ + ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ str r2, [r3, #0] │ │ │ │ │ - ldr r3, [sp, #112] @ 0x70 │ │ │ │ │ ldr r2, [r4, #28] │ │ │ │ │ + ldr r3, [sp, #112] @ 0x70 │ │ │ │ │ str r2, [r3, #0] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ifree │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ifree │ │ │ │ │ mov r0, r7 │ │ │ │ │ add sp, #68 @ 0x44 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_is_block1d │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n 7e2 │ │ │ │ │ - adds r3, r6, #4 │ │ │ │ │ + beq.n 91a │ │ │ │ │ + ldrd r2, r3, [r6, #4] │ │ │ │ │ add.w r7, r6, #16 │ │ │ │ │ mov.w fp, #0 │ │ │ │ │ str r4, [sp, #16] │ │ │ │ │ mov r4, r6 │ │ │ │ │ - ldmia.w r3, {r0, r1, r2} │ │ │ │ │ - add r3, sp, #40 @ 0x28 │ │ │ │ │ - stmia.w r3, {r0, r1, r2} │ │ │ │ │ - add r3, sp, #64 @ 0x40 │ │ │ │ │ - ldmia.w r7, {r0, r1, r2} │ │ │ │ │ - stmdb r3, {r0, r1, r2} │ │ │ │ │ + strd r2, r3, [sp, #40] @ 0x28 │ │ │ │ │ + ldr r3, [r6, #12] │ │ │ │ │ + str r3, [sp, #48] @ 0x30 │ │ │ │ │ + ldrd r2, r3, [r6, #16] │ │ │ │ │ + strd r2, r3, [sp, #52] @ 0x34 │ │ │ │ │ + ldr r3, [r6, #24] │ │ │ │ │ + str r3, [sp, #60] @ 0x3c │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r7, r6 │ │ │ │ │ mov r6, r5 │ │ │ │ │ mov r5, fp │ │ │ │ │ mov fp, r3 │ │ │ │ │ ldrd r0, r1, [r4, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - beq.n 93c │ │ │ │ │ - adds r2, r5, #1 │ │ │ │ │ - adds r4, #12 │ │ │ │ │ - movs r5, #1 │ │ │ │ │ + beq.n aa2 │ │ │ │ │ + add.w r2, r5, #1 │ │ │ │ │ + add.w r4, r4, #12 │ │ │ │ │ cmp r2, #2 │ │ │ │ │ - bne.n 88c │ │ │ │ │ + mov.w r5, #1 │ │ │ │ │ + bne.n 9e0 │ │ │ │ │ mov r3, fp │ │ │ │ │ mov fp, r5 │ │ │ │ │ + ldr r4, [sp, #16] │ │ │ │ │ mov r5, r6 │ │ │ │ │ mov r6, r7 │ │ │ │ │ mov r7, r3 │ │ │ │ │ - ldr r4, [sp, #16] │ │ │ │ │ str.w fp, [sp, #16] │ │ │ │ │ ldr r1, [r6, #0] │ │ │ │ │ cmp r1, #1 │ │ │ │ │ - ble.w 9d0 │ │ │ │ │ + ble.w b48 │ │ │ │ │ add.w r1, r1, r1, lsl #1 │ │ │ │ │ - movs r3, #0 │ │ │ │ │ - subs r1, #3 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ mov.w fp, #1 │ │ │ │ │ + sub.w r1, r1, #3 │ │ │ │ │ ldr.w r2, [r7, r3, lsl #2] │ │ │ │ │ - adds r3, #3 │ │ │ │ │ + add.w r3, r3, #3 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ mul.w fp, r2, fp │ │ │ │ │ - bne.n 8c6 │ │ │ │ │ + bne.n a24 │ │ │ │ │ ldr r7, [r6, #4] │ │ │ │ │ mov r0, fp │ │ │ │ │ ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_default_block │ │ │ │ │ ldr r2, [sp, #32] │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ mul.w r1, r0, r7 │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_imax │ │ │ │ │ - mov fp, r0 │ │ │ │ │ ldrd r1, r7, [r6] │ │ │ │ │ + mov fp, r0 │ │ │ │ │ cmp r1, #2 │ │ │ │ │ - ble.n 916 │ │ │ │ │ + ble.n a7c │ │ │ │ │ add.w r1, r1, r1, lsl #1 │ │ │ │ │ - movs r3, #0 │ │ │ │ │ - subs r1, #6 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ add.w r0, r6, #28 │ │ │ │ │ + sub.w r1, r1, #6 │ │ │ │ │ ldr.w r2, [r0, r3, lsl #2] │ │ │ │ │ - adds r3, #3 │ │ │ │ │ + add.w r3, r3, #3 │ │ │ │ │ cmp r3, r1 │ │ │ │ │ mul.w r7, r2, r7 │ │ │ │ │ - bne.n 908 │ │ │ │ │ + bne.n a6c │ │ │ │ │ ldr r3, [r6, #16] │ │ │ │ │ mov r0, r7 │ │ │ │ │ ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ str r3, [sp, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_default_block │ │ │ │ │ ldr r2, [sp, #32] │ │ │ │ │ @@ -993,414 +1035,431 @@ │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ ldr r3, [sp, #16] │ │ │ │ │ mul.w r1, r0, r3 │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_imax │ │ │ │ │ mov r7, r0 │ │ │ │ │ - b.n 7e4 │ │ │ │ │ - ldr r1, [r4, #12] │ │ │ │ │ + b.n 91e │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ + ldr r1, [r4, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - bne.n 898 │ │ │ │ │ + bne.n 9ec │ │ │ │ │ mov r3, fp │ │ │ │ │ mov fp, r5 │ │ │ │ │ + ldr r4, [sp, #16] │ │ │ │ │ mov r5, r6 │ │ │ │ │ mov r6, r7 │ │ │ │ │ mov r7, r3 │ │ │ │ │ rsb r3, fp, #0 │ │ │ │ │ - and.w r3, r3, #12 │ │ │ │ │ - ldr r4, [sp, #16] │ │ │ │ │ - adds r3, r6, r3 │ │ │ │ │ ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ - str r0, [sp, #16] │ │ │ │ │ - str r3, [sp, #20] │ │ │ │ │ - ldr r0, [r3, #4] │ │ │ │ │ + and.w r3, r3, #12 │ │ │ │ │ + add.w r2, r6, r3 │ │ │ │ │ + strd r0, r2, [sp, #16] │ │ │ │ │ + ldr r0, [r2, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_default_block │ │ │ │ │ - ldr r3, [sp, #20] │ │ │ │ │ - eor.w r2, fp, #1 │ │ │ │ │ - str r2, [sp, #28] │ │ │ │ │ - mov r1, r6 │ │ │ │ │ - str r0, [r3, #8] │ │ │ │ │ + ldr r2, [sp, #20] │ │ │ │ │ + eor.w r3, fp, #1 │ │ │ │ │ + str r3, [sp, #28] │ │ │ │ │ add.w r3, fp, #4294967295 @ 0xffffffff │ │ │ │ │ and.w r3, r3, #12 │ │ │ │ │ + add.w r1, r6, r3 │ │ │ │ │ + str r0, [r2, #8] │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ + ldr r3, [r1, #4] │ │ │ │ │ + str r1, [sp, #24] │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ - adds r2, r6, r3 │ │ │ │ │ - str r2, [sp, #24] │ │ │ │ │ - ldr r3, [r2, #4] │ │ │ │ │ - str r3, [r2, #8] │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + str r3, [r1, #8] │ │ │ │ │ mov r3, r4 │ │ │ │ │ + mov r1, r6 │ │ │ │ │ str.w r8, [sp] │ │ │ │ │ - bl 1b4 │ │ │ │ │ - ldr r0, [sp, #16] │ │ │ │ │ + bl 1f0 │ │ │ │ │ ldrd r1, r3, [r4] │ │ │ │ │ + ldr r0, [sp, #16] │ │ │ │ │ mul.w r1, r3, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_imax │ │ │ │ │ - mov.w ip, #12 │ │ │ │ │ + add.w r3, fp, fp, lsl #1 │ │ │ │ │ str r0, [sp, #16] │ │ │ │ │ add r0, sp, #64 @ 0x40 │ │ │ │ │ - ldr r3, [sp, #20] │ │ │ │ │ - mla r2, ip, fp, r0 │ │ │ │ │ - adds r3, #4 │ │ │ │ │ - subs r2, #24 │ │ │ │ │ - ldmia r2, {r0, r1, r2} │ │ │ │ │ - stmia.w r3, {r0, r1, r2} │ │ │ │ │ - ldr r1, [sp, #28] │ │ │ │ │ + ldr r2, [sp, #20] │ │ │ │ │ + add.w r3, r0, r3, lsl #2 │ │ │ │ │ + ldrd r0, r1, [r3, #-24] │ │ │ │ │ + ldr.w r3, [r3, #-16] │ │ │ │ │ + strd r0, r1, [r2, #4] │ │ │ │ │ add r0, sp, #64 @ 0x40 │ │ │ │ │ - ldr r3, [sp, #24] │ │ │ │ │ - adds r3, #4 │ │ │ │ │ - mla r2, ip, r1, r0 │ │ │ │ │ - subs r2, #24 │ │ │ │ │ - ldmia r2, {r0, r1, r2} │ │ │ │ │ - stmia.w r3, {r0, r1, r2} │ │ │ │ │ - b.n 8b2 │ │ │ │ │ + str r3, [r2, #12] │ │ │ │ │ + ldrd r2, r3, [sp, #24] │ │ │ │ │ + add.w r3, r3, r3, lsl #1 │ │ │ │ │ + add.w r3, r0, r3, lsl #2 │ │ │ │ │ + ldrd r0, r1, [r3, #-24] │ │ │ │ │ + ldr.w r3, [r3, #-16] │ │ │ │ │ + strd r0, r1, [r2, #4] │ │ │ │ │ + str r3, [r2, #12] │ │ │ │ │ + b.n a0c │ │ │ │ │ mov.w fp, #1 │ │ │ │ │ - b.n 8d4 │ │ │ │ │ + b.n a34 │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -000009d8 : │ │ │ │ │ +00000b50 : │ │ │ │ │ default_sz.constprop.2(): │ │ │ │ │ - stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + strd r3, r4, [sp, #-32]! │ │ │ │ │ + strd r5, r6, [sp, #8] │ │ │ │ │ mov r5, r0 │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ + strd r7, r8, [sp, #16] │ │ │ │ │ mov r8, r1 │ │ │ │ │ + mov.w r7, #0 │ │ │ │ │ + strd r9, lr, [sp, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkdtensor │ │ │ │ │ mov r4, r0 │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkdtensor │ │ │ │ │ - movs r7, #0 │ │ │ │ │ ldrd r3, r2, [r5] │ │ │ │ │ - strd r3, r2, [r0, #4] │ │ │ │ │ mov r6, r0 │ │ │ │ │ add.w r9, r0, #8 │ │ │ │ │ - ldr r1, [r5, #8] │ │ │ │ │ - add.w r5, r4, #8 │ │ │ │ │ - str r1, [r0, #12] │ │ │ │ │ + strd r3, r2, [r0, #4] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ it eq │ │ │ │ │ moveq r2, r3 │ │ │ │ │ - str r3, [r4, #4] │ │ │ │ │ + ldr r1, [r5, #8] │ │ │ │ │ + add.w r5, r4, #8 │ │ │ │ │ + str r1, [r0, #12] │ │ │ │ │ + strd r3, r2, [r4, #4] │ │ │ │ │ cmp r1, #0 │ │ │ │ │ it ne │ │ │ │ │ movne r3, r1 │ │ │ │ │ - str r2, [r4, #8] │ │ │ │ │ str r3, [r4, #12] │ │ │ │ │ mov r1, r7 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ - mov r1, r0 │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble.n a34 │ │ │ │ │ + mov r1, r0 │ │ │ │ │ + ble.n bbe │ │ │ │ │ ldr.w r3, [r9] │ │ │ │ │ - cbz r3, a6c │ │ │ │ │ - adds r3, r7, #1 │ │ │ │ │ - adds r5, #4 │ │ │ │ │ - add.w r9, r9, #4 │ │ │ │ │ - movs r7, #1 │ │ │ │ │ + cbz r3, c0c │ │ │ │ │ + add.w r3, r7, #1 │ │ │ │ │ + add.w r5, r5, #4 │ │ │ │ │ cmp r3, #2 │ │ │ │ │ - bne.n a18 │ │ │ │ │ + add.w r9, r9, #4 │ │ │ │ │ + mov.w r7, #1 │ │ │ │ │ + bne.n ba2 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_is_prime │ │ │ │ │ - cbz r0, a50 │ │ │ │ │ + cbz r0, be0 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ strd r3, r3, [r4, #8] │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_canonical │ │ │ │ │ mov r5, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ mov r0, r5 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r5, r6, [sp, #8] │ │ │ │ │ + ldrd r7, r8, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldmia.w sp!, {r9, pc} │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_default_block │ │ │ │ │ - str r0, [r5, #0] │ │ │ │ │ mov r1, r0 │ │ │ │ │ + str r0, [r5, #0] │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks │ │ │ │ │ - b.n a34 │ │ │ │ │ + b.n bbe │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -00000a80 : │ │ │ │ │ +00000c20 : │ │ │ │ │ fftwf_mpi_local_size_guru.part.0.constprop.0(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r2 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r6, r0 │ │ │ │ │ - sub sp, #44 @ 0x2c │ │ │ │ │ - mov r0, r2 │ │ │ │ │ mov r5, r1 │ │ │ │ │ - add r1, sp, #16 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + mov r0, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #44 @ 0x2c │ │ │ │ │ + add r1, sp, #16 │ │ │ │ │ ldr.w r9, [sp, #84] @ 0x54 │ │ │ │ │ ldrd sl, r8, [sp, #92] @ 0x5c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ add r1, sp, #20 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ mov r0, r6 │ │ │ │ │ - bl 9d8 │ │ │ │ │ + bl b50 │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ mov r4, r0 │ │ │ │ │ cmp r5, r3 │ │ │ │ │ - blt.n abc │ │ │ │ │ - movs.w r6, r8, lsr #27 │ │ │ │ │ - beq.n b68 │ │ │ │ │ + blt.n c6c │ │ │ │ │ + movs.w fp, r8, lsr #27 │ │ │ │ │ + beq.n d2e │ │ │ │ │ add.w r2, sl, #1 │ │ │ │ │ bics.w r2, r2, #2 │ │ │ │ │ - bne.n b54 │ │ │ │ │ + bne.n d1a │ │ │ │ │ add r2, sp, #32 │ │ │ │ │ + strd r8, sl, [sp] │ │ │ │ │ + mov.w sl, #1 │ │ │ │ │ str r2, [sp, #12] │ │ │ │ │ add r2, sp, #24 │ │ │ │ │ - strd sl, r2, [sp, #4] │ │ │ │ │ - adds r2, r4, #4 │ │ │ │ │ - str.w r8, [sp] │ │ │ │ │ - mov.w sl, #1 │ │ │ │ │ + str r2, [sp, #8] │ │ │ │ │ + add.w r2, r4, #4 │ │ │ │ │ ldmia r2, {r0, r1, r2} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_choose_radix │ │ │ │ │ mov r6, r0 │ │ │ │ │ - cbz r0, b10 │ │ │ │ │ + cbz r0, cc0 │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ ldr r1, [sp, #24] │ │ │ │ │ - mov fp, r0 │ │ │ │ │ tst.w r8, #134217728 @ 0x8000000 │ │ │ │ │ + mov fp, r0 │ │ │ │ │ mul.w r1, r1, r0 │ │ │ │ │ - beq.n bd8 │ │ │ │ │ + beq.n d9e │ │ │ │ │ mov.w sl, #1 │ │ │ │ │ str r1, [r4, #8] │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ tst.w r8, #268435456 @ 0x10000000 │ │ │ │ │ mul.w r1, r3, r6 │ │ │ │ │ it ne │ │ │ │ │ strne r1, [r4, #12] │ │ │ │ │ - beq.n bc6 │ │ │ │ │ - ldr r3, [sp, #80] @ 0x50 │ │ │ │ │ - mov r1, r4 │ │ │ │ │ + beq.n d8c │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + mov r1, r4 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ + ldr r3, [sp, #80] @ 0x50 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ mov r3, r7 │ │ │ │ │ - bl 1b4 │ │ │ │ │ - ldr r3, [sp, #88] @ 0x58 │ │ │ │ │ - movs r2, #1 │ │ │ │ │ + bl 1f0 │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ mov r1, r4 │ │ │ │ │ + ldr r3, [sp, #88] @ 0x58 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ mov r3, r9 │ │ │ │ │ - bl 1b4 │ │ │ │ │ + bl 1f0 │ │ │ │ │ ldr.w r1, [r9] │ │ │ │ │ ldr r0, [r7, #0] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_imax │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_imax │ │ │ │ │ mov r6, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ mul.w r0, r6, r5 │ │ │ │ │ add sp, #44 @ 0x2c │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ - ldr r2, [pc, #148] @ (bec ) │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + ldr r2, [pc, #152] @ (db4 ) │ │ │ │ │ movw r1, #323 @ 0x143 │ │ │ │ │ - ldr r0, [pc, #148] @ (bf0 ) │ │ │ │ │ + ldr r0, [pc, #148] @ (db8 ) │ │ │ │ │ add r2, pc │ │ │ │ │ add r0, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_assertion_failed │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ - b.n ac6 │ │ │ │ │ - movs r0, #2 │ │ │ │ │ + b.n c76 │ │ │ │ │ + mov.w r0, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkdtensor │ │ │ │ │ - adds r2, r4, #4 │ │ │ │ │ - adds r3, r0, #4 │ │ │ │ │ - mov r8, r0 │ │ │ │ │ - ldmia r2, {r0, r1, r2} │ │ │ │ │ - stmia.w r3, {r0, r1, r2} │ │ │ │ │ + ldrd r2, r3, [r4, #4] │ │ │ │ │ + mov r6, r0 │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ - ldr r3, [r4, #4] │ │ │ │ │ + strd r2, r3, [r0, #4] │ │ │ │ │ mov r0, r5 │ │ │ │ │ - str.w r3, [r8, #8] │ │ │ │ │ - str.w r5, [r8, #24] │ │ │ │ │ - str.w r5, [r8, #16] │ │ │ │ │ + ldr r3, [r4, #12] │ │ │ │ │ + str r3, [r6, #12] │ │ │ │ │ + ldr r3, [r4, #4] │ │ │ │ │ + str r3, [r6, #8] │ │ │ │ │ + str r5, [r6, #16] │ │ │ │ │ + str r5, [r6, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_default_block │ │ │ │ │ - mov r2, r6 │ │ │ │ │ - mov r1, r8 │ │ │ │ │ - str.w r0, [r8, #20] │ │ │ │ │ add r3, sp, #32 │ │ │ │ │ + mov r2, fp │ │ │ │ │ + str r0, [r6, #20] │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ + mov r1, r6 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ add r3, sp, #24 │ │ │ │ │ - bl 1b4 │ │ │ │ │ - mov r0, r8 │ │ │ │ │ + bl 1f0 │ │ │ │ │ + mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ - mov r1, r5 │ │ │ │ │ ldrd r0, r3, [sp, #24] │ │ │ │ │ + mov r1, r5 │ │ │ │ │ mla r0, r3, r0, r5 │ │ │ │ │ - subs r0, #1 │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ mov r1, r0 │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_imax │ │ │ │ │ mov sl, r0 │ │ │ │ │ - b.n b10 │ │ │ │ │ + b.n cc0 │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_imax │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ mov sl, r0 │ │ │ │ │ mul.w r3, fp, r3 │ │ │ │ │ str r3, [r4, #12] │ │ │ │ │ - b.n b10 │ │ │ │ │ + b.n cc0 │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ mul.w r3, r6, r3 │ │ │ │ │ str r3, [r4, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_imax │ │ │ │ │ mov sl, r0 │ │ │ │ │ - b.n b00 │ │ │ │ │ + b.n cb0 │ │ │ │ │ nop │ │ │ │ │ - .word 0x0000008c │ │ │ │ │ - R_ARM_REL32 .LC0 │ │ │ │ │ .word 0x0000008e │ │ │ │ │ + R_ARM_REL32 .LC0 │ │ │ │ │ + .word 0x00000090 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ │ │ │ │ │ -00000bf4 : │ │ │ │ │ +00000dbc : │ │ │ │ │ default_sz(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - mov r7, r0 │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r1 │ │ │ │ │ - sub sp, #20 │ │ │ │ │ - mov sl, r2 │ │ │ │ │ mov r6, r3 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + mov r7, r0 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + mov sl, r2 │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #20 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkdtensor │ │ │ │ │ mov r9, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkdtensor │ │ │ │ │ cmp r7, #0 │ │ │ │ │ str r0, [sp, #0] │ │ │ │ │ - ble.w da8 │ │ │ │ │ - subs r4, r7, #1 │ │ │ │ │ + ble.w fc2 │ │ │ │ │ + add.w r4, r7, #4294967295 @ 0xffffffff │ │ │ │ │ cmp r4, #2 │ │ │ │ │ - bls.w de8 │ │ │ │ │ + bls.w 1010 │ │ │ │ │ mov r3, r0 │ │ │ │ │ - adds r1, r0, #4 │ │ │ │ │ - adds r3, #28 │ │ │ │ │ + add.w r1, r0, #4 │ │ │ │ │ + add.w r3, r3, #28 │ │ │ │ │ add.w r0, r5, #24 │ │ │ │ │ cmp r1, r0 │ │ │ │ │ it cc │ │ │ │ │ cmpcc r5, r3 │ │ │ │ │ - bcc.w de8 │ │ │ │ │ - mov.w ip, r7, lsr #1 │ │ │ │ │ - movs r0, #24 │ │ │ │ │ + bcc.w 1010 │ │ │ │ │ + bic.w ip, r7, #1 │ │ │ │ │ mov r3, r5 │ │ │ │ │ + str r7, [sp, #4] │ │ │ │ │ + add.w ip, ip, r7, lsr #1 │ │ │ │ │ mov lr, r5 │ │ │ │ │ mov r8, r6 │ │ │ │ │ mov fp, r4 │ │ │ │ │ - mla ip, r0, ip, r5 │ │ │ │ │ - str r7, [sp, #4] │ │ │ │ │ - ldr r2, [r3, #20] │ │ │ │ │ - ldr r7, [r3, #0] │ │ │ │ │ - ldrd r6, r5, [r3, #4] │ │ │ │ │ - ldrd r4, r0, [r3, #12] │ │ │ │ │ - adds r3, #24 │ │ │ │ │ - strd r7, r6, [r1] │ │ │ │ │ + add.w ip, r5, ip, lsl #3 │ │ │ │ │ + ldrd r7, r6, [r3] │ │ │ │ │ + ldrd r5, r4, [r3, #8] │ │ │ │ │ + ldrd r0, r2, [r3, #16] │ │ │ │ │ + add.w r3, r3, #24 │ │ │ │ │ cmp r3, ip │ │ │ │ │ + strd r7, r6, [r1] │ │ │ │ │ strd r5, r4, [r1, #8] │ │ │ │ │ strd r0, r2, [r1, #16] │ │ │ │ │ add.w r1, r1, #24 │ │ │ │ │ - bne.n c46 │ │ │ │ │ + bne.n e26 │ │ │ │ │ ldr r7, [sp, #4] │ │ │ │ │ mov r5, lr │ │ │ │ │ mov r6, r8 │ │ │ │ │ mov r4, fp │ │ │ │ │ + lsls r2, r7, #31 │ │ │ │ │ bic.w r3, r7, #1 │ │ │ │ │ - cmp r7, r3 │ │ │ │ │ - beq.n c92 │ │ │ │ │ - movs r1, #12 │ │ │ │ │ - mul.w r3, r1, r3 │ │ │ │ │ - adds r1, r5, r3 │ │ │ │ │ + bpl.n e78 │ │ │ │ │ + add.w r3, r3, r3, lsl #1 │ │ │ │ │ + mov.w r3, r3, lsl #2 │ │ │ │ │ + add.w r1, r5, r3 │ │ │ │ │ ldr.w lr, [lr, r3] │ │ │ │ │ ldrd r2, r0, [r1, #4] │ │ │ │ │ ldr r1, [sp, #0] │ │ │ │ │ add r3, r1 │ │ │ │ │ strd lr, r2, [r3, #4] │ │ │ │ │ str r0, [r3, #12] │ │ │ │ │ - add.w ip, r7, r7, lsl #1 │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + mov.w ip, r7, lsl #1 │ │ │ │ │ + add.w lr, ip, r7 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ add.w r0, r9, #4 │ │ │ │ │ ldr.w r3, [r5, r1, lsl #2] │ │ │ │ │ str.w r3, [r0, r1, lsl #2] │ │ │ │ │ - adds r1, #3 │ │ │ │ │ - cmp r1, ip │ │ │ │ │ - bne.n c9c │ │ │ │ │ + add.w r1, r1, #3 │ │ │ │ │ + cmp r1, lr │ │ │ │ │ + bne.n e88 │ │ │ │ │ cmp r6, #0 │ │ │ │ │ - bne.n dae │ │ │ │ │ - movs r4, #12 │ │ │ │ │ + bne.w fd0 │ │ │ │ │ + add.w r4, ip, r7 │ │ │ │ │ mov r0, r5 │ │ │ │ │ + add.w r4, r9, r4, lsl #2 │ │ │ │ │ mov r3, r9 │ │ │ │ │ - mla r4, r4, r7, r9 │ │ │ │ │ ldr r2, [r0, #4] │ │ │ │ │ - cbnz r2, cbe │ │ │ │ │ + cbnz r2, eb0 │ │ │ │ │ ldr r2, [r3, #4] │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ ldr r2, [r0, #8] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - bne.n d5a │ │ │ │ │ + bne.n f52 │ │ │ │ │ ldr r2, [r3, #4] │ │ │ │ │ - adds r0, #12 │ │ │ │ │ + add.w r0, r0, #12 │ │ │ │ │ str.w r2, [r3, #12]! │ │ │ │ │ cmp r3, r4 │ │ │ │ │ - bne.n cb8 │ │ │ │ │ - mov.w fp, #0 │ │ │ │ │ + bne.n eaa │ │ │ │ │ cmp r7, #0 │ │ │ │ │ - str r5, [sp, #8] │ │ │ │ │ - mov r5, sl │ │ │ │ │ + mov.w fp, #0 │ │ │ │ │ str r6, [sp, #12] │ │ │ │ │ - mov r6, fp │ │ │ │ │ ite le │ │ │ │ │ movle r3, #0 │ │ │ │ │ movgt r3, #1 │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ + mov r6, fp │ │ │ │ │ + strd r3, r5, [sp, #4] │ │ │ │ │ + mov r5, sl │ │ │ │ │ mov r1, r6 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov fp, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ @@ -1408,30 +1467,30 @@ │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [sp, #4] │ │ │ │ │ cmp r1, #1 │ │ │ │ │ ite le │ │ │ │ │ movle r0, #0 │ │ │ │ │ andgt.w r0, r0, #1 │ │ │ │ │ - cbz r0, d66 │ │ │ │ │ + cbz r0, f60 │ │ │ │ │ ldr r3, [sp, #0] │ │ │ │ │ mov sl, r9 │ │ │ │ │ - movs r4, #0 │ │ │ │ │ + mov.w r4, #0 │ │ │ │ │ add.w r8, r3, r6, lsl #2 │ │ │ │ │ - b.n d28 │ │ │ │ │ - adds r4, #1 │ │ │ │ │ + b.n f20 │ │ │ │ │ + add.w r4, r4, #1 │ │ │ │ │ add.w r8, r8, #12 │ │ │ │ │ - add.w sl, sl, #12 │ │ │ │ │ cmp r7, r4 │ │ │ │ │ it gt │ │ │ │ │ cmpgt r1, #1 │ │ │ │ │ - ble.n d66 │ │ │ │ │ + add.w sl, sl, #12 │ │ │ │ │ + ble.n f60 │ │ │ │ │ ldr.w r3, [r8, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.n d16 │ │ │ │ │ + bne.n f0c │ │ │ │ │ ldr.w r0, [sl, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_default_block │ │ │ │ │ add.w r3, sl, #8 │ │ │ │ │ mov r1, r0 │ │ │ │ │ str.w r0, [r3, r6, lsl #2] │ │ │ │ │ ldr.w r0, [sl, #4] │ │ │ │ │ @@ -1439,3099 +1498,3278 @@ │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks │ │ │ │ │ mul.w fp, r0, fp │ │ │ │ │ mov r0, r5 │ │ │ │ │ mov r1, fp │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ mov r1, r0 │ │ │ │ │ - b.n d16 │ │ │ │ │ + b.n f0c │ │ │ │ │ str.w r2, [r3, #12]! │ │ │ │ │ - adds r0, #12 │ │ │ │ │ cmp r3, r4 │ │ │ │ │ - bne.n cb8 │ │ │ │ │ - b.n cd2 │ │ │ │ │ - adds r1, r6, #1 │ │ │ │ │ - movs r6, #1 │ │ │ │ │ + add.w r0, r0, #12 │ │ │ │ │ + bne.n eaa │ │ │ │ │ + b.n ec6 │ │ │ │ │ + add.w r1, r6, #1 │ │ │ │ │ + mov.w r6, #1 │ │ │ │ │ cmp r1, #2 │ │ │ │ │ - bne.n ce8 │ │ │ │ │ + bne.n edc │ │ │ │ │ ldrd r5, r6, [sp, #8] │ │ │ │ │ - cbz r6, d86 │ │ │ │ │ - movs r1, #12 │ │ │ │ │ - subs r3, r7, #1 │ │ │ │ │ - mla r3, r1, r3, r9 │ │ │ │ │ - mla r1, r1, r7, r5 │ │ │ │ │ + cbz r6, f8c │ │ │ │ │ + add.w r1, r7, r7, lsl #1 │ │ │ │ │ + add.w r3, r7, #4294967295 @ 0xffffffff │ │ │ │ │ + add.w r3, r3, r3, lsl #1 │ │ │ │ │ + add.w r1, r5, r1, lsl #2 │ │ │ │ │ + add.w r3, r9, r3, lsl #2 │ │ │ │ │ ldr.w r1, [r1, #-12] │ │ │ │ │ str r1, [r3, #4] │ │ │ │ │ cmp r7, #1 │ │ │ │ │ - beq.n dd2 │ │ │ │ │ + beq.n ffa │ │ │ │ │ ldr r0, [sp, #0] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_canonical │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, #20 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ - subs r4, r7, #1 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + mov.w ip, r7, lsl #1 │ │ │ │ │ + add.w r4, r7, #4294967295 @ 0xffffffff │ │ │ │ │ cmp r6, #0 │ │ │ │ │ - beq.n cd2 │ │ │ │ │ - movs r3, #12 │ │ │ │ │ + beq.w ec6 │ │ │ │ │ + add.w r3, ip, r7 │ │ │ │ │ + add.w r4, r4, r4, lsl #1 │ │ │ │ │ cmp r7, #0 │ │ │ │ │ - mla r4, r3, r4, r9 │ │ │ │ │ - mla r3, r3, r7, r5 │ │ │ │ │ + add.w r3, r5, r3, lsl #2 │ │ │ │ │ + add.w r4, r9, r4, lsl #2 │ │ │ │ │ ldr.w r3, [r3, #-12] │ │ │ │ │ add.w r3, r3, r3, lsr #31 │ │ │ │ │ mov.w r3, r3, asr #1 │ │ │ │ │ add.w r3, r3, #1 │ │ │ │ │ str r3, [r4, #4] │ │ │ │ │ - bgt.w cae │ │ │ │ │ - b.n cd2 │ │ │ │ │ + bgt.w e9e │ │ │ │ │ + b.n ec6 │ │ │ │ │ ldr.w r0, [r9, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_is_prime │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n d8a │ │ │ │ │ + beq.n f90 │ │ │ │ │ ldr.w r3, [r9, #4] │ │ │ │ │ strd r3, r3, [r9, #8] │ │ │ │ │ - b.n d8a │ │ │ │ │ + b.n f90 │ │ │ │ │ ldr r3, [sp, #0] │ │ │ │ │ - mov.w ip, #12 │ │ │ │ │ + mov.w ip, r7, lsl #1 │ │ │ │ │ mov r0, r5 │ │ │ │ │ - mov lr, r4 │ │ │ │ │ + mov r8, r4 │ │ │ │ │ + add.w lr, ip, r7 │ │ │ │ │ + add.w lr, r3, lr, lsl #2 │ │ │ │ │ mov r1, r3 │ │ │ │ │ - mla ip, ip, r7, r3 │ │ │ │ │ - ldrd r2, r3, [r0, #4] │ │ │ │ │ - adds r0, #12 │ │ │ │ │ - ldr.w r4, [r0, #-12] │ │ │ │ │ + ldrd r4, r2, [r0] │ │ │ │ │ + add.w r0, r0, #12 │ │ │ │ │ + ldr.w r3, [r0, #-4] │ │ │ │ │ strd r4, r2, [r1, #4] │ │ │ │ │ str.w r3, [r1, #12]! │ │ │ │ │ - cmp r1, ip │ │ │ │ │ - bne.n df8 │ │ │ │ │ - mov r4, lr │ │ │ │ │ - b.n c92 │ │ │ │ │ - nop │ │ │ │ │ + cmp r1, lr │ │ │ │ │ + bne.n 1024 │ │ │ │ │ + mov r4, r8 │ │ │ │ │ + b.n e7c │ │ │ │ │ │ │ │ │ │ -00000e14 : │ │ │ │ │ +00001040 : │ │ │ │ │ fftwf_mpi_local_size_guru.part.0(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - mov r5, r3 │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - sub sp, #68 @ 0x44 │ │ │ │ │ mov r0, r3 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + mov r5, r3 │ │ │ │ │ + mov r6, r2 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r7, r1 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #68 @ 0x44 │ │ │ │ │ add r1, sp, #24 │ │ │ │ │ - mov r6, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ add r1, sp, #28 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r2, [sp, #28] │ │ │ │ │ - movs r3, #0 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ mov r1, r7 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - bl bf4 │ │ │ │ │ + bl dbc │ │ │ │ │ cmp r4, #1 │ │ │ │ │ mov r5, r0 │ │ │ │ │ - bgt.n f06 │ │ │ │ │ - bne.w f76 │ │ │ │ │ + bgt.n 1154 │ │ │ │ │ + bne.w 11e6 │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ cmp r6, r3 │ │ │ │ │ - blt.n eae │ │ │ │ │ + blt.n 10f4 │ │ │ │ │ ldr r2, [sp, #124] @ 0x7c │ │ │ │ │ movs.w r8, r2, lsr #27 │ │ │ │ │ - bne.n eae │ │ │ │ │ - movs r0, #2 │ │ │ │ │ + bne.n 10f4 │ │ │ │ │ + mov.w r0, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkdtensor │ │ │ │ │ - adds r2, r5, #4 │ │ │ │ │ - adds r3, r0, #4 │ │ │ │ │ + ldrd r2, r3, [r5, #4] │ │ │ │ │ mov r7, r0 │ │ │ │ │ - ldmia r2, {r0, r1, r2} │ │ │ │ │ - stmia.w r3, {r0, r1, r2} │ │ │ │ │ ldr r1, [sp, #28] │ │ │ │ │ - ldr r3, [r5, #4] │ │ │ │ │ + strd r2, r3, [r0, #4] │ │ │ │ │ mov r0, r6 │ │ │ │ │ + ldr r3, [r5, #12] │ │ │ │ │ + str r3, [r7, #12] │ │ │ │ │ + ldr r3, [r5, #4] │ │ │ │ │ str r3, [r7, #8] │ │ │ │ │ - str r6, [r7, #24] │ │ │ │ │ str r6, [r7, #16] │ │ │ │ │ + str r6, [r7, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_default_block │ │ │ │ │ + add r3, sp, #40 @ 0x28 │ │ │ │ │ mov r1, r7 │ │ │ │ │ str r0, [r7, #20] │ │ │ │ │ - mov r2, r8 │ │ │ │ │ ldr r0, [sp, #24] │ │ │ │ │ - add r3, sp, #40 @ 0x28 │ │ │ │ │ + mov r2, r8 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ add r3, sp, #32 │ │ │ │ │ - bl 1b4 │ │ │ │ │ + bl 1f0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ - mov r1, r6 │ │ │ │ │ ldrd r3, r2, [sp, #32] │ │ │ │ │ + mov r1, r6 │ │ │ │ │ mla r3, r2, r3, r6 │ │ │ │ │ - subs r0, r3, #1 │ │ │ │ │ + add.w r0, r3, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - movs r4, #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_imax │ │ │ │ │ mov r7, r0 │ │ │ │ │ - b.n f14 │ │ │ │ │ + mov.w r4, #4 │ │ │ │ │ + b.n 1168 │ │ │ │ │ ldr r2, [sp, #120] @ 0x78 │ │ │ │ │ - adds r2, #1 │ │ │ │ │ + add.w r2, r2, #1 │ │ │ │ │ bics.w r2, r2, #2 │ │ │ │ │ - bne.n fa4 │ │ │ │ │ + bne.w 121c │ │ │ │ │ add r2, sp, #40 @ 0x28 │ │ │ │ │ str r2, [sp, #12] │ │ │ │ │ add r2, sp, #32 │ │ │ │ │ str r2, [sp, #8] │ │ │ │ │ ldr r2, [sp, #120] @ 0x78 │ │ │ │ │ str r2, [sp, #4] │ │ │ │ │ ldr r2, [sp, #124] @ 0x7c │ │ │ │ │ str r2, [sp, #0] │ │ │ │ │ - adds r2, r5, #4 │ │ │ │ │ + add.w r2, r5, #4 │ │ │ │ │ ldmia r2, {r0, r1, r2} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_choose_radix │ │ │ │ │ mov r8, r0 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n f9e │ │ │ │ │ + beq.n 1214 │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [r5, #4] │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ mov r9, r0 │ │ │ │ │ mul.w r1, r3, r0 │ │ │ │ │ ldr r3, [sp, #124] @ 0x7c │ │ │ │ │ lsls r2, r3, #4 │ │ │ │ │ - bpl.w 10a2 │ │ │ │ │ + bpl.w 1330 │ │ │ │ │ mov r7, r4 │ │ │ │ │ str r1, [r5, #8] │ │ │ │ │ ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ mul.w r1, r3, r8 │ │ │ │ │ ldr r3, [sp, #124] @ 0x7c │ │ │ │ │ lsls r3, r3, #3 │ │ │ │ │ - bpl.w 10b4 │ │ │ │ │ - lsls r4, r4, #2 │ │ │ │ │ + bpl.w 1344 │ │ │ │ │ + mov.w r4, r4, lsl #2 │ │ │ │ │ str r1, [r5, #12] │ │ │ │ │ - b.n f14 │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + b.n 1168 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_is_block1d │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.n fb8 │ │ │ │ │ - movs r7, #1 │ │ │ │ │ - lsls r4, r4, #2 │ │ │ │ │ - ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + bne.n 1230 │ │ │ │ │ + mov.w r4, r4, lsl #2 │ │ │ │ │ + mov.w r7, #1 │ │ │ │ │ ldr r0, [sp, #24] │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ mov r1, r5 │ │ │ │ │ + ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ - bl 1b4 │ │ │ │ │ - ldr r3, [sp, #116] @ 0x74 │ │ │ │ │ + bl 1f0 │ │ │ │ │ ldr r0, [sp, #24] │ │ │ │ │ mov r1, r5 │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ + ldr r3, [sp, #116] @ 0x74 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - movs r2, #1 │ │ │ │ │ ldr r3, [sp, #112] @ 0x70 │ │ │ │ │ - bl 1b4 │ │ │ │ │ + bl 1f0 │ │ │ │ │ ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ - movs r0, #1 │ │ │ │ │ - adds r1, r3, r4 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ + add.w r1, r3, r4 │ │ │ │ │ ldr.w r2, [r3], #4 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ mul.w r0, r2, r0 │ │ │ │ │ - bne.n f3a │ │ │ │ │ + bne.n 1196 │ │ │ │ │ ldr r3, [sp, #112] @ 0x70 │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ add r4, r3 │ │ │ │ │ ldr.w r2, [r3], #4 │ │ │ │ │ cmp r4, r3 │ │ │ │ │ mul.w r1, r2, r1 │ │ │ │ │ - bne.n f4c │ │ │ │ │ + bne.n 11aa │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_imax │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_imax │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ mul.w r0, r4, r6 │ │ │ │ │ add sp, #68 @ 0x44 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ mov r1, r0 │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ + mov.w r7, #1 │ │ │ │ │ ldr r0, [sp, #24] │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - movs r7, #1 │ │ │ │ │ ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ - bl 1b4 │ │ │ │ │ - ldr r3, [sp, #116] @ 0x74 │ │ │ │ │ + bl 1f0 │ │ │ │ │ ldr r0, [sp, #24] │ │ │ │ │ mov r1, r5 │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ + ldr r3, [sp, #116] @ 0x74 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - movs r2, #1 │ │ │ │ │ ldr r3, [sp, #112] @ 0x70 │ │ │ │ │ - bl 1b4 │ │ │ │ │ + bl 1f0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ mov r1, r7 │ │ │ │ │ - b.n f58 │ │ │ │ │ + b.n 11b6 │ │ │ │ │ mov r7, r4 │ │ │ │ │ - lsls r4, r4, #2 │ │ │ │ │ - b.n f14 │ │ │ │ │ - ldr r2, [pc, #456] @ (1170 ) │ │ │ │ │ + mov.w r4, r4, lsl #2 │ │ │ │ │ + b.n 1168 │ │ │ │ │ + ldr r2, [pc, #496] @ (1410 ) │ │ │ │ │ movw r1, #323 @ 0x143 │ │ │ │ │ - ldr r0, [pc, #456] @ (1174 ) │ │ │ │ │ + ldr r0, [pc, #496] @ (1414 ) │ │ │ │ │ add r2, pc │ │ │ │ │ add r0, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_assertion_failed │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ - b.n eb8 │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + b.n 1102 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_is_block1d │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n f10 │ │ │ │ │ - adds r3, r5, #4 │ │ │ │ │ + beq.n 1160 │ │ │ │ │ + ldrd r2, r3, [r5, #4] │ │ │ │ │ add.w r7, r5, #16 │ │ │ │ │ mov sl, r5 │ │ │ │ │ mov.w r8, #0 │ │ │ │ │ - ldmia.w r3, {r0, r1, r2} │ │ │ │ │ - add r3, sp, #40 @ 0x28 │ │ │ │ │ - stmia.w r3, {r0, r1, r2} │ │ │ │ │ - add r3, sp, #64 @ 0x40 │ │ │ │ │ - ldmia.w r7, {r0, r1, r2} │ │ │ │ │ - stmdb r3, {r0, r1, r2} │ │ │ │ │ + strd r2, r3, [sp, #40] @ 0x28 │ │ │ │ │ + ldr r3, [r5, #12] │ │ │ │ │ + str r3, [sp, #48] @ 0x30 │ │ │ │ │ + ldrd r2, r3, [r5, #16] │ │ │ │ │ + strd r2, r3, [sp, #52] @ 0x34 │ │ │ │ │ + ldr r3, [r7, #8] │ │ │ │ │ + str r3, [sp, #60] @ 0x3c │ │ │ │ │ ldrd r0, r1, [sl, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - beq.n 10c8 │ │ │ │ │ + beq.n 135a │ │ │ │ │ add.w r3, r8, #1 │ │ │ │ │ add.w sl, sl, #12 │ │ │ │ │ - mov.w r8, #1 │ │ │ │ │ cmp r3, #2 │ │ │ │ │ - bne.n fe4 │ │ │ │ │ + mov.w r8, #1 │ │ │ │ │ + bne.n 1260 │ │ │ │ │ + mov.w r4, r4, lsl #2 │ │ │ │ │ mov r9, r8 │ │ │ │ │ - lsls r4, r4, #2 │ │ │ │ │ ldr r1, [r5, #0] │ │ │ │ │ cmp r1, #1 │ │ │ │ │ - ble.w 116a │ │ │ │ │ + ble.w 140c │ │ │ │ │ add.w r1, r1, r1, lsl #1 │ │ │ │ │ mov r8, r6 │ │ │ │ │ - subs r1, #3 │ │ │ │ │ - movs r3, #0 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ + sub.w r1, r1, #3 │ │ │ │ │ ldr.w r2, [r7, r3, lsl #2] │ │ │ │ │ - adds r3, #3 │ │ │ │ │ + add.w r3, r3, #3 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ mul.w r8, r2, r8 │ │ │ │ │ - bne.n 1016 │ │ │ │ │ + bne.n 1298 │ │ │ │ │ ldr r7, [r5, #4] │ │ │ │ │ mov r0, r8 │ │ │ │ │ ldr r1, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_default_block │ │ │ │ │ ldr r2, [sp, #24] │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ mla r0, r0, r7, r6 │ │ │ │ │ mov r1, r6 │ │ │ │ │ - subs r0, #1 │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_imax │ │ │ │ │ - ldr r7, [r5, #4] │ │ │ │ │ - ldr r1, [r5, #0] │ │ │ │ │ + ldrd r1, r7, [r5] │ │ │ │ │ mov r8, r0 │ │ │ │ │ cmp r1, #2 │ │ │ │ │ mul.w r7, r6, r7 │ │ │ │ │ - ble.n 1074 │ │ │ │ │ + ble.n 1300 │ │ │ │ │ add.w r1, r1, r1, lsl #1 │ │ │ │ │ - movs r3, #0 │ │ │ │ │ - subs r1, #6 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ add.w r0, r5, #28 │ │ │ │ │ + sub.w r1, r1, #6 │ │ │ │ │ ldr.w r2, [r0, r3, lsl #2] │ │ │ │ │ - adds r3, #3 │ │ │ │ │ + add.w r3, r3, #3 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ mul.w r7, r2, r7 │ │ │ │ │ - bne.n 1066 │ │ │ │ │ + bne.n 12f0 │ │ │ │ │ ldr.w r9, [r5, #16] │ │ │ │ │ mov r0, r7 │ │ │ │ │ ldr r1, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_default_block │ │ │ │ │ ldr r2, [sp, #24] │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ mla r0, r0, r9, r6 │ │ │ │ │ mov r1, r6 │ │ │ │ │ - subs r0, #1 │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_imax │ │ │ │ │ mov r7, r0 │ │ │ │ │ - b.n f14 │ │ │ │ │ + b.n 1168 │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ mul.w r3, r8, r3 │ │ │ │ │ str r3, [r5, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_imax │ │ │ │ │ mov r7, r0 │ │ │ │ │ - b.n ef2 │ │ │ │ │ + b.n 113e │ │ │ │ │ mov r0, r7 │ │ │ │ │ - lsls r4, r4, #2 │ │ │ │ │ + mov.w r4, r4, lsl #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_imax │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ mov r7, r0 │ │ │ │ │ mul.w r3, r9, r3 │ │ │ │ │ str r3, [r5, #12] │ │ │ │ │ - b.n f14 │ │ │ │ │ - ldr.w r1, [sl, #12] │ │ │ │ │ + b.n 1168 │ │ │ │ │ ldr.w r0, [sl, #4] │ │ │ │ │ + ldr.w r1, [sl, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks │ │ │ │ │ - mov r9, r0 │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - bne.n ff0 │ │ │ │ │ + mov r9, r0 │ │ │ │ │ + bne.w 126c │ │ │ │ │ rsb r3, r8, #0 │ │ │ │ │ + ldr r1, [sp, #28] │ │ │ │ │ add.w sl, r8, #4294967295 @ 0xffffffff │ │ │ │ │ and.w r3, r3, #12 │ │ │ │ │ and.w sl, sl, #12 │ │ │ │ │ + mov.w r4, r4, lsl #2 │ │ │ │ │ add.w fp, r5, r3 │ │ │ │ │ - ldr r1, [sp, #28] │ │ │ │ │ add sl, r5 │ │ │ │ │ - lsls r4, r4, #2 │ │ │ │ │ ldr.w r0, [fp, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_default_block │ │ │ │ │ - str.w r0, [fp, #8] │ │ │ │ │ eor.w r3, r8, #1 │ │ │ │ │ + str.w r0, [fp, #8] │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ + ldr r0, [sp, #24] │ │ │ │ │ + mov r1, r5 │ │ │ │ │ str r3, [sp, #20] │ │ │ │ │ ldr.w r3, [sl, #4] │ │ │ │ │ - movs r2, #0 │ │ │ │ │ str.w r3, [sl, #8] │ │ │ │ │ - mov r1, r5 │ │ │ │ │ ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - ldr r0, [sp, #24] │ │ │ │ │ ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ - bl 1b4 │ │ │ │ │ + bl 1f0 │ │ │ │ │ ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ mov r2, r3 │ │ │ │ │ add r2, r4 │ │ │ │ │ ldr.w r1, [r3], #4 │ │ │ │ │ cmp r2, r3 │ │ │ │ │ mul.w r9, r1, r9 │ │ │ │ │ - bne.n 1124 │ │ │ │ │ + bne.n 13bc │ │ │ │ │ mov r1, r9 │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + add.w r8, r8, r8, lsl #1 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_imax │ │ │ │ │ - mov.w ip, #12 │ │ │ │ │ add r3, sp, #64 @ 0x40 │ │ │ │ │ - add.w fp, fp, #4 │ │ │ │ │ mov r9, r0 │ │ │ │ │ - add.w sl, sl, #4 │ │ │ │ │ - mla r3, ip, r8, r3 │ │ │ │ │ - subs r3, #24 │ │ │ │ │ - ldmia.w r3, {r0, r1, r2} │ │ │ │ │ - stmia.w fp, {r0, r1, r2} │ │ │ │ │ - ldr r3, [sp, #20] │ │ │ │ │ + add.w r3, r3, r8, lsl #2 │ │ │ │ │ add r2, sp, #64 @ 0x40 │ │ │ │ │ - mla r3, ip, r3, r2 │ │ │ │ │ - subs r3, #24 │ │ │ │ │ - ldmia.w r3, {r0, r1, r2} │ │ │ │ │ - stmia.w sl, {r0, r1, r2} │ │ │ │ │ - b.n 1004 │ │ │ │ │ + ldrd r0, r1, [r3, #-24] │ │ │ │ │ + strd r0, r1, [fp, #4] │ │ │ │ │ + ldr.w r3, [r3, #-16] │ │ │ │ │ + str.w r3, [fp, #12] │ │ │ │ │ + ldr r3, [sp, #20] │ │ │ │ │ + add.w r3, r3, r3, lsl #1 │ │ │ │ │ + add.w r3, r2, r3, lsl #2 │ │ │ │ │ + ldrd r0, r1, [r3, #-24] │ │ │ │ │ + strd r0, r1, [sl, #4] │ │ │ │ │ + ldr.w r3, [r3, #-16] │ │ │ │ │ + str.w r3, [sl, #12] │ │ │ │ │ + b.n 1282 │ │ │ │ │ mov r8, r6 │ │ │ │ │ - b.n 1024 │ │ │ │ │ - nop │ │ │ │ │ - .word 0x000001c0 │ │ │ │ │ + b.n 12a8 │ │ │ │ │ + .word 0x000001e8 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ - .word 0x000001c2 │ │ │ │ │ + .word 0x000001ea │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ │ │ │ │ │ -00001178 : │ │ │ │ │ +00001418 : │ │ │ │ │ fftwf_mpi_local_size_many_transposed.part.0(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - movs r7, #12 │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - sub sp, #28 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + add.w r7, r0, r0, lsl #1 │ │ │ │ │ mov r8, r1 │ │ │ │ │ - mul.w r7, r0, r7 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ mov sl, r2 │ │ │ │ │ mov r9, r3 │ │ │ │ │ + mov.w r7, r7, lsl #2 │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #28 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_malloc_plain │ │ │ │ │ cmp r4, #0 │ │ │ │ │ mov r6, r0 │ │ │ │ │ mov.w r0, r4, lsl #4 │ │ │ │ │ - ble.n 1236 │ │ │ │ │ + ble.n 14fe │ │ │ │ │ mov.w fp, r4, lsl #2 │ │ │ │ │ mov r5, r8 │ │ │ │ │ mov r3, r6 │ │ │ │ │ add.w ip, r8, fp │ │ │ │ │ ldr.w r2, [r5], #4 │ │ │ │ │ - str r2, [r3, #8] │ │ │ │ │ - strd r2, r2, [r3] │ │ │ │ │ cmp ip, r5 │ │ │ │ │ + strd r2, r2, [r3] │ │ │ │ │ add.w r3, r3, #12 │ │ │ │ │ - bne.n 11a8 │ │ │ │ │ + str.w r2, [r3, #-4] │ │ │ │ │ + bne.n 145a │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_malloc_plain │ │ │ │ │ cmp r4, #1 │ │ │ │ │ mov r5, r0 │ │ │ │ │ str.w r9, [r6, #4] │ │ │ │ │ - beq.n 1244 │ │ │ │ │ + beq.n 150c │ │ │ │ │ ldr.w r3, [r8, #4] │ │ │ │ │ add r7, r5 │ │ │ │ │ ldr r2, [sp, #64] @ 0x40 │ │ │ │ │ cmp r3, r2 │ │ │ │ │ - itee le │ │ │ │ │ - strle.w r9, [r6, #8] │ │ │ │ │ + itet gt │ │ │ │ │ movgt r3, r2 │ │ │ │ │ + strle.w r9, [r6, #8] │ │ │ │ │ strgt r3, [r6, #20] │ │ │ │ │ add.w r3, r0, fp │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add.w r2, r3, fp │ │ │ │ │ - strd r0, r0, [sp, #16] │ │ │ │ │ add.w r1, r2, fp │ │ │ │ │ - mov r0, r4 │ │ │ │ │ + strd r5, r3, [sp] │ │ │ │ │ + ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ strd r2, r1, [sp, #8] │ │ │ │ │ mov r2, sl │ │ │ │ │ - strd r5, r3, [sp] │ │ │ │ │ mov r1, r6 │ │ │ │ │ - ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ - bl e14 │ │ │ │ │ - ldr r2, [sp, #72] @ 0x48 │ │ │ │ │ + strd r0, r0, [sp, #16] │ │ │ │ │ + mov r0, r4 │ │ │ │ │ + bl 1040 │ │ │ │ │ ldr r3, [r5, #0] │ │ │ │ │ mov r8, r0 │ │ │ │ │ + ldr r2, [sp, #72] @ 0x48 │ │ │ │ │ str r3, [r2, #0] │ │ │ │ │ - ldr r2, [sp, #76] @ 0x4c │ │ │ │ │ ldr.w r3, [r5, r4, lsl #2] │ │ │ │ │ add.w r4, r5, r4, lsl #3 │ │ │ │ │ + ldr r2, [sp, #76] @ 0x4c │ │ │ │ │ str r3, [r2, #0] │ │ │ │ │ - ldr r2, [sp, #80] @ 0x50 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ + ldr r2, [sp, #80] @ 0x50 │ │ │ │ │ str r3, [r2, #0] │ │ │ │ │ ldr r2, [r7, #4] │ │ │ │ │ - ldr r3, [sp, #84] @ 0x54 │ │ │ │ │ mov r0, r5 │ │ │ │ │ + ldr r3, [sp, #84] @ 0x54 │ │ │ │ │ str r2, [r3, #0] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ifree │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ifree │ │ │ │ │ mov r0, r8 │ │ │ │ │ add sp, #28 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_malloc_plain │ │ │ │ │ mov.w fp, r4, lsl #2 │ │ │ │ │ mov r5, r0 │ │ │ │ │ str.w r9, [r6, #4] │ │ │ │ │ add.w r3, r5, fp │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ str.w r9, [r6, #8] │ │ │ │ │ add.w r2, r3, fp │ │ │ │ │ - movs r0, #0 │ │ │ │ │ add.w r1, r2, fp │ │ │ │ │ - strd r0, r0, [sp, #16] │ │ │ │ │ + strd r5, r3, [sp] │ │ │ │ │ + ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ strd r2, r1, [sp, #8] │ │ │ │ │ - mov r0, r4 │ │ │ │ │ mov r2, sl │ │ │ │ │ - strd r5, r3, [sp] │ │ │ │ │ mov r1, r6 │ │ │ │ │ - ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ - bl e14 │ │ │ │ │ - ldr r2, [sp, #72] @ 0x48 │ │ │ │ │ + strd r0, r0, [sp, #16] │ │ │ │ │ + mov r0, r4 │ │ │ │ │ + bl 1040 │ │ │ │ │ ldr r3, [r5, #0] │ │ │ │ │ mov r8, r0 │ │ │ │ │ + ldr r2, [sp, #72] @ 0x48 │ │ │ │ │ str r3, [r2, #0] │ │ │ │ │ - ldr r2, [sp, #76] @ 0x4c │ │ │ │ │ ldr.w r3, [r5, r4, lsl #2] │ │ │ │ │ + ldr r2, [sp, #76] @ 0x4c │ │ │ │ │ str r3, [r2, #0] │ │ │ │ │ ldr r3, [sp, #72] @ 0x48 │ │ │ │ │ ldr r2, [sp, #80] @ 0x50 │ │ │ │ │ ldr r3, [r3, #0] │ │ │ │ │ str r3, [r2, #0] │ │ │ │ │ ldr r3, [sp, #76] @ 0x4c │ │ │ │ │ ldr r2, [r3, #0] │ │ │ │ │ - b.n 121e │ │ │ │ │ + b.n 14d4 │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -0000128c : │ │ │ │ │ +00001558 : │ │ │ │ │ plan_guru_rdft2.constprop.0(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r6, r3 │ │ │ │ │ - ldr r5, [pc, #240] @ (1384 ) │ │ │ │ │ + ldr r5, [pc, #276] @ (167c ) │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + mov r8, r2 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ sub sp, #28 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - add r5, pc │ │ │ │ │ mov r9, r1 │ │ │ │ │ - mov r8, r2 │ │ │ │ │ + add r5, pc │ │ │ │ │ ldr r3, [r5, #0] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq.n 1350 │ │ │ │ │ + beq.n 1646 │ │ │ │ │ ldr r3, [r4, #0] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 1348 │ │ │ │ │ + ble.n 162e │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1348 │ │ │ │ │ + blt.n 162e │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1348 │ │ │ │ │ + blt.n 162e │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 1348 │ │ │ │ │ + ble.n 162e │ │ │ │ │ ldr r3, [r4, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1348 │ │ │ │ │ + blt.n 162e │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1348 │ │ │ │ │ + blt.n 162e │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 1348 │ │ │ │ │ + ble.n 162e │ │ │ │ │ ldr r3, [r4, #28] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1348 │ │ │ │ │ + blt.n 162e │ │ │ │ │ ldr r3, [r4, #32] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1348 │ │ │ │ │ + blt.n 162e │ │ │ │ │ add r1, sp, #20 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ - movs r2, #1 │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - bl 248 │ │ │ │ │ + bl 2a8 │ │ │ │ │ ldr r5, [r4, #24] │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r7, r0 │ │ │ │ │ add.w r5, r5, r5, lsr #31 │ │ │ │ │ - asrs r5, r5, #1 │ │ │ │ │ - adds r5, #1 │ │ │ │ │ + mov.w r5, r5, asr #1 │ │ │ │ │ + add.w r5, r5, #1 │ │ │ │ │ str r5, [r0, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 1342 │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + bgt.n 1628 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 1342 │ │ │ │ │ + bgt.n 1628 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ ldr r2, [sp, #56] @ 0x38 │ │ │ │ │ str r3, [r7, #28] │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ - lsrs r3, r3, #27 │ │ │ │ │ + mov.w r3, r3, lsr #27 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ - cbnz r2, 1376 │ │ │ │ │ - strd r6, r2, [sp] │ │ │ │ │ - mov r3, r8 │ │ │ │ │ + cbnz r2, 166e │ │ │ │ │ + mov r3, r2 │ │ │ │ │ mov r2, r9 │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + strd r6, r3, [sp] │ │ │ │ │ + mov r3, r8 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkproblem_rdft2_d │ │ │ │ │ ldr r1, [sp, #60] @ 0x3c │ │ │ │ │ mov r2, r0 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkapiplan │ │ │ │ │ - add sp, #28 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + b.n 1632 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add sp, #28 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_the_planner │ │ │ │ │ - ldr r2, [pc, #48] @ (1388 ) │ │ │ │ │ + ldr r2, [pc, #52] @ (1680 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #48] @ (138c ) │ │ │ │ │ + ldr r2, [pc, #48] @ (1684 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #44] @ (1390 ) │ │ │ │ │ + ldr r2, [pc, #48] @ (1688 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #44] @ (1394 ) │ │ │ │ │ + ldr r2, [pc, #44] @ (168c ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_conf_standard │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ str r3, [r5, #0] │ │ │ │ │ - b.n 12a4 │ │ │ │ │ - movs r3, #4 │ │ │ │ │ + b.n 157c │ │ │ │ │ + mov.w r3, #4 │ │ │ │ │ mov r2, r8 │ │ │ │ │ strd r6, r3, [sp] │ │ │ │ │ mov r3, r9 │ │ │ │ │ - b.n 132a │ │ │ │ │ - nop │ │ │ │ │ - .word 0x000000e8 │ │ │ │ │ + b.n 1610 │ │ │ │ │ + .word 0x00000104 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0x0000002e │ │ │ │ │ + .word 0x00000030 │ │ │ │ │ R_ARM_REL32 cost_hook │ │ │ │ │ - .word 0x0000002c │ │ │ │ │ + .word 0x0000002e │ │ │ │ │ R_ARM_REL32 wisdom_ok_hook │ │ │ │ │ - .word 0x0000002a │ │ │ │ │ + .word 0x0000002c │ │ │ │ │ R_ARM_REL32 nowisdom_hook │ │ │ │ │ - .word 0x00000028 │ │ │ │ │ + .word 0x0000002a │ │ │ │ │ R_ARM_REL32 bogosity_hook │ │ │ │ │ │ │ │ │ │ -00001398 : │ │ │ │ │ +00001690 : │ │ │ │ │ plan_guru_rdft2.constprop.1(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + ldr r5, [pc, #264] @ (17a4 ) │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r7, r3 │ │ │ │ │ - ldr r5, [pc, #220] @ (147c ) │ │ │ │ │ + mov r8, r2 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ sub sp, #28 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - add r5, pc │ │ │ │ │ mov r9, r1 │ │ │ │ │ - mov r8, r2 │ │ │ │ │ + add r5, pc │ │ │ │ │ ldr r3, [r5, #0] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq.n 143c │ │ │ │ │ + beq.n 174e │ │ │ │ │ ldr r3, [r4, #0] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 1468 │ │ │ │ │ + ble.n 177c │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1468 │ │ │ │ │ + blt.n 177c │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1468 │ │ │ │ │ + blt.n 177c │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 1468 │ │ │ │ │ + ble.n 177c │ │ │ │ │ ldr r3, [r4, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1468 │ │ │ │ │ + blt.n 177c │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1468 │ │ │ │ │ + blt.n 177c │ │ │ │ │ add r1, sp, #20 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ - movs r2, #1 │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - bl 654 │ │ │ │ │ + bl 748 │ │ │ │ │ ldr r5, [r4, #12] │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r6, r0 │ │ │ │ │ add.w r5, r5, r5, lsr #31 │ │ │ │ │ - asrs r5, r5, #1 │ │ │ │ │ - adds r5, #1 │ │ │ │ │ + mov.w r5, r5, asr #1 │ │ │ │ │ + add.w r5, r5, #1 │ │ │ │ │ str r5, [r0, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 1462 │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + bgt.n 1776 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 1462 │ │ │ │ │ + bgt.n 1776 │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ ldr r2, [sp, #56] @ 0x38 │ │ │ │ │ str r3, [r6, #16] │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ - lsrs r3, r3, #27 │ │ │ │ │ + mov.w r3, r3, lsr #27 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ - cbnz r2, 1470 │ │ │ │ │ - strd r7, r2, [sp] │ │ │ │ │ - mov r3, r8 │ │ │ │ │ + cbnz r2, 1794 │ │ │ │ │ + mov r3, r2 │ │ │ │ │ mov r2, r9 │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + strd r7, r3, [sp] │ │ │ │ │ + mov r3, r8 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkproblem_rdft2_d │ │ │ │ │ ldr r1, [sp, #60] @ 0x3c │ │ │ │ │ mov r2, r0 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkapiplan │ │ │ │ │ - add sp, #28 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + b.n 1780 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_the_planner │ │ │ │ │ - ldr r2, [pc, #60] @ (1480 ) │ │ │ │ │ + ldr r2, [pc, #84] @ (17a8 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #60] @ (1484 ) │ │ │ │ │ + ldr r2, [pc, #80] @ (17ac ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #56] @ (1488 ) │ │ │ │ │ + ldr r2, [pc, #80] @ (17b0 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #56] @ (148c ) │ │ │ │ │ + ldr r2, [pc, #76] @ (17b4 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_conf_standard │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ str r3, [r5, #0] │ │ │ │ │ - b.n 13b0 │ │ │ │ │ + b.n 16b4 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add sp, #28 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ - movs r3, #4 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + mov.w r3, #4 │ │ │ │ │ mov r2, r8 │ │ │ │ │ strd r7, r3, [sp] │ │ │ │ │ mov r3, r9 │ │ │ │ │ - b.n 1424 │ │ │ │ │ - .word 0x000000d4 │ │ │ │ │ + b.n 1736 │ │ │ │ │ + nop │ │ │ │ │ + .word 0x000000f4 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0x0000003a │ │ │ │ │ + .word 0x00000050 │ │ │ │ │ R_ARM_REL32 cost_hook │ │ │ │ │ - .word 0x00000038 │ │ │ │ │ + .word 0x0000004e │ │ │ │ │ R_ARM_REL32 wisdom_ok_hook │ │ │ │ │ - .word 0x00000036 │ │ │ │ │ + .word 0x0000004c │ │ │ │ │ R_ARM_REL32 nowisdom_hook │ │ │ │ │ - .word 0x00000034 │ │ │ │ │ + .word 0x0000004a │ │ │ │ │ R_ARM_REL32 bogosity_hook │ │ │ │ │ │ │ │ │ │ -00001490 : │ │ │ │ │ +000017b8 : │ │ │ │ │ plan_guru_rdft2(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - mov r7, r3 │ │ │ │ │ - ldr.w r8, [pc, #272] @ 15a8 │ │ │ │ │ - sub sp, #28 │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - add r8, pc │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r6, r1 │ │ │ │ │ mov r5, r2 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + mov r7, r3 │ │ │ │ │ + ldr.w r8, [pc, #304] @ 1900 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ + sub sp, #28 │ │ │ │ │ + add r8, pc │ │ │ │ │ ldr.w r3, [r8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq.n 1572 │ │ │ │ │ + beq.n 18c6 │ │ │ │ │ cmp r4, #1 │ │ │ │ │ ite gt │ │ │ │ │ movgt.w lr, #0 │ │ │ │ │ movle.w lr, #1 │ │ │ │ │ orrs.w lr, lr, r5, lsr #31 │ │ │ │ │ - bne.n 156a │ │ │ │ │ + bne.n 18ae │ │ │ │ │ mov ip, r6 │ │ │ │ │ ldr.w r3, [ip] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 156a │ │ │ │ │ + ble.n 18ae │ │ │ │ │ ldr.w r3, [ip, #4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 156a │ │ │ │ │ + blt.n 18ae │ │ │ │ │ ldr.w r3, [ip, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 156a │ │ │ │ │ + blt.n 18ae │ │ │ │ │ add.w lr, lr, #1 │ │ │ │ │ add.w ip, ip, #12 │ │ │ │ │ cmp r4, lr │ │ │ │ │ - bgt.n 14c0 │ │ │ │ │ - add r1, sp, #20 │ │ │ │ │ + bgt.n 17f4 │ │ │ │ │ ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ + add r1, sp, #20 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ + mov r0, r4 │ │ │ │ │ + add.w r4, r4, r4, lsl #1 │ │ │ │ │ ldr r2, [sp, #20] │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ mov r1, r6 │ │ │ │ │ - mov r0, r4 │ │ │ │ │ - bl bf4 │ │ │ │ │ - movs r3, #12 │ │ │ │ │ - movs r1, #0 │ │ │ │ │ - mov r8, r0 │ │ │ │ │ - mul.w r4, r3, r4 │ │ │ │ │ + mov.w r4, r4, lsl #2 │ │ │ │ │ + bl dbc │ │ │ │ │ sub.w r9, r4, #12 │ │ │ │ │ add r4, r0 │ │ │ │ │ ldr.w r3, [r6, r9] │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ + mov r8, r0 │ │ │ │ │ add.w r3, r3, r3, lsr #31 │ │ │ │ │ - asrs r3, r3, #1 │ │ │ │ │ - adds r3, #1 │ │ │ │ │ + mov.w r3, r3, asr #1 │ │ │ │ │ + add.w r3, r3, #1 │ │ │ │ │ str.w r3, [r4, #-8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 1564 │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + bgt.n 18a8 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 1564 │ │ │ │ │ + bgt.n 18a8 │ │ │ │ │ ldr.w r3, [r6, r9] │ │ │ │ │ ldr r2, [sp, #64] @ 0x40 │ │ │ │ │ str.w r3, [r4, #-8] │ │ │ │ │ ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ - lsrs r3, r3, #27 │ │ │ │ │ + mov.w r3, r3, lsr #27 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ - cbnz r2, 159a │ │ │ │ │ + cmp r2, #0 │ │ │ │ │ + bne.n 18f0 │ │ │ │ │ + mov r3, r2 │ │ │ │ │ + mov r2, r7 │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ - str r2, [sp, #4] │ │ │ │ │ - mov r2, r7 │ │ │ │ │ mov r1, r5 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkproblem_rdft2_d │ │ │ │ │ ldr r1, [sp, #68] @ 0x44 │ │ │ │ │ mov r2, r0 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkapiplan │ │ │ │ │ - add sp, #28 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + b.n 18b2 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add sp, #28 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_the_planner │ │ │ │ │ - ldr r2, [pc, #52] @ (15ac ) │ │ │ │ │ + ldr r2, [pc, #56] @ (1904 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #48] @ (15b0 ) │ │ │ │ │ + ldr r2, [pc, #52] @ (1908 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #48] @ (15b4 ) │ │ │ │ │ + ldr r2, [pc, #52] @ (190c ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #44] @ (15b8 ) │ │ │ │ │ + ldr r2, [pc, #48] @ (1910 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_conf_standard │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ str.w r3, [r8] │ │ │ │ │ - b.n 14ac │ │ │ │ │ - movs r3, #4 │ │ │ │ │ + b.n 17e0 │ │ │ │ │ + mov.w r3, #4 │ │ │ │ │ + ldr r2, [sp, #56] @ 0x38 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ mov r3, r7 │ │ │ │ │ - ldr r2, [sp, #56] @ 0x38 │ │ │ │ │ - b.n 154c │ │ │ │ │ - .word 0x00000106 │ │ │ │ │ + b.n 1892 │ │ │ │ │ + .word 0x00000126 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0x00000030 │ │ │ │ │ + .word 0x00000034 │ │ │ │ │ R_ARM_REL32 cost_hook │ │ │ │ │ - .word 0x0000002e │ │ │ │ │ + .word 0x00000032 │ │ │ │ │ R_ARM_REL32 wisdom_ok_hook │ │ │ │ │ - .word 0x0000002c │ │ │ │ │ + .word 0x00000030 │ │ │ │ │ R_ARM_REL32 nowisdom_hook │ │ │ │ │ - .word 0x0000002a │ │ │ │ │ + .word 0x0000002e │ │ │ │ │ R_ARM_REL32 bogosity_hook │ │ │ │ │ │ │ │ │ │ -000015bc : │ │ │ │ │ +00001914 : │ │ │ │ │ fftwf_mpi_init(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ - ldr r4, [pc, #48] @ (15f0 ) │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ + ldr r4, [pc, #48] @ (194c ) │ │ │ │ │ add r4, pc │ │ │ │ │ ldr r3, [r4, #0] │ │ │ │ │ - cbz r3, 15c8 │ │ │ │ │ + cbz r3, 1922 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_the_planner │ │ │ │ │ - ldr r2, [pc, #36] @ (15f4 ) │ │ │ │ │ + ldr r2, [pc, #40] @ (1950 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #36] @ (15f8 ) │ │ │ │ │ + ldr r2, [pc, #36] @ (1954 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #32] @ (15fc ) │ │ │ │ │ + ldr r2, [pc, #36] @ (1958 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #32] @ (1600 ) │ │ │ │ │ + ldr r2, [pc, #32] @ (195c ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_conf_standard │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ str r3, [r4, #0] │ │ │ │ │ pop {r4, pc} │ │ │ │ │ nop │ │ │ │ │ - .word 0x0000002c │ │ │ │ │ + .word 0x0000002e │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0x00000022 │ │ │ │ │ + .word 0x00000024 │ │ │ │ │ R_ARM_REL32 cost_hook │ │ │ │ │ - .word 0x00000020 │ │ │ │ │ + .word 0x00000022 │ │ │ │ │ R_ARM_REL32 wisdom_ok_hook │ │ │ │ │ - .word 0x0000001e │ │ │ │ │ + .word 0x00000020 │ │ │ │ │ R_ARM_REL32 nowisdom_hook │ │ │ │ │ - .word 0x0000001c │ │ │ │ │ + .word 0x0000001e │ │ │ │ │ R_ARM_REL32 bogosity_hook │ │ │ │ │ │ │ │ │ │ -00001604 : │ │ │ │ │ +00001960 : │ │ │ │ │ fftwf_mpi_cleanup(): │ │ │ │ │ - push {r3, lr} │ │ │ │ │ + strd r3, lr, [sp, #-8]! │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_cleanup │ │ │ │ │ - ldr r3, [pc, #8] @ (1614 ) │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + ldr r3, [pc, #8] @ (1974 ) │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ add r3, pc │ │ │ │ │ str r2, [r3, #0] │ │ │ │ │ pop {r3, pc} │ │ │ │ │ .word 0x00000002 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ │ │ │ │ │ -00001618 : │ │ │ │ │ +00001978 : │ │ │ │ │ fftwf_mpi_local_size_guru(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ ldrd r4, r5, [sp, #24] │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ ldrd r6, r7, [sp, #32] │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ ldrd lr, r8, [sp, #40] @ 0x28 │ │ │ │ │ - cbnz r0, 1630 │ │ │ │ │ + cbnz r0, 19a2 │ │ │ │ │ mov r0, r2 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, pc} │ │ │ │ │ - strd lr, r8, [sp, #40] @ 0x28 │ │ │ │ │ - strd r6, r7, [sp, #32] │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + ldmia.w sp!, {r8, pc} │ │ │ │ │ strd r4, r5, [sp, #24] │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ - b.w e14 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + strd r6, r7, [sp, #32] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + strd lr, r8, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r8, lr, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + b.w 1040 │ │ │ │ │ │ │ │ │ │ -00001644 : │ │ │ │ │ +000019c0 : │ │ │ │ │ fftwf_mpi_local_size_many_transposed(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - ldrd r8, r9, [sp, #28] │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ ldrd r5, r6, [sp, #36] @ 0x24 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ + ldrd r8, r9, [sp, #28] │ │ │ │ │ ldrd r7, lr, [sp, #44] @ 0x2c │ │ │ │ │ - cbnz r0, 1668 │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + cbnz r0, 1a02 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + mov r0, r2 │ │ │ │ │ str r3, [r7, #0] │ │ │ │ │ str r3, [r5, #0] │ │ │ │ │ - str.w r0, [lr] │ │ │ │ │ - str r0, [r6, #0] │ │ │ │ │ - mov r0, r2 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ - strd r7, lr, [sp, #44] @ 0x2c │ │ │ │ │ - strd r5, r6, [sp, #36] @ 0x24 │ │ │ │ │ + str.w r4, [lr] │ │ │ │ │ + str r4, [r6, #0] │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ strd r8, r9, [sp, #28] │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - b.n 1178 │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + strd r5, r6, [sp, #36] @ 0x24 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + strd r7, lr, [sp, #44] @ 0x2c │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w lr, [sp], #4 │ │ │ │ │ + b.n 1418 │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -0000167c : │ │ │ │ │ +00001a24 : │ │ │ │ │ fftwf_mpi_local_size_many(): │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - push {r4, r5, lr} │ │ │ │ │ + str.w r4, [sp, #-12]! │ │ │ │ │ + strd r5, lr, [sp, #4] │ │ │ │ │ sub sp, #36 @ 0x24 │ │ │ │ │ - it gt │ │ │ │ │ - ldrgt r4, [r1, #4] │ │ │ │ │ - ble.n 16a6 │ │ │ │ │ + ble.n 1a5a │ │ │ │ │ + ldr r4, [r1, #4] │ │ │ │ │ add r5, sp, #28 │ │ │ │ │ + str r4, [sp, #0] │ │ │ │ │ str r5, [sp, #20] │ │ │ │ │ add r5, sp, #24 │ │ │ │ │ str r5, [sp, #16] │ │ │ │ │ ldr r5, [sp, #56] @ 0x38 │ │ │ │ │ str r5, [sp, #12] │ │ │ │ │ ldr r5, [sp, #52] @ 0x34 │ │ │ │ │ str r5, [sp, #8] │ │ │ │ │ ldr r5, [sp, #48] @ 0x30 │ │ │ │ │ - strd r4, r5, [sp] │ │ │ │ │ - bl 1178 │ │ │ │ │ + str r5, [sp, #4] │ │ │ │ │ + bl 1418 │ │ │ │ │ add sp, #36 @ 0x24 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ - cbnz r0, 16b8 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + cbnz r0, 1a76 │ │ │ │ │ ldr r1, [sp, #52] @ 0x34 │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ str r3, [r1, #0] │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ str r0, [r3, #0] │ │ │ │ │ mov r0, r2 │ │ │ │ │ add sp, #36 @ 0x24 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ - movs r4, #0 │ │ │ │ │ - b.n 1688 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + mov.w r4, #0 │ │ │ │ │ + b.n 1a34 │ │ │ │ │ │ │ │ │ │ -000016bc : │ │ │ │ │ +00001a7c : │ │ │ │ │ fftwf_mpi_local_size_transposed(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ sub sp, #24 │ │ │ │ │ - cbnz r0, 16d8 │ │ │ │ │ + cbnz r0, 1a9c │ │ │ │ │ ldr r2, [sp, #36] @ 0x24 │ │ │ │ │ mov r4, r0 │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ str r0, [r2, #0] │ │ │ │ │ str r0, [r3, #0] │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ str r4, [r3, #0] │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ str r4, [r3, #0] │ │ │ │ │ add sp, #24 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ ldr r4, [sp, #40] @ 0x28 │ │ │ │ │ + strd r2, r3, [sp, #4] │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ + str r3, [sp, #0] │ │ │ │ │ str r4, [sp, #20] │ │ │ │ │ ldr r4, [sp, #36] @ 0x24 │ │ │ │ │ str r4, [sp, #16] │ │ │ │ │ ldr r4, [sp, #32] │ │ │ │ │ - strd r3, r4, [sp, #8] │ │ │ │ │ - movs r3, #0 │ │ │ │ │ - str r2, [sp, #4] │ │ │ │ │ - movs r2, #1 │ │ │ │ │ - str r3, [sp, #0] │ │ │ │ │ - bl 1178 │ │ │ │ │ + str r4, [sp, #12] │ │ │ │ │ + bl 1418 │ │ │ │ │ add sp, #24 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -000016f8 : │ │ │ │ │ +00001ac0 : │ │ │ │ │ fftwf_mpi_local_size(): │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - push {r4, r5, lr} │ │ │ │ │ + str.w r4, [sp, #-12]! │ │ │ │ │ + strd r5, lr, [sp, #4] │ │ │ │ │ sub sp, #36 @ 0x24 │ │ │ │ │ - it gt │ │ │ │ │ - ldrgt r4, [r1, #4] │ │ │ │ │ - ble.n 1722 │ │ │ │ │ + ble.n 1afa │ │ │ │ │ + ldr r4, [r1, #4] │ │ │ │ │ add r5, sp, #28 │ │ │ │ │ + strd r4, r2, [sp] │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ + str r3, [sp, #8] │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ str r5, [sp, #20] │ │ │ │ │ add r5, sp, #24 │ │ │ │ │ str r5, [sp, #16] │ │ │ │ │ ldr r5, [sp, #48] @ 0x30 │ │ │ │ │ - strd r3, r5, [sp, #8] │ │ │ │ │ - movs r3, #0 │ │ │ │ │ - strd r4, r2, [sp] │ │ │ │ │ - movs r2, #1 │ │ │ │ │ - bl 1178 │ │ │ │ │ + str r5, [sp, #12] │ │ │ │ │ + bl 1418 │ │ │ │ │ add sp, #36 @ 0x24 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ - cbnz r0, 1732 │ │ │ │ │ - movs r2, #1 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + cbnz r0, 1b14 │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ str r2, [r3, #0] │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ str r0, [r3, #0] │ │ │ │ │ mov r0, r2 │ │ │ │ │ add sp, #36 @ 0x24 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ - movs r4, #0 │ │ │ │ │ - b.n 1704 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + mov.w r4, #0 │ │ │ │ │ + b.n 1ad0 │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -00001738 : │ │ │ │ │ +00001b1c : │ │ │ │ │ fftwf_mpi_local_size_many_1d(): │ │ │ │ │ - push {lr} │ │ │ │ │ + str.w lr, [sp, #-4]! │ │ │ │ │ sub sp, #44 @ 0x2c │ │ │ │ │ - str r0, [sp, #28] │ │ │ │ │ - movs r0, #0 │ │ │ │ │ - strd r0, r0, [sp, #32] │ │ │ │ │ - ldr r0, [sp, #48] @ 0x30 │ │ │ │ │ - strd r3, r0, [sp, #12] │ │ │ │ │ - add r0, sp, #28 │ │ │ │ │ + str r3, [sp, #12] │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ + str r0, [sp, #28] │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ + strd r0, r0, [sp, #32] │ │ │ │ │ + ldr r0, [sp, #48] @ 0x30 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - bl a80 │ │ │ │ │ + str r0, [sp, #16] │ │ │ │ │ + add r0, sp, #28 │ │ │ │ │ + bl c20 │ │ │ │ │ add sp, #44 @ 0x2c │ │ │ │ │ ldr.w pc, [sp], #4 │ │ │ │ │ │ │ │ │ │ -00001764 : │ │ │ │ │ +00001b4c : │ │ │ │ │ fftwf_mpi_local_size_1d(): │ │ │ │ │ - push {lr} │ │ │ │ │ + str.w lr, [sp, #-4]! │ │ │ │ │ sub sp, #44 @ 0x2c │ │ │ │ │ strd r2, r3, [sp, #12] │ │ │ │ │ mov r2, r1 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ - movs r1, #1 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ + str r0, [sp, #28] │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - str r0, [sp, #28] │ │ │ │ │ - movs r0, #0 │ │ │ │ │ - str r3, [sp, #0] │ │ │ │ │ strd r0, r0, [sp, #32] │ │ │ │ │ add r0, sp, #28 │ │ │ │ │ + str r3, [sp, #0] │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ - bl a80 │ │ │ │ │ + bl c20 │ │ │ │ │ add sp, #44 @ 0x2c │ │ │ │ │ ldr.w pc, [sp], #4 │ │ │ │ │ - nop │ │ │ │ │ │ │ │ │ │ -00001794 : │ │ │ │ │ +00001b80 : │ │ │ │ │ fftwf_mpi_local_size_2d_transposed(): │ │ │ │ │ - push {lr} │ │ │ │ │ + str.w lr, [sp, #-4]! │ │ │ │ │ sub sp, #28 │ │ │ │ │ strd r0, r1, [sp, #16] │ │ │ │ │ add r0, sp, #16 │ │ │ │ │ ldr r1, [sp, #40] @ 0x28 │ │ │ │ │ str r1, [sp, #8] │ │ │ │ │ ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ str r1, [sp, #4] │ │ │ │ │ ldr r1, [sp, #32] │ │ │ │ │ str r1, [sp, #0] │ │ │ │ │ - movs r1, #0 │ │ │ │ │ - bl 770 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ + bl 88c │ │ │ │ │ add sp, #28 │ │ │ │ │ ldr.w pc, [sp], #4 │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -000017b8 : │ │ │ │ │ +00001ba8 : │ │ │ │ │ fftwf_mpi_local_size_2d(): │ │ │ │ │ - push {lr} │ │ │ │ │ + str.w lr, [sp, #-4]! │ │ │ │ │ sub sp, #36 @ 0x24 │ │ │ │ │ strd r0, r1, [sp, #24] │ │ │ │ │ add r0, sp, #20 │ │ │ │ │ str r0, [sp, #8] │ │ │ │ │ add r0, sp, #16 │ │ │ │ │ str r0, [sp, #4] │ │ │ │ │ ldr r0, [sp, #40] @ 0x28 │ │ │ │ │ str r0, [sp, #0] │ │ │ │ │ add r0, sp, #24 │ │ │ │ │ - bl 770 │ │ │ │ │ + bl 88c │ │ │ │ │ add sp, #36 @ 0x24 │ │ │ │ │ ldr.w pc, [sp], #4 │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -000017d8 : │ │ │ │ │ +00001bcc : │ │ │ │ │ fftwf_mpi_local_size_3d_transposed(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ + sub sp, #32 │ │ │ │ │ mov r4, r2 │ │ │ │ │ mov r2, r3 │ │ │ │ │ - sub sp, #32 │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ + strd r0, r1, [sp, #16] │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ + add r0, sp, #16 │ │ │ │ │ + str r4, [sp, #24] │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ - strd r0, r1, [sp, #16] │ │ │ │ │ - movs r1, #0 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - add r0, sp, #16 │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ - str r4, [sp, #24] │ │ │ │ │ - bl 3f0 │ │ │ │ │ + bl 47c │ │ │ │ │ add sp, #32 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ │ │ │ │ │ -00001800 : │ │ │ │ │ +00001bf8 : │ │ │ │ │ fftwf_mpi_local_size_3d(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ + sub sp, #40 @ 0x28 │ │ │ │ │ mov r4, r2 │ │ │ │ │ mov r2, r3 │ │ │ │ │ - sub sp, #40 @ 0x28 │ │ │ │ │ add r3, sp, #20 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ add r3, sp, #16 │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ - ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ strd r0, r1, [sp, #24] │ │ │ │ │ add r0, sp, #24 │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ + str r4, [sp, #32] │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ - str r4, [sp, #32] │ │ │ │ │ - bl 3f0 │ │ │ │ │ + bl 47c │ │ │ │ │ add sp, #40 @ 0x28 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ - nop │ │ │ │ │ │ │ │ │ │ -00001828 : │ │ │ │ │ +00001c20 : │ │ │ │ │ fftwf_mpi_plan_many_transpose(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ mov r4, r3 │ │ │ │ │ - ldr.w r9, [pc, #228] @ 1914 │ │ │ │ │ - sub sp, #36 @ 0x24 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r0 │ │ │ │ │ - add r9, pc │ │ │ │ │ mov r6, r1 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ + ldr.w r9, [pc, #244] @ 1d28 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + sub sp, #36 @ 0x24 │ │ │ │ │ mov r7, r2 │ │ │ │ │ ldr.w r8, [sp, #64] @ 0x40 │ │ │ │ │ + add r9, pc │ │ │ │ │ ldr.w r3, [r9] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq.n 18be │ │ │ │ │ + beq.n 1cd0 │ │ │ │ │ orr.w r3, r4, r8 │ │ │ │ │ orrs r3, r7 │ │ │ │ │ - bmi.n 18b6 │ │ │ │ │ + bmi.n 1cb8 │ │ │ │ │ cmp r6, #0 │ │ │ │ │ it gt │ │ │ │ │ cmpgt r5, #0 │ │ │ │ │ - ble.n 18b6 │ │ │ │ │ + ble.n 1cb8 │ │ │ │ │ ldr r0, [sp, #76] @ 0x4c │ │ │ │ │ add r1, sp, #28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ cmp r4, #0 │ │ │ │ │ - beq.n 1900 │ │ │ │ │ + beq.n 1d14 │ │ │ │ │ cmp.w r8, #0 │ │ │ │ │ - beq.n 18e6 │ │ │ │ │ + beq.n 1cfa │ │ │ │ │ mov r1, r4 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 18b6 │ │ │ │ │ + bgt.n 1cb8 │ │ │ │ │ mov r1, r8 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 18b6 │ │ │ │ │ + bgt.n 1cb8 │ │ │ │ │ ldr r3, [sp, #80] @ 0x50 │ │ │ │ │ mov r2, r7 │ │ │ │ │ mov r1, r6 │ │ │ │ │ mov r0, r5 │ │ │ │ │ - str r4, [sp, #4] │ │ │ │ │ - lsrs r3, r3, #27 │ │ │ │ │ + strd r4, r8, [sp, #4] │ │ │ │ │ + mov.w r3, r3, lsr #27 │ │ │ │ │ str r3, [sp, #16] │ │ │ │ │ ldr r3, [sp, #76] @ 0x4c │ │ │ │ │ - strd r8, r3, [sp, #8] │ │ │ │ │ + str r3, [sp, #12] │ │ │ │ │ ldr r3, [sp, #72] @ 0x48 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkproblem_transpose │ │ │ │ │ ldr r1, [sp, #80] @ 0x50 │ │ │ │ │ mov r2, r0 │ │ │ │ │ mov.w r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkapiplan │ │ │ │ │ + b.n 1cbc │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add sp, #36 @ 0x24 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ - movs r0, #0 │ │ │ │ │ - add sp, #36 @ 0x24 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_the_planner │ │ │ │ │ - ldr r2, [pc, #84] @ (1918 ) │ │ │ │ │ + ldr r2, [pc, #84] @ (1d2c ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #80] @ (191c ) │ │ │ │ │ + ldr r2, [pc, #84] @ (1d30 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #80] @ (1920 ) │ │ │ │ │ + ldr r2, [pc, #80] @ (1d34 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #76] @ (1924 ) │ │ │ │ │ + ldr r2, [pc, #80] @ (1d38 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_conf_standard │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ str.w r3, [r9] │ │ │ │ │ - b.n 1848 │ │ │ │ │ + b.n 1c4c │ │ │ │ │ ldr r1, [sp, #28] │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_default_block │ │ │ │ │ - mov r1, r4 │ │ │ │ │ mov r8, r0 │ │ │ │ │ + mov r1, r4 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - ble.n 1878 │ │ │ │ │ - b.n 18b6 │ │ │ │ │ + ble.n 1c7c │ │ │ │ │ + b.n 1cb8 │ │ │ │ │ ldr r1, [sp, #28] │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_default_block │ │ │ │ │ mov r4, r0 │ │ │ │ │ cmp.w r8, #0 │ │ │ │ │ - bne.n 186a │ │ │ │ │ - b.n 18e6 │ │ │ │ │ + bne.n 1c6e │ │ │ │ │ + b.n 1cfa │ │ │ │ │ nop │ │ │ │ │ - .word 0x000000da │ │ │ │ │ + .word 0x000000e2 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0x00000050 │ │ │ │ │ + .word 0x00000052 │ │ │ │ │ R_ARM_REL32 cost_hook │ │ │ │ │ - .word 0x0000004e │ │ │ │ │ + .word 0x00000050 │ │ │ │ │ R_ARM_REL32 wisdom_ok_hook │ │ │ │ │ - .word 0x0000004c │ │ │ │ │ + .word 0x0000004e │ │ │ │ │ R_ARM_REL32 nowisdom_hook │ │ │ │ │ - .word 0x0000004a │ │ │ │ │ + .word 0x0000004c │ │ │ │ │ R_ARM_REL32 bogosity_hook │ │ │ │ │ │ │ │ │ │ -00001928 : │ │ │ │ │ +00001d3c : │ │ │ │ │ fftwf_mpi_plan_transpose(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - mov r7, r3 │ │ │ │ │ - ldr.w r8, [pc, #180] @ 19e4 │ │ │ │ │ - sub sp, #36 @ 0x24 │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - add r8, pc │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r1 │ │ │ │ │ mov r6, r2 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + mov r7, r3 │ │ │ │ │ + ldr.w r8, [pc, #196] @ 1e18 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ + sub sp, #36 @ 0x24 │ │ │ │ │ + add r8, pc │ │ │ │ │ ldr.w r3, [r8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq.n 19ba │ │ │ │ │ + beq.n 1dec │ │ │ │ │ cmp r4, #0 │ │ │ │ │ it gt │ │ │ │ │ cmpgt r5, #0 │ │ │ │ │ - ble.n 19b2 │ │ │ │ │ - add r1, sp, #28 │ │ │ │ │ + ble.n 1dd4 │ │ │ │ │ ldr r0, [sp, #64] @ 0x40 │ │ │ │ │ + add r1, sp, #28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #28] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_default_block │ │ │ │ │ ldr r1, [sp, #28] │ │ │ │ │ mov r8, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_default_block │ │ │ │ │ - mov r1, r8 │ │ │ │ │ mov r9, r0 │ │ │ │ │ + mov r1, r8 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 19b2 │ │ │ │ │ + bgt.n 1dd4 │ │ │ │ │ mov r1, r9 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 19b2 │ │ │ │ │ + bgt.n 1dd4 │ │ │ │ │ ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - movs r2, #1 │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ mov r0, r4 │ │ │ │ │ strd r7, r8, [sp] │ │ │ │ │ - lsrs r3, r3, #27 │ │ │ │ │ + str.w r9, [sp, #8] │ │ │ │ │ + mov.w r3, r3, lsr #27 │ │ │ │ │ str r3, [sp, #16] │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ - strd r9, r3, [sp, #8] │ │ │ │ │ + str r3, [sp, #12] │ │ │ │ │ mov r3, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkproblem_transpose │ │ │ │ │ ldr r1, [sp, #68] @ 0x44 │ │ │ │ │ mov r2, r0 │ │ │ │ │ mov.w r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkapiplan │ │ │ │ │ + b.n 1dd8 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add sp, #36 @ 0x24 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ - movs r0, #0 │ │ │ │ │ - add sp, #36 @ 0x24 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_the_planner │ │ │ │ │ - ldr r2, [pc, #40] @ (19e8 ) │ │ │ │ │ + ldr r2, [pc, #40] @ (1e1c ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #36] @ (19ec ) │ │ │ │ │ + ldr r2, [pc, #40] @ (1e20 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #36] @ (19f0 ) │ │ │ │ │ + ldr r2, [pc, #36] @ (1e24 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #32] @ (19f4 ) │ │ │ │ │ + ldr r2, [pc, #36] @ (1e28 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_conf_standard │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ str.w r3, [r8] │ │ │ │ │ - b.n 1944 │ │ │ │ │ + b.n 1d64 │ │ │ │ │ nop │ │ │ │ │ - .word 0x000000aa │ │ │ │ │ + .word 0x000000ba │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0x00000024 │ │ │ │ │ + .word 0x00000026 │ │ │ │ │ R_ARM_REL32 cost_hook │ │ │ │ │ - .word 0x00000022 │ │ │ │ │ + .word 0x00000024 │ │ │ │ │ R_ARM_REL32 wisdom_ok_hook │ │ │ │ │ - .word 0x00000020 │ │ │ │ │ + .word 0x00000022 │ │ │ │ │ R_ARM_REL32 nowisdom_hook │ │ │ │ │ - .word 0x0000001e │ │ │ │ │ + .word 0x00000020 │ │ │ │ │ R_ARM_REL32 bogosity_hook │ │ │ │ │ │ │ │ │ │ -000019f8 : │ │ │ │ │ +00001e2c : │ │ │ │ │ fftwf_mpi_plan_guru_dft(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + mov r5, r2 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r7, r3 │ │ │ │ │ - ldr.w r8, [pc, #220] @ 1adc │ │ │ │ │ + mov r6, r1 │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ sub sp, #24 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ + ldr.w r8, [pc, #232] @ 1f2c │ │ │ │ │ add r8, pc │ │ │ │ │ - mov r6, r1 │ │ │ │ │ - mov r5, r2 │ │ │ │ │ ldr.w r3, [r8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq.n 1ab4 │ │ │ │ │ + beq.n 1f00 │ │ │ │ │ cmp r4, #0 │ │ │ │ │ ite gt │ │ │ │ │ movgt.w lr, #0 │ │ │ │ │ movle.w lr, #1 │ │ │ │ │ orrs.w lr, lr, r5, lsr #31 │ │ │ │ │ - bne.n 1aac │ │ │ │ │ + bne.n 1eec │ │ │ │ │ mov ip, r6 │ │ │ │ │ ldr.w r3, [ip] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 1aac │ │ │ │ │ + ble.n 1eec │ │ │ │ │ ldr.w r3, [ip, #4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1aac │ │ │ │ │ + blt.n 1eec │ │ │ │ │ ldr.w r3, [ip, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1aac │ │ │ │ │ + blt.n 1eec │ │ │ │ │ add.w lr, lr, #1 │ │ │ │ │ add.w ip, ip, #12 │ │ │ │ │ cmp r4, lr │ │ │ │ │ - bgt.n 1a28 │ │ │ │ │ - add r1, sp, #20 │ │ │ │ │ + bgt.n 1e64 │ │ │ │ │ ldr r0, [sp, #52] @ 0x34 │ │ │ │ │ + add r1, sp, #20 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ - movs r3, #0 │ │ │ │ │ ldr r2, [sp, #20] │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ mov r1, r6 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - bl bf4 │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + bl dbc │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 1aa6 │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + bgt.n 1ee6 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 1aa6 │ │ │ │ │ + bgt.n 1ee6 │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ mov r2, r7 │ │ │ │ │ mov r1, r5 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - lsrs r3, r3, #27 │ │ │ │ │ + mov.w r3, r3, lsr #27 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkproblem_dft_d │ │ │ │ │ mov r2, r0 │ │ │ │ │ ldrd r0, r1, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkapiplan │ │ │ │ │ - add sp, #24 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + b.n 1ef0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add sp, #24 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + ldmia.w sp!, {r8, pc} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_the_planner │ │ │ │ │ - ldr r2, [pc, #36] @ (1ae0 ) │ │ │ │ │ + ldr r2, [pc, #40] @ (1f30 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #36] @ (1ae4 ) │ │ │ │ │ + ldr r2, [pc, #40] @ (1f34 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #32] @ (1ae8 ) │ │ │ │ │ + ldr r2, [pc, #36] @ (1f38 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #32] @ (1aec ) │ │ │ │ │ + ldr r2, [pc, #36] @ (1f3c ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_conf_standard │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ str.w r3, [r8] │ │ │ │ │ - b.n 1a14 │ │ │ │ │ - .word 0x000000d2 │ │ │ │ │ + b.n 1e50 │ │ │ │ │ + nop │ │ │ │ │ + .word 0x000000e2 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0x00000022 │ │ │ │ │ + .word 0x00000026 │ │ │ │ │ R_ARM_REL32 cost_hook │ │ │ │ │ - .word 0x00000020 │ │ │ │ │ + .word 0x00000024 │ │ │ │ │ R_ARM_REL32 wisdom_ok_hook │ │ │ │ │ - .word 0x0000001e │ │ │ │ │ + .word 0x00000022 │ │ │ │ │ R_ARM_REL32 nowisdom_hook │ │ │ │ │ - .word 0x0000001c │ │ │ │ │ + .word 0x00000020 │ │ │ │ │ R_ARM_REL32 bogosity_hook │ │ │ │ │ │ │ │ │ │ -00001af0 : │ │ │ │ │ +00001f40 : │ │ │ │ │ fftwf_mpi_plan_many_dft(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - movs r0, #12 │ │ │ │ │ - sub sp, #20 │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ - mov r9, r2 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + mov r5, r0 │ │ │ │ │ + add.w r0, r0, r0, lsl #1 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r7, r3 │ │ │ │ │ - mul.w r0, r5, r0 │ │ │ │ │ + mov.w r0, r0, lsl #2 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ + sub sp, #20 │ │ │ │ │ ldr.w r8, [sp, #68] @ 0x44 │ │ │ │ │ + mov r9, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_malloc_plain │ │ │ │ │ cmp r5, #0 │ │ │ │ │ mov r6, r0 │ │ │ │ │ - ble.n 1b52 │ │ │ │ │ + ble.n 1fb0 │ │ │ │ │ + add.w r3, r4, r5, lsl #2 │ │ │ │ │ mov lr, r4 │ │ │ │ │ mov ip, r0 │ │ │ │ │ - add.w r3, r4, r5, lsl #2 │ │ │ │ │ ldr.w r4, [lr], #4 │ │ │ │ │ - str.w r4, [ip, #8] │ │ │ │ │ - strd r4, r4, [ip] │ │ │ │ │ cmp lr, r3 │ │ │ │ │ + strd r4, r4, [ip] │ │ │ │ │ add.w ip, ip, #12 │ │ │ │ │ - bne.n 1b1a │ │ │ │ │ + str.w r4, [ip, #-4] │ │ │ │ │ + bne.n 1f78 │ │ │ │ │ cmp r5, #1 │ │ │ │ │ - beq.n 1b7e │ │ │ │ │ + beq.n 1fe8 │ │ │ │ │ tst.w r8, #536870912 @ 0x20000000 │ │ │ │ │ it ne │ │ │ │ │ addne.w r3, r6, #12 │ │ │ │ │ - bne.n 1b40 │ │ │ │ │ + bne.n 1f9e │ │ │ │ │ mov r3, r6 │ │ │ │ │ + ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ tst.w r8, #1073741824 @ 0x40000000 │ │ │ │ │ str r7, [r3, #4] │ │ │ │ │ ite ne │ │ │ │ │ addne.w r3, r6, #12 │ │ │ │ │ moveq r3, r6 │ │ │ │ │ - ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ mov r2, r9 │ │ │ │ │ - str r3, [sp, #8] │ │ │ │ │ mov r1, r6 │ │ │ │ │ - ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ mov r0, r5 │ │ │ │ │ + strd r3, r8, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - str.w r8, [sp, #12] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - bl 19f8 │ │ │ │ │ + bl 1e2c │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_plan_guru_dft │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ifree │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, #20 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ - str r7, [r6, #4] │ │ │ │ │ - str r3, [r6, #8] │ │ │ │ │ - b.n 1b52 │ │ │ │ │ - nop │ │ │ │ │ + strd r7, r3, [r6, #4] │ │ │ │ │ + b.n 1fb0 │ │ │ │ │ │ │ │ │ │ -00001b88 : │ │ │ │ │ +00001ff0 : │ │ │ │ │ fftwf_mpi_plan_dft(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ - mov r6, r0 │ │ │ │ │ - movs r0, #12 │ │ │ │ │ - sub sp, #16 │ │ │ │ │ + strd r4, r5, [sp, #-32]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ + mov r6, r0 │ │ │ │ │ + add.w r0, r0, r0, lsl #1 │ │ │ │ │ + strd r8, r9, [sp, #16] │ │ │ │ │ mov r7, r2 │ │ │ │ │ - mov sl, r3 │ │ │ │ │ - mul.w r0, r6, r0 │ │ │ │ │ + mov.w r0, r0, lsl #2 │ │ │ │ │ + strd sl, lr, [sp, #24] │ │ │ │ │ + sub sp, #16 │ │ │ │ │ ldr.w r8, [sp, #56] @ 0x38 │ │ │ │ │ + mov sl, r3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_malloc_plain │ │ │ │ │ cmp r6, #0 │ │ │ │ │ mov r9, r0 │ │ │ │ │ - ble.n 1bee │ │ │ │ │ + ble.n 2066 │ │ │ │ │ + add.w r5, r4, r6, lsl #2 │ │ │ │ │ mov lr, r4 │ │ │ │ │ mov ip, r0 │ │ │ │ │ - add.w r5, r4, r6, lsl #2 │ │ │ │ │ ldr.w r4, [lr], #4 │ │ │ │ │ - str.w r4, [ip, #8] │ │ │ │ │ - strd r4, r4, [ip] │ │ │ │ │ cmp lr, r5 │ │ │ │ │ + strd r4, r4, [ip] │ │ │ │ │ add.w ip, ip, #12 │ │ │ │ │ - bne.n 1bb2 │ │ │ │ │ + str.w r4, [ip, #-4] │ │ │ │ │ + bne.n 2028 │ │ │ │ │ cmp r6, #1 │ │ │ │ │ - beq.n 1c18 │ │ │ │ │ + beq.n 20a0 │ │ │ │ │ tst.w r8, #536870912 @ 0x20000000 │ │ │ │ │ it ne │ │ │ │ │ addne.w r3, r9, #12 │ │ │ │ │ - bne.n 1bd8 │ │ │ │ │ + bne.n 204e │ │ │ │ │ mov r3, r9 │ │ │ │ │ - tst.w r8, #1073741824 @ 0x40000000 │ │ │ │ │ mov.w r2, #0 │ │ │ │ │ + tst.w r8, #1073741824 @ 0x40000000 │ │ │ │ │ str r2, [r3, #4] │ │ │ │ │ ite ne │ │ │ │ │ addne.w r3, r9, #12 │ │ │ │ │ moveq r3, r9 │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - movs r2, #1 │ │ │ │ │ - str r3, [sp, #8] │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ mov r1, r9 │ │ │ │ │ - ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ mov r0, r6 │ │ │ │ │ - strd sl, r3, [sp] │ │ │ │ │ + str.w sl, [sp] │ │ │ │ │ + strd r3, r8, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ mov r3, r7 │ │ │ │ │ - str.w r8, [sp, #12] │ │ │ │ │ - bl 19f8 │ │ │ │ │ + bl 1e2c │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_plan_guru_dft │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ifree │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, #16 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ - movs r3, #0 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldmia.w sp!, {sl, pc} │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ strd r3, r3, [r9, #4] │ │ │ │ │ - b.n 1bee │ │ │ │ │ + b.n 2066 │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -00001c20 : │ │ │ │ │ +000020ac : │ │ │ │ │ fftwf_mpi_plan_dft_1d(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r0 │ │ │ │ │ - ldr.w r9, [pc, #216] @ 1d00 │ │ │ │ │ - sub sp, #28 │ │ │ │ │ - movs r0, #12 │ │ │ │ │ - add r9, pc │ │ │ │ │ + mov.w r0, #12 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ mov r6, r3 │ │ │ │ │ + ldr.w r9, [pc, #228] @ 21a8 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + sub sp, #28 │ │ │ │ │ mov r7, r1 │ │ │ │ │ mov r8, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_malloc_plain │ │ │ │ │ - movs r3, #0 │ │ │ │ │ - strd r3, r3, [r0, #4] │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ + add r9, pc │ │ │ │ │ + strd r5, r3, [r0] │ │ │ │ │ + str r3, [r0, #8] │ │ │ │ │ ldr.w r3, [r9] │ │ │ │ │ - str r5, [r0, #0] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq.n 1cc4 │ │ │ │ │ + beq.n 216c │ │ │ │ │ cmp r5, #0 │ │ │ │ │ - ble.n 1cb4 │ │ │ │ │ + ble.n 214c │ │ │ │ │ add r1, sp, #20 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - bl 9d8 │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + bl b50 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r5, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 1cae │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + bgt.n 2146 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 1cae │ │ │ │ │ + bgt.n 2146 │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ mov r2, r7 │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ mov r0, r5 │ │ │ │ │ - lsrs r3, r3, #27 │ │ │ │ │ + str r6, [sp, #0] │ │ │ │ │ + mov.w r3, r3, lsr #27 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ - strd r6, r3, [sp] │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ mov r3, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkproblem_dft_d │ │ │ │ │ mov r2, r0 │ │ │ │ │ ldrd r0, r1, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkapiplan │ │ │ │ │ mov r5, r0 │ │ │ │ │ - mov r0, r4 │ │ │ │ │ - bl 0 │ │ │ │ │ - R_ARM_THM_CALL fftwf_ifree │ │ │ │ │ - mov r0, r5 │ │ │ │ │ - add sp, #28 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + b.n 2150 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ + mov.w r5, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - movs r5, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ifree │ │ │ │ │ mov r0, r5 │ │ │ │ │ add sp, #28 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_the_planner │ │ │ │ │ - ldr r2, [pc, #56] @ (1d04 ) │ │ │ │ │ + ldr r2, [pc, #56] @ (21ac ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #56] @ (1d08 ) │ │ │ │ │ + ldr r2, [pc, #56] @ (21b0 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #52] @ (1d0c ) │ │ │ │ │ + ldr r2, [pc, #52] @ (21b4 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #52] @ (1d10 ) │ │ │ │ │ + ldr r2, [pc, #52] @ (21b8 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_conf_standard │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ str.w r3, [r9] │ │ │ │ │ ldr r3, [r4, #0] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 1cb4 │ │ │ │ │ + ble.n 214c │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1cb4 │ │ │ │ │ + blt.n 214c │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bge.n 1c50 │ │ │ │ │ - b.n 1cb4 │ │ │ │ │ - nop │ │ │ │ │ - .word 0x000000ce │ │ │ │ │ + bge.n 20ec │ │ │ │ │ + b.n 214c │ │ │ │ │ + .word 0x000000cc │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ .word 0x00000036 │ │ │ │ │ R_ARM_REL32 cost_hook │ │ │ │ │ .word 0x00000034 │ │ │ │ │ R_ARM_REL32 wisdom_ok_hook │ │ │ │ │ .word 0x00000032 │ │ │ │ │ R_ARM_REL32 nowisdom_hook │ │ │ │ │ .word 0x00000030 │ │ │ │ │ R_ARM_REL32 bogosity_hook │ │ │ │ │ │ │ │ │ │ -00001d14 : │ │ │ │ │ +000021bc : │ │ │ │ │ fftwf_mpi_plan_dft_2d(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r0 │ │ │ │ │ - movs r0, #24 │ │ │ │ │ - sub sp, #28 │ │ │ │ │ + mov.w r0, #24 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r6, r1 │ │ │ │ │ mov r8, r2 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ + sub sp, #28 │ │ │ │ │ mov r9, r3 │ │ │ │ │ ldr r7, [sp, #64] @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_malloc_plain │ │ │ │ │ mov r4, r0 │ │ │ │ │ strd r5, r5, [r0, #4] │ │ │ │ │ - str.w r5, [r0], #12 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ tst.w r7, #536870912 @ 0x20000000 │ │ │ │ │ it eq │ │ │ │ │ - moveq r2, r4 │ │ │ │ │ - mov.w r3, #0 │ │ │ │ │ - strd r6, r6, [r4, #16] │ │ │ │ │ + moveq r2, r0 │ │ │ │ │ + str.w r5, [r0], #12 │ │ │ │ │ it ne │ │ │ │ │ movne r2, r0 │ │ │ │ │ - str r6, [r4, #12] │ │ │ │ │ + strd r6, r6, [r4, #12] │ │ │ │ │ tst.w r7, #1073741824 @ 0x40000000 │ │ │ │ │ - ldr r6, [pc, #208] @ (1e20 ) │ │ │ │ │ + str r6, [r4, #20] │ │ │ │ │ it eq │ │ │ │ │ moveq r0, r4 │ │ │ │ │ + ldr r6, [pc, #220] @ (22e8 ) │ │ │ │ │ str r3, [r2, #4] │ │ │ │ │ - add r6, pc │ │ │ │ │ str r3, [r0, #8] │ │ │ │ │ + add r6, pc │ │ │ │ │ ldr r3, [r6, #0] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq.n 1df8 │ │ │ │ │ + beq.n 22bc │ │ │ │ │ cmp r5, #0 │ │ │ │ │ - ble.n 1de8 │ │ │ │ │ + ble.n 229c │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1de8 │ │ │ │ │ + blt.n 229c │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1de8 │ │ │ │ │ + blt.n 229c │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 1de8 │ │ │ │ │ + ble.n 229c │ │ │ │ │ ldr r3, [r4, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1de8 │ │ │ │ │ + blt.n 229c │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1de8 │ │ │ │ │ - add r1, sp, #20 │ │ │ │ │ + blt.n 229c │ │ │ │ │ ldr r0, [sp, #56] @ 0x38 │ │ │ │ │ + add r1, sp, #20 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - bl 654 │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + bl 748 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r5, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 1de2 │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + bgt.n 2296 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 1de2 │ │ │ │ │ - lsrs r3, r7, #27 │ │ │ │ │ + bgt.n 2296 │ │ │ │ │ + mov.w r3, r7, lsr #27 │ │ │ │ │ + mov r2, r8 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ - mov r2, r8 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - movs r1, #1 │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ mov r3, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkproblem_dft_d │ │ │ │ │ - mov r1, r7 │ │ │ │ │ mov r2, r0 │ │ │ │ │ ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ + mov r1, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkapiplan │ │ │ │ │ mov r5, r0 │ │ │ │ │ - mov r0, r4 │ │ │ │ │ - bl 0 │ │ │ │ │ - R_ARM_THM_CALL fftwf_ifree │ │ │ │ │ - mov r0, r5 │ │ │ │ │ - add sp, #28 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + b.n 22a0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ + mov.w r5, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - movs r5, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ifree │ │ │ │ │ mov r0, r5 │ │ │ │ │ add sp, #28 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_the_planner │ │ │ │ │ - ldr r2, [pc, #36] @ (1e24 ) │ │ │ │ │ + ldr r2, [pc, #40] @ (22ec ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #36] @ (1e28 ) │ │ │ │ │ + ldr r2, [pc, #40] @ (22f0 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #32] @ (1e2c ) │ │ │ │ │ + ldr r2, [pc, #36] @ (22f4 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #32] @ (1e30 ) │ │ │ │ │ + ldr r2, [pc, #36] @ (22f8 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_conf_standard │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ ldr r5, [r4, #0] │ │ │ │ │ str r3, [r6, #0] │ │ │ │ │ - b.n 1d60 │ │ │ │ │ - .word 0x000000c6 │ │ │ │ │ + b.n 2216 │ │ │ │ │ + nop │ │ │ │ │ + .word 0x000000d6 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0x00000022 │ │ │ │ │ + .word 0x00000026 │ │ │ │ │ R_ARM_REL32 cost_hook │ │ │ │ │ - .word 0x00000020 │ │ │ │ │ + .word 0x00000024 │ │ │ │ │ R_ARM_REL32 wisdom_ok_hook │ │ │ │ │ - .word 0x0000001e │ │ │ │ │ + .word 0x00000022 │ │ │ │ │ R_ARM_REL32 nowisdom_hook │ │ │ │ │ - .word 0x0000001c │ │ │ │ │ + .word 0x00000020 │ │ │ │ │ R_ARM_REL32 bogosity_hook │ │ │ │ │ │ │ │ │ │ -00001e34 : │ │ │ │ │ +000022fc : │ │ │ │ │ fftwf_mpi_plan_dft_3d(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - mov r7, r0 │ │ │ │ │ - movs r0, #36 @ 0x24 │ │ │ │ │ - sub sp, #28 │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r2 │ │ │ │ │ mov r6, r1 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + mov r7, r0 │ │ │ │ │ + mov.w r0, #36 @ 0x24 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ + sub sp, #28 │ │ │ │ │ mov r9, r3 │ │ │ │ │ ldr.w r8, [sp, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_malloc_plain │ │ │ │ │ mov ip, r0 │ │ │ │ │ strd r7, r7, [r0, #4] │ │ │ │ │ - tst.w r8, #536870912 @ 0x20000000 │ │ │ │ │ mov.w r3, #0 │ │ │ │ │ - it eq │ │ │ │ │ - moveq r2, r0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ str.w r7, [ip], #12 │ │ │ │ │ - strd r5, r5, [r0, #28] │ │ │ │ │ - str r5, [r0, #24] │ │ │ │ │ - it ne │ │ │ │ │ + tst.w r8, #536870912 @ 0x20000000 │ │ │ │ │ + strd r6, r6, [r0, #12] │ │ │ │ │ + strd r6, r5, [r0, #20] │ │ │ │ │ + ite eq │ │ │ │ │ + moveq r2, r0 │ │ │ │ │ movne r2, ip │ │ │ │ │ - ldr r5, [pc, #240] @ (1f60 ) │ │ │ │ │ + strd r5, r5, [r0, #28] │ │ │ │ │ tst.w r8, #1073741824 @ 0x40000000 │ │ │ │ │ + ldr r5, [pc, #244] @ (2444 ) │ │ │ │ │ it eq │ │ │ │ │ moveq ip, r0 │ │ │ │ │ - strd r6, r6, [r0, #16] │ │ │ │ │ - add r5, pc │ │ │ │ │ - str r6, [r0, #12] │ │ │ │ │ str r3, [r2, #4] │ │ │ │ │ str.w r3, [ip, #8] │ │ │ │ │ + add r5, pc │ │ │ │ │ ldr r3, [r5, #0] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq.n 1f3a │ │ │ │ │ + beq.n 241a │ │ │ │ │ ldr r3, [r4, #0] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 1f2a │ │ │ │ │ + ble.n 23fa │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1f2a │ │ │ │ │ + blt.n 23fa │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1f2a │ │ │ │ │ + blt.n 23fa │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 1f2a │ │ │ │ │ + ble.n 23fa │ │ │ │ │ ldr r3, [r4, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1f2a │ │ │ │ │ + blt.n 23fa │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1f2a │ │ │ │ │ + blt.n 23fa │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 1f2a │ │ │ │ │ + ble.n 23fa │ │ │ │ │ ldr r3, [r4, #28] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1f2a │ │ │ │ │ + blt.n 23fa │ │ │ │ │ ldr r3, [r4, #32] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 1f2a │ │ │ │ │ - add r1, sp, #20 │ │ │ │ │ + blt.n 23fa │ │ │ │ │ ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ + add r1, sp, #20 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - bl 248 │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + bl 2a8 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r5, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 1f24 │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + bgt.n 23f4 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 1f24 │ │ │ │ │ + bgt.n 23f4 │ │ │ │ │ mov.w r3, r8, lsr #27 │ │ │ │ │ + mov r2, r9 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ - mov r2, r9 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - movs r1, #1 │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ - mov r0, r5 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkproblem_dft_d │ │ │ │ │ - mov r1, r8 │ │ │ │ │ mov r2, r0 │ │ │ │ │ ldr r0, [sp, #64] @ 0x40 │ │ │ │ │ + mov r1, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkapiplan │ │ │ │ │ mov r5, r0 │ │ │ │ │ - mov r0, r4 │ │ │ │ │ - bl 0 │ │ │ │ │ - R_ARM_THM_CALL fftwf_ifree │ │ │ │ │ - mov r0, r5 │ │ │ │ │ - add sp, #28 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + b.n 23fe │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ + mov.w r5, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - movs r5, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ifree │ │ │ │ │ mov r0, r5 │ │ │ │ │ add sp, #28 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_the_planner │ │ │ │ │ - ldr r2, [pc, #36] @ (1f64 ) │ │ │ │ │ + ldr r2, [pc, #40] @ (2448 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #32] @ (1f68 ) │ │ │ │ │ + ldr r2, [pc, #36] @ (244c ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #32] @ (1f6c ) │ │ │ │ │ + ldr r2, [pc, #36] @ (2450 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #28] @ (1f70 ) │ │ │ │ │ + ldr r2, [pc, #32] @ (2454 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_conf_standard │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ str r3, [r5, #0] │ │ │ │ │ - b.n 1e8c │ │ │ │ │ - .word 0x000000e0 │ │ │ │ │ + b.n 2360 │ │ │ │ │ + nop │ │ │ │ │ + .word 0x000000e8 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0x00000020 │ │ │ │ │ + .word 0x00000024 │ │ │ │ │ R_ARM_REL32 cost_hook │ │ │ │ │ - .word 0x0000001e │ │ │ │ │ + .word 0x00000022 │ │ │ │ │ R_ARM_REL32 wisdom_ok_hook │ │ │ │ │ - .word 0x0000001c │ │ │ │ │ + .word 0x00000020 │ │ │ │ │ R_ARM_REL32 nowisdom_hook │ │ │ │ │ - .word 0x0000001a │ │ │ │ │ + .word 0x0000001e │ │ │ │ │ R_ARM_REL32 bogosity_hook │ │ │ │ │ │ │ │ │ │ -00001f74 : │ │ │ │ │ +00002458 : │ │ │ │ │ fftwf_mpi_plan_guru_r2r(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + mov r5, r2 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r7, r3 │ │ │ │ │ - ldr.w r8, [pc, #240] @ 206c │ │ │ │ │ + mov r6, r1 │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ sub sp, #24 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ + ldr.w r8, [pc, #252] @ 256c │ │ │ │ │ add r8, pc │ │ │ │ │ - mov r6, r1 │ │ │ │ │ - mov r5, r2 │ │ │ │ │ ldr.w r3, [r8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq.n 2044 │ │ │ │ │ + beq.n 2540 │ │ │ │ │ cmp r4, #0 │ │ │ │ │ ite gt │ │ │ │ │ movgt.w lr, #0 │ │ │ │ │ movle.w lr, #1 │ │ │ │ │ orrs.w lr, lr, r5, lsr #31 │ │ │ │ │ - bne.n 203a │ │ │ │ │ + bne.n 252a │ │ │ │ │ mov ip, r6 │ │ │ │ │ ldr.w r3, [ip] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 203a │ │ │ │ │ + ble.n 252a │ │ │ │ │ ldr.w r3, [ip, #4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 203a │ │ │ │ │ + blt.n 252a │ │ │ │ │ ldr.w r3, [ip, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 203a │ │ │ │ │ + blt.n 252a │ │ │ │ │ add.w lr, lr, #1 │ │ │ │ │ add.w ip, ip, #12 │ │ │ │ │ cmp r4, lr │ │ │ │ │ - bgt.n 1fa4 │ │ │ │ │ + bgt.n 2490 │ │ │ │ │ ldr r1, [sp, #56] @ 0x38 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_map_r2r_kind │ │ │ │ │ - add r1, sp, #20 │ │ │ │ │ mov r8, r0 │ │ │ │ │ ldr r0, [sp, #52] @ 0x34 │ │ │ │ │ + add r1, sp, #20 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ - movs r3, #0 │ │ │ │ │ ldr r2, [sp, #20] │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ mov r1, r6 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - bl bf4 │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + bl dbc │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 2034 │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + bgt.n 2524 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 2034 │ │ │ │ │ + bgt.n 2524 │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ mov r2, r7 │ │ │ │ │ mov r1, r5 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - lsrs r3, r3, #27 │ │ │ │ │ + mov.w r3, r3, lsr #27 │ │ │ │ │ strd r8, r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkproblem_rdft_d │ │ │ │ │ ldr r1, [sp, #60] @ 0x3c │ │ │ │ │ mov r2, r0 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkapiplan │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ifree0 │ │ │ │ │ - mov r0, r4 │ │ │ │ │ - add sp, #24 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + b.n 252e │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ - movs r4, #0 │ │ │ │ │ + mov.w r4, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, #24 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + ldmia.w sp!, {r8, pc} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_the_planner │ │ │ │ │ - ldr r2, [pc, #36] @ (2070 ) │ │ │ │ │ + ldr r2, [pc, #40] @ (2570 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #36] @ (2074 ) │ │ │ │ │ + ldr r2, [pc, #40] @ (2574 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #32] @ (2078 ) │ │ │ │ │ + ldr r2, [pc, #36] @ (2578 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #32] @ (207c ) │ │ │ │ │ + ldr r2, [pc, #36] @ (257c ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_conf_standard │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ str.w r3, [r8] │ │ │ │ │ - b.n 1f90 │ │ │ │ │ - .word 0x000000e6 │ │ │ │ │ + b.n 247c │ │ │ │ │ + nop │ │ │ │ │ + .word 0x000000f6 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0x00000022 │ │ │ │ │ + .word 0x00000026 │ │ │ │ │ R_ARM_REL32 cost_hook │ │ │ │ │ - .word 0x00000020 │ │ │ │ │ + .word 0x00000024 │ │ │ │ │ R_ARM_REL32 wisdom_ok_hook │ │ │ │ │ - .word 0x0000001e │ │ │ │ │ + .word 0x00000022 │ │ │ │ │ R_ARM_REL32 nowisdom_hook │ │ │ │ │ - .word 0x0000001c │ │ │ │ │ + .word 0x00000020 │ │ │ │ │ R_ARM_REL32 bogosity_hook │ │ │ │ │ │ │ │ │ │ -00002080 : │ │ │ │ │ +00002580 : │ │ │ │ │ fftwf_mpi_plan_many_r2r(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - movs r0, #12 │ │ │ │ │ - sub sp, #20 │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ - mov r9, r2 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + mov r5, r0 │ │ │ │ │ + add.w r0, r0, r0, lsl #1 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r7, r3 │ │ │ │ │ - mul.w r0, r5, r0 │ │ │ │ │ + mov.w r0, r0, lsl #2 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ + sub sp, #20 │ │ │ │ │ ldr.w r8, [sp, #68] @ 0x44 │ │ │ │ │ + mov r9, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_malloc_plain │ │ │ │ │ cmp r5, #0 │ │ │ │ │ mov r6, r0 │ │ │ │ │ - ble.n 20e2 │ │ │ │ │ + ble.n 25f0 │ │ │ │ │ + add.w r3, r4, r5, lsl #2 │ │ │ │ │ mov lr, r4 │ │ │ │ │ mov ip, r0 │ │ │ │ │ - add.w r3, r4, r5, lsl #2 │ │ │ │ │ ldr.w r4, [lr], #4 │ │ │ │ │ - str.w r4, [ip, #8] │ │ │ │ │ - strd r4, r4, [ip] │ │ │ │ │ cmp lr, r3 │ │ │ │ │ + strd r4, r4, [ip] │ │ │ │ │ add.w ip, ip, #12 │ │ │ │ │ - bne.n 20aa │ │ │ │ │ + str.w r4, [ip, #-4] │ │ │ │ │ + bne.n 25b8 │ │ │ │ │ cmp r5, #1 │ │ │ │ │ - beq.n 210e │ │ │ │ │ + beq.n 2628 │ │ │ │ │ tst.w r8, #536870912 @ 0x20000000 │ │ │ │ │ it ne │ │ │ │ │ addne.w r3, r6, #12 │ │ │ │ │ - bne.n 20d0 │ │ │ │ │ + bne.n 25de │ │ │ │ │ mov r3, r6 │ │ │ │ │ + ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ tst.w r8, #1073741824 @ 0x40000000 │ │ │ │ │ str r7, [r3, #4] │ │ │ │ │ ite ne │ │ │ │ │ addne.w r3, r6, #12 │ │ │ │ │ moveq r3, r6 │ │ │ │ │ - ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ mov r2, r9 │ │ │ │ │ - str r3, [sp, #8] │ │ │ │ │ mov r1, r6 │ │ │ │ │ - ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ mov r0, r5 │ │ │ │ │ + strd r3, r8, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - str.w r8, [sp, #12] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - bl 1f74 │ │ │ │ │ + bl 2458 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_plan_guru_r2r │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ifree │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, #20 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ - str r7, [r6, #4] │ │ │ │ │ - str r3, [r6, #8] │ │ │ │ │ - b.n 20e2 │ │ │ │ │ - nop │ │ │ │ │ + strd r7, r3, [r6, #4] │ │ │ │ │ + b.n 25f0 │ │ │ │ │ │ │ │ │ │ -00002118 : │ │ │ │ │ +00002630 : │ │ │ │ │ fftwf_mpi_plan_r2r(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ - mov r6, r0 │ │ │ │ │ - movs r0, #12 │ │ │ │ │ - sub sp, #16 │ │ │ │ │ + strd r4, r5, [sp, #-32]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ + mov r6, r0 │ │ │ │ │ + add.w r0, r0, r0, lsl #1 │ │ │ │ │ + strd r8, r9, [sp, #16] │ │ │ │ │ mov r7, r2 │ │ │ │ │ - mov sl, r3 │ │ │ │ │ - mul.w r0, r6, r0 │ │ │ │ │ + mov.w r0, r0, lsl #2 │ │ │ │ │ + strd sl, lr, [sp, #24] │ │ │ │ │ + sub sp, #16 │ │ │ │ │ ldr.w r8, [sp, #56] @ 0x38 │ │ │ │ │ + mov sl, r3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_malloc_plain │ │ │ │ │ cmp r6, #0 │ │ │ │ │ mov r9, r0 │ │ │ │ │ - ble.n 217e │ │ │ │ │ + ble.n 26a6 │ │ │ │ │ + add.w r5, r4, r6, lsl #2 │ │ │ │ │ mov lr, r4 │ │ │ │ │ mov ip, r0 │ │ │ │ │ - add.w r5, r4, r6, lsl #2 │ │ │ │ │ ldr.w r4, [lr], #4 │ │ │ │ │ - str.w r4, [ip, #8] │ │ │ │ │ - strd r4, r4, [ip] │ │ │ │ │ cmp lr, r5 │ │ │ │ │ + strd r4, r4, [ip] │ │ │ │ │ add.w ip, ip, #12 │ │ │ │ │ - bne.n 2142 │ │ │ │ │ + str.w r4, [ip, #-4] │ │ │ │ │ + bne.n 2668 │ │ │ │ │ cmp r6, #1 │ │ │ │ │ - beq.n 21a8 │ │ │ │ │ + beq.n 26e0 │ │ │ │ │ tst.w r8, #536870912 @ 0x20000000 │ │ │ │ │ it ne │ │ │ │ │ addne.w r3, r9, #12 │ │ │ │ │ - bne.n 2168 │ │ │ │ │ + bne.n 268e │ │ │ │ │ mov r3, r9 │ │ │ │ │ - tst.w r8, #1073741824 @ 0x40000000 │ │ │ │ │ mov.w r2, #0 │ │ │ │ │ + tst.w r8, #1073741824 @ 0x40000000 │ │ │ │ │ str r2, [r3, #4] │ │ │ │ │ ite ne │ │ │ │ │ addne.w r3, r9, #12 │ │ │ │ │ moveq r3, r9 │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - movs r2, #1 │ │ │ │ │ - str r3, [sp, #8] │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ mov r1, r9 │ │ │ │ │ - ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ mov r0, r6 │ │ │ │ │ - strd sl, r3, [sp] │ │ │ │ │ + str.w sl, [sp] │ │ │ │ │ + strd r3, r8, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ mov r3, r7 │ │ │ │ │ - str.w r8, [sp, #12] │ │ │ │ │ - bl 1f74 │ │ │ │ │ + bl 2458 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_plan_guru_r2r │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ifree │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, #16 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ - movs r3, #0 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldmia.w sp!, {sl, pc} │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ strd r3, r3, [r9, #4] │ │ │ │ │ - b.n 217e │ │ │ │ │ + b.n 26a6 │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -000021b0 : │ │ │ │ │ +000026ec : │ │ │ │ │ fftwf_mpi_plan_r2r_2d(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - mov r9, r3 │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r0 │ │ │ │ │ - sub sp, #36 @ 0x24 │ │ │ │ │ - movs r0, #24 │ │ │ │ │ + mov.w r0, #24 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r6, r1 │ │ │ │ │ mov r8, r2 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ + sub sp, #36 @ 0x24 │ │ │ │ │ + mov r9, r3 │ │ │ │ │ ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ + ldr r7, [sp, #76] @ 0x4c │ │ │ │ │ str r3, [sp, #24] │ │ │ │ │ ldr r3, [sp, #72] @ 0x48 │ │ │ │ │ - ldr r7, [sp, #76] @ 0x4c │ │ │ │ │ str r3, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_malloc_plain │ │ │ │ │ mov r4, r0 │ │ │ │ │ - strd r5, r5, [r0, #4] │ │ │ │ │ - str.w r5, [r0], #12 │ │ │ │ │ tst.w r7, #536870912 @ 0x20000000 │ │ │ │ │ + strd r5, r5, [r0, #4] │ │ │ │ │ it eq │ │ │ │ │ - moveq r2, r4 │ │ │ │ │ - mov.w r3, #0 │ │ │ │ │ - strd r6, r6, [r4, #16] │ │ │ │ │ + moveq r2, r0 │ │ │ │ │ + str.w r5, [r0], #12 │ │ │ │ │ it ne │ │ │ │ │ movne r2, r0 │ │ │ │ │ - str r6, [r4, #12] │ │ │ │ │ + strd r6, r6, [r4, #12] │ │ │ │ │ tst.w r7, #1073741824 @ 0x40000000 │ │ │ │ │ - ldr r6, [pc, #224] @ (22d4 ) │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ + str r6, [r4, #20] │ │ │ │ │ it eq │ │ │ │ │ moveq r0, r4 │ │ │ │ │ + ldr r6, [pc, #236] @ (2830 ) │ │ │ │ │ str r3, [r2, #4] │ │ │ │ │ - add r6, pc │ │ │ │ │ str r3, [r0, #8] │ │ │ │ │ + add r6, pc │ │ │ │ │ ldr r3, [r6, #0] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq.n 22aa │ │ │ │ │ + beq.n 2806 │ │ │ │ │ cmp r5, #0 │ │ │ │ │ - ble.n 229a │ │ │ │ │ + ble.n 27e6 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 229a │ │ │ │ │ + blt.n 27e6 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 229a │ │ │ │ │ + blt.n 27e6 │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 229a │ │ │ │ │ + ble.n 27e6 │ │ │ │ │ ldr r3, [r4, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 229a │ │ │ │ │ + blt.n 27e6 │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 229a │ │ │ │ │ + blt.n 27e6 │ │ │ │ │ add r1, sp, #24 │ │ │ │ │ - movs r0, #2 │ │ │ │ │ + mov.w r0, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_map_r2r_kind │ │ │ │ │ - add r1, sp, #20 │ │ │ │ │ mov r5, r0 │ │ │ │ │ ldr r0, [sp, #64] @ 0x40 │ │ │ │ │ + add r1, sp, #20 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - bl 654 │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + bl 748 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r6, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 2294 │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + bgt.n 27e0 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 2294 │ │ │ │ │ - lsrs r3, r7, #27 │ │ │ │ │ + bgt.n 27e0 │ │ │ │ │ + mov.w r3, r7, lsr #27 │ │ │ │ │ + mov r2, r8 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ + mov r0, r6 │ │ │ │ │ strd r5, r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ - mov r2, r8 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - movs r1, #1 │ │ │ │ │ mov r3, r9 │ │ │ │ │ - mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkproblem_rdft_d │ │ │ │ │ - mov r1, r7 │ │ │ │ │ mov r2, r0 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + mov r1, r7 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkapiplan │ │ │ │ │ mov r6, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ifree0 │ │ │ │ │ - mov r0, r4 │ │ │ │ │ - bl 0 │ │ │ │ │ - R_ARM_THM_CALL fftwf_ifree │ │ │ │ │ - mov r0, r6 │ │ │ │ │ - add sp, #36 @ 0x24 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + b.n 27ea │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ + mov.w r6, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - movs r6, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ifree │ │ │ │ │ mov r0, r6 │ │ │ │ │ add sp, #36 @ 0x24 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_the_planner │ │ │ │ │ - ldr r2, [pc, #40] @ (22d8 ) │ │ │ │ │ + ldr r2, [pc, #40] @ (2834 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #36] @ (22dc ) │ │ │ │ │ + ldr r2, [pc, #36] @ (2838 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #36] @ (22e0 ) │ │ │ │ │ + ldr r2, [pc, #36] @ (283c ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #32] @ (22e4 ) │ │ │ │ │ + ldr r2, [pc, #32] @ (2840 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_conf_standard │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ ldr r5, [r4, #0] │ │ │ │ │ str r3, [r6, #0] │ │ │ │ │ - b.n 2204 │ │ │ │ │ - nop │ │ │ │ │ - .word 0x000000d6 │ │ │ │ │ + b.n 274e │ │ │ │ │ + .word 0x000000e6 │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ .word 0x00000024 │ │ │ │ │ R_ARM_REL32 cost_hook │ │ │ │ │ .word 0x00000022 │ │ │ │ │ R_ARM_REL32 wisdom_ok_hook │ │ │ │ │ .word 0x00000020 │ │ │ │ │ R_ARM_REL32 nowisdom_hook │ │ │ │ │ .word 0x0000001e │ │ │ │ │ R_ARM_REL32 bogosity_hook │ │ │ │ │ │ │ │ │ │ -000022e8 : │ │ │ │ │ +00002844 : │ │ │ │ │ fftwf_mpi_plan_r2r_3d(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - mov r9, r3 │ │ │ │ │ - mov r7, r0 │ │ │ │ │ - sub sp, #44 @ 0x2c │ │ │ │ │ - movs r0, #36 @ 0x24 │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r2 │ │ │ │ │ mov r6, r1 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + mov r7, r0 │ │ │ │ │ + mov.w r0, #36 @ 0x24 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ + sub sp, #44 @ 0x2c │ │ │ │ │ + mov r9, r3 │ │ │ │ │ ldr r3, [sp, #80] @ 0x50 │ │ │ │ │ + ldr.w r8, [sp, #92] @ 0x5c │ │ │ │ │ str r3, [sp, #24] │ │ │ │ │ ldr r3, [sp, #84] @ 0x54 │ │ │ │ │ str r3, [sp, #28] │ │ │ │ │ ldr r3, [sp, #88] @ 0x58 │ │ │ │ │ - ldr.w r8, [sp, #92] @ 0x5c │ │ │ │ │ str r3, [sp, #32] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_malloc_plain │ │ │ │ │ mov ip, r0 │ │ │ │ │ strd r7, r7, [r0, #4] │ │ │ │ │ tst.w r8, #536870912 @ 0x20000000 │ │ │ │ │ - mov.w r3, #0 │ │ │ │ │ it eq │ │ │ │ │ moveq r2, r0 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ str.w r7, [ip], #12 │ │ │ │ │ - strd r5, r5, [r0, #28] │ │ │ │ │ - str r5, [r0, #24] │ │ │ │ │ it ne │ │ │ │ │ movne r2, ip │ │ │ │ │ - ldr r5, [pc, #256] @ (2430 ) │ │ │ │ │ tst.w r8, #1073741824 @ 0x40000000 │ │ │ │ │ it eq │ │ │ │ │ moveq ip, r0 │ │ │ │ │ - strd r6, r6, [r0, #16] │ │ │ │ │ - add r5, pc │ │ │ │ │ - str r6, [r0, #12] │ │ │ │ │ + strd r6, r6, [r0, #12] │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + strd r6, r5, [r0, #20] │ │ │ │ │ + strd r5, r5, [r0, #28] │ │ │ │ │ + ldr r5, [pc, #260] @ (29ac ) │ │ │ │ │ str r3, [r2, #4] │ │ │ │ │ str.w r3, [ip, #8] │ │ │ │ │ + add r5, pc │ │ │ │ │ ldr r3, [r5, #0] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq.n 2408 │ │ │ │ │ + beq.n 2982 │ │ │ │ │ ldr r3, [r4, #0] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 23f8 │ │ │ │ │ + ble.n 2962 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 23f8 │ │ │ │ │ + blt.n 2962 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 23f8 │ │ │ │ │ + blt.n 2962 │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 23f8 │ │ │ │ │ + ble.n 2962 │ │ │ │ │ ldr r3, [r4, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 23f8 │ │ │ │ │ + blt.n 2962 │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 23f8 │ │ │ │ │ + blt.n 2962 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 23f8 │ │ │ │ │ + ble.n 2962 │ │ │ │ │ ldr r3, [r4, #28] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 23f8 │ │ │ │ │ + blt.n 2962 │ │ │ │ │ ldr r3, [r4, #32] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - blt.n 23f8 │ │ │ │ │ + blt.n 2962 │ │ │ │ │ add r1, sp, #24 │ │ │ │ │ - movs r0, #3 │ │ │ │ │ + mov.w r0, #3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_map_r2r_kind │ │ │ │ │ - add r1, sp, #20 │ │ │ │ │ mov r5, r0 │ │ │ │ │ ldr r0, [sp, #76] @ 0x4c │ │ │ │ │ + add r1, sp, #20 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #20] │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - bl 248 │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + bl 2a8 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r6, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 23f2 │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + bgt.n 295c │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks_total │ │ │ │ │ ldr r3, [sp, #20] │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bgt.n 23f2 │ │ │ │ │ + bgt.n 295c │ │ │ │ │ mov.w r3, r8, lsr #27 │ │ │ │ │ + mov r2, r9 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ + mov r0, r6 │ │ │ │ │ strd r5, r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #76] @ 0x4c │ │ │ │ │ - mov r2, r9 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - movs r1, #1 │ │ │ │ │ ldr r3, [sp, #72] @ 0x48 │ │ │ │ │ - mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkproblem_rdft_d │ │ │ │ │ - mov r1, r8 │ │ │ │ │ mov r2, r0 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + mov r1, r8 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkapiplan │ │ │ │ │ mov r6, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ifree0 │ │ │ │ │ - mov r0, r4 │ │ │ │ │ - bl 0 │ │ │ │ │ - R_ARM_THM_CALL fftwf_ifree │ │ │ │ │ - mov r0, r6 │ │ │ │ │ - add sp, #44 @ 0x2c │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + b.n 2966 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ + mov.w r6, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - movs r6, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ifree │ │ │ │ │ mov r0, r6 │ │ │ │ │ add sp, #44 @ 0x2c │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_the_planner │ │ │ │ │ - ldr r2, [pc, #36] @ (2434 ) │ │ │ │ │ + ldr r2, [pc, #40] @ (29b0 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #8] │ │ │ │ │ - ldr r2, [pc, #36] @ (2438 ) │ │ │ │ │ + ldr r2, [pc, #36] @ (29b4 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #12] │ │ │ │ │ - ldr r2, [pc, #32] @ (243c ) │ │ │ │ │ + ldr r2, [pc, #36] @ (29b8 ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #16] │ │ │ │ │ - ldr r2, [pc, #32] @ (2440 ) │ │ │ │ │ + ldr r2, [pc, #32] @ (29bc ) │ │ │ │ │ add r2, pc │ │ │ │ │ str r2, [r0, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_conf_standard │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ str r3, [r5, #0] │ │ │ │ │ - b.n 234c │ │ │ │ │ + b.n 28b6 │ │ │ │ │ nop │ │ │ │ │ - .word 0x000000f0 │ │ │ │ │ + .word 0x000000fa │ │ │ │ │ R_ARM_REL32 .bss │ │ │ │ │ - .word 0x00000022 │ │ │ │ │ + .word 0x00000024 │ │ │ │ │ R_ARM_REL32 cost_hook │ │ │ │ │ - .word 0x00000020 │ │ │ │ │ + .word 0x00000022 │ │ │ │ │ R_ARM_REL32 wisdom_ok_hook │ │ │ │ │ - .word 0x0000001e │ │ │ │ │ + .word 0x00000020 │ │ │ │ │ R_ARM_REL32 nowisdom_hook │ │ │ │ │ - .word 0x0000001c │ │ │ │ │ + .word 0x0000001e │ │ │ │ │ R_ARM_REL32 bogosity_hook │ │ │ │ │ │ │ │ │ │ -00002444 : │ │ │ │ │ +000029c0 : │ │ │ │ │ fftwf_mpi_plan_many_dft_r2c(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - movs r0, #12 │ │ │ │ │ - sub sp, #20 │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ - mov r9, r2 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + mov r5, r0 │ │ │ │ │ + add.w r0, r0, r0, lsl #1 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r7, r3 │ │ │ │ │ - mul.w r0, r5, r0 │ │ │ │ │ + mov.w r0, r0, lsl #2 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ + sub sp, #20 │ │ │ │ │ ldr.w r8, [sp, #64] @ 0x40 │ │ │ │ │ + mov r9, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_malloc_plain │ │ │ │ │ cmp r5, #0 │ │ │ │ │ mov r6, r0 │ │ │ │ │ - ble.n 24a6 │ │ │ │ │ + ble.n 2a30 │ │ │ │ │ + add.w r3, r4, r5, lsl #2 │ │ │ │ │ mov lr, r4 │ │ │ │ │ mov ip, r0 │ │ │ │ │ - add.w r3, r4, r5, lsl #2 │ │ │ │ │ ldr.w r4, [lr], #4 │ │ │ │ │ - str.w r4, [ip, #8] │ │ │ │ │ - strd r4, r4, [ip] │ │ │ │ │ cmp lr, r3 │ │ │ │ │ + strd r4, r4, [ip] │ │ │ │ │ add.w ip, ip, #12 │ │ │ │ │ - bne.n 246e │ │ │ │ │ + str.w r4, [ip, #-4] │ │ │ │ │ + bne.n 29f8 │ │ │ │ │ cmp r5, #1 │ │ │ │ │ - beq.n 24d2 │ │ │ │ │ + beq.n 2a6a │ │ │ │ │ tst.w r8, #536870912 @ 0x20000000 │ │ │ │ │ it ne │ │ │ │ │ addne.w r3, r6, #12 │ │ │ │ │ - bne.n 2494 │ │ │ │ │ + bne.n 2a1e │ │ │ │ │ mov r3, r6 │ │ │ │ │ + ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ tst.w r8, #1073741824 @ 0x40000000 │ │ │ │ │ str r7, [r3, #4] │ │ │ │ │ ite ne │ │ │ │ │ addne.w r3, r6, #12 │ │ │ │ │ moveq r3, r6 │ │ │ │ │ - ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ - movs r3, #0 │ │ │ │ │ - str r3, [sp, #8] │ │ │ │ │ - ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ mov r2, r9 │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ mov r1, r6 │ │ │ │ │ - ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ mov r0, r5 │ │ │ │ │ + strd r3, r8, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - str.w r8, [sp, #12] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - bl 1490 │ │ │ │ │ + bl 17b8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ifree │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, #20 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ - str r7, [r6, #4] │ │ │ │ │ - str r3, [r6, #8] │ │ │ │ │ - b.n 24a6 │ │ │ │ │ + strd r7, r3, [r6, #4] │ │ │ │ │ + b.n 2a30 │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -000024dc : │ │ │ │ │ +00002a74 : │ │ │ │ │ fftwf_mpi_plan_many_dft_c2r(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - movs r0, #12 │ │ │ │ │ - sub sp, #20 │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ - mov r9, r2 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + mov r5, r0 │ │ │ │ │ + add.w r0, r0, r0, lsl #1 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r7, r3 │ │ │ │ │ - mul.w r0, r5, r0 │ │ │ │ │ + mov.w r0, r0, lsl #2 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ + sub sp, #20 │ │ │ │ │ ldr.w r8, [sp, #64] @ 0x40 │ │ │ │ │ + mov r9, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_malloc_plain │ │ │ │ │ cmp r5, #0 │ │ │ │ │ mov r6, r0 │ │ │ │ │ - ble.n 253e │ │ │ │ │ + ble.n 2ae4 │ │ │ │ │ + add.w r3, r4, r5, lsl #2 │ │ │ │ │ mov lr, r4 │ │ │ │ │ mov ip, r0 │ │ │ │ │ - add.w r3, r4, r5, lsl #2 │ │ │ │ │ ldr.w r4, [lr], #4 │ │ │ │ │ - str.w r4, [ip, #8] │ │ │ │ │ - strd r4, r4, [ip] │ │ │ │ │ cmp lr, r3 │ │ │ │ │ + strd r4, r4, [ip] │ │ │ │ │ add.w ip, ip, #12 │ │ │ │ │ - bne.n 2506 │ │ │ │ │ + str.w r4, [ip, #-4] │ │ │ │ │ + bne.n 2aac │ │ │ │ │ cmp r5, #1 │ │ │ │ │ - beq.n 256a │ │ │ │ │ + beq.n 2b1e │ │ │ │ │ tst.w r8, #536870912 @ 0x20000000 │ │ │ │ │ it ne │ │ │ │ │ addne.w r3, r6, #12 │ │ │ │ │ - bne.n 252c │ │ │ │ │ + bne.n 2ad2 │ │ │ │ │ mov r3, r6 │ │ │ │ │ + ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ tst.w r8, #1073741824 @ 0x40000000 │ │ │ │ │ str r7, [r3, #4] │ │ │ │ │ ite ne │ │ │ │ │ addne.w r3, r6, #12 │ │ │ │ │ moveq r3, r6 │ │ │ │ │ - ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ - movs r3, #4 │ │ │ │ │ - str r3, [sp, #8] │ │ │ │ │ - ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ + mov.w r3, #4 │ │ │ │ │ mov r2, r9 │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ mov r1, r6 │ │ │ │ │ - ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ mov r0, r5 │ │ │ │ │ + strd r3, r8, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - str.w r8, [sp, #12] │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ - bl 1490 │ │ │ │ │ + bl 17b8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ifree │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, #20 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ - str r7, [r6, #4] │ │ │ │ │ - str r3, [r6, #8] │ │ │ │ │ - b.n 253e │ │ │ │ │ + strd r7, r3, [r6, #4] │ │ │ │ │ + b.n 2ae4 │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -00002574 : │ │ │ │ │ +00002b28 : │ │ │ │ │ fftwf_mpi_plan_dft_r2c(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ - mov r6, r0 │ │ │ │ │ - movs r0, #12 │ │ │ │ │ - sub sp, #16 │ │ │ │ │ + strd r4, r5, [sp, #-32]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ + mov r6, r0 │ │ │ │ │ + add.w r0, r0, r0, lsl #1 │ │ │ │ │ + strd r8, r9, [sp, #16] │ │ │ │ │ mov r7, r2 │ │ │ │ │ - mov sl, r3 │ │ │ │ │ - mul.w r0, r6, r0 │ │ │ │ │ + mov.w r0, r0, lsl #2 │ │ │ │ │ + strd sl, lr, [sp, #24] │ │ │ │ │ + sub sp, #16 │ │ │ │ │ ldr.w r8, [sp, #52] @ 0x34 │ │ │ │ │ + mov sl, r3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_malloc_plain │ │ │ │ │ cmp r6, #0 │ │ │ │ │ mov r9, r0 │ │ │ │ │ - ble.n 25da │ │ │ │ │ + ble.n 2b9e │ │ │ │ │ + add.w r5, r4, r6, lsl #2 │ │ │ │ │ mov lr, r4 │ │ │ │ │ mov ip, r0 │ │ │ │ │ - add.w r5, r4, r6, lsl #2 │ │ │ │ │ ldr.w r4, [lr], #4 │ │ │ │ │ - str.w r4, [ip, #8] │ │ │ │ │ - strd r4, r4, [ip] │ │ │ │ │ cmp lr, r5 │ │ │ │ │ + strd r4, r4, [ip] │ │ │ │ │ add.w ip, ip, #12 │ │ │ │ │ - bne.n 259e │ │ │ │ │ + str.w r4, [ip, #-4] │ │ │ │ │ + bne.n 2b60 │ │ │ │ │ cmp r6, #1 │ │ │ │ │ - beq.n 2604 │ │ │ │ │ + beq.n 2bda │ │ │ │ │ tst.w r8, #536870912 @ 0x20000000 │ │ │ │ │ it ne │ │ │ │ │ addne.w r3, r9, #12 │ │ │ │ │ - bne.n 25c4 │ │ │ │ │ + bne.n 2b86 │ │ │ │ │ mov r3, r9 │ │ │ │ │ - tst.w r8, #1073741824 @ 0x40000000 │ │ │ │ │ mov.w r2, #0 │ │ │ │ │ + tst.w r8, #1073741824 @ 0x40000000 │ │ │ │ │ str r2, [r3, #4] │ │ │ │ │ ite ne │ │ │ │ │ addne.w r3, r9, #12 │ │ │ │ │ moveq r3, r9 │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ - movs r3, #0 │ │ │ │ │ - str r3, [sp, #8] │ │ │ │ │ - ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ - movs r2, #1 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ + str.w sl, [sp] │ │ │ │ │ mov r1, r9 │ │ │ │ │ - strd sl, r3, [sp] │ │ │ │ │ mov r0, r6 │ │ │ │ │ + strd r3, r8, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ mov r3, r7 │ │ │ │ │ - str.w r8, [sp, #12] │ │ │ │ │ - bl 1490 │ │ │ │ │ + bl 17b8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ifree │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, #16 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ - movs r3, #0 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldmia.w sp!, {sl, pc} │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ strd r3, r3, [r9, #4] │ │ │ │ │ - b.n 25da │ │ │ │ │ + b.n 2b9e │ │ │ │ │ │ │ │ │ │ -0000260c : │ │ │ │ │ +00002be4 : │ │ │ │ │ fftwf_mpi_plan_dft_r2c_2d(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r6, r0 │ │ │ │ │ - movs r0, #24 │ │ │ │ │ - sub sp, #12 │ │ │ │ │ - mov r7, r2 │ │ │ │ │ + mov.w r0, #24 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r5, r1 │ │ │ │ │ + mov r7, r2 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ + sub sp, #12 │ │ │ │ │ mov r8, r3 │ │ │ │ │ ldr.w r9, [sp, #44] @ 0x2c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_malloc_plain │ │ │ │ │ mov ip, r0 │ │ │ │ │ strd r6, r6, [r0, #4] │ │ │ │ │ - tst.w r9, #536870912 @ 0x20000000 │ │ │ │ │ mov.w r3, #0 │ │ │ │ │ - it eq │ │ │ │ │ - moveq r2, r0 │ │ │ │ │ + mov r1, r7 │ │ │ │ │ mov r4, r0 │ │ │ │ │ str.w r6, [ip], #12 │ │ │ │ │ - mov r1, r7 │ │ │ │ │ - strd r5, r5, [r0, #16] │ │ │ │ │ - it ne │ │ │ │ │ + tst.w r9, #536870912 @ 0x20000000 │ │ │ │ │ + strd r5, r5, [r0, #12] │ │ │ │ │ + ite ne │ │ │ │ │ movne r2, ip │ │ │ │ │ + moveq r2, r0 │ │ │ │ │ + str r5, [r0, #20] │ │ │ │ │ tst.w r9, #1073741824 @ 0x40000000 │ │ │ │ │ it eq │ │ │ │ │ moveq ip, r0 │ │ │ │ │ - str r5, [r0, #12] │ │ │ │ │ str r3, [r2, #4] │ │ │ │ │ mov r2, r8 │ │ │ │ │ str.w r3, [ip, #8] │ │ │ │ │ strd r3, r9, [sp] │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ - bl 1398 │ │ │ │ │ + bl 1690 │ │ │ │ │ mov r5, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ifree │ │ │ │ │ mov r0, r5 │ │ │ │ │ add sp, #12 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ - nop │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ │ │ │ │ │ -00002674 : │ │ │ │ │ +00002c64 : │ │ │ │ │ fftwf_mpi_plan_dft_r2c_3d(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - mov r7, r0 │ │ │ │ │ - movs r0, #36 @ 0x24 │ │ │ │ │ - sub sp, #12 │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r2 │ │ │ │ │ mov r6, r1 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + mov r7, r0 │ │ │ │ │ + mov.w r0, #36 @ 0x24 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ + sub sp, #12 │ │ │ │ │ mov r8, r3 │ │ │ │ │ ldr.w r9, [sp, #48] @ 0x30 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_malloc_plain │ │ │ │ │ mov ip, r0 │ │ │ │ │ strd r7, r7, [r0, #4] │ │ │ │ │ - tst.w r9, #536870912 @ 0x20000000 │ │ │ │ │ mov.w r3, #0 │ │ │ │ │ - it eq │ │ │ │ │ - moveq r2, r0 │ │ │ │ │ + mov r1, r8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ str.w r7, [ip], #12 │ │ │ │ │ - mov r1, r8 │ │ │ │ │ - strd r6, r6, [r0, #16] │ │ │ │ │ - it ne │ │ │ │ │ + tst.w r9, #536870912 @ 0x20000000 │ │ │ │ │ + strd r6, r6, [r0, #12] │ │ │ │ │ + ite ne │ │ │ │ │ movne r2, ip │ │ │ │ │ + moveq r2, r0 │ │ │ │ │ + strd r6, r5, [r0, #20] │ │ │ │ │ tst.w r9, #1073741824 @ 0x40000000 │ │ │ │ │ + strd r5, r5, [r0, #28] │ │ │ │ │ it eq │ │ │ │ │ moveq ip, r0 │ │ │ │ │ - str r6, [r0, #12] │ │ │ │ │ - strd r5, r5, [r0, #28] │ │ │ │ │ - str r5, [r0, #24] │ │ │ │ │ str r3, [r2, #4] │ │ │ │ │ str.w r3, [ip, #8] │ │ │ │ │ strd r3, r9, [sp] │ │ │ │ │ ldrd r2, r3, [sp, #40] @ 0x28 │ │ │ │ │ - bl 128c │ │ │ │ │ + bl 1558 │ │ │ │ │ mov r5, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ifree │ │ │ │ │ mov r0, r5 │ │ │ │ │ add sp, #12 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -000026e0 : │ │ │ │ │ +00002cec : │ │ │ │ │ fftwf_mpi_plan_dft_c2r(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ - mov r6, r0 │ │ │ │ │ - movs r0, #12 │ │ │ │ │ - sub sp, #16 │ │ │ │ │ + strd r4, r5, [sp, #-32]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ - mov sl, r2 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ + mov r6, r0 │ │ │ │ │ + add.w r0, r0, r0, lsl #1 │ │ │ │ │ + strd r8, r9, [sp, #16] │ │ │ │ │ mov r9, r3 │ │ │ │ │ - mul.w r0, r6, r0 │ │ │ │ │ + mov.w r0, r0, lsl #2 │ │ │ │ │ + strd sl, lr, [sp, #24] │ │ │ │ │ + sub sp, #16 │ │ │ │ │ ldr.w r8, [sp, #52] @ 0x34 │ │ │ │ │ + mov sl, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_malloc_plain │ │ │ │ │ cmp r6, #0 │ │ │ │ │ mov r7, r0 │ │ │ │ │ - ble.n 2746 │ │ │ │ │ + ble.n 2d62 │ │ │ │ │ + add.w r5, r4, r6, lsl #2 │ │ │ │ │ mov lr, r4 │ │ │ │ │ mov ip, r0 │ │ │ │ │ - add.w r5, r4, r6, lsl #2 │ │ │ │ │ ldr.w r4, [lr], #4 │ │ │ │ │ - str.w r4, [ip, #8] │ │ │ │ │ - strd r4, r4, [ip] │ │ │ │ │ cmp lr, r5 │ │ │ │ │ + strd r4, r4, [ip] │ │ │ │ │ add.w ip, ip, #12 │ │ │ │ │ - bne.n 270a │ │ │ │ │ + str.w r4, [ip, #-4] │ │ │ │ │ + bne.n 2d24 │ │ │ │ │ cmp r6, #1 │ │ │ │ │ - beq.n 2770 │ │ │ │ │ + beq.n 2d9e │ │ │ │ │ tst.w r8, #536870912 @ 0x20000000 │ │ │ │ │ it ne │ │ │ │ │ addne.w r3, r7, #12 │ │ │ │ │ - bne.n 2730 │ │ │ │ │ + bne.n 2d4a │ │ │ │ │ mov r3, r7 │ │ │ │ │ - tst.w r8, #1073741824 @ 0x40000000 │ │ │ │ │ mov.w r2, #0 │ │ │ │ │ + tst.w r8, #1073741824 @ 0x40000000 │ │ │ │ │ str r2, [r3, #4] │ │ │ │ │ ite ne │ │ │ │ │ addne.w r3, r7, #12 │ │ │ │ │ moveq r3, r7 │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ str r2, [r3, #8] │ │ │ │ │ - movs r3, #4 │ │ │ │ │ - str r3, [sp, #8] │ │ │ │ │ - ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ - movs r2, #1 │ │ │ │ │ + mov.w r3, #4 │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ + str.w sl, [sp] │ │ │ │ │ mov r1, r7 │ │ │ │ │ - strd sl, r3, [sp] │ │ │ │ │ mov r0, r6 │ │ │ │ │ + strd r3, r8, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ mov r3, r9 │ │ │ │ │ - str.w r8, [sp, #12] │ │ │ │ │ - bl 1490 │ │ │ │ │ + bl 17b8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ifree │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, #16 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ - movs r3, #0 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldmia.w sp!, {sl, pc} │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ strd r3, r3, [r7, #4] │ │ │ │ │ - b.n 2746 │ │ │ │ │ + b.n 2d62 │ │ │ │ │ │ │ │ │ │ -00002778 : │ │ │ │ │ +00002da8 : │ │ │ │ │ fftwf_mpi_plan_dft_c2r_2d(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r6, r0 │ │ │ │ │ - movs r0, #24 │ │ │ │ │ - sub sp, #12 │ │ │ │ │ + mov.w r0, #24 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r5, r1 │ │ │ │ │ mov r8, r2 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ + sub sp, #12 │ │ │ │ │ mov r7, r3 │ │ │ │ │ ldr.w r9, [sp, #44] @ 0x2c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_malloc_plain │ │ │ │ │ mov ip, r0 │ │ │ │ │ strd r6, r6, [r0, #4] │ │ │ │ │ - tst.w r9, #536870912 @ 0x20000000 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - it eq │ │ │ │ │ - moveq r2, r0 │ │ │ │ │ mov.w r3, #0 │ │ │ │ │ - str.w r6, [ip], #12 │ │ │ │ │ mov r1, r7 │ │ │ │ │ - strd r5, r5, [r0, #16] │ │ │ │ │ - it ne │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + str.w r6, [ip], #12 │ │ │ │ │ + tst.w r9, #536870912 @ 0x20000000 │ │ │ │ │ + strd r5, r5, [r0, #12] │ │ │ │ │ + ite ne │ │ │ │ │ movne r2, ip │ │ │ │ │ + moveq r2, r0 │ │ │ │ │ + str r5, [r0, #20] │ │ │ │ │ tst.w r9, #1073741824 @ 0x40000000 │ │ │ │ │ it eq │ │ │ │ │ moveq ip, r0 │ │ │ │ │ - str r5, [r0, #12] │ │ │ │ │ str r3, [r2, #4] │ │ │ │ │ mov r2, r8 │ │ │ │ │ str.w r3, [ip, #8] │ │ │ │ │ - movs r3, #4 │ │ │ │ │ - str.w r9, [sp, #4] │ │ │ │ │ + mov.w r3, #4 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ - bl 1398 │ │ │ │ │ + str.w r9, [sp, #4] │ │ │ │ │ + bl 1690 │ │ │ │ │ mov r5, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ifree │ │ │ │ │ mov r0, r5 │ │ │ │ │ add sp, #12 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -000027e4 : │ │ │ │ │ +00002e30 : │ │ │ │ │ fftwf_mpi_plan_dft_c2r_3d(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - mov r7, r0 │ │ │ │ │ - movs r0, #36 @ 0x24 │ │ │ │ │ - sub sp, #12 │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r2 │ │ │ │ │ mov r6, r1 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + mov r7, r0 │ │ │ │ │ + mov.w r0, #36 @ 0x24 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ + sub sp, #12 │ │ │ │ │ mov r8, r3 │ │ │ │ │ ldr.w r9, [sp, #48] @ 0x30 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_malloc_plain │ │ │ │ │ mov ip, r0 │ │ │ │ │ strd r7, r7, [r0, #4] │ │ │ │ │ - tst.w r9, #536870912 @ 0x20000000 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ ldr r1, [sp, #40] @ 0x28 │ │ │ │ │ - it eq │ │ │ │ │ - moveq r2, r0 │ │ │ │ │ mov r4, r0 │ │ │ │ │ str.w r7, [ip], #12 │ │ │ │ │ - mov.w r3, #0 │ │ │ │ │ - strd r6, r6, [r0, #16] │ │ │ │ │ - it ne │ │ │ │ │ + tst.w r9, #536870912 @ 0x20000000 │ │ │ │ │ + strd r6, r6, [r0, #12] │ │ │ │ │ + ite ne │ │ │ │ │ movne r2, ip │ │ │ │ │ + moveq r2, r0 │ │ │ │ │ + strd r6, r5, [r0, #20] │ │ │ │ │ tst.w r9, #1073741824 @ 0x40000000 │ │ │ │ │ + strd r5, r5, [r0, #28] │ │ │ │ │ it eq │ │ │ │ │ moveq ip, r0 │ │ │ │ │ - str r6, [r0, #12] │ │ │ │ │ - strd r5, r5, [r0, #28] │ │ │ │ │ - str r5, [r0, #24] │ │ │ │ │ str r3, [r2, #4] │ │ │ │ │ mov r2, r8 │ │ │ │ │ str.w r3, [ip, #8] │ │ │ │ │ - movs r3, #4 │ │ │ │ │ - str.w r9, [sp, #4] │ │ │ │ │ + mov.w r3, #4 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ - bl 128c │ │ │ │ │ + str.w r9, [sp, #4] │ │ │ │ │ + bl 1558 │ │ │ │ │ mov r5, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ifree │ │ │ │ │ mov r0, r5 │ │ │ │ │ add sp, #12 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ │ │ │ │ │ -00002854 : │ │ │ │ │ +00002ebc : │ │ │ │ │ fftwf_mpi_execute_dft(): │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_execute_r2r │ │ │ │ │ │ │ │ │ │ -00002858 : │ │ │ │ │ +00002ec0 : │ │ │ │ │ fftwf_mpi_execute_dft_r2c(): │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_execute_r2r │ │ │ │ │ │ │ │ │ │ -0000285c : │ │ │ │ │ +00002ec4 : │ │ │ │ │ fftwf_mpi_execute_dft_c2r(): │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_execute_r2r │ │ │ │ │ │ │ │ │ │ -00002860 : │ │ │ │ │ +00002ec8 : │ │ │ │ │ fftwf_mpi_execute_r2r(): │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_execute_r2r │ │ │ ├── block.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 1760 (bytes into file) │ │ │ │ │ + Start of section headers: 2076 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 10 │ │ │ │ │ Section header string table index: 9 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,19 +1,19 @@ │ │ │ │ │ -There are 10 section headers, starting at offset 0x6e0: │ │ │ │ │ +There are 10 section headers, starting at offset 0x81c: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 00038c 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000618 000078 08 I 7 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 0003c0 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 0003c0 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .note.GNU-stack PROGBITS 00000000 0003c0 000000 00 0 0 1 │ │ │ │ │ - [ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 0003c0 000033 00 0 0 1 │ │ │ │ │ - [ 7] .symtab SYMTAB 00000000 0003f4 000100 10 8 2 4 │ │ │ │ │ - [ 8] .strtab STRTAB 00000000 0004f4 000124 00 0 0 1 │ │ │ │ │ - [ 9] .shstrtab STRTAB 00000000 000690 000050 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0004c8 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000754 000078 08 I 7 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 0004fc 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 0004fc 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .note.GNU-stack PROGBITS 00000000 0004fc 000000 00 0 0 1 │ │ │ │ │ + [ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 0004fc 000033 00 0 0 1 │ │ │ │ │ + [ 7] .symtab SYMTAB 00000000 000530 000100 10 8 2 4 │ │ │ │ │ + [ 8] .strtab STRTAB 00000000 000630 000124 00 0 0 1 │ │ │ │ │ + [ 9] .shstrtab STRTAB 00000000 0007cc 000050 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,19 +1,19 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 16 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ 1: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 2: 00000001 12 FUNC GLOBAL DEFAULT 1 fftwf_mpi_num_blocks │ │ │ │ │ + 2: 00000001 16 FUNC GLOBAL DEFAULT 1 fftwf_mpi_num_blocks │ │ │ │ │ 3: 00000000 0 NOTYPE GLOBAL DEFAULT UND __aeabi_idiv │ │ │ │ │ - 4: 0000000d 40 FUNC GLOBAL DEFAULT 1 fftwf_mpi_num_blocks_ok │ │ │ │ │ + 4: 00000011 58 FUNC GLOBAL DEFAULT 1 fftwf_mpi_num_blocks_ok │ │ │ │ │ 5: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_size │ │ │ │ │ - 6: 00000035 12 FUNC GLOBAL DEFAULT 1 fftwf_mpi_default_block │ │ │ │ │ - 7: 00000041 20 FUNC GLOBAL DEFAULT 1 fftwf_mpi_block │ │ │ │ │ - 8: 00000055 76 FUNC GLOBAL DEFAULT 1 fftwf_mpi_num_blocks_total │ │ │ │ │ - 9: 000000a1 84 FUNC GLOBAL DEFAULT 1 fftwf_mpi_idle_process │ │ │ │ │ - 10: 000000f5 68 FUNC GLOBAL DEFAULT 1 fftwf_mpi_block_coords │ │ │ │ │ + 6: 0000004d 16 FUNC GLOBAL DEFAULT 1 fftwf_mpi_default_block │ │ │ │ │ + 7: 0000005d 22 FUNC GLOBAL DEFAULT 1 fftwf_mpi_block │ │ │ │ │ + 8: 00000075 106 FUNC GLOBAL DEFAULT 1 fftwf_mpi_num_blocks_total │ │ │ │ │ + 9: 000000e1 122 FUNC GLOBAL DEFAULT 1 fftwf_mpi_idle_process │ │ │ │ │ + 10: 0000015d 94 FUNC GLOBAL DEFAULT 1 fftwf_mpi_block_coords │ │ │ │ │ 11: 00000000 0 NOTYPE GLOBAL DEFAULT UND __aeabi_idivmod │ │ │ │ │ - 12: 00000139 272 FUNC GLOBAL DEFAULT 1 fftwf_mpi_total_block │ │ │ │ │ - 13: 00000249 82 FUNC GLOBAL DEFAULT 1 fftwf_mpi_is_local_after │ │ │ │ │ - 14: 0000029d 70 FUNC GLOBAL DEFAULT 1 fftwf_mpi_is_local │ │ │ │ │ - 15: 000002e5 168 FUNC GLOBAL DEFAULT 1 fftwf_mpi_is_block1d │ │ │ │ │ + 12: 000001bd 326 FUNC GLOBAL DEFAULT 1 fftwf_mpi_total_block │ │ │ │ │ + 13: 00000305 124 FUNC GLOBAL DEFAULT 1 fftwf_mpi_is_local_after │ │ │ │ │ + 14: 00000381 114 FUNC GLOBAL DEFAULT 1 fftwf_mpi_is_local │ │ │ │ │ + 15: 000003f5 210 FUNC GLOBAL DEFAULT 1 fftwf_mpi_is_block1d │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,18 +1,18 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x618 contains 15 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x754 contains 15 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000006 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000018 0000050a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000022 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -0000003a 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -0000008a 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000000d8 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -0000011e 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000126 00000b0a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -0000017e 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000001c4 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000001cc 00000b0a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -0000028a 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000002d2 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -0000031c 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -0000037a 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +0000000a 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000022 0000050a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000030 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000056 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +000000bc 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +0000012e 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000196 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +0000019e 00000b0a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +0000021a 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +0000026c 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000274 00000b0a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000358 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +000003ca 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +0000043c 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +000004a6 0000030a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -2,396 +2,450 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftwf_mpi_num_blocks(): │ │ │ │ │ add r0, r1 │ │ │ │ │ - push {r3, lr} │ │ │ │ │ - subs r0, #1 │ │ │ │ │ + strd r3, lr, [sp, #-8]! │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ pop {r3, pc} │ │ │ │ │ │ │ │ │ │ -0000000c : │ │ │ │ │ +00000010 : │ │ │ │ │ fftwf_mpi_num_blocks_ok(): │ │ │ │ │ - push {r4, r5, lr} │ │ │ │ │ - mov r5, r1 │ │ │ │ │ + str.w r4, [sp, #-12]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - sub sp, #12 │ │ │ │ │ mov r0, r2 │ │ │ │ │ + strd r5, lr, [sp, #4] │ │ │ │ │ + sub sp, #12 │ │ │ │ │ + mov r5, r1 │ │ │ │ │ add r1, sp, #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ - adds r0, r4, r5 │ │ │ │ │ + add.w r0, r4, r5 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - subs r0, #1 │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ ldr r3, [sp, #4] │ │ │ │ │ cmp r3, r0 │ │ │ │ │ ite lt │ │ │ │ │ movlt r0, #0 │ │ │ │ │ movge r0, #1 │ │ │ │ │ add sp, #12 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -00000034 : │ │ │ │ │ +0000004c : │ │ │ │ │ fftwf_mpi_default_block(): │ │ │ │ │ add r0, r1 │ │ │ │ │ - push {r3, lr} │ │ │ │ │ - subs r0, #1 │ │ │ │ │ + strd r3, lr, [sp, #-8]! │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ pop {r3, pc} │ │ │ │ │ │ │ │ │ │ -00000040 : │ │ │ │ │ +0000005c : │ │ │ │ │ fftwf_mpi_block(): │ │ │ │ │ mls r0, r1, r2, r0 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - ble.n 50 │ │ │ │ │ + ble.n 6c │ │ │ │ │ cmp r0, r1 │ │ │ │ │ it ge │ │ │ │ │ movge r0, r1 │ │ │ │ │ bx lr │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ bx lr │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -00000054 : │ │ │ │ │ +00000074 : │ │ │ │ │ fftwf_mpi_num_blocks_total(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mvn.w r3, #2147483648 @ 0x80000000 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ ldr r7, [r0, #0] │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ cmp r7, r3 │ │ │ │ │ it eq │ │ │ │ │ moveq r5, #0 │ │ │ │ │ - beq.n 96 │ │ │ │ │ + beq.n c8 │ │ │ │ │ cmp r7, #0 │ │ │ │ │ - ble.n 9c │ │ │ │ │ + ble.n d8 │ │ │ │ │ add.w r1, r0, r1, lsl #2 │ │ │ │ │ + mov.w r4, #0 │ │ │ │ │ + mov.w r5, #1 │ │ │ │ │ add.w r7, r7, r7, lsl #1 │ │ │ │ │ + add.w r6, r0, #4 │ │ │ │ │ add.w r8, r1, #8 │ │ │ │ │ - movs r4, #0 │ │ │ │ │ - movs r5, #1 │ │ │ │ │ - adds r6, r0, #4 │ │ │ │ │ ldr.w r1, [r8, r4, lsl #2] │ │ │ │ │ ldr.w r0, [r6, r4, lsl #2] │ │ │ │ │ - adds r4, #3 │ │ │ │ │ + add.w r4, r4, #3 │ │ │ │ │ add r0, r1 │ │ │ │ │ - subs r0, #1 │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ cmp r4, r7 │ │ │ │ │ mul.w r5, r0, r5 │ │ │ │ │ - bne.n 7c │ │ │ │ │ + bne.n aa │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ mov r0, r5 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, pc} │ │ │ │ │ - movs r5, #1 │ │ │ │ │ - b.n 96 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + ldmia.w sp!, {r8, pc} │ │ │ │ │ + mov.w r5, #1 │ │ │ │ │ + b.n c8 │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -000000a0 : │ │ │ │ │ +000000e0 : │ │ │ │ │ fftwf_mpi_idle_process(): │ │ │ │ │ - stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + strd r3, r4, [sp, #-32]! │ │ │ │ │ mvn.w r3, #2147483648 @ 0x80000000 │ │ │ │ │ - ldr r7, [r0, #0] │ │ │ │ │ + strd r5, r6, [sp, #8] │ │ │ │ │ + strd r7, r8, [sp, #16] │ │ │ │ │ mov r8, r2 │ │ │ │ │ + ldr r7, [r0, #0] │ │ │ │ │ + strd r9, lr, [sp, #24] │ │ │ │ │ cmp r7, r3 │ │ │ │ │ it eq │ │ │ │ │ moveq r5, #0 │ │ │ │ │ - beq.n e4 │ │ │ │ │ + beq.n 13a │ │ │ │ │ cmp r7, #0 │ │ │ │ │ - ble.n f0 │ │ │ │ │ + ble.n 154 │ │ │ │ │ add.w r1, r0, r1, lsl #2 │ │ │ │ │ + mov.w r4, #0 │ │ │ │ │ + mov.w r5, #1 │ │ │ │ │ add.w r7, r7, r7, lsl #1 │ │ │ │ │ + add.w r6, r0, #4 │ │ │ │ │ add.w r9, r1, #8 │ │ │ │ │ - movs r4, #0 │ │ │ │ │ - movs r5, #1 │ │ │ │ │ - adds r6, r0, #4 │ │ │ │ │ ldr.w r1, [r9, r4, lsl #2] │ │ │ │ │ ldr.w r0, [r6, r4, lsl #2] │ │ │ │ │ - adds r4, #3 │ │ │ │ │ + add.w r4, r4, #3 │ │ │ │ │ add r0, r1 │ │ │ │ │ - subs r0, #1 │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ cmp r4, r7 │ │ │ │ │ mul.w r5, r0, r5 │ │ │ │ │ - bne.n ca │ │ │ │ │ + bne.n 11c │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ cmp r8, r5 │ │ │ │ │ ite lt │ │ │ │ │ movlt r0, #0 │ │ │ │ │ movge r0, #1 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ - movs r5, #1 │ │ │ │ │ - b.n e4 │ │ │ │ │ + ldrd r5, r6, [sp, #8] │ │ │ │ │ + ldrd r7, r8, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldmia.w sp!, {r9, pc} │ │ │ │ │ + mov.w r5, #1 │ │ │ │ │ + b.n 13a │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -000000f4 : │ │ │ │ │ +0000015c : │ │ │ │ │ fftwf_mpi_block_coords(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ ldr r6, [r0, #0] │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ cmp r6, #0 │ │ │ │ │ - ble.n 134 │ │ │ │ │ - movs r4, #12 │ │ │ │ │ + ble.n 1ac │ │ │ │ │ + add.w r4, r6, r6, lsl #1 │ │ │ │ │ mov r7, r0 │ │ │ │ │ mov r8, r1 │ │ │ │ │ - mov r5, r2 │ │ │ │ │ - mla r4, r4, r6, r0 │ │ │ │ │ add.w r6, r3, r6, lsl #2 │ │ │ │ │ - subs r3, r4, #4 │ │ │ │ │ + mov r5, r2 │ │ │ │ │ + add.w r4, r0, r4, lsl #2 │ │ │ │ │ + sub.w r3, r4, #4 │ │ │ │ │ ldr.w r0, [r4, #-8] │ │ │ │ │ - subs r4, #12 │ │ │ │ │ + sub.w r4, r4, #12 │ │ │ │ │ ldr.w r1, [r3, r8, lsl #2] │ │ │ │ │ add r0, r1 │ │ │ │ │ - subs r0, #1 │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ cmp r7, r4 │ │ │ │ │ mov r5, r0 │ │ │ │ │ str.w r1, [r6, #-4]! │ │ │ │ │ - bne.n 10e │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + bne.n 180 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + ldmia.w sp!, {r8, pc} │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -00000138 : │ │ │ │ │ +000001bc : │ │ │ │ │ fftwf_mpi_total_block(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mvn.w r3, #2147483648 @ 0x80000000 │ │ │ │ │ + mov r4, r2 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r6, r1 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ sub sp, #12 │ │ │ │ │ - add r7, sp, #0 │ │ │ │ │ ldr.w r8, [r0] │ │ │ │ │ - mov r4, r2 │ │ │ │ │ - cmp r8, r3 │ │ │ │ │ + add r7, sp, #0 │ │ │ │ │ str r0, [r7, #0] │ │ │ │ │ - beq.n 222 │ │ │ │ │ + cmp r8, r3 │ │ │ │ │ + beq.n 2c6 │ │ │ │ │ cmp.w r8, #0 │ │ │ │ │ - ble.n 23e │ │ │ │ │ + ble.w 2f8 │ │ │ │ │ add.w r3, r8, r8, lsl #1 │ │ │ │ │ + mov.w r5, #0 │ │ │ │ │ + mov.w r9, #1 │ │ │ │ │ + add.w fp, r0, #4 │ │ │ │ │ str r3, [r7, #4] │ │ │ │ │ add.w r3, r0, r1, lsl #2 │ │ │ │ │ - movs r5, #0 │ │ │ │ │ add.w sl, r3, #8 │ │ │ │ │ - mov.w r9, #1 │ │ │ │ │ - add.w fp, r0, #4 │ │ │ │ │ ldr.w r1, [sl, r5, lsl #2] │ │ │ │ │ ldr.w r0, [fp, r5, lsl #2] │ │ │ │ │ - adds r5, #3 │ │ │ │ │ + add.w r5, r5, #3 │ │ │ │ │ add r0, r1 │ │ │ │ │ - subs r0, #1 │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ ldr r3, [r7, #4] │ │ │ │ │ mul.w r9, r0, r9 │ │ │ │ │ cmp r5, r3 │ │ │ │ │ - bne.n 170 │ │ │ │ │ + bne.n 208 │ │ │ │ │ cmp r4, r9 │ │ │ │ │ - bge.n 226 │ │ │ │ │ + bge.n 2ca │ │ │ │ │ mov.w r3, r8, lsl #2 │ │ │ │ │ add.w r2, r8, #4294967295 @ 0xffffffff │ │ │ │ │ - adds r3, #7 │ │ │ │ │ + add.w r3, r3, #7 │ │ │ │ │ bic.w r3, r3, #7 │ │ │ │ │ sub.w sp, sp, r3 │ │ │ │ │ str.w sp, [r7, #4] │ │ │ │ │ ldr r3, [r7, #0] │ │ │ │ │ - movs r5, #12 │ │ │ │ │ + add.w r5, r2, r2, lsl #1 │ │ │ │ │ mov r9, r3 │ │ │ │ │ - mla r5, r5, r2, r3 │ │ │ │ │ + add.w r5, r3, r5, lsl #2 │ │ │ │ │ ldr r3, [r7, #4] │ │ │ │ │ add.w fp, r3, r2, lsl #2 │ │ │ │ │ add.w r1, r5, #8 │ │ │ │ │ ldr r0, [r5, #4] │ │ │ │ │ + mov sl, r5 │ │ │ │ │ + sub.w r5, r5, #12 │ │ │ │ │ ldr.w r1, [r1, r6, lsl #2] │ │ │ │ │ add r0, r1 │ │ │ │ │ - subs r0, #1 │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ ldr r2, [r7, #0] │ │ │ │ │ mov r4, r0 │ │ │ │ │ str.w r1, [fp], #-4 │ │ │ │ │ - cmp r5, r2 │ │ │ │ │ - sub.w r5, r5, #12 │ │ │ │ │ - bne.n 1b6 │ │ │ │ │ + cmp sl, r2 │ │ │ │ │ + bne.n 256 │ │ │ │ │ ldr r3, [r7, #4] │ │ │ │ │ - movs r0, #1 │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ sub.w fp, r3, #4 │ │ │ │ │ add.w r3, r9, #8 │ │ │ │ │ ldr.w r4, [fp, #4]! │ │ │ │ │ ldr.w r1, [r3, r6, lsl #2] │ │ │ │ │ ldr.w r3, [r9, #4] │ │ │ │ │ mls r3, r4, r1, r3 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ it le │ │ │ │ │ movle r0, #0 │ │ │ │ │ - ble.n 210 │ │ │ │ │ + ble.n 2b8 │ │ │ │ │ cmp r3, r1 │ │ │ │ │ it ge │ │ │ │ │ movge r3, r1 │ │ │ │ │ mul.w r0, r3, r0 │ │ │ │ │ - adds r2, #1 │ │ │ │ │ + add.w r2, r2, #1 │ │ │ │ │ add.w r9, r9, #12 │ │ │ │ │ cmp r8, r2 │ │ │ │ │ - bgt.n 1ea │ │ │ │ │ - adds r7, #12 │ │ │ │ │ - mov sp, r7 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + bgt.n 292 │ │ │ │ │ + b.n 2ce │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - blt.n 230 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ - adds r7, #12 │ │ │ │ │ + blt.n 2ea │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ + add.w r7, r7, #12 │ │ │ │ │ mov sp, r7 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ movw r2, #65534 @ 0xfffe │ │ │ │ │ movt r2, #32767 @ 0x7fff │ │ │ │ │ str.w sp, [r7, #4] │ │ │ │ │ - b.n 1a6 │ │ │ │ │ + b.n 244 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ ite gt │ │ │ │ │ movgt r0, #0 │ │ │ │ │ movle r0, #1 │ │ │ │ │ - b.n 228 │ │ │ │ │ + b.n 2ce │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -00000248 : │ │ │ │ │ +00000304 : │ │ │ │ │ fftwf_mpi_is_local_after(): │ │ │ │ │ - push {r3, r4, r5, r6, r7, lr} │ │ │ │ │ + strd r3, r4, [sp, #-24]! │ │ │ │ │ mvn.w r3, #2147483648 @ 0x80000000 │ │ │ │ │ + strd r5, r6, [sp, #8] │ │ │ │ │ ldr r6, [r1, #0] │ │ │ │ │ + strd r7, lr, [sp, #16] │ │ │ │ │ cmp r6, r3 │ │ │ │ │ - beq.n 296 │ │ │ │ │ + beq.n 370 │ │ │ │ │ cmp r6, r0 │ │ │ │ │ - ble.n 296 │ │ │ │ │ - movs r7, #12 │ │ │ │ │ - subs r6, r6, r0 │ │ │ │ │ - movs r4, #0 │ │ │ │ │ - add.w r6, r6, r6, lsl #1 │ │ │ │ │ - mla r7, r7, r0, r1 │ │ │ │ │ + ble.n 370 │ │ │ │ │ + sub.w r6, r6, r0 │ │ │ │ │ add.w r0, r0, r0, lsl #1 │ │ │ │ │ + mov.w r4, #0 │ │ │ │ │ + add.w r6, r6, r6, lsl #1 │ │ │ │ │ + add.w r7, r1, r0, lsl #2 │ │ │ │ │ add r0, r2 │ │ │ │ │ - adds r7, #4 │ │ │ │ │ add.w r1, r1, r0, lsl #2 │ │ │ │ │ + add.w r7, r7, #4 │ │ │ │ │ add.w r5, r1, #8 │ │ │ │ │ - b.n 27e │ │ │ │ │ - adds r4, #3 │ │ │ │ │ + b.n 34a │ │ │ │ │ + add.w r4, r4, #3 │ │ │ │ │ cmp r4, r6 │ │ │ │ │ - beq.n 296 │ │ │ │ │ + beq.n 370 │ │ │ │ │ ldr.w r1, [r5, r4, lsl #2] │ │ │ │ │ ldr.w r0, [r7, r4, lsl #2] │ │ │ │ │ add r0, r1 │ │ │ │ │ - subs r0, #1 │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble.n 278 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ - pop {r3, r4, r5, r6, r7, pc} │ │ │ │ │ - movs r0, #1 │ │ │ │ │ - pop {r3, r4, r5, r6, r7, pc} │ │ │ │ │ - nop │ │ │ │ │ + ble.n 342 │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ + ldrd r5, r6, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + pop {r7, pc} │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ + ldrd r5, r6, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + pop {r7, pc} │ │ │ │ │ │ │ │ │ │ -0000029c : │ │ │ │ │ +00000380 : │ │ │ │ │ fftwf_mpi_is_local(): │ │ │ │ │ - push {r3, r4, r5, r6, r7, lr} │ │ │ │ │ + strd r3, r4, [sp, #-24]! │ │ │ │ │ movw r3, #65533 @ 0xfffd │ │ │ │ │ movt r3, #32767 @ 0x7fff │ │ │ │ │ + strd r5, r6, [sp, #8] │ │ │ │ │ ldr r6, [r0, #0] │ │ │ │ │ - subs r2, r6, #1 │ │ │ │ │ + strd r7, lr, [sp, #16] │ │ │ │ │ + add.w r2, r6, #4294967295 @ 0xffffffff │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - bhi.n 2de │ │ │ │ │ + bhi.n 3e2 │ │ │ │ │ add.w r1, r0, r1, lsl #2 │ │ │ │ │ + mov.w r4, #0 │ │ │ │ │ + add.w r5, r0, #4 │ │ │ │ │ add.w r6, r6, r6, lsl #1 │ │ │ │ │ add.w r7, r1, #8 │ │ │ │ │ - movs r4, #0 │ │ │ │ │ - adds r5, r0, #4 │ │ │ │ │ - b.n 2c6 │ │ │ │ │ - adds r4, #3 │ │ │ │ │ + b.n 3bc │ │ │ │ │ + add.w r4, r4, #3 │ │ │ │ │ cmp r6, r4 │ │ │ │ │ - beq.n 2de │ │ │ │ │ + beq.n 3e2 │ │ │ │ │ ldr.w r1, [r7, r4, lsl #2] │ │ │ │ │ ldr.w r0, [r5, r4, lsl #2] │ │ │ │ │ add r0, r1 │ │ │ │ │ - subs r0, #1 │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble.n 2c0 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ - pop {r3, r4, r5, r6, r7, pc} │ │ │ │ │ - movs r0, #1 │ │ │ │ │ - pop {r3, r4, r5, r6, r7, pc} │ │ │ │ │ + ble.n 3b4 │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ + ldrd r5, r6, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + pop {r7, pc} │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ + ldrd r5, r6, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + pop {r7, pc} │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -000002e4 : │ │ │ │ │ +000003f4 : │ │ │ │ │ fftwf_mpi_is_block1d(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ movw r3, #65533 @ 0xfffd │ │ │ │ │ movt r3, #32767 @ 0x7fff │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ ldr.w r8, [r0] │ │ │ │ │ add.w r2, r8, #4294967295 @ 0xffffffff │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - bhi.n 382 │ │ │ │ │ + bhi.n 4ae │ │ │ │ │ mov r6, r0 │ │ │ │ │ mov r7, r1 │ │ │ │ │ mov r4, r0 │ │ │ │ │ - movs r5, #0 │ │ │ │ │ - b.n 30e │ │ │ │ │ - adds r5, #1 │ │ │ │ │ - adds r4, #12 │ │ │ │ │ + mov.w r5, #0 │ │ │ │ │ + b.n 42c │ │ │ │ │ + add.w r5, r5, #1 │ │ │ │ │ + add.w r4, r4, #12 │ │ │ │ │ cmp r8, r5 │ │ │ │ │ - beq.n 382 │ │ │ │ │ + beq.n 4ae │ │ │ │ │ add.w r3, r4, #8 │ │ │ │ │ ldr.w r1, [r3, r7, lsl #2] │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ add r3, r1 │ │ │ │ │ - subs r0, r3, #1 │ │ │ │ │ + add.w r0, r3, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - beq.n 306 │ │ │ │ │ + beq.n 420 │ │ │ │ │ cmp r5, #1 │ │ │ │ │ ite le │ │ │ │ │ movle r0, #1 │ │ │ │ │ movgt r0, #0 │ │ │ │ │ cmp r8, r5 │ │ │ │ │ it le │ │ │ │ │ movle r0, #0 │ │ │ │ │ - cbz r0, 384 │ │ │ │ │ + cbz r0, 4b2 │ │ │ │ │ cmp r5, #0 │ │ │ │ │ ite eq │ │ │ │ │ moveq r3, #1 │ │ │ │ │ movne r3, #2 │ │ │ │ │ cmp r8, r3 │ │ │ │ │ - ble.n 388 │ │ │ │ │ + ble.n 4c0 │ │ │ │ │ sub.w r8, r8, r5 │ │ │ │ │ - negs r5, r5 │ │ │ │ │ + rsb r5, r5, #0 │ │ │ │ │ add.w r8, r8, r8, lsl #1 │ │ │ │ │ sub.w r4, r8, #3 │ │ │ │ │ and.w r8, r5, #12 │ │ │ │ │ and.w r5, r5, #3 │ │ │ │ │ add.w r8, r8, #16 │ │ │ │ │ - adds r1, r5, r7 │ │ │ │ │ + add.w r1, r5, r7 │ │ │ │ │ add r8, r6 │ │ │ │ │ - movs r5, #0 │ │ │ │ │ add.w r6, r6, r1, lsl #2 │ │ │ │ │ - adds r6, #20 │ │ │ │ │ - b.n 36e │ │ │ │ │ - adds r5, #3 │ │ │ │ │ + mov.w r5, #0 │ │ │ │ │ + add.w r6, r6, #20 │ │ │ │ │ + b.n 498 │ │ │ │ │ + add.w r5, r5, #3 │ │ │ │ │ cmp r5, r4 │ │ │ │ │ - beq.n 388 │ │ │ │ │ + beq.n 4c0 │ │ │ │ │ ldr.w r1, [r6, r5, lsl #2] │ │ │ │ │ ldr.w r0, [r8, r5, lsl #2] │ │ │ │ │ add r0, r1 │ │ │ │ │ - subs r0, #1 │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble.n 368 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, pc} │ │ │ │ │ - movs r0, #1 │ │ │ │ │ - b.n 384 │ │ │ │ │ + ble.n 490 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + ldmia.w sp!, {r8, pc} │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ + b.n 4b2 │ │ │ │ │ + nop │ │ │ ├── choose-radix.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 580 (bytes into file) │ │ │ │ │ + Start of section headers: 600 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 10 │ │ │ │ │ Section header string table index: 9 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,19 +1,19 @@ │ │ │ │ │ -There are 10 section headers, starting at offset 0x244: │ │ │ │ │ +There are 10 section headers, starting at offset 0x258: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 000088 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0001bc 000038 08 I 7 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 0000bc 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 0000bc 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .note.GNU-stack PROGBITS 00000000 0000bc 000000 00 0 0 1 │ │ │ │ │ - [ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 0000bc 000033 00 0 0 1 │ │ │ │ │ - [ 7] .symtab SYMTAB 00000000 0000f0 000070 10 8 2 4 │ │ │ │ │ - [ 8] .strtab STRTAB 00000000 000160 00005c 00 0 0 1 │ │ │ │ │ - [ 9] .shstrtab STRTAB 00000000 0001f4 000050 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 00009c 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 0001d0 000038 08 I 7 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 0000d0 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 0000d0 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .note.GNU-stack PROGBITS 00000000 0000d0 000000 00 0 0 1 │ │ │ │ │ + [ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 0000d0 000033 00 0 0 1 │ │ │ │ │ + [ 7] .symtab SYMTAB 00000000 000104 000070 10 8 2 4 │ │ │ │ │ + [ 8] .strtab STRTAB 00000000 000174 00005c 00 0 0 1 │ │ │ │ │ + [ 9] .shstrtab STRTAB 00000000 000208 000050 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,10 +1,10 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 7 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ 1: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 2: 00000001 134 FUNC GLOBAL DEFAULT 1 fftwf_mpi_choose_radix │ │ │ │ │ + 2: 00000001 154 FUNC GLOBAL DEFAULT 1 fftwf_mpi_choose_radix │ │ │ │ │ 3: 00000000 0 NOTYPE GLOBAL DEFAULT UND __aeabi_idivmod │ │ │ │ │ 4: 00000000 0 NOTYPE GLOBAL DEFAULT UND __aeabi_idiv │ │ │ │ │ 5: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_default_block │ │ │ │ │ 6: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_isqrt │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,10 +1,10 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x1bc contains 7 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x1d0 contains 7 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000016 0000030a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -00000032 0000040a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000046 0000050a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -00000052 0000050a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -00000064 0000060a R_ARM_THM_CALL 00000000 fftwf_isqrt │ │ │ │ │ -0000006e 0000030a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -0000007c 0000030a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +0000001e 0000030a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +0000003a 0000040a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +0000004e 0000050a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +0000005a 0000050a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +00000076 0000060a R_ARM_THM_CALL 00000000 fftwf_isqrt │ │ │ │ │ +00000080 0000030a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000090 0000030a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,34 +1,36 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftwf_mpi_choose_radix(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ - mov r6, r3 │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mov r5, r0 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ + mov r6, r3 │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ sub sp, #16 │ │ │ │ │ add r4, sp, #16 │ │ │ │ │ ldrd r8, r7, [sp, #48] @ 0x30 │ │ │ │ │ stmdb r4, {r0, r1, r2} │ │ │ │ │ mov r1, r3 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ - cbnz r1, 62 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ + cbnz r1, 74 │ │ │ │ │ cmp r0, r6 │ │ │ │ │ - blt.n 62 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + blt.n 74 │ │ │ │ │ cmp r4, #1 │ │ │ │ │ it ne │ │ │ │ │ cmpne r4, r5 │ │ │ │ │ it eq │ │ │ │ │ moveq r5, #0 │ │ │ │ │ - beq.n 5a │ │ │ │ │ + beq.n 62 │ │ │ │ │ mov r1, r4 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ ldr r2, [sp, #44] @ 0x2c │ │ │ │ │ mov r5, r0 │ │ │ │ │ mov r1, r6 │ │ │ │ │ @@ -43,27 +45,30 @@ │ │ │ │ │ strd r0, r0, [r8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_default_block │ │ │ │ │ strd r0, r0, [r7] │ │ │ │ │ mov r0, r5 │ │ │ │ │ add sp, #16 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + ldmia.w sp!, {r8, pc} │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_isqrt │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - beq.n 22 │ │ │ │ │ - adds r4, #1 │ │ │ │ │ + beq.n 2a │ │ │ │ │ + add.w r4, r4, #1 │ │ │ │ │ mov r0, r5 │ │ │ │ │ mov r1, r4 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - bne.n 76 │ │ │ │ │ - b.n 22 │ │ │ │ │ + bne.n 88 │ │ │ │ │ + b.n 2a │ │ │ │ │ nop │ │ │ ├── dtensor.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 1760 (bytes into file) │ │ │ │ │ + Start of section headers: 1964 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 11 │ │ │ │ │ Section header string table index: 10 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,20 +1,20 @@ │ │ │ │ │ -There are 11 section headers, starting at offset 0x6e0: │ │ │ │ │ +There are 11 section headers, starting at offset 0x7ac: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 0002b8 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0005e0 0000a0 08 I 8 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 0002ec 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 0002ec 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 0002ec 00002c 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .note.GNU-stack PROGBITS 00000000 000318 000000 00 0 0 1 │ │ │ │ │ - [ 7] .ARM.attributes ARM_ATTRIBUTES 00000000 000318 000033 00 0 0 1 │ │ │ │ │ - [ 8] .symtab SYMTAB 00000000 00034c 000170 10 9 10 4 │ │ │ │ │ - [ 9] .strtab STRTAB 00000000 0004bc 000123 00 0 0 1 │ │ │ │ │ - [10] .shstrtab STRTAB 00000000 000680 00005f 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000374 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 00069c 0000b0 08 I 8 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 0003a8 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 0003a8 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 0003a8 00002c 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .note.GNU-stack PROGBITS 00000000 0003d4 000000 00 0 0 1 │ │ │ │ │ + [ 7] .ARM.attributes ARM_ATTRIBUTES 00000000 0003d4 000033 00 0 0 1 │ │ │ │ │ + [ 8] .symtab SYMTAB 00000000 000408 000170 10 9 10 4 │ │ │ │ │ + [ 9] .strtab STRTAB 00000000 000578 000123 00 0 0 1 │ │ │ │ │ + [10] .shstrtab STRTAB 00000000 00074c 00005f 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -6,21 +6,21 @@ │ │ │ │ │ 2: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 3: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ 4: 00000004 0 NOTYPE LOCAL DEFAULT 5 .LC1 │ │ │ │ │ 5: 00000008 0 NOTYPE LOCAL DEFAULT 5 .LC2 │ │ │ │ │ 6: 0000000c 0 NOTYPE LOCAL DEFAULT 5 .LC3 │ │ │ │ │ 7: 0000001c 0 NOTYPE LOCAL DEFAULT 5 .LC4 │ │ │ │ │ 8: 00000020 0 NOTYPE LOCAL DEFAULT 5 .LC5 │ │ │ │ │ - 9: 000002a0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 10: 00000001 40 FUNC GLOBAL DEFAULT 1 fftwf_mpi_mkdtensor │ │ │ │ │ + 9: 0000035c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 10: 00000001 58 FUNC GLOBAL DEFAULT 1 fftwf_mpi_mkdtensor │ │ │ │ │ 11: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_malloc_plain │ │ │ │ │ - 12: 00000029 4 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dtensor_destroy │ │ │ │ │ + 12: 0000003d 4 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dtensor_destroy │ │ │ │ │ 13: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ifree │ │ │ │ │ - 14: 0000002d 68 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dtensor_md5 │ │ │ │ │ + 14: 00000041 94 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dtensor_md5 │ │ │ │ │ 15: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_md5int │ │ │ │ │ 16: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_md5INT │ │ │ │ │ - 17: 00000071 76 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dtensor_copy │ │ │ │ │ + 17: 000000a1 112 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dtensor_copy │ │ │ │ │ 18: 00000000 0 NOTYPE GLOBAL DEFAULT UND memmove │ │ │ │ │ - 19: 000000bd 268 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dtensor_canonical │ │ │ │ │ + 19: 00000111 334 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dtensor_canonical │ │ │ │ │ 20: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_num_blocks │ │ │ │ │ - 21: 000001c9 58 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dtensor_validp │ │ │ │ │ - 22: 00000205 180 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dtensor_print │ │ │ │ │ + 21: 00000261 70 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dtensor_validp │ │ │ │ │ + 22: 000002a9 204 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dtensor_print │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,23 +1,25 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x5e0 contains 20 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x69c contains 22 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000020 00000b0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00000034 00000f0a R_ARM_THM_CALL 00000000 fftwf_md5int │ │ │ │ │ -00000050 0000100a R_ARM_THM_CALL 00000000 fftwf_md5INT │ │ │ │ │ -0000005a 0000100a R_ARM_THM_CALL 00000000 fftwf_md5INT │ │ │ │ │ -00000064 0000100a R_ARM_THM_CALL 00000000 fftwf_md5INT │ │ │ │ │ -00000092 00000b0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -000000b4 0000120a R_ARM_THM_CALL 00000000 memmove │ │ │ │ │ -00000104 00000b0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -0000012e 00000b0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00000170 0000140a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -0000018a 0000140a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -000001b0 00000b0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00000026 00000b0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00000032 00000b0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00000052 00000f0a R_ARM_THM_CALL 00000000 fftwf_md5int │ │ │ │ │ +00000076 0000100a R_ARM_THM_CALL 00000000 fftwf_md5INT │ │ │ │ │ +0000007e 0000100a R_ARM_THM_CALL 00000000 fftwf_md5INT │ │ │ │ │ +00000088 0000100a R_ARM_THM_CALL 00000000 fftwf_md5INT │ │ │ │ │ +000000cc 00000b0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +000000f6 0000120a R_ARM_THM_CALL 00000000 memmove │ │ │ │ │ +00000108 00000b0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00000176 00000b0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ 000001ba 00000b0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -000002a0 00000303 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -000002a4 00000603 R_ARM_REL32 0000000c .LC3 │ │ │ │ │ -000002a8 00000503 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -000002ac 00000703 R_ARM_REL32 0000001c .LC4 │ │ │ │ │ -000002b0 00000403 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ -000002b4 00000803 R_ARM_REL32 00000020 .LC5 │ │ │ │ │ -00000028 00000d1e R_ARM_THM_JUMP24 00000000 fftwf_ifree │ │ │ │ │ +00000212 0000140a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +0000022c 0000140a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +00000248 00000b0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00000254 00000b0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +0000035c 00000303 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +00000360 00000603 R_ARM_REL32 0000000c .LC3 │ │ │ │ │ +00000364 00000503 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +00000368 00000703 R_ARM_REL32 0000001c .LC4 │ │ │ │ │ +0000036c 00000403 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ +00000370 00000803 R_ARM_REL32 00000020 .LC5 │ │ │ │ │ +0000003c 00000d1e R_ARM_THM_JUMP24 00000000 fftwf_ifree │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,320 +1,349 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftwf_mpi_mkdtensor(): │ │ │ │ │ - subs r2, r0, #2 │ │ │ │ │ + sub.w r2, r0, #2 │ │ │ │ │ movw r3, #65532 @ 0xfffc │ │ │ │ │ movt r3, #32767 @ 0x7fff │ │ │ │ │ - push {r4, lr} │ │ │ │ │ - cmp r2, r3 │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ittet ls │ │ │ │ │ - movls r3, #12 │ │ │ │ │ - addls.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ - movhi r0, #16 │ │ │ │ │ - mulls r0, r3 │ │ │ │ │ - it ls │ │ │ │ │ - addls r0, #16 │ │ │ │ │ + cmp r2, r3 │ │ │ │ │ + bhi.n 2e │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ + add.w r0, r0, r0, lsl #1 │ │ │ │ │ + mov.w r0, r0, lsl #2 │ │ │ │ │ + add.w r0, r0, #16 │ │ │ │ │ + bl 0 │ │ │ │ │ + R_ARM_THM_CALL fftwf_malloc_plain │ │ │ │ │ + str r4, [r0, #0] │ │ │ │ │ + pop {r4, pc} │ │ │ │ │ + mov.w r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_malloc_plain │ │ │ │ │ str r4, [r0, #0] │ │ │ │ │ pop {r4, pc} │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -00000028 : │ │ │ │ │ +0000003c : │ │ │ │ │ fftwf_mpi_dtensor_destroy(): │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_ifree │ │ │ │ │ │ │ │ │ │ -0000002c : │ │ │ │ │ +00000040 : │ │ │ │ │ fftwf_mpi_dtensor_md5(): │ │ │ │ │ - push {r3, r4, r5, r6, r7, lr} │ │ │ │ │ + strd r3, r4, [sp, #-24]! │ │ │ │ │ + strd r5, r6, [sp, #8] │ │ │ │ │ + mov r5, r0 │ │ │ │ │ + strd r7, lr, [sp, #16] │ │ │ │ │ mov r7, r1 │ │ │ │ │ ldr r1, [r1, #0] │ │ │ │ │ - mov r5, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_md5int │ │ │ │ │ ldr r3, [r7, #0] │ │ │ │ │ movw r2, #65533 @ 0xfffd │ │ │ │ │ movt r2, #32767 @ 0x7fff │ │ │ │ │ - subs r3, #1 │ │ │ │ │ + add.w r3, r3, #4294967295 @ 0xffffffff │ │ │ │ │ cmp r3, r2 │ │ │ │ │ - bhi.n 6e │ │ │ │ │ + bhi.n 92 │ │ │ │ │ mov r4, r7 │ │ │ │ │ - movs r6, #0 │ │ │ │ │ + mov.w r6, #0 │ │ │ │ │ ldr r1, [r4, #4] │ │ │ │ │ mov r0, r5 │ │ │ │ │ + add.w r6, r6, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_md5INT │ │ │ │ │ ldr r1, [r4, #8] │ │ │ │ │ mov r0, r5 │ │ │ │ │ - adds r6, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_md5INT │ │ │ │ │ ldr.w r1, [r4, #12]! │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_md5INT │ │ │ │ │ ldr r3, [r7, #0] │ │ │ │ │ cmp r3, r6 │ │ │ │ │ - bgt.n 4c │ │ │ │ │ - pop {r3, r4, r5, r6, r7, pc} │ │ │ │ │ + bgt.n 6e │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + ldrd r5, r6, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + pop {r7, pc} │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -00000070 : │ │ │ │ │ +000000a0 : │ │ │ │ │ fftwf_mpi_dtensor_copy(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, r5, [sp, #-16]! │ │ │ │ │ movw r3, #65532 @ 0xfffc │ │ │ │ │ movt r3, #32767 @ 0x7fff │ │ │ │ │ - ldr r6, [r0, #0] │ │ │ │ │ + strd r6, lr, [sp, #8] │ │ │ │ │ mov r5, r0 │ │ │ │ │ - subs r2, r6, #2 │ │ │ │ │ + ldr r6, [r0, #0] │ │ │ │ │ + sub.w r2, r6, #2 │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - ittet ls │ │ │ │ │ - addls.w r0, r6, #4294967295 @ 0xffffffff │ │ │ │ │ - movls r3, #12 │ │ │ │ │ - movhi r0, #16 │ │ │ │ │ - mulls r0, r3 │ │ │ │ │ - it ls │ │ │ │ │ - addls r0, #16 │ │ │ │ │ + bhi.n 104 │ │ │ │ │ + add.w r0, r6, #4294967295 @ 0xffffffff │ │ │ │ │ + add.w r0, r0, r0, lsl #1 │ │ │ │ │ + mov.w r0, r0, lsl #2 │ │ │ │ │ + add.w r0, r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_malloc_plain │ │ │ │ │ - str r6, [r0, #0] │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + str r6, [r4, #0] │ │ │ │ │ movw r3, #65533 @ 0xfffd │ │ │ │ │ movt r3, #32767 @ 0x7fff │ │ │ │ │ ldr r2, [r5, #0] │ │ │ │ │ - mov r4, r0 │ │ │ │ │ - subs r1, r2, #1 │ │ │ │ │ + add.w r1, r2, #4294967295 @ 0xffffffff │ │ │ │ │ cmp r1, r3 │ │ │ │ │ - bhi.n b8 │ │ │ │ │ - movs r3, #12 │ │ │ │ │ - adds r1, r5, #4 │ │ │ │ │ - adds r0, #4 │ │ │ │ │ - mul.w r2, r3, r2 │ │ │ │ │ + bhi.n fa │ │ │ │ │ + add.w r2, r2, r2, lsl #1 │ │ │ │ │ + add.w r1, r5, #4 │ │ │ │ │ + add.w r0, r4, #4 │ │ │ │ │ + mov.w r2, r2, lsl #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL memmove │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + pop {r6, pc} │ │ │ │ │ + mov.w r0, #16 │ │ │ │ │ + bl 0 │ │ │ │ │ + R_ARM_THM_CALL fftwf_malloc_plain │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + b.n d2 │ │ │ │ │ │ │ │ │ │ -000000bc : │ │ │ │ │ +00000110 : │ │ │ │ │ fftwf_mpi_dtensor_canonical(): │ │ │ │ │ - stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + strd r3, r4, [sp, #-40]! @ 0x28 │ │ │ │ │ mvn.w r3, #2147483648 @ 0x80000000 │ │ │ │ │ ldr r4, [r0, #0] │ │ │ │ │ + strd r5, r6, [sp, #8] │ │ │ │ │ + strd r7, r8, [sp, #16] │ │ │ │ │ + strd r9, sl, [sp, #24] │ │ │ │ │ + strd fp, lr, [sp, #32] │ │ │ │ │ cmp r4, r3 │ │ │ │ │ - beq.n 1b8 │ │ │ │ │ + beq.w 250 │ │ │ │ │ cmp r4, #0 │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - mov r6, r1 │ │ │ │ │ + mov r6, r0 │ │ │ │ │ + mov r7, r1 │ │ │ │ │ it le │ │ │ │ │ movle r4, #0 │ │ │ │ │ - ble.n 1ae │ │ │ │ │ - clz r1, r1 │ │ │ │ │ - movs r3, #0 │ │ │ │ │ - add.w lr, r4, r4, lsl #1 │ │ │ │ │ - adds r0, #4 │ │ │ │ │ - lsrs r1, r1, #5 │ │ │ │ │ + ble.w 244 │ │ │ │ │ + clz r0, r1 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ + add.w r1, r4, r4, lsl #1 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ mov r4, r3 │ │ │ │ │ - b.n fa │ │ │ │ │ + add.w r5, r6, #4 │ │ │ │ │ + b.n 16a │ │ │ │ │ + add.w r3, r3, #3 │ │ │ │ │ cmp r2, #1 │ │ │ │ │ ite eq │ │ │ │ │ - moveq ip, r1 │ │ │ │ │ - orrne.w ip, r1, #1 │ │ │ │ │ - adds r3, #3 │ │ │ │ │ + moveq ip, r0 │ │ │ │ │ + orrne.w ip, r0, #1 │ │ │ │ │ + cmp r3, r1 │ │ │ │ │ add r4, ip │ │ │ │ │ - cmp r3, lr │ │ │ │ │ - beq.n 116 │ │ │ │ │ - ldr.w r2, [r0, r3, lsl #2] │ │ │ │ │ + beq.n 19a │ │ │ │ │ + ldr.w r2, [r5, r3, lsl #2] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - bgt.n e8 │ │ │ │ │ - movs r0, #16 │ │ │ │ │ + bgt.n 156 │ │ │ │ │ + mov.w r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_malloc_plain │ │ │ │ │ mov r8, r0 │ │ │ │ │ mvn.w r3, #2147483648 @ 0x80000000 │ │ │ │ │ str r3, [r0, #0] │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ mov r0, r8 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ - subs r2, r4, #2 │ │ │ │ │ + ldrd r5, r6, [sp, #8] │ │ │ │ │ + ldrd r7, r8, [sp, #16] │ │ │ │ │ + ldrd r9, sl, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldmia.w sp!, {fp, pc} │ │ │ │ │ + sub.w r2, r4, #2 │ │ │ │ │ movw r3, #65532 @ 0xfffc │ │ │ │ │ movt r3, #32767 @ 0x7fff │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - bhi.n 1ae │ │ │ │ │ - movs r3, #12 │ │ │ │ │ - subs r0, r4, #1 │ │ │ │ │ - mul.w r0, r3, r0 │ │ │ │ │ - adds r0, #16 │ │ │ │ │ + bhi.n 244 │ │ │ │ │ + add.w r3, r4, #4294967295 @ 0xffffffff │ │ │ │ │ + add.w r3, r3, r3, lsl #1 │ │ │ │ │ + mov.w r0, r3, lsl #2 │ │ │ │ │ + add.w r0, r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_malloc_plain │ │ │ │ │ mov r8, r0 │ │ │ │ │ str.w r4, [r8] │ │ │ │ │ - ldr r3, [r5, #0] │ │ │ │ │ + ldr r3, [r6, #0] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 110 │ │ │ │ │ - mov.w r9, #0 │ │ │ │ │ - mov r4, r5 │ │ │ │ │ - mov r7, r9 │ │ │ │ │ - mov.w sl, #12 │ │ │ │ │ + ble.n 182 │ │ │ │ │ + mov.w sl, #0 │ │ │ │ │ + mov r4, r6 │ │ │ │ │ + mov r9, sl │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ - cbz r6, 160 │ │ │ │ │ + cbz r7, 1ec │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - bgt.n 160 │ │ │ │ │ - adds r7, #1 │ │ │ │ │ - adds r4, #12 │ │ │ │ │ - cmp r7, r3 │ │ │ │ │ - bge.n 110 │ │ │ │ │ + bgt.n 1ec │ │ │ │ │ + add.w r9, r9, #1 │ │ │ │ │ + add.w r4, r4, #12 │ │ │ │ │ + cmp r9, r3 │ │ │ │ │ + bge.n 182 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble.n 152 │ │ │ │ │ - mla fp, sl, r9, r8 │ │ │ │ │ - adds r7, #1 │ │ │ │ │ - adds r4, #12 │ │ │ │ │ + ble.n 1da │ │ │ │ │ + mov.w r5, sl, lsl #1 │ │ │ │ │ + add.w r9, r9, #1 │ │ │ │ │ + add.w r4, r4, #12 │ │ │ │ │ + add.w fp, r5, sl │ │ │ │ │ + add r5, sl │ │ │ │ │ + add.w fp, r8, fp, lsl #2 │ │ │ │ │ + add.w sl, sl, #1 │ │ │ │ │ + add.w r5, r8, r5, lsl #2 │ │ │ │ │ str.w r0, [fp, #4] │ │ │ │ │ ldr.w r1, [r4, #-4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks │ │ │ │ │ cmp r0, #1 │ │ │ │ │ ite ne │ │ │ │ │ ldrne.w r3, [r4, #-4] │ │ │ │ │ ldreq.w r3, [r4, #-8] │ │ │ │ │ str.w r3, [fp, #8] │ │ │ │ │ - ldr r1, [r4, #0] │ │ │ │ │ ldr.w r0, [r4, #-8] │ │ │ │ │ + ldr r1, [r4, #0] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks │ │ │ │ │ - mla r3, sl, r9, r8 │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - add.w r9, r9, #1 │ │ │ │ │ ite eq │ │ │ │ │ - ldreq.w r2, [r4, #-8] │ │ │ │ │ - ldrne r2, [r4, #0] │ │ │ │ │ - str r2, [r3, #12] │ │ │ │ │ - ldr r3, [r5, #0] │ │ │ │ │ - cmp r3, r7 │ │ │ │ │ - bgt.n 14a │ │ │ │ │ - mov r0, r8 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ - movs r0, #16 │ │ │ │ │ + ldreq.w r3, [r4, #-8] │ │ │ │ │ + ldrne r3, [r4, #0] │ │ │ │ │ + str r3, [r5, #12] │ │ │ │ │ + ldr r3, [r6, #0] │ │ │ │ │ + cmp r3, r9 │ │ │ │ │ + bgt.n 1d2 │ │ │ │ │ + b.n 182 │ │ │ │ │ + mov.w r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_malloc_plain │ │ │ │ │ mov r8, r0 │ │ │ │ │ - b.n 134 │ │ │ │ │ - movs r0, #16 │ │ │ │ │ + b.n 1c0 │ │ │ │ │ + mov.w r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_malloc_plain │ │ │ │ │ mov r8, r0 │ │ │ │ │ str r4, [r0, #0] │ │ │ │ │ - mov r0, r8 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b.n 182 │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -000001c8 : │ │ │ │ │ +00000260 : │ │ │ │ │ fftwf_mpi_dtensor_validp(): │ │ │ │ │ ldr r1, [r0, #0] │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - blt.n 1fa │ │ │ │ │ - subs r2, r1, #1 │ │ │ │ │ + blt.n 29a │ │ │ │ │ + add.w r2, r1, #4294967295 @ 0xffffffff │ │ │ │ │ movw r3, #65533 @ 0xfffd │ │ │ │ │ movt r3, #32767 @ 0x7fff │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - bhi.n 1fe │ │ │ │ │ - movs r3, #0 │ │ │ │ │ - b.n 1f4 │ │ │ │ │ + bhi.n 2a0 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ + b.n 294 │ │ │ │ │ ldr r2, [r0, #8] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - ble.n 1fa │ │ │ │ │ + ble.n 29a │ │ │ │ │ ldr r2, [r0, #12] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - ble.n 1fa │ │ │ │ │ - adds r3, #1 │ │ │ │ │ - adds r0, #12 │ │ │ │ │ + ble.n 29a │ │ │ │ │ + add.w r3, r3, #1 │ │ │ │ │ + add.w r0, r0, #12 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ - beq.n 1fe │ │ │ │ │ + beq.n 2a0 │ │ │ │ │ ldr r2, [r0, #4] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - bge.n 1e0 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + bge.n 27c │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ bx lr │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ bx lr │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -00000204 : │ │ │ │ │ +000002a8 : │ │ │ │ │ fftwf_mpi_dtensor_print(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ - mov r5, r1 │ │ │ │ │ ldr r3, [r1, #0] │ │ │ │ │ - ldr r1, [r0, #0] │ │ │ │ │ mvn.w r2, #2147483648 @ 0x80000000 │ │ │ │ │ + strd r4, r5, [sp, #-32]! │ │ │ │ │ + mov r5, r1 │ │ │ │ │ + ldr r1, [r0, #0] │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ + strd r8, r9, [sp, #16] │ │ │ │ │ + strd sl, lr, [sp, #24] │ │ │ │ │ sub sp, #8 │ │ │ │ │ cmp r1, r2 │ │ │ │ │ - beq.n 290 │ │ │ │ │ + beq.n 356 │ │ │ │ │ + ldr r1, [pc, #144] @ (35c ) │ │ │ │ │ mov sl, r0 │ │ │ │ │ - ldr r1, [pc, #132] @ (2a0 ) │ │ │ │ │ mov r0, r5 │ │ │ │ │ add r1, pc │ │ │ │ │ blx r3 │ │ │ │ │ ldr.w r3, [sl] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 280 │ │ │ │ │ + ble.n 338 │ │ │ │ │ ldr.w r3, [sl, #12] │ │ │ │ │ mov r0, r5 │ │ │ │ │ + ldr.w r8, [pc, #124] @ 360 │ │ │ │ │ + ldr r2, [pc, #124] @ (364 ) │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - ldr.w r8, [pc, #112] @ 2a4 │ │ │ │ │ ldr.w r3, [sl, #8] │ │ │ │ │ - str r3, [sp, #0] │ │ │ │ │ add r8, pc │ │ │ │ │ - ldr r2, [pc, #104] @ (2a8 ) │ │ │ │ │ mov r1, r8 │ │ │ │ │ + add r2, pc │ │ │ │ │ + str r3, [sp, #0] │ │ │ │ │ ldr r4, [r5, #0] │ │ │ │ │ ldr.w r3, [sl, #4] │ │ │ │ │ - add r2, pc │ │ │ │ │ blx r4 │ │ │ │ │ mov r4, sl │ │ │ │ │ ldr.w r3, [r4], #12 │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - ble.n 280 │ │ │ │ │ - ldr.w r9, [pc, #84] @ 2ac │ │ │ │ │ - movs r6, #1 │ │ │ │ │ + ble.n 338 │ │ │ │ │ + ldr.w r9, [pc, #96] @ 368 │ │ │ │ │ + mov.w r6, #1 │ │ │ │ │ add r9, pc │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ mov r2, r9 │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ mov r1, r8 │ │ │ │ │ mov r0, r5 │ │ │ │ │ - adds r6, #1 │ │ │ │ │ - ldr r3, [r4, #8] │ │ │ │ │ - adds r4, #12 │ │ │ │ │ + add.w r6, r6, #1 │ │ │ │ │ + add.w r4, r4, #12 │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + ldr.w r3, [r4, #-4] │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ ldr.w r3, [r4, #-8] │ │ │ │ │ ldr r7, [r5, #0] │ │ │ │ │ blx r7 │ │ │ │ │ ldr.w r3, [sl] │ │ │ │ │ cmp r3, r6 │ │ │ │ │ - bgt.n 25e │ │ │ │ │ - ldr r1, [pc, #44] @ (2b0 ) │ │ │ │ │ - mov r0, r5 │ │ │ │ │ + bgt.n 310 │ │ │ │ │ + ldr r1, [pc, #48] @ (36c ) │ │ │ │ │ ldr r3, [r5, #0] │ │ │ │ │ add r1, pc │ │ │ │ │ - add sp, #8 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ - bx r3 │ │ │ │ │ - ldr r1, [pc, #32] @ (2b4 ) │ │ │ │ │ mov r0, r5 │ │ │ │ │ - add r1, pc │ │ │ │ │ add sp, #8 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, lr, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ bx r3 │ │ │ │ │ - nop │ │ │ │ │ - .word 0x0000007e │ │ │ │ │ + ldr r1, [pc, #24] @ (370 ) │ │ │ │ │ + add r1, pc │ │ │ │ │ + b.n 33e │ │ │ │ │ + .word 0x0000008a │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ - .word 0x00000064 │ │ │ │ │ + .word 0x00000070 │ │ │ │ │ R_ARM_REL32 .LC3 │ │ │ │ │ - .word 0x0000005c │ │ │ │ │ + .word 0x00000070 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ - .word 0x0000004c │ │ │ │ │ + .word 0x00000056 │ │ │ │ │ R_ARM_REL32 .LC4 │ │ │ │ │ - .word 0x00000026 │ │ │ │ │ + .word 0x0000002c │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x0000001c │ │ │ │ │ + .word 0x00000014 │ │ │ │ │ R_ARM_REL32 .LC5 │ │ │ ├── rearrange.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 704 (bytes into file) │ │ │ │ │ + Start of section headers: 744 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 10 │ │ │ │ │ Section header string table index: 9 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,19 +1,19 @@ │ │ │ │ │ -There are 10 section headers, starting at offset 0x2c0: │ │ │ │ │ +There are 10 section headers, starting at offset 0x2e8: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 000108 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000240 000030 08 I 7 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 00013c 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 00013c 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .note.GNU-stack PROGBITS 00000000 00013c 000000 00 0 0 1 │ │ │ │ │ - [ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 00013c 000033 00 0 0 1 │ │ │ │ │ - [ 7] .symtab SYMTAB 00000000 000170 000080 10 8 5 4 │ │ │ │ │ - [ 8] .strtab STRTAB 00000000 0001f0 00004d 00 0 0 1 │ │ │ │ │ - [ 9] .shstrtab STRTAB 00000000 000270 000050 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000130 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000268 000030 08 I 7 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000164 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000164 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .note.GNU-stack PROGBITS 00000000 000164 000000 00 0 0 1 │ │ │ │ │ + [ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 000164 000033 00 0 0 1 │ │ │ │ │ + [ 7] .symtab SYMTAB 00000000 000198 000080 10 8 5 4 │ │ │ │ │ + [ 8] .strtab STRTAB 00000000 000218 00004d 00 0 0 1 │ │ │ │ │ + [ 9] .shstrtab STRTAB 00000000 000298 000050 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,11 +1,11 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 8 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ 1: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 2: 000000da 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 3: 000000df 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 4: 000000e0 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 5: 00000001 198 FUNC GLOBAL DEFAULT 1 fftwf_mpi_rearrange_applicable │ │ │ │ │ + 2: 00000102 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 3: 00000107 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 4: 00000108 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 5: 00000001 238 FUNC GLOBAL DEFAULT 1 fftwf_mpi_rearrange_applicable │ │ │ │ │ 6: 00000000 0 NOTYPE GLOBAL DEFAULT UND __aeabi_idivmod │ │ │ │ │ - 7: 000000c9 64 FUNC GLOBAL DEFAULT 1 fftwf_mpi_rearrange_ny │ │ │ │ │ + 7: 000000f1 64 FUNC GLOBAL DEFAULT 1 fftwf_mpi_rearrange_ny │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,9 +1,9 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x240 contains 6 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x268 contains 6 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000036 0000060a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -00000052 0000060a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -0000006c 0000060a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000044 0000060a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000060 0000060a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ 00000086 0000060a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -0000009e 0000060a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -000000ba 0000060a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +000000aa 0000060a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +000000c4 0000060a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +000000e0 0000060a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,108 +1,115 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftwf_mpi_rearrange_applicable(): │ │ │ │ │ - push {r4, r5, lr} │ │ │ │ │ + str.w r4, [sp, #-12]! │ │ │ │ │ mov ip, r0 │ │ │ │ │ - cmp.w ip, #1 │ │ │ │ │ + strd r5, lr, [sp, #4] │ │ │ │ │ sub sp, #20 │ │ │ │ │ + cmp.w ip, #1 │ │ │ │ │ add r0, sp, #16 │ │ │ │ │ stmdb r0, {r1, r2, r3} │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ - beq.n 5e │ │ │ │ │ - ldr r4, [sp, #8] │ │ │ │ │ + beq.n 6e │ │ │ │ │ cmp.w ip, #2 │ │ │ │ │ - beq.n 30 │ │ │ │ │ + ldr r4, [sp, #8] │ │ │ │ │ + beq.n 3e │ │ │ │ │ cmp.w ip, #4 │ │ │ │ │ - beq.n 92 │ │ │ │ │ + beq.n b8 │ │ │ │ │ cmp.w ip, #3 │ │ │ │ │ it ne │ │ │ │ │ movne r0, #1 │ │ │ │ │ - beq.n 7a │ │ │ │ │ + beq.n 9e │ │ │ │ │ add sp, #20 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ cmp r0, r4 │ │ │ │ │ - ble.n 64 │ │ │ │ │ + ble.n 74 │ │ │ │ │ mov r1, r4 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ clz r0, r1 │ │ │ │ │ - cmp r3, r4 │ │ │ │ │ mov.w r0, r0, lsr #5 │ │ │ │ │ + cmp r3, r4 │ │ │ │ │ it ge │ │ │ │ │ movge r0, #0 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n 2c │ │ │ │ │ + beq.n 32 │ │ │ │ │ mov r1, r3 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ clz r0, r1 │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ - b.n 2c │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ + b.n 32 │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ cmp r3, r0 │ │ │ │ │ - blt.n 6a │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + blt.n 84 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add sp, #20 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ mov r1, r3 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ clz r0, r1 │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ add sp, #20 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldr r3, [sp, #4] │ │ │ │ │ ldr r2, [sp, #36] @ 0x24 │ │ │ │ │ mul.w r1, r3, r2 │ │ │ │ │ cmp r1, r0 │ │ │ │ │ - bge.n 64 │ │ │ │ │ + bge.n 74 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ clz r0, r1 │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ - b.n 2c │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ + b.n 32 │ │ │ │ │ ldr r5, [sp, #12] │ │ │ │ │ cmp r5, r4 │ │ │ │ │ it ne │ │ │ │ │ cmpne r0, r5 │ │ │ │ │ - ble.n 64 │ │ │ │ │ + ble.n 74 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ clz r0, r1 │ │ │ │ │ - cmp r3, r5 │ │ │ │ │ mov.w r0, r0, lsr #5 │ │ │ │ │ + cmp r3, r5 │ │ │ │ │ it ge │ │ │ │ │ movge r0, #0 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n 2c │ │ │ │ │ + beq.n 32 │ │ │ │ │ mov r1, r3 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ clz r0, r1 │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ - b.n 2c │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ + b.n 32 │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -000000c8 : │ │ │ │ │ +000000f0 : │ │ │ │ │ fftwf_mpi_rearrange_ny(): │ │ │ │ │ sub sp, #16 │ │ │ │ │ add.w ip, sp, #16 │ │ │ │ │ stmdb ip, {r1, r2, r3} │ │ │ │ │ cmp r0, #4 │ │ │ │ │ - bhi.n 104 │ │ │ │ │ + bhi.n 12c │ │ │ │ │ tbb [pc, r0] │ │ │ │ │ .short 0x0306 │ │ │ │ │ .short 0x0f0c │ │ │ │ │ .byte 0x09 │ │ │ │ │ .byte 0x00 │ │ │ │ │ ldr r0, [sp, #20] │ │ │ │ │ add sp, #16 │ │ │ │ │ @@ -118,8 +125,8 @@ │ │ │ │ │ bx lr │ │ │ │ │ ldr r3, [sp, #4] │ │ │ │ │ ldr r2, [sp, #20] │ │ │ │ │ mul.w r0, r3, r2 │ │ │ │ │ add sp, #16 │ │ │ │ │ bx lr │ │ │ │ │ movs r0, #0 │ │ │ │ │ - b.n e2 │ │ │ │ │ + b.n 10a │ │ │ ├── wisdom-api.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 1504 (bytes into file) │ │ │ │ │ + Start of section headers: 1528 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 10 │ │ │ │ │ Section header string table index: 9 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,19 +1,19 @@ │ │ │ │ │ -There are 10 section headers, starting at offset 0x5e0: │ │ │ │ │ +There are 10 section headers, starting at offset 0x5f8: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 0001c4 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000480 000110 08 I 7 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 0001f8 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 0001f8 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .note.GNU-stack PROGBITS 00000000 0001f8 000000 00 0 0 1 │ │ │ │ │ - [ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 0001f8 000033 00 0 0 1 │ │ │ │ │ - [ 7] .symtab SYMTAB 00000000 00022c 000140 10 8 2 4 │ │ │ │ │ - [ 8] .strtab STRTAB 00000000 00036c 000112 00 0 0 1 │ │ │ │ │ - [ 9] .shstrtab STRTAB 00000000 000590 000050 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0001ec 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 0004a8 000100 08 I 7 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000220 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000220 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .note.GNU-stack PROGBITS 00000000 000220 000000 00 0 0 1 │ │ │ │ │ + [ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 000220 000033 00 0 0 1 │ │ │ │ │ + [ 7] .symtab SYMTAB 00000000 000254 000140 10 8 2 4 │ │ │ │ │ + [ 8] .strtab STRTAB 00000000 000394 000112 00 0 0 1 │ │ │ │ │ + [ 9] .shstrtab STRTAB 00000000 0005a8 000050 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,23 +1,23 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 20 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ 1: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 2: 00000001 268 FUNC GLOBAL DEFAULT 1 fftwf_mpi_gather_wisdom │ │ │ │ │ + 2: 00000001 292 FUNC GLOBAL DEFAULT 1 fftwf_mpi_gather_wisdom │ │ │ │ │ 3: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_dup │ │ │ │ │ 4: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_rank │ │ │ │ │ 5: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_size │ │ │ │ │ 6: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_free │ │ │ │ │ 7: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Recv │ │ │ │ │ 8: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_malloc_plain │ │ │ │ │ 9: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_import_wisdom_from_string │ │ │ │ │ 10: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ifree │ │ │ │ │ 11: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_split │ │ │ │ │ 12: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_export_wisdom_to_string │ │ │ │ │ 13: 00000000 0 NOTYPE GLOBAL DEFAULT UND strlen │ │ │ │ │ 14: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Send │ │ │ │ │ 15: 00000000 0 NOTYPE GLOBAL DEFAULT UND free │ │ │ │ │ 16: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Abort │ │ │ │ │ - 17: 0000010d 182 FUNC GLOBAL DEFAULT 1 fftwf_mpi_broadcast_wisdom │ │ │ │ │ + 17: 00000125 198 FUNC GLOBAL DEFAULT 1 fftwf_mpi_broadcast_wisdom │ │ │ │ │ 18: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Bcast │ │ │ │ │ 19: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_free │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,37 +1,35 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x480 contains 34 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x4a8 contains 32 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000008 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ -00000010 0000040a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000018 0000050a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -0000002e 0000060a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -00000052 0000070a R_ARM_THM_CALL 00000000 MPI_Recv │ │ │ │ │ -00000058 0000080a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00000074 0000070a R_ARM_THM_CALL 00000000 MPI_Recv │ │ │ │ │ -0000007a 0000090a R_ARM_THM_CALL 00000000 fftwf_import_wisdom_from_string │ │ │ │ │ -00000084 00000a0a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ -0000008a 0000060a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -000000a4 00000b0a R_ARM_THM_CALL 00000000 MPI_Comm_split │ │ │ │ │ -000000aa 0000020a R_ARM_THM_CALL 00000001 fftwf_mpi_gather_wisdom │ │ │ │ │ -000000b0 0000060a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -000000b8 00000c0a R_ARM_THM_CALL 00000000 fftwf_export_wisdom_to_string │ │ │ │ │ -000000be 00000d0a R_ARM_THM_CALL 00000000 strlen │ │ │ │ │ -000000dc 00000e0a R_ARM_THM_CALL 00000000 MPI_Send │ │ │ │ │ -000000f6 00000e0a R_ARM_THM_CALL 00000000 MPI_Send │ │ │ │ │ -000000fc 00000f0a R_ARM_THM_CALL 00000000 free │ │ │ │ │ -00000106 0000100a R_ARM_THM_CALL 00000000 MPI_Abort │ │ │ │ │ -00000114 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ -0000011c 0000040a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000136 0000120a R_ARM_THM_CALL 00000000 MPI_Bcast │ │ │ │ │ -0000013c 0000080a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00000152 0000120a R_ARM_THM_CALL 00000000 MPI_Bcast │ │ │ │ │ -00000158 0000090a R_ARM_THM_CALL 00000000 fftwf_import_wisdom_from_string │ │ │ │ │ -00000160 00000a0a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ -00000166 0000060a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -0000016e 00000c0a R_ARM_THM_CALL 00000000 fftwf_export_wisdom_to_string │ │ │ │ │ -00000174 00000d0a R_ARM_THM_CALL 00000000 strlen │ │ │ │ │ -0000018e 0000120a R_ARM_THM_CALL 00000000 MPI_Bcast │ │ │ │ │ -000001a4 0000120a R_ARM_THM_CALL 00000000 MPI_Bcast │ │ │ │ │ -000001aa 0000130a R_ARM_THM_CALL 00000000 fftwf_free │ │ │ │ │ -000001b0 0000060a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -000001bc 0000100a R_ARM_THM_CALL 00000000 MPI_Abort │ │ │ │ │ +0000000e 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ +00000016 0000040a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +0000001e 0000050a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000034 0000060a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +00000062 0000070a R_ARM_THM_CALL 00000000 MPI_Recv │ │ │ │ │ +00000068 0000080a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00000088 0000070a R_ARM_THM_CALL 00000000 MPI_Recv │ │ │ │ │ +0000008e 0000090a R_ARM_THM_CALL 00000000 fftwf_import_wisdom_from_string │ │ │ │ │ +00000098 00000a0a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ +000000b0 00000b0a R_ARM_THM_CALL 00000000 MPI_Comm_split │ │ │ │ │ +000000b6 0000020a R_ARM_THM_CALL 00000001 fftwf_mpi_gather_wisdom │ │ │ │ │ +000000bc 0000060a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +000000c4 00000c0a R_ARM_THM_CALL 00000000 fftwf_export_wisdom_to_string │ │ │ │ │ +000000ca 00000d0a R_ARM_THM_CALL 00000000 strlen │ │ │ │ │ +000000ee 00000e0a R_ARM_THM_CALL 00000000 MPI_Send │ │ │ │ │ +0000010c 00000e0a R_ARM_THM_CALL 00000000 MPI_Send │ │ │ │ │ +00000112 00000f0a R_ARM_THM_CALL 00000000 free │ │ │ │ │ +0000011e 0000100a R_ARM_THM_CALL 00000000 MPI_Abort │ │ │ │ │ +00000132 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ +0000013a 0000040a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +00000158 0000120a R_ARM_THM_CALL 00000000 MPI_Bcast │ │ │ │ │ +0000015e 0000080a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00000176 0000120a R_ARM_THM_CALL 00000000 MPI_Bcast │ │ │ │ │ +0000017c 0000090a R_ARM_THM_CALL 00000000 fftwf_import_wisdom_from_string │ │ │ │ │ +00000184 00000a0a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ +0000018a 0000060a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +00000198 00000c0a R_ARM_THM_CALL 00000000 fftwf_export_wisdom_to_string │ │ │ │ │ +0000019e 00000d0a R_ARM_THM_CALL 00000000 strlen │ │ │ │ │ +000001bc 0000120a R_ARM_THM_CALL 00000000 MPI_Bcast │ │ │ │ │ +000001d2 0000120a R_ARM_THM_CALL 00000000 MPI_Bcast │ │ │ │ │ +000001d8 0000130a R_ARM_THM_CALL 00000000 fftwf_free │ │ │ │ │ +000001e4 0000100a R_ARM_THM_CALL 00000000 MPI_Abort │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,219 +1,215 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftwf_mpi_gather_wisdom(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, r5, [sp, #-16]! │ │ │ │ │ + strd r6, lr, [sp, #8] │ │ │ │ │ sub sp, #56 @ 0x38 │ │ │ │ │ add r4, sp, #16 │ │ │ │ │ mov r1, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_dup │ │ │ │ │ - add r1, sp, #24 │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ + add r1, sp, #24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ add r1, sp, #28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ cmp r3, #2 │ │ │ │ │ - bgt.n 92 │ │ │ │ │ + bgt.n 9e │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - ble.n 2c │ │ │ │ │ + ble.n 32 │ │ │ │ │ ldr r5, [sp, #24] │ │ │ │ │ cmp r5, #1 │ │ │ │ │ - ble.n 36 │ │ │ │ │ + ble.n 42 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_free │ │ │ │ │ add sp, #56 @ 0x38 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ - beq.n b8 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + pop {r6, pc} │ │ │ │ │ + beq.n c4 │ │ │ │ │ ldr r3, [sp, #16] │ │ │ │ │ add r6, sp, #36 @ 0x24 │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ - movs r3, #111 @ 0x6f │ │ │ │ │ - str r3, [sp, #0] │ │ │ │ │ - movs r3, #1 │ │ │ │ │ - mov r1, r3 │ │ │ │ │ - add r0, sp, #32 │ │ │ │ │ - str r6, [sp, #8] │ │ │ │ │ movw r2, #1030 @ 0x406 │ │ │ │ │ movt r2, #19456 @ 0x4c00 │ │ │ │ │ + add r0, sp, #32 │ │ │ │ │ + strd r3, r6, [sp, #4] │ │ │ │ │ + mov.w r3, #111 @ 0x6f │ │ │ │ │ + str r3, [sp, #0] │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + mov r1, r3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Recv │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_malloc_plain │ │ │ │ │ ldr r3, [sp, #16] │ │ │ │ │ mov r5, r0 │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ - ldr r1, [sp, #32] │ │ │ │ │ - movs r3, #222 @ 0xde │ │ │ │ │ - str r6, [sp, #8] │ │ │ │ │ movw r2, #257 @ 0x101 │ │ │ │ │ movt r2, #19456 @ 0x4c00 │ │ │ │ │ + ldr r1, [sp, #32] │ │ │ │ │ + strd r3, r6, [sp, #4] │ │ │ │ │ + mov.w r3, #222 @ 0xde │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Recv │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_import_wisdom_from_string │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n 102 │ │ │ │ │ + beq.n 118 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ifree │ │ │ │ │ - mov r0, r4 │ │ │ │ │ - bl 0 │ │ │ │ │ - R_ARM_THM_CALL MPI_Comm_free │ │ │ │ │ - add sp, #56 @ 0x38 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ - ldr r2, [sp, #24] │ │ │ │ │ + b.n 32 │ │ │ │ │ add r5, sp, #20 │ │ │ │ │ - mov r3, r5 │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ + mov r3, r5 │ │ │ │ │ + ldr r2, [sp, #24] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ and.w r1, r2, #1 │ │ │ │ │ it lt │ │ │ │ │ neglt r1, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_split │ │ │ │ │ ldr r0, [sp, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_gather_wisdom │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_free │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ - b.n 22 │ │ │ │ │ + b.n 28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_export_wisdom_to_string │ │ │ │ │ mov r6, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL strlen │ │ │ │ │ ldr r3, [sp, #16] │ │ │ │ │ + add.w r0, r0, #1 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ - adds r0, #1 │ │ │ │ │ - movs r3, #111 @ 0x6f │ │ │ │ │ - str r0, [sp, #32] │ │ │ │ │ movw r2, #1030 @ 0x406 │ │ │ │ │ movt r2, #19456 @ 0x4c00 │ │ │ │ │ - str r3, [sp, #0] │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + mov.w r3, #111 @ 0x6f │ │ │ │ │ + str r0, [sp, #32] │ │ │ │ │ add r0, sp, #32 │ │ │ │ │ - movs r3, #0 │ │ │ │ │ + str r3, [sp, #0] │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Send │ │ │ │ │ ldr r3, [sp, #16] │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ mov r0, r6 │ │ │ │ │ - ldr r1, [sp, #32] │ │ │ │ │ - movs r3, #222 @ 0xde │ │ │ │ │ movw r2, #257 @ 0x101 │ │ │ │ │ movt r2, #19456 @ 0x4c00 │ │ │ │ │ + ldr r1, [sp, #32] │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + mov.w r3, #222 @ 0xde │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - movs r3, #0 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Send │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL free │ │ │ │ │ - b.n 2c │ │ │ │ │ + b.n 32 │ │ │ │ │ ldr r0, [sp, #16] │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Abort │ │ │ │ │ - b.n 82 │ │ │ │ │ + b.n 96 │ │ │ │ │ │ │ │ │ │ -0000010c : │ │ │ │ │ +00000124 : │ │ │ │ │ fftwf_mpi_broadcast_wisdom(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, r5, [sp, #-16]! │ │ │ │ │ + strd r6, lr, [sp, #8] │ │ │ │ │ sub sp, #24 │ │ │ │ │ add r4, sp, #12 │ │ │ │ │ mov r1, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_dup │ │ │ │ │ ldr r0, [sp, #12] │ │ │ │ │ add r1, sp, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ ldr r5, [sp, #16] │ │ │ │ │ - cbz r5, 16e │ │ │ │ │ + cbz r5, 198 │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ - movs r1, #1 │ │ │ │ │ - str r3, [sp, #0] │ │ │ │ │ - add r0, sp, #20 │ │ │ │ │ - movs r3, #0 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ movw r2, #1030 @ 0x406 │ │ │ │ │ movt r2, #19456 @ 0x4c00 │ │ │ │ │ + add r0, sp, #20 │ │ │ │ │ + str r3, [sp, #0] │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Bcast │ │ │ │ │ ldr r0, [sp, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_malloc_plain │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ mov r5, r0 │ │ │ │ │ - str r3, [sp, #0] │ │ │ │ │ - ldr r1, [sp, #20] │ │ │ │ │ - movs r3, #0 │ │ │ │ │ movw r2, #257 @ 0x101 │ │ │ │ │ movt r2, #19456 @ 0x4c00 │ │ │ │ │ + ldr r1, [sp, #20] │ │ │ │ │ + str r3, [sp, #0] │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Bcast │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_import_wisdom_from_string │ │ │ │ │ - cbz r0, 1b8 │ │ │ │ │ + cbz r0, 1de │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ifree │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_free │ │ │ │ │ add sp, #24 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + pop {r6, pc} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_export_wisdom_to_string │ │ │ │ │ mov r6, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL strlen │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ + add.w r0, r0, #1 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ + movw r2, #1030 @ 0x406 │ │ │ │ │ + movt r2, #19456 @ 0x4c00 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - adds r0, #1 │ │ │ │ │ mov r3, r5 │ │ │ │ │ str r0, [sp, #20] │ │ │ │ │ - movs r1, #1 │ │ │ │ │ add r0, sp, #20 │ │ │ │ │ - movw r2, #1030 @ 0x406 │ │ │ │ │ - movt r2, #19456 @ 0x4c00 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Bcast │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ - ldr r1, [sp, #20] │ │ │ │ │ mov r0, r6 │ │ │ │ │ - str r3, [sp, #0] │ │ │ │ │ movw r2, #257 @ 0x101 │ │ │ │ │ movt r2, #19456 @ 0x4c00 │ │ │ │ │ + ldr r1, [sp, #20] │ │ │ │ │ + str r3, [sp, #0] │ │ │ │ │ mov r3, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Bcast │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_free │ │ │ │ │ - mov r0, r4 │ │ │ │ │ - bl 0 │ │ │ │ │ - R_ARM_THM_CALL MPI_Comm_free │ │ │ │ │ - add sp, #24 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ + b.n 188 │ │ │ │ │ ldr r0, [sp, #12] │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Abort │ │ │ │ │ - b.n 15e │ │ │ │ │ + b.n 182 │ │ │ │ │ nop │ │ │ ├── f03-wrap.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 4900 (bytes into file) │ │ │ │ │ + Start of section headers: 5704 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 10 │ │ │ │ │ Section header string table index: 9 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,19 +1,19 @@ │ │ │ │ │ -There are 10 section headers, starting at offset 0x1324: │ │ │ │ │ +There are 10 section headers, starting at offset 0x1648: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 0005a8 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0010e4 0001f0 08 I 7 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 0005dc 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 0005dc 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .note.GNU-stack PROGBITS 00000000 0005dc 000000 00 0 0 1 │ │ │ │ │ - [ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 0005dc 000033 00 0 0 1 │ │ │ │ │ - [ 7] .symtab SYMTAB 00000000 000610 000410 10 8 2 4 │ │ │ │ │ - [ 8] .strtab STRTAB 00000000 000a20 0006c3 00 0 0 1 │ │ │ │ │ - [ 9] .shstrtab STRTAB 00000000 0012d4 000050 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0008cc 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 001408 0001f0 08 I 7 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000900 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000900 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .note.GNU-stack PROGBITS 00000000 000900 000000 00 0 0 1 │ │ │ │ │ + [ 6] .ARM.attributes ARM_ATTRIBUTES 00000000 000900 000033 00 0 0 1 │ │ │ │ │ + [ 7] .symtab SYMTAB 00000000 000934 000410 10 8 2 4 │ │ │ │ │ + [ 8] .strtab STRTAB 00000000 000d44 0006c3 00 0 0 1 │ │ │ │ │ + [ 9] .shstrtab STRTAB 00000000 0015f8 000050 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,68 +1,68 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 65 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ 1: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 2: 00000001 62 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_many_transposed_f03 │ │ │ │ │ + 2: 00000001 96 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_many_transposed_f03 │ │ │ │ │ 3: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_f2c │ │ │ │ │ 4: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_local_size_many_transposed │ │ │ │ │ - 5: 00000041 44 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_many_f03 │ │ │ │ │ + 5: 00000061 74 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_many_f03 │ │ │ │ │ 6: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_local_size_many │ │ │ │ │ - 7: 0000006d 46 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_transposed_f03 │ │ │ │ │ + 7: 000000ad 74 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_transposed_f03 │ │ │ │ │ 8: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_local_size_transposed │ │ │ │ │ - 9: 0000009d 36 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_f03 │ │ │ │ │ + 9: 000000f9 54 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_f03 │ │ │ │ │ 10: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_local_size │ │ │ │ │ - 11: 000000c1 58 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_many_1d_f03 │ │ │ │ │ + 11: 00000131 94 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_many_1d_f03 │ │ │ │ │ 12: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_local_size_many_1d │ │ │ │ │ - 13: 000000fd 48 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_1d_f03 │ │ │ │ │ + 13: 00000191 74 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_1d_f03 │ │ │ │ │ 14: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_local_size_1d │ │ │ │ │ - 15: 0000012d 36 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_2d_f03 │ │ │ │ │ + 15: 000001dd 54 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_2d_f03 │ │ │ │ │ 16: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_local_size_2d │ │ │ │ │ - 17: 00000151 46 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_2d_transposed_f03 │ │ │ │ │ + 17: 00000215 74 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_2d_transposed_f03 │ │ │ │ │ 18: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_local_size_2d_transposed │ │ │ │ │ - 19: 00000181 40 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_3d_f03 │ │ │ │ │ + 19: 00000261 58 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_3d_f03 │ │ │ │ │ 20: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_local_size_3d │ │ │ │ │ - 21: 000001a9 48 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_3d_transposed_f03 │ │ │ │ │ + 21: 0000029d 74 FUNC GLOBAL DEFAULT 1 fftwf_mpi_local_size_3d_transposed_f03 │ │ │ │ │ 22: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_local_size_3d_transposed │ │ │ │ │ - 23: 000001d9 60 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_many_transpose_f03 │ │ │ │ │ + 23: 000002e9 94 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_many_transpose_f03 │ │ │ │ │ 24: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_plan_many_transpose │ │ │ │ │ - 25: 00000215 40 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_transpose_f03 │ │ │ │ │ + 25: 00000349 58 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_transpose_f03 │ │ │ │ │ 26: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_plan_transpose │ │ │ │ │ - 27: 0000023d 62 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_many_dft_f03 │ │ │ │ │ + 27: 00000385 96 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_many_dft_f03 │ │ │ │ │ 28: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_plan_many_dft │ │ │ │ │ - 29: 0000027d 44 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_f03 │ │ │ │ │ + 29: 000003e5 74 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_f03 │ │ │ │ │ 30: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_plan_dft │ │ │ │ │ - 31: 000002a9 40 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_1d_f03 │ │ │ │ │ + 31: 00000431 58 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_1d_f03 │ │ │ │ │ 32: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_plan_dft_1d │ │ │ │ │ - 33: 000002d1 44 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_2d_f03 │ │ │ │ │ + 33: 0000046d 74 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_2d_f03 │ │ │ │ │ 34: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_plan_dft_2d │ │ │ │ │ - 35: 000002fd 50 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_3d_f03 │ │ │ │ │ + 35: 000004b9 74 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_3d_f03 │ │ │ │ │ 36: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_plan_dft_3d │ │ │ │ │ - 37: 00000331 62 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_many_r2r_f03 │ │ │ │ │ + 37: 00000505 96 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_many_r2r_f03 │ │ │ │ │ 38: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_plan_many_r2r │ │ │ │ │ - 39: 00000371 44 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_r2r_f03 │ │ │ │ │ + 39: 00000565 74 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_r2r_f03 │ │ │ │ │ 40: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_plan_r2r │ │ │ │ │ - 41: 0000039d 50 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_r2r_2d_f03 │ │ │ │ │ + 41: 000005b1 74 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_r2r_2d_f03 │ │ │ │ │ 42: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_plan_r2r_2d │ │ │ │ │ - 43: 000003d1 62 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_r2r_3d_f03 │ │ │ │ │ + 43: 000005fd 96 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_r2r_3d_f03 │ │ │ │ │ 44: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_plan_r2r_3d │ │ │ │ │ - 45: 00000411 60 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_many_dft_r2c_f03 │ │ │ │ │ + 45: 0000065d 94 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_many_dft_r2c_f03 │ │ │ │ │ 46: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_plan_many_dft_r2c │ │ │ │ │ - 47: 0000044d 40 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_r2c_f03 │ │ │ │ │ + 47: 000006bd 58 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_r2c_f03 │ │ │ │ │ 48: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_plan_dft_r2c │ │ │ │ │ - 49: 00000475 40 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_r2c_2d_f03 │ │ │ │ │ + 49: 000006f9 58 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_r2c_2d_f03 │ │ │ │ │ 50: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_plan_dft_r2c_2d │ │ │ │ │ - 51: 0000049d 48 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_r2c_3d_f03 │ │ │ │ │ + 51: 00000735 74 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_r2c_3d_f03 │ │ │ │ │ 52: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_plan_dft_r2c_3d │ │ │ │ │ - 53: 000004cd 60 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_many_dft_c2r_f03 │ │ │ │ │ + 53: 00000781 94 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_many_dft_c2r_f03 │ │ │ │ │ 54: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_plan_many_dft_c2r │ │ │ │ │ - 55: 00000509 40 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_c2r_f03 │ │ │ │ │ + 55: 000007e1 58 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_c2r_f03 │ │ │ │ │ 56: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_plan_dft_c2r │ │ │ │ │ - 57: 00000531 40 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_c2r_2d_f03 │ │ │ │ │ + 57: 0000081d 58 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_c2r_2d_f03 │ │ │ │ │ 58: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_plan_dft_c2r_2d │ │ │ │ │ - 59: 00000559 48 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_c2r_3d_f03 │ │ │ │ │ + 59: 00000859 74 FUNC GLOBAL DEFAULT 1 fftwf_mpi_plan_dft_c2r_3d_f03 │ │ │ │ │ 60: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_plan_dft_c2r_3d │ │ │ │ │ - 61: 00000589 14 FUNC GLOBAL DEFAULT 1 fftwf_mpi_gather_wisdom_f03 │ │ │ │ │ + 61: 000008a5 18 FUNC GLOBAL DEFAULT 1 fftwf_mpi_gather_wisdom_f03 │ │ │ │ │ 62: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_gather_wisdom │ │ │ │ │ - 63: 00000599 14 FUNC GLOBAL DEFAULT 1 fftwf_mpi_broadcast_wisdom_f03 │ │ │ │ │ + 63: 000008b9 18 FUNC GLOBAL DEFAULT 1 fftwf_mpi_broadcast_wisdom_f03 │ │ │ │ │ 64: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_broadcast_wisdom │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,65 +1,65 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x10e4 contains 62 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x1408 contains 62 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -0000001c 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000052 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +0000002c 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ 00000080 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -000000aa 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -000000da 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000110 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -0000013a 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000164 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000190 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -000001bc 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +000000cc 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +0000010e 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +0000015a 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +000001b0 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ 000001f2 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000224 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000258 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -0000028e 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -000002b8 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -000002e2 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000234 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000278 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +000002bc 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ 00000312 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -0000034c 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000382 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -000003b2 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -000003ec 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -0000042a 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -0000045c 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000484 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -000004b0 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -000004e6 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000518 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -00000540 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -0000056c 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -0000058a 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -0000059a 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ -0000003a 0000041e R_ARM_THM_JUMP24 00000000 fftwf_mpi_local_size_many_transposed │ │ │ │ │ -00000068 0000061e R_ARM_THM_JUMP24 00000000 fftwf_mpi_local_size_many │ │ │ │ │ -00000096 0000081e R_ARM_THM_JUMP24 00000000 fftwf_mpi_local_size_transposed │ │ │ │ │ -000000bc 00000a1e R_ARM_THM_JUMP24 00000000 fftwf_mpi_local_size │ │ │ │ │ -000000f6 00000c1e R_ARM_THM_JUMP24 00000000 fftwf_mpi_local_size_many_1d │ │ │ │ │ -00000128 00000e1e R_ARM_THM_JUMP24 00000000 fftwf_mpi_local_size_1d │ │ │ │ │ -0000014c 0000101e R_ARM_THM_JUMP24 00000000 fftwf_mpi_local_size_2d │ │ │ │ │ -0000017a 0000121e R_ARM_THM_JUMP24 00000000 fftwf_mpi_local_size_2d_transposed │ │ │ │ │ -000001a4 0000141e R_ARM_THM_JUMP24 00000000 fftwf_mpi_local_size_3d │ │ │ │ │ -000001d4 0000161e R_ARM_THM_JUMP24 00000000 fftwf_mpi_local_size_3d_transposed │ │ │ │ │ -00000210 0000181e R_ARM_THM_JUMP24 00000000 fftwf_mpi_plan_many_transpose │ │ │ │ │ -00000238 00001a1e R_ARM_THM_JUMP24 00000000 fftwf_mpi_plan_transpose │ │ │ │ │ -00000276 00001c1e R_ARM_THM_JUMP24 00000000 fftwf_mpi_plan_many_dft │ │ │ │ │ -000002a4 00001e1e R_ARM_THM_JUMP24 00000000 fftwf_mpi_plan_dft │ │ │ │ │ -000002cc 0000201e R_ARM_THM_JUMP24 00000000 fftwf_mpi_plan_dft_1d │ │ │ │ │ -000002f8 0000221e R_ARM_THM_JUMP24 00000000 fftwf_mpi_plan_dft_2d │ │ │ │ │ -0000032a 0000241e R_ARM_THM_JUMP24 00000000 fftwf_mpi_plan_dft_3d │ │ │ │ │ -0000036a 0000261e R_ARM_THM_JUMP24 00000000 fftwf_mpi_plan_many_r2r │ │ │ │ │ -00000398 0000281e R_ARM_THM_JUMP24 00000000 fftwf_mpi_plan_r2r │ │ │ │ │ -000003ca 00002a1e R_ARM_THM_JUMP24 00000000 fftwf_mpi_plan_r2r_2d │ │ │ │ │ -0000040a 00002c1e R_ARM_THM_JUMP24 00000000 fftwf_mpi_plan_r2r_3d │ │ │ │ │ -00000448 00002e1e R_ARM_THM_JUMP24 00000000 fftwf_mpi_plan_many_dft_r2c │ │ │ │ │ -00000470 0000301e R_ARM_THM_JUMP24 00000000 fftwf_mpi_plan_dft_r2c │ │ │ │ │ -00000498 0000321e R_ARM_THM_JUMP24 00000000 fftwf_mpi_plan_dft_r2c_2d │ │ │ │ │ -000004c8 0000341e R_ARM_THM_JUMP24 00000000 fftwf_mpi_plan_dft_r2c_3d │ │ │ │ │ -00000504 0000361e R_ARM_THM_JUMP24 00000000 fftwf_mpi_plan_many_dft_c2r │ │ │ │ │ -0000052c 0000381e R_ARM_THM_JUMP24 00000000 fftwf_mpi_plan_dft_c2r │ │ │ │ │ -00000554 00003a1e R_ARM_THM_JUMP24 00000000 fftwf_mpi_plan_dft_c2r_2d │ │ │ │ │ -00000584 00003c1e R_ARM_THM_JUMP24 00000000 fftwf_mpi_plan_dft_c2r_3d │ │ │ │ │ -00000592 00003e1e R_ARM_THM_JUMP24 00000000 fftwf_mpi_gather_wisdom │ │ │ │ │ -000005a2 0000401e R_ARM_THM_JUMP24 00000000 fftwf_mpi_broadcast_wisdom │ │ │ │ │ +00000360 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +000003b0 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000404 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000448 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +0000048c 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +000004d8 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000530 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000584 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +000005d0 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000628 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000686 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +000006d4 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000710 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000754 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +000007aa 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +000007f8 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000834 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +00000878 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +000008a8 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +000008bc 0000030a R_ARM_THM_CALL 00000000 MPI_Comm_f2c │ │ │ │ │ +0000005c 0000041e R_ARM_THM_JUMP24 00000000 fftwf_mpi_local_size_many_transposed │ │ │ │ │ +000000a6 0000061e R_ARM_THM_JUMP24 00000000 fftwf_mpi_local_size_many │ │ │ │ │ +000000f2 0000081e R_ARM_THM_JUMP24 00000000 fftwf_mpi_local_size_transposed │ │ │ │ │ +0000012a 00000a1e R_ARM_THM_JUMP24 00000000 fftwf_mpi_local_size │ │ │ │ │ +0000018a 00000c1e R_ARM_THM_JUMP24 00000000 fftwf_mpi_local_size_many_1d │ │ │ │ │ +000001d6 00000e1e R_ARM_THM_JUMP24 00000000 fftwf_mpi_local_size_1d │ │ │ │ │ +0000020e 0000101e R_ARM_THM_JUMP24 00000000 fftwf_mpi_local_size_2d │ │ │ │ │ +0000025a 0000121e R_ARM_THM_JUMP24 00000000 fftwf_mpi_local_size_2d_transposed │ │ │ │ │ +00000296 0000141e R_ARM_THM_JUMP24 00000000 fftwf_mpi_local_size_3d │ │ │ │ │ +000002e2 0000161e R_ARM_THM_JUMP24 00000000 fftwf_mpi_local_size_3d_transposed │ │ │ │ │ +00000342 0000181e R_ARM_THM_JUMP24 00000000 fftwf_mpi_plan_many_transpose │ │ │ │ │ +0000037e 00001a1e R_ARM_THM_JUMP24 00000000 fftwf_mpi_plan_transpose │ │ │ │ │ +000003e0 00001c1e R_ARM_THM_JUMP24 00000000 fftwf_mpi_plan_many_dft │ │ │ │ │ +0000042a 00001e1e R_ARM_THM_JUMP24 00000000 fftwf_mpi_plan_dft │ │ │ │ │ +00000466 0000201e R_ARM_THM_JUMP24 00000000 fftwf_mpi_plan_dft_1d │ │ │ │ │ +000004b2 0000221e R_ARM_THM_JUMP24 00000000 fftwf_mpi_plan_dft_2d │ │ │ │ │ +000004fe 0000241e R_ARM_THM_JUMP24 00000000 fftwf_mpi_plan_dft_3d │ │ │ │ │ +00000560 0000261e R_ARM_THM_JUMP24 00000000 fftwf_mpi_plan_many_r2r │ │ │ │ │ +000005aa 0000281e R_ARM_THM_JUMP24 00000000 fftwf_mpi_plan_r2r │ │ │ │ │ +000005f6 00002a1e R_ARM_THM_JUMP24 00000000 fftwf_mpi_plan_r2r_2d │ │ │ │ │ +00000658 00002c1e R_ARM_THM_JUMP24 00000000 fftwf_mpi_plan_r2r_3d │ │ │ │ │ +000006b6 00002e1e R_ARM_THM_JUMP24 00000000 fftwf_mpi_plan_many_dft_r2c │ │ │ │ │ +000006f2 0000301e R_ARM_THM_JUMP24 00000000 fftwf_mpi_plan_dft_r2c │ │ │ │ │ +0000072e 0000321e R_ARM_THM_JUMP24 00000000 fftwf_mpi_plan_dft_r2c_2d │ │ │ │ │ +0000077a 0000341e R_ARM_THM_JUMP24 00000000 fftwf_mpi_plan_dft_r2c_3d │ │ │ │ │ +000007da 0000361e R_ARM_THM_JUMP24 00000000 fftwf_mpi_plan_many_dft_c2r │ │ │ │ │ +00000816 0000381e R_ARM_THM_JUMP24 00000000 fftwf_mpi_plan_dft_c2r │ │ │ │ │ +00000852 00003a1e R_ARM_THM_JUMP24 00000000 fftwf_mpi_plan_dft_c2r_2d │ │ │ │ │ +0000089e 00003c1e R_ARM_THM_JUMP24 00000000 fftwf_mpi_plan_dft_c2r_3d │ │ │ │ │ +000008b2 00003e1e R_ARM_THM_JUMP24 00000000 fftwf_mpi_gather_wisdom │ │ │ │ │ +000008c6 0000401e R_ARM_THM_JUMP24 00000000 fftwf_mpi_broadcast_wisdom │ │ │ │ ├── strings --all --bytes=8 {} │ │ │ │ │ @@ -1,9 +1,7 @@ │ │ │ │ │ - 2F)F F │ │ │ │ │ - 2F)F F │ │ │ │ │ fftwf_mpi_local_size_many_transposed_f03 │ │ │ │ │ MPI_Comm_f2c │ │ │ │ │ fftwf_mpi_local_size_many_transposed │ │ │ │ │ fftwf_mpi_local_size_many_f03 │ │ │ │ │ fftwf_mpi_local_size_many │ │ │ │ │ fftwf_mpi_local_size_transposed_f03 │ │ │ │ │ fftwf_mpi_local_size_transposed │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,662 +1,879 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftwf_mpi_local_size_many_transposed_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r1 │ │ │ │ │ mov r6, r2 │ │ │ │ │ - sub sp, #12 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r7, r3 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #12 │ │ │ │ │ ldr.w r8, [sp, #48] @ 0x30 │ │ │ │ │ - ldrd r9, sl, [sp, #56] @ 0x38 │ │ │ │ │ str r0, [sp, #4] │ │ │ │ │ - ldrd fp, r4, [sp, #64] @ 0x40 │ │ │ │ │ ldr r0, [sp, #52] @ 0x34 │ │ │ │ │ + ldrd r9, sl, [sp, #56] @ 0x38 │ │ │ │ │ + ldrd fp, r4, [sp, #64] @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ - mov r3, r7 │ │ │ │ │ strd r8, r0, [sp, #48] @ 0x30 │ │ │ │ │ + mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ ldr r0, [sp, #4] │ │ │ │ │ mov r1, r5 │ │ │ │ │ - strd fp, r4, [sp, #64] @ 0x40 │ │ │ │ │ strd r9, sl, [sp, #56] @ 0x38 │ │ │ │ │ + strd fp, r4, [sp, #64] @ 0x40 │ │ │ │ │ add sp, #12 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w lr, [sp], #4 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_mpi_local_size_many_transposed │ │ │ │ │ - nop │ │ │ │ │ │ │ │ │ │ -00000040 : │ │ │ │ │ +00000060 : │ │ │ │ │ fftwf_mpi_local_size_many_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, r5, [sp, #-32]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ - ldrd r8, r9, [sp, #36] @ 0x24 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ - ldr r0, [sp, #32] │ │ │ │ │ + strd r8, r9, [sp, #16] │ │ │ │ │ + ldrd r0, r8, [sp, #32] │ │ │ │ │ + strd sl, lr, [sp, #24] │ │ │ │ │ + ldr.w r9, [sp, #40] @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ + ldrd sl, lr, [sp, #24] │ │ │ │ │ mov r3, r7 │ │ │ │ │ - str r0, [sp, #32] │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ + strd r0, r8, [sp, #32] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - strd r8, r9, [sp, #36] @ 0x24 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + str.w r9, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #32 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_mpi_local_size_many │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -0000006c : │ │ │ │ │ +000000ac : │ │ │ │ │ fftwf_mpi_local_size_transposed_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, r5, [sp, #-32]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr.w r9, [sp, #40] @ 0x28 │ │ │ │ │ - ldrd r7, r8, [sp, #32] │ │ │ │ │ + mov r0, r2 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r5, r1 │ │ │ │ │ mov r6, r3 │ │ │ │ │ - mov r0, r2 │ │ │ │ │ + strd r8, r9, [sp, #16] │ │ │ │ │ + ldrd r7, r8, [sp, #32] │ │ │ │ │ + strd sl, lr, [sp, #24] │ │ │ │ │ + ldr.w r9, [sp, #40] @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ - mov r3, r6 │ │ │ │ │ + ldrd sl, lr, [sp, #24] │ │ │ │ │ mov r2, r0 │ │ │ │ │ + mov r3, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - strd r8, r9, [sp, #36] @ 0x24 │ │ │ │ │ - str r7, [sp, #32] │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r7, r8, [sp, #32] │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + str.w r9, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #32 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_mpi_local_size_transposed │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -0000009c : │ │ │ │ │ +000000f8 : │ │ │ │ │ fftwf_mpi_local_size_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r7, [sp, #24] │ │ │ │ │ + mov r0, r2 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r5, r1 │ │ │ │ │ mov r6, r3 │ │ │ │ │ - mov r0, r2 │ │ │ │ │ + ldr r7, [sp, #24] │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ - mov r3, r6 │ │ │ │ │ + ldrd r8, lr, [sp, #16] │ │ │ │ │ mov r2, r0 │ │ │ │ │ + mov r3, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ mov r0, r4 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ str r7, [sp, #24] │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #24 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_mpi_local_size │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -000000c0 : │ │ │ │ │ +00000130 : │ │ │ │ │ fftwf_mpi_local_size_many_1d_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r0, r2 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r1 │ │ │ │ │ - sub sp, #4 │ │ │ │ │ mov r6, r3 │ │ │ │ │ - mov r0, r2 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #4 │ │ │ │ │ ldrd r7, r8, [sp, #40] @ 0x28 │ │ │ │ │ ldrd r9, sl, [sp, #48] @ 0x30 │ │ │ │ │ ldr.w fp, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ - mov r3, r6 │ │ │ │ │ mov r2, r0 │ │ │ │ │ + mov r3, r6 │ │ │ │ │ + strd r7, r8, [sp, #40] @ 0x28 │ │ │ │ │ mov r1, r5 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - strd sl, fp, [sp, #52] @ 0x34 │ │ │ │ │ - strd r8, r9, [sp, #44] @ 0x2c │ │ │ │ │ - str r7, [sp, #40] @ 0x28 │ │ │ │ │ + strd r9, sl, [sp, #48] @ 0x30 │ │ │ │ │ + str.w fp, [sp, #56] @ 0x38 │ │ │ │ │ add sp, #4 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w lr, [sp], #4 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_mpi_local_size_many_1d │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -000000fc : │ │ │ │ │ +00000190 : │ │ │ │ │ fftwf_mpi_local_size_1d_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, r5, [sp, #-32]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r0, r1 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r5, r2 │ │ │ │ │ - ldrd r7, r8, [sp, #32] │ │ │ │ │ mov r6, r3 │ │ │ │ │ + strd r8, r9, [sp, #16] │ │ │ │ │ + ldrd r7, r8, [sp, #32] │ │ │ │ │ + strd sl, lr, [sp, #24] │ │ │ │ │ ldrd r9, sl, [sp, #40] @ 0x28 │ │ │ │ │ - mov r0, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ - mov r3, r6 │ │ │ │ │ mov r1, r0 │ │ │ │ │ + mov r3, r6 │ │ │ │ │ mov r2, r5 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - strd r9, sl, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ strd r7, r8, [sp, #32] │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + strd r9, sl, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, lr, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_mpi_local_size_1d │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -0000012c : │ │ │ │ │ +000001dc : │ │ │ │ │ fftwf_mpi_local_size_2d_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r7, [sp, #24] │ │ │ │ │ + mov r0, r2 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r5, r1 │ │ │ │ │ mov r6, r3 │ │ │ │ │ - mov r0, r2 │ │ │ │ │ + ldr r7, [sp, #24] │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ - mov r3, r6 │ │ │ │ │ + ldrd r8, lr, [sp, #16] │ │ │ │ │ mov r2, r0 │ │ │ │ │ + mov r3, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ mov r0, r4 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ str r7, [sp, #24] │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #24 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_mpi_local_size_2d │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -00000150 : │ │ │ │ │ +00000214 : │ │ │ │ │ fftwf_mpi_local_size_2d_transposed_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, r5, [sp, #-32]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr.w r9, [sp, #40] @ 0x28 │ │ │ │ │ - ldrd r7, r8, [sp, #32] │ │ │ │ │ + mov r0, r2 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r5, r1 │ │ │ │ │ mov r6, r3 │ │ │ │ │ - mov r0, r2 │ │ │ │ │ + strd r8, r9, [sp, #16] │ │ │ │ │ + ldrd r7, r8, [sp, #32] │ │ │ │ │ + strd sl, lr, [sp, #24] │ │ │ │ │ + ldr.w r9, [sp, #40] @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ - mov r3, r6 │ │ │ │ │ + ldrd sl, lr, [sp, #24] │ │ │ │ │ mov r2, r0 │ │ │ │ │ + mov r3, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - strd r8, r9, [sp, #36] @ 0x24 │ │ │ │ │ - str r7, [sp, #32] │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r7, r8, [sp, #32] │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + str.w r9, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #32 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_mpi_local_size_2d_transposed │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -00000180 : │ │ │ │ │ +00000260 : │ │ │ │ │ fftwf_mpi_local_size_3d_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r0, r3 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r5, r1 │ │ │ │ │ - ldrd r7, r8, [sp, #24] │ │ │ │ │ mov r6, r2 │ │ │ │ │ - mov r0, r3 │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ + ldrd r7, r8, [sp, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ - mov r2, r6 │ │ │ │ │ mov r3, r0 │ │ │ │ │ + mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ mov r0, r4 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ strd r7, r8, [sp, #24] │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, lr, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_mpi_local_size_3d │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -000001a8 : │ │ │ │ │ +0000029c : │ │ │ │ │ fftwf_mpi_local_size_3d_transposed_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, r5, [sp, #-32]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r0, r3 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r5, r1 │ │ │ │ │ - ldrd r7, r8, [sp, #32] │ │ │ │ │ mov r6, r2 │ │ │ │ │ + strd r8, r9, [sp, #16] │ │ │ │ │ + ldrd r7, r8, [sp, #32] │ │ │ │ │ + strd sl, lr, [sp, #24] │ │ │ │ │ ldrd r9, sl, [sp, #40] @ 0x28 │ │ │ │ │ - mov r0, r3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ - mov r2, r6 │ │ │ │ │ mov r3, r0 │ │ │ │ │ + mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - strd r9, sl, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ strd r7, r8, [sp, #32] │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + strd r9, sl, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, lr, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_mpi_local_size_3d_transposed │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -000001d8 : │ │ │ │ │ +000002e8 : │ │ │ │ │ fftwf_mpi_plan_many_transpose_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r1 │ │ │ │ │ - sub sp, #4 │ │ │ │ │ mov r6, r2 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r7, r3 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #4 │ │ │ │ │ ldrd r8, r9, [sp, #40] @ 0x28 │ │ │ │ │ - ldr.w sl, [sp, #48] @ 0x30 │ │ │ │ │ - ldrd r0, fp, [sp, #52] @ 0x34 │ │ │ │ │ + ldrd sl, r0, [sp, #48] @ 0x30 │ │ │ │ │ + ldr.w fp, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ mov r3, r7 │ │ │ │ │ - strd r0, fp, [sp, #52] @ 0x34 │ │ │ │ │ mov r2, r6 │ │ │ │ │ + strd r8, r9, [sp, #40] @ 0x28 │ │ │ │ │ mov r1, r5 │ │ │ │ │ + strd sl, r0, [sp, #48] @ 0x30 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - strd r9, sl, [sp, #44] @ 0x2c │ │ │ │ │ - str.w r8, [sp, #40] @ 0x28 │ │ │ │ │ + str.w fp, [sp, #56] @ 0x38 │ │ │ │ │ add sp, #4 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w lr, [sp], #4 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_mpi_plan_many_transpose │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -00000214 : │ │ │ │ │ +00000348 : │ │ │ │ │ fftwf_mpi_plan_transpose_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ - ldrd r0, r8, [sp, #24] │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ + ldrd r0, r8, [sp, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ mov r3, r7 │ │ │ │ │ - strd r0, r8, [sp, #24] │ │ │ │ │ mov r2, r6 │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ mov r1, r5 │ │ │ │ │ + strd r0, r8, [sp, #24] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r8, lr, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_mpi_plan_transpose │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -0000023c : │ │ │ │ │ +00000384 : │ │ │ │ │ fftwf_mpi_plan_many_dft_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r1 │ │ │ │ │ mov r6, r2 │ │ │ │ │ - sub sp, #12 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r7, r3 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #12 │ │ │ │ │ ldrd r8, r9, [sp, #48] @ 0x30 │ │ │ │ │ str r0, [sp, #4] │ │ │ │ │ ldr.w sl, [sp, #56] @ 0x38 │ │ │ │ │ - ldrd fp, r4, [sp, #64] @ 0x40 │ │ │ │ │ ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ + ldrd fp, r4, [sp, #64] @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ mov r3, r7 │ │ │ │ │ - strd sl, r0, [sp, #56] @ 0x38 │ │ │ │ │ mov r2, r6 │ │ │ │ │ - ldr r0, [sp, #4] │ │ │ │ │ + strd r8, r9, [sp, #48] @ 0x30 │ │ │ │ │ + strd sl, r0, [sp, #56] @ 0x38 │ │ │ │ │ mov r1, r5 │ │ │ │ │ + ldr r0, [sp, #4] │ │ │ │ │ strd fp, r4, [sp, #64] @ 0x40 │ │ │ │ │ - strd r8, r9, [sp, #48] @ 0x30 │ │ │ │ │ add sp, #12 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w lr, [sp], #4 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_mpi_plan_many_dft │ │ │ │ │ - nop │ │ │ │ │ │ │ │ │ │ -0000027c : │ │ │ │ │ +000003e4 : │ │ │ │ │ fftwf_mpi_plan_dft_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, r5, [sp, #-32]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ - ldrd r8, r9, [sp, #36] @ 0x24 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ - ldr r0, [sp, #32] │ │ │ │ │ + strd r8, r9, [sp, #16] │ │ │ │ │ + ldrd r0, r8, [sp, #32] │ │ │ │ │ + strd sl, lr, [sp, #24] │ │ │ │ │ + ldr.w r9, [sp, #40] @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ + ldrd sl, lr, [sp, #24] │ │ │ │ │ mov r3, r7 │ │ │ │ │ - str r0, [sp, #32] │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ + strd r0, r8, [sp, #32] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - strd r8, r9, [sp, #36] @ 0x24 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + str.w r9, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #32 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_mpi_plan_dft │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -000002a8 : │ │ │ │ │ +00000430 : │ │ │ │ │ fftwf_mpi_plan_dft_1d_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r0, r3 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r5, r1 │ │ │ │ │ - ldrd r7, r8, [sp, #24] │ │ │ │ │ mov r6, r2 │ │ │ │ │ - mov r0, r3 │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ + ldrd r7, r8, [sp, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ - mov r2, r6 │ │ │ │ │ mov r3, r0 │ │ │ │ │ + mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ mov r0, r4 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ strd r7, r8, [sp, #24] │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, lr, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_mpi_plan_dft_1d │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -000002d0 : │ │ │ │ │ +0000046c : │ │ │ │ │ fftwf_mpi_plan_dft_2d_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, r5, [sp, #-32]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ - ldrd r8, r9, [sp, #36] @ 0x24 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ - ldr r0, [sp, #32] │ │ │ │ │ + strd r8, r9, [sp, #16] │ │ │ │ │ + ldrd r0, r8, [sp, #32] │ │ │ │ │ + strd sl, lr, [sp, #24] │ │ │ │ │ + ldr.w r9, [sp, #40] @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ + ldrd sl, lr, [sp, #24] │ │ │ │ │ mov r3, r7 │ │ │ │ │ - str r0, [sp, #32] │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ + strd r0, r8, [sp, #32] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - strd r8, r9, [sp, #36] @ 0x24 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + str.w r9, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #32 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_mpi_plan_dft_2d │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -000002fc : │ │ │ │ │ +000004b8 : │ │ │ │ │ fftwf_mpi_plan_dft_3d_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, r5, [sp, #-32]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr.w r8, [sp, #32] │ │ │ │ │ - ldrd r9, sl, [sp, #40] @ 0x28 │ │ │ │ │ mov r5, r1 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ - ldr r0, [sp, #36] @ 0x24 │ │ │ │ │ + strd r8, r9, [sp, #16] │ │ │ │ │ + ldrd r8, r0, [sp, #32] │ │ │ │ │ + strd sl, lr, [sp, #24] │ │ │ │ │ + ldrd r9, sl, [sp, #40] @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ mov r3, r7 │ │ │ │ │ - strd r8, r0, [sp, #32] │ │ │ │ │ mov r2, r6 │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ mov r1, r5 │ │ │ │ │ + strd r8, r0, [sp, #32] │ │ │ │ │ mov r0, r4 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ strd r9, sl, [sp, #40] @ 0x28 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, lr, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_mpi_plan_dft_3d │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -00000330 : │ │ │ │ │ +00000504 : │ │ │ │ │ fftwf_mpi_plan_many_r2r_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r1 │ │ │ │ │ mov r6, r2 │ │ │ │ │ - sub sp, #12 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r7, r3 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #12 │ │ │ │ │ ldrd r8, r9, [sp, #48] @ 0x30 │ │ │ │ │ str r0, [sp, #4] │ │ │ │ │ ldr.w sl, [sp, #56] @ 0x38 │ │ │ │ │ - ldrd fp, r4, [sp, #64] @ 0x40 │ │ │ │ │ ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ + ldrd fp, r4, [sp, #64] @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ mov r3, r7 │ │ │ │ │ - strd sl, r0, [sp, #56] @ 0x38 │ │ │ │ │ mov r2, r6 │ │ │ │ │ - ldr r0, [sp, #4] │ │ │ │ │ + strd r8, r9, [sp, #48] @ 0x30 │ │ │ │ │ + strd sl, r0, [sp, #56] @ 0x38 │ │ │ │ │ mov r1, r5 │ │ │ │ │ + ldr r0, [sp, #4] │ │ │ │ │ strd fp, r4, [sp, #64] @ 0x40 │ │ │ │ │ - strd r8, r9, [sp, #48] @ 0x30 │ │ │ │ │ add sp, #12 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w lr, [sp], #4 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_mpi_plan_many_r2r │ │ │ │ │ - nop │ │ │ │ │ │ │ │ │ │ -00000370 : │ │ │ │ │ +00000564 : │ │ │ │ │ fftwf_mpi_plan_r2r_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, r5, [sp, #-32]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ - ldrd r8, r9, [sp, #36] @ 0x24 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ - ldr r0, [sp, #32] │ │ │ │ │ + strd r8, r9, [sp, #16] │ │ │ │ │ + ldrd r0, r8, [sp, #32] │ │ │ │ │ + strd sl, lr, [sp, #24] │ │ │ │ │ + ldr.w r9, [sp, #40] @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ + ldrd sl, lr, [sp, #24] │ │ │ │ │ mov r3, r7 │ │ │ │ │ - str r0, [sp, #32] │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ + strd r0, r8, [sp, #32] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - strd r8, r9, [sp, #36] @ 0x24 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + str.w r9, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #32 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_mpi_plan_r2r │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -0000039c : │ │ │ │ │ +000005b0 : │ │ │ │ │ fftwf_mpi_plan_r2r_2d_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, r5, [sp, #-32]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr.w sl, [sp, #44] @ 0x2c │ │ │ │ │ - ldrd r8, r9, [sp, #36] @ 0x24 │ │ │ │ │ mov r5, r1 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ - ldr r0, [sp, #32] │ │ │ │ │ + strd r8, r9, [sp, #16] │ │ │ │ │ + ldrd r0, r8, [sp, #32] │ │ │ │ │ + strd sl, lr, [sp, #24] │ │ │ │ │ + ldrd r9, sl, [sp, #40] @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ mov r3, r7 │ │ │ │ │ - strd r0, r8, [sp, #32] │ │ │ │ │ mov r2, r6 │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ mov r1, r5 │ │ │ │ │ + strd r0, r8, [sp, #32] │ │ │ │ │ mov r0, r4 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ strd r9, sl, [sp, #40] @ 0x28 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, lr, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_mpi_plan_r2r_2d │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -000003d0 : │ │ │ │ │ +000005fc : │ │ │ │ │ fftwf_mpi_plan_r2r_3d_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r1 │ │ │ │ │ mov r6, r2 │ │ │ │ │ - sub sp, #12 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r7, r3 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #12 │ │ │ │ │ ldr.w r8, [sp, #48] @ 0x30 │ │ │ │ │ - ldrd r9, sl, [sp, #56] @ 0x38 │ │ │ │ │ str r0, [sp, #4] │ │ │ │ │ - ldrd fp, r4, [sp, #64] @ 0x40 │ │ │ │ │ ldr r0, [sp, #52] @ 0x34 │ │ │ │ │ + ldrd r9, sl, [sp, #56] @ 0x38 │ │ │ │ │ + ldrd fp, r4, [sp, #64] @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ - mov r3, r7 │ │ │ │ │ strd r8, r0, [sp, #48] @ 0x30 │ │ │ │ │ + mov r3, r7 │ │ │ │ │ mov r2, r6 │ │ │ │ │ ldr r0, [sp, #4] │ │ │ │ │ mov r1, r5 │ │ │ │ │ - strd fp, r4, [sp, #64] @ 0x40 │ │ │ │ │ strd r9, sl, [sp, #56] @ 0x38 │ │ │ │ │ + strd fp, r4, [sp, #64] @ 0x40 │ │ │ │ │ add sp, #12 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w lr, [sp], #4 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_mpi_plan_r2r_3d │ │ │ │ │ - nop │ │ │ │ │ │ │ │ │ │ -00000410 : │ │ │ │ │ +0000065c : │ │ │ │ │ fftwf_mpi_plan_many_dft_r2c_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r1 │ │ │ │ │ - sub sp, #4 │ │ │ │ │ mov r6, r2 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r7, r3 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #4 │ │ │ │ │ ldrd r8, r9, [sp, #40] @ 0x28 │ │ │ │ │ - ldr.w sl, [sp, #48] @ 0x30 │ │ │ │ │ - ldrd r0, fp, [sp, #52] @ 0x34 │ │ │ │ │ + ldrd sl, r0, [sp, #48] @ 0x30 │ │ │ │ │ + ldr.w fp, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ mov r3, r7 │ │ │ │ │ - strd r0, fp, [sp, #52] @ 0x34 │ │ │ │ │ mov r2, r6 │ │ │ │ │ + strd r8, r9, [sp, #40] @ 0x28 │ │ │ │ │ mov r1, r5 │ │ │ │ │ + strd sl, r0, [sp, #48] @ 0x30 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - strd r9, sl, [sp, #44] @ 0x2c │ │ │ │ │ - str.w r8, [sp, #40] @ 0x28 │ │ │ │ │ + str.w fp, [sp, #56] @ 0x38 │ │ │ │ │ add sp, #4 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w lr, [sp], #4 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_mpi_plan_many_dft_r2c │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -0000044c : │ │ │ │ │ +000006bc : │ │ │ │ │ fftwf_mpi_plan_dft_r2c_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ - ldrd r0, r8, [sp, #24] │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ + ldrd r0, r8, [sp, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ mov r3, r7 │ │ │ │ │ - strd r0, r8, [sp, #24] │ │ │ │ │ mov r2, r6 │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ mov r1, r5 │ │ │ │ │ + strd r0, r8, [sp, #24] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r8, lr, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_mpi_plan_dft_r2c │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -00000474 : │ │ │ │ │ +000006f8 : │ │ │ │ │ fftwf_mpi_plan_dft_r2c_2d_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ - ldrd r0, r8, [sp, #24] │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ + ldrd r0, r8, [sp, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ mov r3, r7 │ │ │ │ │ - strd r0, r8, [sp, #24] │ │ │ │ │ mov r2, r6 │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ mov r1, r5 │ │ │ │ │ + strd r0, r8, [sp, #24] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r8, lr, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_mpi_plan_dft_r2c_2d │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -0000049c : │ │ │ │ │ +00000734 : │ │ │ │ │ fftwf_mpi_plan_dft_r2c_3d_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, r5, [sp, #-32]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr.w r8, [sp, #32] │ │ │ │ │ - ldrd r0, r9, [sp, #36] @ 0x24 │ │ │ │ │ mov r5, r1 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + strd r8, r9, [sp, #16] │ │ │ │ │ + ldrd r8, r0, [sp, #32] │ │ │ │ │ + strd sl, lr, [sp, #24] │ │ │ │ │ + ldr.w r9, [sp, #40] @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ + ldrd sl, lr, [sp, #24] │ │ │ │ │ mov r3, r7 │ │ │ │ │ - strd r0, r9, [sp, #36] @ 0x24 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ + strd r8, r0, [sp, #32] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - str.w r8, [sp, #32] │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + str.w r9, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #32 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_mpi_plan_dft_r2c_3d │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -000004cc : │ │ │ │ │ +00000780 : │ │ │ │ │ fftwf_mpi_plan_many_dft_c2r_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r1 │ │ │ │ │ - sub sp, #4 │ │ │ │ │ mov r6, r2 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r7, r3 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #4 │ │ │ │ │ ldrd r8, r9, [sp, #40] @ 0x28 │ │ │ │ │ - ldr.w sl, [sp, #48] @ 0x30 │ │ │ │ │ - ldrd r0, fp, [sp, #52] @ 0x34 │ │ │ │ │ + ldrd sl, r0, [sp, #48] @ 0x30 │ │ │ │ │ + ldr.w fp, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ mov r3, r7 │ │ │ │ │ - strd r0, fp, [sp, #52] @ 0x34 │ │ │ │ │ mov r2, r6 │ │ │ │ │ + strd r8, r9, [sp, #40] @ 0x28 │ │ │ │ │ mov r1, r5 │ │ │ │ │ + strd sl, r0, [sp, #48] @ 0x30 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - strd r9, sl, [sp, #44] @ 0x2c │ │ │ │ │ - str.w r8, [sp, #40] @ 0x28 │ │ │ │ │ + str.w fp, [sp, #56] @ 0x38 │ │ │ │ │ add sp, #4 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w lr, [sp], #4 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_mpi_plan_many_dft_c2r │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -00000508 : │ │ │ │ │ +000007e0 : │ │ │ │ │ fftwf_mpi_plan_dft_c2r_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ - ldrd r0, r8, [sp, #24] │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ + ldrd r0, r8, [sp, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ mov r3, r7 │ │ │ │ │ - strd r0, r8, [sp, #24] │ │ │ │ │ mov r2, r6 │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ mov r1, r5 │ │ │ │ │ + strd r0, r8, [sp, #24] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r8, lr, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_mpi_plan_dft_c2r │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -00000530 : │ │ │ │ │ +0000081c : │ │ │ │ │ fftwf_mpi_plan_dft_c2r_2d_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ - ldrd r0, r8, [sp, #24] │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ + ldrd r0, r8, [sp, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ mov r3, r7 │ │ │ │ │ - strd r0, r8, [sp, #24] │ │ │ │ │ mov r2, r6 │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ mov r1, r5 │ │ │ │ │ + strd r0, r8, [sp, #24] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r8, lr, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_mpi_plan_dft_c2r_2d │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -00000558 : │ │ │ │ │ +00000858 : │ │ │ │ │ fftwf_mpi_plan_dft_c2r_3d_f03(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, r5, [sp, #-32]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr.w r8, [sp, #32] │ │ │ │ │ - ldrd r0, r9, [sp, #36] @ 0x24 │ │ │ │ │ mov r5, r1 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + strd r8, r9, [sp, #16] │ │ │ │ │ + ldrd r8, r0, [sp, #32] │ │ │ │ │ + strd sl, lr, [sp, #24] │ │ │ │ │ + ldr.w r9, [sp, #40] @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ + ldrd sl, lr, [sp, #24] │ │ │ │ │ mov r3, r7 │ │ │ │ │ - strd r0, r9, [sp, #36] @ 0x24 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ + strd r8, r0, [sp, #32] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - str.w r8, [sp, #32] │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + str.w r9, [sp, #40] @ 0x28 │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #32 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_mpi_plan_dft_c2r_3d │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -00000588 : │ │ │ │ │ +000008a4 : │ │ │ │ │ fftwf_mpi_gather_wisdom_f03(): │ │ │ │ │ - push {r3, lr} │ │ │ │ │ + strd r3, lr, [sp, #-8]! │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ - ldmia.w sp!, {r3, lr} │ │ │ │ │ + ldrd r3, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_mpi_gather_wisdom │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -00000598 : │ │ │ │ │ +000008b8 : │ │ │ │ │ fftwf_mpi_broadcast_wisdom_f03(): │ │ │ │ │ - push {r3, lr} │ │ │ │ │ + strd r3, lr, [sp, #-8]! │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_f2c │ │ │ │ │ - ldmia.w sp!, {r3, lr} │ │ │ │ │ + ldrd r3, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_mpi_broadcast_wisdom │ │ │ │ │ nop │ │ │ ├── transpose-alltoall.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 3148 (bytes into file) │ │ │ │ │ + Start of section headers: 3292 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 15 │ │ │ │ │ Section header string table index: 14 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,24 +1,24 @@ │ │ │ │ │ -There are 15 section headers, starting at offset 0xc4c: │ │ │ │ │ +There are 15 section headers, starting at offset 0xcdc: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 000460 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000a04 000198 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000494 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000494 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 000494 00003b 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 0004cf 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 000b9c 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 0004df 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 000bbc 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 0004eb 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 0004eb 000033 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 000520 0002e0 10 13 22 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 000800 000204 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 000bc4 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0004f0 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000a94 000198 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000524 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000524 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 000524 00003b 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 00055f 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 000c2c 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 00056f 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 000c4c 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 00057b 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 00057b 000033 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 0005b0 0002e0 10 13 22 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 000890 000204 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 000c54 000087 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -2,25 +2,25 @@ │ │ │ │ │ Symbol table '.symtab' contains 46 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ 1: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 2: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ 3: 00000004 0 NOTYPE LOCAL DEFAULT 5 .LC1 │ │ │ │ │ 4: 00000008 0 NOTYPE LOCAL DEFAULT 5 .LC2 │ │ │ │ │ - 5: 00000001 60 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 5: 00000001 64 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ 6: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 7: 00000030 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 8: 0000003c 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 9: 0000003d 700 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 10: 000002f0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 11: 000002f9 216 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ - 12: 000002f8 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 13: 000003d1 46 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 14: 00000401 40 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 15: 0000045c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 7: 00000034 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 8: 00000040 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 9: 00000041 772 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 10: 0000033c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 11: 00000345 248 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ + 12: 00000344 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 13: 0000043d 50 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 14: 00000471 52 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 15: 000004ec 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 16: 00000000 0 SECTION LOCAL DEFAULT 6 .data.rel.ro │ │ │ │ │ 17: 00000000 0 NOTYPE LOCAL DEFAULT 6 $d │ │ │ │ │ 18: 00000000 16 OBJECT LOCAL DEFAULT 6 padt.0 │ │ │ │ │ 19: 00000000 0 SECTION LOCAL DEFAULT 8 .data.rel.ro.local │ │ │ │ │ 20: 00000000 0 NOTYPE LOCAL DEFAULT 8 $d │ │ │ │ │ 21: 00000000 12 OBJECT LOCAL DEFAULT 8 sadt.1 │ │ │ │ │ 22: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_rank │ │ │ │ │ @@ -39,11 +39,11 @@ │ │ │ │ │ 35: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mkplan_f_d │ │ │ │ │ 36: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mktensor_1d │ │ │ │ │ 37: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Alltoallv │ │ │ │ │ 38: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Alltoall │ │ │ │ │ 39: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ifree0 │ │ │ │ │ 40: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_free │ │ │ │ │ 41: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_plan_awake │ │ │ │ │ - 42: 00000429 56 FUNC GLOBAL DEFAULT 1 fftwf_mpi_transpose_alltoall_register │ │ │ │ │ + 42: 000004a5 76 FUNC GLOBAL DEFAULT 1 fftwf_mpi_transpose_alltoall_register │ │ │ │ │ 43: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mksolver │ │ │ │ │ 44: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_solver_register │ │ │ │ │ 45: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_transpose_solve │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,65 +1,65 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0xa04 contains 51 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0xa94 contains 51 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000030 00000203 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -00000034 00000403 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -00000038 00000303 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ -0000008a 0000160a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000092 0000170a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -0000009c 0000180a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -000000d8 0000190a R_ARM_THM_CALL 00000000 fftwf_mpi_mkplans_posttranspose │ │ │ │ │ -000000e4 00001a0a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -000000fa 00001b0a R_ARM_THM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ -0000011e 00001c0a R_ARM_THM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ -00000126 00001d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00000142 0000180a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -0000014e 0000180a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -00000186 0000180a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -00000192 0000180a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -0000021e 00001e0a R_ARM_THM_CALL 00000000 fftwf_ops_zero │ │ │ │ │ -0000022c 00001f0a R_ARM_THM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ -00000238 00001f0a R_ARM_THM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ -00000244 00001f0a R_ARM_THM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ -00000250 00001f0a R_ARM_THM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ -0000025e 0000200a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000264 0000200a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -0000026a 0000200a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000270 0000200a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -0000028e 0000210a R_ARM_THM_CALL 00000000 fftwf_mktensor_3d │ │ │ │ │ -00000298 0000220a R_ARM_THM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ -000002a8 0000230a R_ARM_THM_CALL 00000000 fftwf_mkplan_f_d │ │ │ │ │ -000002b6 00001a0a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -000002d0 0000240a R_ARM_THM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ -000002da 0000220a R_ARM_THM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ -000002f0 00000b03 R_ARM_REL32 000002f9 apply │ │ │ │ │ -000002f4 00001003 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -0000032e 0000250a R_ARM_THM_CALL 00000000 MPI_Alltoallv │ │ │ │ │ -0000037a 0000260a R_ARM_THM_CALL 00000000 MPI_Alltoall │ │ │ │ │ -000003aa 0000260a R_ARM_THM_CALL 00000000 MPI_Alltoall │ │ │ │ │ -000003ca 0000250a R_ARM_THM_CALL 00000000 MPI_Alltoallv │ │ │ │ │ -000003d6 0000270a R_ARM_THM_CALL 00000000 fftwf_ifree0 │ │ │ │ │ -000003de 0000280a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -000003e4 0000200a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000003ea 0000200a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000003f0 0000200a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000408 0000290a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -00000410 0000290a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -00000418 0000290a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -00000434 00002b0a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -00000440 00002c0a R_ARM_THM_CALL 00000000 fftwf_solver_register │ │ │ │ │ -00000448 00002b0a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -0000045c 00001303 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -000003fa 0000201e R_ARM_THM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000424 0000291e R_ARM_THM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ -00000458 00002c1e R_ARM_THM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ +00000034 00000203 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +00000038 00000403 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +0000003c 00000303 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ +000000b4 0000160a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000000bc 0000170a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000000c6 0000180a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00000102 0000190a R_ARM_THM_CALL 00000000 fftwf_mpi_mkplans_posttranspose │ │ │ │ │ +00000110 00001a0a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +00000128 00001b0a R_ARM_THM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ +0000014e 00001c0a R_ARM_THM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ +00000158 00001d0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +0000017c 0000180a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00000188 0000180a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +000001c4 0000180a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +000001d0 0000180a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +0000025c 00001e0a R_ARM_THM_CALL 00000000 fftwf_ops_zero │ │ │ │ │ +0000026c 00001f0a R_ARM_THM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ +0000027a 00001f0a R_ARM_THM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ +00000288 00001f0a R_ARM_THM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ +00000296 00001f0a R_ARM_THM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ +000002a0 0000200a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000002a6 0000200a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000002ac 0000200a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000002b2 0000200a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000002d2 0000210a R_ARM_THM_CALL 00000000 fftwf_mktensor_3d │ │ │ │ │ +000002dc 0000220a R_ARM_THM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ +000002ee 0000230a R_ARM_THM_CALL 00000000 fftwf_mkplan_f_d │ │ │ │ │ +00000300 00001a0a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +0000031c 0000240a R_ARM_THM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ +00000326 0000220a R_ARM_THM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ +0000033c 00000b03 R_ARM_REL32 00000345 apply │ │ │ │ │ +00000340 00001003 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +00000384 0000250a R_ARM_THM_CALL 00000000 MPI_Alltoallv │ │ │ │ │ +000003da 0000260a R_ARM_THM_CALL 00000000 MPI_Alltoall │ │ │ │ │ +00000416 0000260a R_ARM_THM_CALL 00000000 MPI_Alltoall │ │ │ │ │ +00000436 0000250a R_ARM_THM_CALL 00000000 MPI_Alltoallv │ │ │ │ │ +00000444 0000270a R_ARM_THM_CALL 00000000 fftwf_ifree0 │ │ │ │ │ +0000044c 0000280a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +00000452 0000200a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000458 0000200a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +0000045e 0000200a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +0000047e 0000290a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +00000486 0000290a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +0000048e 0000290a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +000004b8 00002b0a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +000004c6 00002c0a R_ARM_THM_CALL 00000000 fftwf_solver_register │ │ │ │ │ +000004d0 00002b0a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +000004ec 00001303 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +0000046a 0000201e R_ARM_THM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000004a0 0000291e R_ARM_THM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ +000004e8 00002c1e R_ARM_THM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0xb9c contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0xc2c contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000000 00002d02 R_ARM_ABS32 00000000 fftwf_mpi_transpose_solve │ │ │ │ │ -00000004 00000e02 R_ARM_ABS32 00000401 awake │ │ │ │ │ +00000004 00000e02 R_ARM_ABS32 00000471 awake │ │ │ │ │ 00000008 00000502 R_ARM_ABS32 00000001 print │ │ │ │ │ -0000000c 00000d02 R_ARM_ABS32 000003d1 destroy │ │ │ │ │ +0000000c 00000d02 R_ARM_ABS32 0000043d destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0xbbc contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0xc4c contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000902 R_ARM_ABS32 0000003d mkplan │ │ │ │ │ +00000004 00000902 R_ARM_ABS32 00000041 mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -2,221 +2,230 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ print(): │ │ │ │ │ mov r3, r0 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r0, r1 │ │ │ │ │ - ldr r4, [r1, #0] │ │ │ │ │ - sub sp, #16 │ │ │ │ │ ldr r2, [r3, #108] @ 0x6c │ │ │ │ │ - cbz r2, 2a │ │ │ │ │ - ldr r2, [pc, #32] @ (30 ) │ │ │ │ │ + sub sp, #16 │ │ │ │ │ + ldr r4, [r1, #0] │ │ │ │ │ + cbz r2, 2c │ │ │ │ │ + ldr r2, [pc, #32] @ (34 ) │ │ │ │ │ add r2, pc │ │ │ │ │ ldr r1, [r3, #76] @ 0x4c │ │ │ │ │ str r1, [sp, #8] │ │ │ │ │ ldr r1, [r3, #72] @ 0x48 │ │ │ │ │ str r1, [sp, #4] │ │ │ │ │ ldr r1, [r3, #68] @ 0x44 │ │ │ │ │ str r1, [sp, #0] │ │ │ │ │ - ldr r1, [pc, #20] @ (34 ) │ │ │ │ │ + ldr r1, [pc, #20] @ (38 ) │ │ │ │ │ ldr r3, [r3, #64] @ 0x40 │ │ │ │ │ add r1, pc │ │ │ │ │ blx r4 │ │ │ │ │ add sp, #16 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ - ldr r2, [pc, #12] @ (38 ) │ │ │ │ │ + ldr r2, [pc, #12] @ (3c ) │ │ │ │ │ add r2, pc │ │ │ │ │ - b.n 12 │ │ │ │ │ - .word 0x0000001c │ │ │ │ │ + b.n 14 │ │ │ │ │ + nop │ │ │ │ │ + .word 0x0000001e │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ - .word 0x0000000e │ │ │ │ │ + .word 0x00000010 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ - .word 0x00000008 │ │ │ │ │ + .word 0x0000000a │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ │ │ │ │ │ -0000003c : │ │ │ │ │ +00000040 : │ │ │ │ │ mkplan(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - movs r3, #0 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r2 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ sub sp, #100 @ 0x64 │ │ │ │ │ + ldr r2, [r1, #16] │ │ │ │ │ strd r3, r3, [sp, #68] @ 0x44 │ │ │ │ │ str r3, [sp, #76] @ 0x4c │ │ │ │ │ - ldrd r2, r3, [r1, #16] │ │ │ │ │ + ldr r3, [r1, #20] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - beq.n 6c │ │ │ │ │ + beq.n 82 │ │ │ │ │ ldr.w r2, [r5, #164] @ 0xa4 │ │ │ │ │ mov r4, r1 │ │ │ │ │ - ldr r3, [r1, #24] │ │ │ │ │ mov r7, r0 │ │ │ │ │ - and.w r1, r3, #4 │ │ │ │ │ + ldr r3, [r1, #24] │ │ │ │ │ lsls r2, r2, #19 │ │ │ │ │ - bmi.n 74 │ │ │ │ │ - cbnz r1, 7e │ │ │ │ │ + and.w r1, r3, #4 │ │ │ │ │ + bmi.n 9e │ │ │ │ │ + cbnz r1, a8 │ │ │ │ │ ldr r2, [r7, #8] │ │ │ │ │ - cbz r2, 7e │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + cbz r2, a8 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add sp, #100 @ 0x64 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - beq.n 6c │ │ │ │ │ + beq.n 82 │ │ │ │ │ ldr r2, [r7, #8] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - bne.n 6c │ │ │ │ │ + bne.n 82 │ │ │ │ │ bics.w r8, r3, #12 │ │ │ │ │ - bne.n 6c │ │ │ │ │ + bne.n 82 │ │ │ │ │ add r1, sp, #88 @ 0x58 │ │ │ │ │ - ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ ldr r6, [r4, #4] │ │ │ │ │ + ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ - add r1, sp, #92 @ 0x5c │ │ │ │ │ ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ + add r1, sp, #92 @ 0x5c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ - ldr r2, [sp, #88] @ 0x58 │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ + ldr r2, [sp, #88] @ 0x58 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ mov r2, r0 │ │ │ │ │ ands.w r9, r3, #4 │ │ │ │ │ - beq.w 276 │ │ │ │ │ + beq.w 2b8 │ │ │ │ │ ldr r1, [r7, #8] │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - bne.w 2c2 │ │ │ │ │ + bne.w 30c │ │ │ │ │ ldr r7, [r4, #20] │ │ │ │ │ str r1, [sp, #40] @ 0x28 │ │ │ │ │ mov r3, r7 │ │ │ │ │ add r2, sp, #84 @ 0x54 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ + mov r0, r4 │ │ │ │ │ str r2, [sp, #20] │ │ │ │ │ add r2, sp, #80 @ 0x50 │ │ │ │ │ str r2, [sp, #16] │ │ │ │ │ add r2, sp, #76 @ 0x4c │ │ │ │ │ str r2, [sp, #12] │ │ │ │ │ add r2, sp, #72 @ 0x48 │ │ │ │ │ str r2, [sp, #8] │ │ │ │ │ add r2, sp, #68 @ 0x44 │ │ │ │ │ str r2, [sp, #4] │ │ │ │ │ ldr r2, [sp, #88] @ 0x58 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ str r2, [sp, #0] │ │ │ │ │ - mov r0, r4 │ │ │ │ │ mov r2, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkplans_posttranspose │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #36] @ 0x24 │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_any_true │ │ │ │ │ mov r5, r0 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.w 25c │ │ │ │ │ - ldr r2, [pc, #508] @ (2f0 ) │ │ │ │ │ - movs r0, #112 @ 0x70 │ │ │ │ │ - ldr r1, [pc, #508] @ (2f4 ) │ │ │ │ │ + bne.w 29e │ │ │ │ │ + ldr r2, [pc, #540] @ (33c ) │ │ │ │ │ + mov.w r0, #112 @ 0x70 │ │ │ │ │ + ldr r1, [pc, #540] @ (340 ) │ │ │ │ │ add r2, pc │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_rdft │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ - str r3, [r0, #64] @ 0x40 │ │ │ │ │ + mov r2, r0 │ │ │ │ │ add.w r1, r0, #80 @ 0x50 │ │ │ │ │ + ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ + str r2, [sp, #52] @ 0x34 │ │ │ │ │ + str r3, [r2, #64] @ 0x40 │ │ │ │ │ ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ - str r3, [r0, #68] @ 0x44 │ │ │ │ │ + str r3, [r2, #68] @ 0x44 │ │ │ │ │ ldr r3, [sp, #72] @ 0x48 │ │ │ │ │ - str r3, [r0, #72] @ 0x48 │ │ │ │ │ + str r3, [r2, #72] @ 0x48 │ │ │ │ │ ldr r3, [sp, #80] @ 0x50 │ │ │ │ │ - str r3, [r0, #100] @ 0x64 │ │ │ │ │ + str r3, [r2, #100] @ 0x64 │ │ │ │ │ ldr r3, [sp, #84] @ 0x54 │ │ │ │ │ - str r3, [r0, #104] @ 0x68 │ │ │ │ │ + str r3, [r2, #104] @ 0x68 │ │ │ │ │ ldr r3, [sp, #76] @ 0x4c │ │ │ │ │ - str r3, [r0, #76] @ 0x4c │ │ │ │ │ - str r0, [sp, #52] @ 0x34 │ │ │ │ │ - ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ + str r3, [r2, #76] @ 0x4c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_dup │ │ │ │ │ ldr r0, [sp, #92] @ 0x5c │ │ │ │ │ - lsls r0, r0, #4 │ │ │ │ │ + mov.w r0, r0, lsl #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_malloc_plain │ │ │ │ │ ldr r3, [sp, #92] @ 0x5c │ │ │ │ │ - str r0, [sp, #44] @ 0x2c │ │ │ │ │ - lsls r3, r3, #2 │ │ │ │ │ - adds r7, r0, r3 │ │ │ │ │ + mov.w r3, r3, lsl #2 │ │ │ │ │ + add.w r7, r0, r3 │ │ │ │ │ + add.w r2, r7, r3 │ │ │ │ │ + add.w r1, r2, r3 │ │ │ │ │ + strd r0, r2, [sp, #44] @ 0x2c │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ - adds r2, r7, r3 │ │ │ │ │ - str r2, [sp, #48] @ 0x30 │ │ │ │ │ - adds r1, r2, r3 │ │ │ │ │ - ldr r2, [sp, #88] @ 0x58 │ │ │ │ │ - str r1, [sp, #56] @ 0x38 │ │ │ │ │ + strd r1, r7, [sp, #56] @ 0x38 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - str r7, [sp, #60] @ 0x3c │ │ │ │ │ + ldr r2, [sp, #88] @ 0x58 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ - ldr r2, [sp, #88] @ 0x58 │ │ │ │ │ - mov r8, r0 │ │ │ │ │ ldr r1, [r4, #32] │ │ │ │ │ + mov r8, r0 │ │ │ │ │ ldr r0, [r4, #12] │ │ │ │ │ + ldr r2, [sp, #88] @ 0x58 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ ldr r3, [sp, #92] @ 0x5c │ │ │ │ │ mov r9, r0 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.w 2e8 │ │ │ │ │ - ldr r1, [sp, #56] @ 0x38 │ │ │ │ │ - subs r7, #4 │ │ │ │ │ - ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ + ble.w 336 │ │ │ │ │ + ldrd r3, r2, [sp, #44] @ 0x2c │ │ │ │ │ mov.w ip, #1 │ │ │ │ │ - ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ + sub.w r7, r7, #4 │ │ │ │ │ + ldr r1, [sp, #56] @ 0x38 │ │ │ │ │ + str.w ip, [sp, #36] @ 0x24 │ │ │ │ │ + sub.w r3, r3, #4 │ │ │ │ │ + sub.w fp, r2, #4 │ │ │ │ │ sub.w sl, r1, #4 │ │ │ │ │ - subs r3, #4 │ │ │ │ │ str r3, [sp, #28] │ │ │ │ │ - sub.w fp, r2, #4 │ │ │ │ │ mov r3, sl │ │ │ │ │ mov sl, r5 │ │ │ │ │ mov r5, r4 │ │ │ │ │ - str.w ip, [sp, #36] @ 0x24 │ │ │ │ │ - ldr r1, [r5, #28] │ │ │ │ │ - mov r2, sl │ │ │ │ │ ldr r0, [r5, #8] │ │ │ │ │ + mov r2, sl │ │ │ │ │ str r3, [sp, #32] │ │ │ │ │ + ldr r1, [r5, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ - mov r2, sl │ │ │ │ │ ldr r1, [r5, #32] │ │ │ │ │ + mov r2, sl │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r5, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ ldr r1, [r5, #28] │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ cmp r1, r4 │ │ │ │ │ itt ne │ │ │ │ │ movne r2, #0 │ │ │ │ │ strne r2, [sp, #36] @ 0x24 │ │ │ │ │ - bne.n 1b4 │ │ │ │ │ - ldr r2, [sp, #36] @ 0x24 │ │ │ │ │ + bne.n 1f2 │ │ │ │ │ ldr r1, [r5, #32] │ │ │ │ │ + ldr r2, [sp, #36] @ 0x24 │ │ │ │ │ cmp r1, r0 │ │ │ │ │ ite ne │ │ │ │ │ movne r2, #0 │ │ │ │ │ andeq.w r2, r2, #1 │ │ │ │ │ str r2, [sp, #36] @ 0x24 │ │ │ │ │ mul.w r0, r0, r8 │ │ │ │ │ ldr r2, [sp, #28] │ │ │ │ │ mul.w r4, r4, r9 │ │ │ │ │ mul.w r0, r6, r0 │ │ │ │ │ - str.w r0, [r2, #4]! │ │ │ │ │ mul.w r4, r6, r4 │ │ │ │ │ + str.w r0, [r2, #4]! │ │ │ │ │ ldr r1, [r5, #32] │ │ │ │ │ str r2, [sp, #28] │ │ │ │ │ mul.w r1, r1, r8 │ │ │ │ │ mul.w r1, sl, r1 │ │ │ │ │ mul.w r1, r6, r1 │ │ │ │ │ str.w r1, [r7, #4]! │ │ │ │ │ str.w r4, [fp, #4]! │ │ │ │ │ @@ -224,223 +233,228 @@ │ │ │ │ │ mul.w r1, r1, r9 │ │ │ │ │ mul.w r1, sl, r1 │ │ │ │ │ add.w sl, sl, #1 │ │ │ │ │ mul.w r1, r6, r1 │ │ │ │ │ str.w r1, [r3, #4]! │ │ │ │ │ ldr r1, [sp, #92] @ 0x5c │ │ │ │ │ cmp r1, sl │ │ │ │ │ - bgt.n 17e │ │ │ │ │ + bgt.n 1bc │ │ │ │ │ ldr.w ip, [sp, #36] @ 0x24 │ │ │ │ │ - ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ ldr r2, [sp, #44] @ 0x2c │ │ │ │ │ - add.w r4, r3, #8 │ │ │ │ │ + ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ str r2, [r3, #84] @ 0x54 │ │ │ │ │ - mov r0, r4 │ │ │ │ │ + add.w r4, r3, #8 │ │ │ │ │ ldr r2, [sp, #60] @ 0x3c │ │ │ │ │ + mov r0, r4 │ │ │ │ │ str r2, [r3, #88] @ 0x58 │ │ │ │ │ ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ + str.w ip, [r3, #108] @ 0x6c │ │ │ │ │ str r2, [r3, #92] @ 0x5c │ │ │ │ │ ldr r2, [sp, #56] @ 0x38 │ │ │ │ │ str r2, [r3, #96] @ 0x60 │ │ │ │ │ - str.w ip, [r3, #108] @ 0x6c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ops_zero │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ - cbz r3, 230 │ │ │ │ │ + cbz r3, 270 │ │ │ │ │ mov r0, r3 │ │ │ │ │ mov r1, r4 │ │ │ │ │ - adds r0, #8 │ │ │ │ │ + add.w r0, r0, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ops_add2 │ │ │ │ │ ldr r0, [sp, #68] @ 0x44 │ │ │ │ │ - cbz r0, 23c │ │ │ │ │ + cbz r0, 27e │ │ │ │ │ mov r1, r4 │ │ │ │ │ - adds r0, #8 │ │ │ │ │ + add.w r0, r0, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ops_add2 │ │ │ │ │ ldr r0, [sp, #72] @ 0x48 │ │ │ │ │ - cbz r0, 248 │ │ │ │ │ + cbz r0, 28c │ │ │ │ │ mov r1, r4 │ │ │ │ │ - adds r0, #8 │ │ │ │ │ + add.w r0, r0, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ops_add2 │ │ │ │ │ ldr r0, [sp, #76] @ 0x4c │ │ │ │ │ - cbz r0, 254 │ │ │ │ │ + cbz r0, 29a │ │ │ │ │ mov r1, r4 │ │ │ │ │ - adds r0, #8 │ │ │ │ │ + add.w r0, r0, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ops_add2 │ │ │ │ │ ldr r0, [sp, #52] @ 0x34 │ │ │ │ │ - add sp, #100 @ 0x64 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b.n 86 │ │ │ │ │ ldr r0, [sp, #76] @ 0x4c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [sp, #72] @ 0x48 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [sp, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [sp, #40] @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ - b.n 6c │ │ │ │ │ + b.n 82 │ │ │ │ │ mul.w r2, r6, r2 │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ strd r6, r2, [sp] │ │ │ │ │ mov r2, r6 │ │ │ │ │ - strd r3, r3, [sp, #12] │ │ │ │ │ - str r6, [sp, #8] │ │ │ │ │ + strd r6, r3, [sp, #8] │ │ │ │ │ + str r3, [sp, #16] │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ mul.w r1, r6, r3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor_3d │ │ │ │ │ ldrd r7, r2, [r4, #16] │ │ │ │ │ mov r1, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkproblem_rdft_0_d │ │ │ │ │ - movs r3, #8 │ │ │ │ │ + mov.w r3, #8 │ │ │ │ │ mov r1, r0 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ mov r3, r9 │ │ │ │ │ mov r2, r3 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_f_d │ │ │ │ │ - str r0, [sp, #40] @ 0x28 │ │ │ │ │ + mov r3, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #36] @ 0x24 │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ + str r3, [sp, #40] @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.n 25c │ │ │ │ │ + bne.n 29e │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ - b.n ba │ │ │ │ │ + b.n e4 │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ - movs r2, #1 │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ mov r1, r2 │ │ │ │ │ mul.w r0, r3, r0 │ │ │ │ │ mul.w r0, r6, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor_1d │ │ │ │ │ ldrd r7, r2, [r4, #16] │ │ │ │ │ mov r1, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkproblem_rdft_0_d │ │ │ │ │ - movs r3, #8 │ │ │ │ │ + mov.w r3, #8 │ │ │ │ │ mov r1, r0 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ mov r3, r8 │ │ │ │ │ - b.n 2a4 │ │ │ │ │ + b.n 2ea │ │ │ │ │ mov.w ip, #1 │ │ │ │ │ - b.n 202 │ │ │ │ │ - nop │ │ │ │ │ - .word 0x000001f6 │ │ │ │ │ + b.n 240 │ │ │ │ │ + .word 0x00000214 │ │ │ │ │ R_ARM_REL32 apply │ │ │ │ │ - .word 0x000001f8 │ │ │ │ │ + .word 0x00000216 │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -000002f8 : │ │ │ │ │ +00000344 : │ │ │ │ │ apply(): │ │ │ │ │ - push {r4, r5, r6, r7, lr} │ │ │ │ │ + str.w r4, [sp, #-20]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ - sub sp, #28 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r6, r1 │ │ │ │ │ mov r5, r2 │ │ │ │ │ + strd r7, lr, [sp, #12] │ │ │ │ │ + sub sp, #28 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n 388 │ │ │ │ │ + beq.n 3f4 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ + ldrd r7, r1, [r4, #80] @ 0x50 │ │ │ │ │ ldr r3, [r4, #108] @ 0x6c │ │ │ │ │ - ldr r1, [r4, #84] @ 0x54 │ │ │ │ │ ldr r0, [r4, #92] @ 0x5c │ │ │ │ │ - ldr r7, [r4, #80] @ 0x50 │ │ │ │ │ - cbnz r3, 364 │ │ │ │ │ + cbnz r3, 3c4 │ │ │ │ │ movw r3, #1034 @ 0x40a │ │ │ │ │ movt r3, #19456 @ 0x4c00 │ │ │ │ │ strd r3, r7, [sp, #12] │ │ │ │ │ ldr r2, [r4, #96] @ 0x60 │ │ │ │ │ - strd r0, r2, [sp, #4] │ │ │ │ │ + strd r6, r0, [sp] │ │ │ │ │ mov r0, r5 │ │ │ │ │ - str r6, [sp, #0] │ │ │ │ │ + str r2, [sp, #8] │ │ │ │ │ ldr r2, [r4, #88] @ 0x58 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Alltoallv │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ - cbz r0, 384 │ │ │ │ │ + cbz r0, 3e4 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ mov r2, r5 │ │ │ │ │ mov r1, r6 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ - cbz r0, 384 │ │ │ │ │ + cbz r0, 3e4 │ │ │ │ │ ldrd r1, r2, [r4, #100] @ 0x64 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ add.w r2, r5, r2, lsl #2 │ │ │ │ │ add.w r1, r6, r1, lsl #2 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #76] @ 0x4c │ │ │ │ │ - cbz r0, 384 │ │ │ │ │ + cbz r0, 3e4 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ mov r2, r5 │ │ │ │ │ mov r1, r5 │ │ │ │ │ add sp, #28 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + ldr.w lr, [sp], #4 │ │ │ │ │ bx r3 │ │ │ │ │ - ldr r1, [r1, #0] │ │ │ │ │ movw r2, #1034 @ 0x40a │ │ │ │ │ movt r2, #19456 @ 0x4c00 │ │ │ │ │ + ldr r1, [r1, #0] │ │ │ │ │ strd r2, r7, [sp, #4] │ │ │ │ │ ldr r3, [r0, #0] │ │ │ │ │ mov r0, r5 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ mov r3, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Alltoall │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.n 336 │ │ │ │ │ + bne.n 38c │ │ │ │ │ add sp, #28 │ │ │ │ │ - pop {r4, r5, r6, r7, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + ldrd r7, r1, [r4, #80] @ 0x50 │ │ │ │ │ ldr r3, [r4, #108] @ 0x6c │ │ │ │ │ - ldr r1, [r4, #84] @ 0x54 │ │ │ │ │ ldr r0, [r4, #92] @ 0x5c │ │ │ │ │ - ldr r7, [r4, #80] @ 0x50 │ │ │ │ │ - cbz r3, 3b0 │ │ │ │ │ - ldr r1, [r1, #0] │ │ │ │ │ + cbz r3, 41c │ │ │ │ │ movw r2, #1034 @ 0x40a │ │ │ │ │ movt r2, #19456 @ 0x4c00 │ │ │ │ │ + ldr r1, [r1, #0] │ │ │ │ │ strd r2, r7, [sp, #4] │ │ │ │ │ ldr r3, [r0, #0] │ │ │ │ │ mov r0, r6 │ │ │ │ │ + mov r6, r5 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ mov r3, r5 │ │ │ │ │ - mov r6, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Alltoall │ │ │ │ │ - b.n 332 │ │ │ │ │ + b.n 388 │ │ │ │ │ movw r3, #1034 @ 0x40a │ │ │ │ │ movt r3, #19456 @ 0x4c00 │ │ │ │ │ strd r3, r7, [sp, #12] │ │ │ │ │ ldr r2, [r4, #96] @ 0x60 │ │ │ │ │ - strd r0, r2, [sp, #4] │ │ │ │ │ + strd r5, r0, [sp] │ │ │ │ │ mov r0, r6 │ │ │ │ │ - str r5, [sp, #0] │ │ │ │ │ mov r6, r5 │ │ │ │ │ + str r2, [sp, #8] │ │ │ │ │ ldr r2, [r4, #88] @ 0x58 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Alltoallv │ │ │ │ │ - b.n 332 │ │ │ │ │ + b.n 388 │ │ │ │ │ │ │ │ │ │ -000003d0 : │ │ │ │ │ +0000043c : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #84] @ 0x54 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ifree0 │ │ │ │ │ add.w r0, r4, #80 @ 0x50 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_free │ │ │ │ │ @@ -450,63 +464,70 @@ │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - ldmia.w sp!, {r4, lr} │ │ │ │ │ + ldrd r4, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_plan_destroy_internal │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -00000400 : │ │ │ │ │ +00000470 : │ │ │ │ │ awake(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ + mov r5, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_awake │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_awake │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_awake │ │ │ │ │ ldr r0, [r4, #76] @ 0x4c │ │ │ │ │ mov r1, r5 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, lr} │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + ldrd r5, lr, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_plan_awake │ │ │ │ │ │ │ │ │ │ -00000428 : │ │ │ │ │ +000004a4 : │ │ │ │ │ fftwf_mpi_transpose_alltoall_register(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r5, [pc, #44] @ (45c ) │ │ │ │ │ - movs r0, #12 │ │ │ │ │ + mov.w r0, #12 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ + ldr r5, [pc, #56] @ (4ec ) │ │ │ │ │ add r5, pc │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mksolver │ │ │ │ │ - movs r3, #0 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ + str r3, [r1, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_solver_register │ │ │ │ │ mov r1, r5 │ │ │ │ │ - movs r0, #12 │ │ │ │ │ + mov.w r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mksolver │ │ │ │ │ - movs r3, #1 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + ldrd r5, lr, [sp, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, lr} │ │ │ │ │ + str r3, [r1, #8] │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + add sp, #16 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_solver_register │ │ │ │ │ - .word 0x00000028 │ │ │ │ │ + .word 0x00000034 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ ├── transpose-pairwise.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 5244 (bytes into file) │ │ │ │ │ + Start of section headers: 5568 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 15 │ │ │ │ │ Section header string table index: 14 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,24 +1,24 @@ │ │ │ │ │ -There are 15 section headers, starting at offset 0x147c: │ │ │ │ │ +There are 15 section headers, starting at offset 0x15c0: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 000a7c 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 001114 0002b8 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000ab0 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000ab0 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 000ab0 00003b 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 000aeb 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 0013cc 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 000afb 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 0013ec 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 000b07 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000b07 000033 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 000b3c 000360 10 13 24 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 000e9c 000275 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 0013f4 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000bc0 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 001258 0002b8 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000bf4 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000bf4 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 000bf4 00003b 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 000c2f 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 001510 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 000c3f 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 001530 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 000c4b 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000c4b 000033 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 000c80 000360 10 13 24 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 000fe0 000275 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 001538 000087 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -6,23 +6,23 @@ │ │ │ │ │ 2: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ 3: 00000004 0 NOTYPE LOCAL DEFAULT 5 .LC1 │ │ │ │ │ 4: 00000008 0 NOTYPE LOCAL DEFAULT 5 .LC2 │ │ │ │ │ 5: 00000001 64 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ 6: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ 7: 00000034 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 8: 00000040 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 9: 00000041 316 FUNC LOCAL DEFAULT 1 fill1_comm_sched │ │ │ │ │ - 10: 0000017d 420 FUNC LOCAL DEFAULT 1 transpose_chunks │ │ │ │ │ - 11: 00000321 178 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ - 12: 000003d5 52 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 13: 00000409 40 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 14: 00000659 1004 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 15: 00000a3c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 16: 00000a44 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 17: 00000a78 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 00000041 376 FUNC LOCAL DEFAULT 1 fill1_comm_sched │ │ │ │ │ + 10: 000001b9 474 FUNC LOCAL DEFAULT 1 transpose_chunks │ │ │ │ │ + 11: 00000395 218 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ + 12: 00000471 56 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 13: 000004a9 52 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 14: 00000731 1092 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 15: 00000b6c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 16: 00000b74 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 17: 00000bbc 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 18: 00000000 0 SECTION LOCAL DEFAULT 6 .data.rel.ro │ │ │ │ │ 19: 00000000 0 NOTYPE LOCAL DEFAULT 6 $d │ │ │ │ │ 20: 00000000 16 OBJECT LOCAL DEFAULT 6 padt.0 │ │ │ │ │ 21: 00000000 0 SECTION LOCAL DEFAULT 8 .data.rel.ro.local │ │ │ │ │ 22: 00000000 0 NOTYPE LOCAL DEFAULT 8 $d │ │ │ │ │ 23: 00000000 12 OBJECT LOCAL DEFAULT 8 sadt.1 │ │ │ │ │ 24: 00000000 0 NOTYPE GLOBAL DEFAULT UND __aeabi_idivmod │ │ │ │ │ @@ -31,15 +31,15 @@ │ │ │ │ │ 27: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_malloc_plain │ │ │ │ │ 28: 00000000 0 NOTYPE GLOBAL DEFAULT UND memmove │ │ │ │ │ 29: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ifree │ │ │ │ │ 30: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ifree0 │ │ │ │ │ 31: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_free │ │ │ │ │ 32: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_plan_destroy_internal │ │ │ │ │ 33: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_plan_awake │ │ │ │ │ - 34: 00000431 550 FUNC GLOBAL DEFAULT 1 fftwf_mpi_mkplans_posttranspose │ │ │ │ │ + 34: 000004dd 596 FUNC GLOBAL DEFAULT 1 fftwf_mpi_mkplans_posttranspose │ │ │ │ │ 35: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_block │ │ │ │ │ 36: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mktensor_4d │ │ │ │ │ 37: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mkproblem_rdft_0_d │ │ │ │ │ 38: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mkplan_f_d │ │ │ │ │ 39: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mktensor_3d │ │ │ │ │ 40: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mktensor_2d │ │ │ │ │ 41: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_rank │ │ │ │ │ @@ -47,11 +47,11 @@ │ │ │ │ │ 43: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_any_true │ │ │ │ │ 44: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mkplan_rdft │ │ │ │ │ 45: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_dup │ │ │ │ │ 46: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_num_blocks │ │ │ │ │ 47: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_imax │ │ │ │ │ 48: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ops_zero │ │ │ │ │ 49: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ops_add2 │ │ │ │ │ - 50: 00000a45 56 FUNC GLOBAL DEFAULT 1 fftwf_mpi_transpose_pairwise_register │ │ │ │ │ + 50: 00000b75 76 FUNC GLOBAL DEFAULT 1 fftwf_mpi_transpose_pairwise_register │ │ │ │ │ 51: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mksolver │ │ │ │ │ 52: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_solver_register │ │ │ │ │ 53: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_transpose_solve │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,101 +1,101 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x1114 contains 87 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x1258 contains 87 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000034 00000303 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ 00000038 00000403 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ 0000003c 00000203 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -00000090 0000180a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -000000a4 0000180a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +000000a2 0000180a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ 000000b6 0000180a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -000000ca 0000180a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -00000128 0000180a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -0000013a 0000180a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -0000014c 0000180a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -0000015e 0000180a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -00000222 0000190a R_ARM_THM_CALL 00000000 MPI_Sendrecv │ │ │ │ │ -0000024a 00001a0a R_ARM_THM_CALL 00000000 memcpy │ │ │ │ │ -0000025e 00001b0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -0000029c 00001c0a R_ARM_THM_CALL 00000000 memmove │ │ │ │ │ -000002c4 00001a0a R_ARM_THM_CALL 00000000 memcpy │ │ │ │ │ -0000030c 0000190a R_ARM_THM_CALL 00000000 MPI_Sendrecv │ │ │ │ │ -00000316 00001d0a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ -000003da 00001e0a R_ARM_THM_CALL 00000000 fftwf_ifree0 │ │ │ │ │ -000003e0 00001e0a R_ARM_THM_CALL 00000000 fftwf_ifree0 │ │ │ │ │ -000003e8 00001f0a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -000003ee 0000200a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000003f4 0000200a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000003fa 0000200a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000410 0000210a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -00000418 0000210a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -00000420 0000210a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -0000044e 0000230a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -00000458 0000180a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -000004be 0000240a R_ARM_THM_CALL 00000000 fftwf_mktensor_4d │ │ │ │ │ -000004c6 0000250a R_ARM_THM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ -000004d6 0000260a R_ARM_THM_CALL 00000000 fftwf_mkplan_f_d │ │ │ │ │ -00000510 0000270a R_ARM_THM_CALL 00000000 fftwf_mktensor_3d │ │ │ │ │ -00000524 0000250a R_ARM_THM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ -00000534 0000260a R_ARM_THM_CALL 00000000 fftwf_mkplan_f_d │ │ │ │ │ -00000572 0000270a R_ARM_THM_CALL 00000000 fftwf_mktensor_3d │ │ │ │ │ -0000057a 0000250a R_ARM_THM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ -00000588 0000260a R_ARM_THM_CALL 00000000 fftwf_mkplan_f_d │ │ │ │ │ -000005be 0000280a R_ARM_THM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ -000005d2 0000250a R_ARM_THM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ -000005e0 0000260a R_ARM_THM_CALL 00000000 fftwf_mkplan_f_d │ │ │ │ │ -000005f0 0000200a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000005f8 0000200a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000600 0000200a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -0000062e 0000270a R_ARM_THM_CALL 00000000 fftwf_mktensor_3d │ │ │ │ │ -00000636 0000250a R_ARM_THM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ -00000646 0000260a R_ARM_THM_CALL 00000000 fftwf_mkplan_f_d │ │ │ │ │ -0000069a 0000290a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000006a2 00002a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000006ac 0000230a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -000006f2 0000220a R_ARM_THM_CALL 00000431 fftwf_mpi_mkplans_posttranspose │ │ │ │ │ -000006fc 00002b0a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -0000071e 00002c0a R_ARM_THM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ -00000754 00002d0a R_ARM_THM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ -0000075c 00002e0a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -00000766 00002e0a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -0000076e 00002f0a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ -00000776 00001b0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00000794 0000230a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -000007a0 0000230a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -000007e0 0000230a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -000007ec 0000230a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -00000886 0000300a R_ARM_THM_CALL 00000000 fftwf_ops_zero │ │ │ │ │ -00000892 0000310a R_ARM_THM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ -000008a0 0000310a R_ARM_THM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ -000008ae 0000310a R_ARM_THM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ -000008bc 0000310a R_ARM_THM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ -000008e4 0000270a R_ARM_THM_CALL 00000000 fftwf_mktensor_3d │ │ │ │ │ -000008ec 0000250a R_ARM_THM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ -000008fc 0000260a R_ARM_THM_CALL 00000000 fftwf_mkplan_f_d │ │ │ │ │ -0000090a 00002b0a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -0000091c 0000200a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000922 0000200a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000928 0000200a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -0000092e 0000200a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -0000093a 00001b0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00000958 00001b0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -000009e8 00001d0a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ -00000a3c 00000b03 R_ARM_REL32 00000321 apply │ │ │ │ │ -00000a40 00001203 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -00000a50 0000330a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -00000a5c 0000340a R_ARM_THM_CALL 00000000 fftwf_solver_register │ │ │ │ │ -00000a64 0000330a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -00000a78 00001503 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -00000404 0000201e R_ARM_THM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -0000042c 0000211e R_ARM_THM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ -00000a74 0000341e R_ARM_THM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ +000000c8 0000180a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +000000de 0000180a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +0000015a 0000180a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +0000016e 0000180a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000180 0000180a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000196 0000180a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000274 0000190a R_ARM_THM_CALL 00000000 MPI_Sendrecv │ │ │ │ │ +000002a0 00001a0a R_ARM_THM_CALL 00000000 memcpy │ │ │ │ │ +000002c8 00001b0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +0000030c 00001c0a R_ARM_THM_CALL 00000000 memmove │ │ │ │ │ +0000033a 00001a0a R_ARM_THM_CALL 00000000 memcpy │ │ │ │ │ +00000382 0000190a R_ARM_THM_CALL 00000000 MPI_Sendrecv │ │ │ │ │ +0000038c 00001d0a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ +00000478 00001e0a R_ARM_THM_CALL 00000000 fftwf_ifree0 │ │ │ │ │ +0000047e 00001e0a R_ARM_THM_CALL 00000000 fftwf_ifree0 │ │ │ │ │ +00000486 00001f0a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +0000048c 0000200a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000492 0000200a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000498 0000200a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000004b6 0000210a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +000004be 0000210a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +000004c6 0000210a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +0000050a 0000230a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00000514 0000180a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +0000057c 0000240a R_ARM_THM_CALL 00000000 fftwf_mktensor_4d │ │ │ │ │ +00000584 0000250a R_ARM_THM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ +00000596 0000260a R_ARM_THM_CALL 00000000 fftwf_mkplan_f_d │ │ │ │ │ +000005d2 0000270a R_ARM_THM_CALL 00000000 fftwf_mktensor_3d │ │ │ │ │ +000005e6 0000250a R_ARM_THM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ +000005f8 0000260a R_ARM_THM_CALL 00000000 fftwf_mkplan_f_d │ │ │ │ │ +0000064c 0000270a R_ARM_THM_CALL 00000000 fftwf_mktensor_3d │ │ │ │ │ +00000654 0000250a R_ARM_THM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ +00000662 0000260a R_ARM_THM_CALL 00000000 fftwf_mkplan_f_d │ │ │ │ │ +00000698 0000280a R_ARM_THM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ +000006ac 0000250a R_ARM_THM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ +000006ba 0000260a R_ARM_THM_CALL 00000000 fftwf_mkplan_f_d │ │ │ │ │ +000006ca 0000200a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000006d2 0000200a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000006da 0000200a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000708 0000270a R_ARM_THM_CALL 00000000 fftwf_mktensor_3d │ │ │ │ │ +00000710 0000250a R_ARM_THM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ +00000720 0000260a R_ARM_THM_CALL 00000000 fftwf_mkplan_f_d │ │ │ │ │ +00000798 0000290a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000007a0 00002a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000007aa 0000230a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +000007f0 0000220a R_ARM_THM_CALL 000004dd fftwf_mpi_mkplans_posttranspose │ │ │ │ │ +000007fa 00002b0a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +0000081e 00002c0a R_ARM_THM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ +00000854 00002d0a R_ARM_THM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ +0000085c 00002e0a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +00000866 00002e0a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +0000086e 00002f0a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ +00000878 00001b0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +0000089c 0000230a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +000008a8 0000230a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +000008f0 0000230a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +000008fc 0000230a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +0000099a 0000300a R_ARM_THM_CALL 00000000 fftwf_ops_zero │ │ │ │ │ +000009a6 0000310a R_ARM_THM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ +000009b6 0000310a R_ARM_THM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ +000009c6 0000310a R_ARM_THM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ +000009d6 0000310a R_ARM_THM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ +000009fc 0000270a R_ARM_THM_CALL 00000000 fftwf_mktensor_3d │ │ │ │ │ +00000a04 0000250a R_ARM_THM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ +00000a16 0000260a R_ARM_THM_CALL 00000000 fftwf_mkplan_f_d │ │ │ │ │ +00000a26 00002b0a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +00000a38 0000200a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000a3e 0000200a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000a44 0000200a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000a4a 0000200a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000a5a 00001b0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00000a78 00001b0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00000b14 00001d0a R_ARM_THM_CALL 00000000 fftwf_ifree │ │ │ │ │ +00000b6c 00000b03 R_ARM_REL32 00000395 apply │ │ │ │ │ +00000b70 00001203 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +00000b88 0000330a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +00000b96 0000340a R_ARM_THM_CALL 00000000 fftwf_solver_register │ │ │ │ │ +00000ba0 0000330a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +00000bbc 00001503 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +000004a4 0000201e R_ARM_THM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000004d8 0000211e R_ARM_THM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ +00000bb8 0000341e R_ARM_THM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0x13cc contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0x1510 contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000000 00003502 R_ARM_ABS32 00000000 fftwf_mpi_transpose_solve │ │ │ │ │ -00000004 00000d02 R_ARM_ABS32 00000409 awake │ │ │ │ │ +00000004 00000d02 R_ARM_ABS32 000004a9 awake │ │ │ │ │ 00000008 00000502 R_ARM_ABS32 00000001 print │ │ │ │ │ -0000000c 00000c02 R_ARM_ABS32 000003d5 destroy │ │ │ │ │ +0000000c 00000c02 R_ARM_ABS32 00000471 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0x13ec contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0x1530 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000e02 R_ARM_ABS32 00000659 mkplan │ │ │ │ │ +00000004 00000e02 R_ARM_ABS32 00000731 mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -2,21 +2,21 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ print(): │ │ │ │ │ mov r3, r0 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r0, r1 │ │ │ │ │ - ldr r4, [r1, #0] │ │ │ │ │ - sub sp, #16 │ │ │ │ │ ldr r2, [r3, #120] @ 0x78 │ │ │ │ │ + sub sp, #16 │ │ │ │ │ + ldr r4, [r1, #0] │ │ │ │ │ cmp r2, #2 │ │ │ │ │ - beq.n 2c │ │ │ │ │ + beq.n 2e │ │ │ │ │ ldr r2, [pc, #32] @ (34 ) │ │ │ │ │ add r2, pc │ │ │ │ │ ldr r1, [r3, #76] @ 0x4c │ │ │ │ │ str r1, [sp, #8] │ │ │ │ │ ldr r1, [r3, #72] @ 0x48 │ │ │ │ │ str r1, [sp, #4] │ │ │ │ │ ldr r1, [r3, #68] @ 0x44 │ │ │ │ │ @@ -25,206 +25,218 @@ │ │ │ │ │ ldr r3, [r3, #64] @ 0x40 │ │ │ │ │ add r1, pc │ │ │ │ │ blx r4 │ │ │ │ │ add sp, #16 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ ldr r2, [pc, #12] @ (3c ) │ │ │ │ │ add r2, pc │ │ │ │ │ - b.n 14 │ │ │ │ │ - nop │ │ │ │ │ - .word 0x0000001e │ │ │ │ │ + b.n 16 │ │ │ │ │ + .word 0x0000001c │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x00000010 │ │ │ │ │ + .word 0x0000000e │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ - .word 0x0000000a │ │ │ │ │ + .word 0x00000008 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ 00000040 : │ │ │ │ │ fill1_comm_sched(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - mov r9, r0 │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ + ands.w r4, r2, #1 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r1 │ │ │ │ │ - sub sp, #12 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r7, r2 │ │ │ │ │ - ands.w r4, r2, #1 │ │ │ │ │ - bne.n e2 │ │ │ │ │ - subs r6, r2, #1 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + mov r9, r0 │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #12 │ │ │ │ │ + bne.n 10a │ │ │ │ │ + add.w r6, r2, #4294967295 @ 0xffffffff │ │ │ │ │ str.w r1, [r9] │ │ │ │ │ cmp r6, #0 │ │ │ │ │ - ble.n dc │ │ │ │ │ + ble.n f2 │ │ │ │ │ mov.w r8, #1 │ │ │ │ │ sub.w sl, r6, r1 │ │ │ │ │ - add.w fp, r1, r6 │ │ │ │ │ asr.w r7, r2, r8 │ │ │ │ │ + add.w fp, r1, r6 │ │ │ │ │ cmp r5, r4 │ │ │ │ │ itt eq │ │ │ │ │ streq.w r6, [r9, r8, lsl #2] │ │ │ │ │ addeq.w r8, r8, #1 │ │ │ │ │ - beq.n d6 │ │ │ │ │ + beq.n ea │ │ │ │ │ cmp r5, r6 │ │ │ │ │ itt eq │ │ │ │ │ streq.w r4, [r9, r8, lsl #2] │ │ │ │ │ addeq.w r8, r8, #1 │ │ │ │ │ cmp r5, r6 │ │ │ │ │ - bge.n d6 │ │ │ │ │ + bge.n ea │ │ │ │ │ mov r1, r6 │ │ │ │ │ add.w r0, sl, r4 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ - mov r0, r1 │ │ │ │ │ cmp r7, r1 │ │ │ │ │ - ble.n b0 │ │ │ │ │ + mov r0, r1 │ │ │ │ │ + ble.n c2 │ │ │ │ │ + add.w r3, r8, #1 │ │ │ │ │ mov r1, r6 │ │ │ │ │ add r0, r4 │ │ │ │ │ - add.w r3, r8, #1 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ ldr r3, [sp, #4] │ │ │ │ │ str.w r1, [r9, r8, lsl #2] │ │ │ │ │ mov r8, r3 │ │ │ │ │ mov r1, r6 │ │ │ │ │ sub.w r0, fp, r4 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ cmp r7, r1 │ │ │ │ │ - ble.n d6 │ │ │ │ │ - subs r0, r4, r1 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ - add r0, r6 │ │ │ │ │ + ble.n ea │ │ │ │ │ add.w r3, r8, #1 │ │ │ │ │ + sub.w r0, r4, r1 │ │ │ │ │ + add r0, r6 │ │ │ │ │ + mov r1, r6 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ ldr r3, [sp, #4] │ │ │ │ │ str.w r1, [r9, r8, lsl #2] │ │ │ │ │ mov r8, r3 │ │ │ │ │ - adds r4, #1 │ │ │ │ │ + add.w r4, r4, #1 │ │ │ │ │ cmp r4, r6 │ │ │ │ │ - bne.n 6c │ │ │ │ │ + bne.n 7e │ │ │ │ │ add sp, #12 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - ble.n dc │ │ │ │ │ + ble.n f2 │ │ │ │ │ cmp r2, r1 │ │ │ │ │ - bgt.n 10c │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + bgt.n 13c │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ mov r3, r2 │ │ │ │ │ cmp r5, r3 │ │ │ │ │ - beq.n fc │ │ │ │ │ - adds r3, #1 │ │ │ │ │ + beq.n 128 │ │ │ │ │ + add.w r3, r3, #1 │ │ │ │ │ cmp r3, r7 │ │ │ │ │ - beq.n dc │ │ │ │ │ + beq.n f2 │ │ │ │ │ cmp r5, r3 │ │ │ │ │ - bne.n f2 │ │ │ │ │ - adds r3, r5, #1 │ │ │ │ │ - adds r1, r2, #1 │ │ │ │ │ - cmp r7, r3 │ │ │ │ │ + bne.n 11c │ │ │ │ │ + add.w r3, r5, #1 │ │ │ │ │ + add.w r1, r2, #1 │ │ │ │ │ str.w r5, [r9, r2, lsl #2] │ │ │ │ │ - beq.n dc │ │ │ │ │ + cmp r7, r3 │ │ │ │ │ + beq.n f2 │ │ │ │ │ mov r2, r1 │ │ │ │ │ - b.n ee │ │ │ │ │ + b.n 118 │ │ │ │ │ add.w r8, r2, #1 │ │ │ │ │ - movs r6, #0 │ │ │ │ │ + mov.w r6, #0 │ │ │ │ │ + mov.w r8, r8, asr #1 │ │ │ │ │ mov r4, r6 │ │ │ │ │ sub.w sl, r2, r1 │ │ │ │ │ - mov.w r8, r8, asr #1 │ │ │ │ │ add.w fp, r1, r2 │ │ │ │ │ - b.n 170 │ │ │ │ │ + b.n 1aa │ │ │ │ │ mov r1, r7 │ │ │ │ │ add.w r0, sl, r4 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ - mov r0, r1 │ │ │ │ │ cmp r8, r1 │ │ │ │ │ - ble.n 146 │ │ │ │ │ + mov r0, r1 │ │ │ │ │ + ble.n 17a │ │ │ │ │ + add.w r3, r6, #1 │ │ │ │ │ mov r1, r7 │ │ │ │ │ add r0, r4 │ │ │ │ │ - adds r3, r6, #1 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ ldr r3, [sp, #4] │ │ │ │ │ str.w r1, [r9, r6, lsl #2] │ │ │ │ │ mov r6, r3 │ │ │ │ │ mov r1, r7 │ │ │ │ │ sub.w r0, fp, r4 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ cmp r1, r8 │ │ │ │ │ - bge.n 16a │ │ │ │ │ - subs r0, r4, r1 │ │ │ │ │ - mov r1, r7 │ │ │ │ │ + bge.n 1a2 │ │ │ │ │ + add.w r3, r6, #1 │ │ │ │ │ + sub.w r0, r4, r1 │ │ │ │ │ add r0, r7 │ │ │ │ │ - adds r3, r6, #1 │ │ │ │ │ + mov r1, r7 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ ldr r3, [sp, #4] │ │ │ │ │ str.w r1, [r9, r6, lsl #2] │ │ │ │ │ mov r6, r3 │ │ │ │ │ - adds r4, #1 │ │ │ │ │ + add.w r4, r4, #1 │ │ │ │ │ cmp r7, r4 │ │ │ │ │ - beq.n dc │ │ │ │ │ + beq.n f2 │ │ │ │ │ cmp r5, r4 │ │ │ │ │ - bne.n 122 │ │ │ │ │ + bne.n 154 │ │ │ │ │ str.w r5, [r9, r6, lsl #2] │ │ │ │ │ - adds r6, #1 │ │ │ │ │ - b.n 16a │ │ │ │ │ + add.w r6, r6, #1 │ │ │ │ │ + b.n 1a2 │ │ │ │ │ │ │ │ │ │ -0000017c : │ │ │ │ │ +000001b8 : │ │ │ │ │ transpose_chunks(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ sub sp, #92 @ 0x5c │ │ │ │ │ ldr.w r8, [sp, #136] @ 0x88 │ │ │ │ │ ldr r7, [sp, #144] @ 0x90 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n 252 │ │ │ │ │ + beq.n 2a8 │ │ │ │ │ mov fp, r3 │ │ │ │ │ - ldr r3, [sp, #148] @ 0x94 │ │ │ │ │ mov r6, r1 │ │ │ │ │ + ldr r3, [sp, #148] @ 0x94 │ │ │ │ │ mov sl, r2 │ │ │ │ │ mov r4, r0 │ │ │ │ │ cmp r7, r3 │ │ │ │ │ - beq.n 258 │ │ │ │ │ + beq.n 2c0 │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - ble.n 252 │ │ │ │ │ + ble.n 2a8 │ │ │ │ │ mul.w r3, r2, r1 │ │ │ │ │ movw r9, #1034 @ 0x40a │ │ │ │ │ movt r9, #19456 @ 0x4c00 │ │ │ │ │ + sub.w r4, r0, #4 │ │ │ │ │ + mov.w r5, #0 │ │ │ │ │ str r3, [sp, #36] @ 0x24 │ │ │ │ │ - lsls r3, r2, #2 │ │ │ │ │ - str.w r9, [sp, #48] @ 0x30 │ │ │ │ │ + mov.w r3, r2, lsl #2 │ │ │ │ │ + strd fp, r9, [sp, #44] @ 0x2c │ │ │ │ │ add.w r2, r8, r3 │ │ │ │ │ + ldr.w r9, [sp, #132] @ 0x84 │ │ │ │ │ str r2, [sp, #52] @ 0x34 │ │ │ │ │ ldr r2, [sp, #128] @ 0x80 │ │ │ │ │ - subs r4, r0, #4 │ │ │ │ │ - ldr.w r9, [sp, #132] @ 0x84 │ │ │ │ │ - movs r5, #0 │ │ │ │ │ add r2, r3 │ │ │ │ │ add r3, fp │ │ │ │ │ - str r2, [sp, #56] @ 0x38 │ │ │ │ │ - str r3, [sp, #60] @ 0x3c │ │ │ │ │ - add r3, sp, #68 @ 0x44 │ │ │ │ │ - strd r3, fp, [sp, #40] @ 0x28 │ │ │ │ │ ldr.w fp, [sp, #148] @ 0x94 │ │ │ │ │ - b.n 22a │ │ │ │ │ + strd r2, r3, [sp, #56] @ 0x38 │ │ │ │ │ + add r3, sp, #68 @ 0x44 │ │ │ │ │ + str r3, [sp, #40] @ 0x28 │ │ │ │ │ + b.n 27c │ │ │ │ │ ldr r2, [sp, #44] @ 0x2c │ │ │ │ │ - adds r5, #1 │ │ │ │ │ + add.w r5, r5, #1 │ │ │ │ │ ldr.w r1, [r2, r3, lsl #2] │ │ │ │ │ ldr r2, [sp, #128] @ 0x80 │ │ │ │ │ ldr.w r0, [r2, r3, lsl #2] │ │ │ │ │ + str r3, [sp, #16] │ │ │ │ │ ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ + add.w r0, r7, r0, lsl #2 │ │ │ │ │ str r2, [sp, #28] │ │ │ │ │ ldr r2, [sp, #140] @ 0x8c │ │ │ │ │ - add.w r0, r7, r0, lsl #2 │ │ │ │ │ str r2, [sp, #24] │ │ │ │ │ mla r2, r3, r6, sl │ │ │ │ │ ubfx r2, r2, #0, #15 │ │ │ │ │ - strd r3, r2, [sp, #16] │ │ │ │ │ + str r2, [sp, #20] │ │ │ │ │ ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ str r2, [sp, #12] │ │ │ │ │ ldr.w r2, [r9, r3, lsl #2] │ │ │ │ │ str r2, [sp, #8] │ │ │ │ │ ldr.w r2, [r8, r3, lsl #2] │ │ │ │ │ add.w r2, fp, r2, lsl #2 │ │ │ │ │ str r2, [sp, #4] │ │ │ │ │ @@ -233,87 +245,93 @@ │ │ │ │ │ ubfx r2, r2, #0, #15 │ │ │ │ │ str r2, [sp, #0] │ │ │ │ │ movw r2, #1034 @ 0x40a │ │ │ │ │ movt r2, #19456 @ 0x4c00 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Sendrecv │ │ │ │ │ cmp r6, r5 │ │ │ │ │ - beq.n 252 │ │ │ │ │ + beq.n 2a8 │ │ │ │ │ ldr.w r3, [r4, #4]! │ │ │ │ │ cmp r3, sl │ │ │ │ │ - bne.n 1d6 │ │ │ │ │ + bne.n 226 │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - adds r5, #1 │ │ │ │ │ + add.w r5, r5, #1 │ │ │ │ │ ldr r0, [r3, #0] │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ add.w r0, fp, r0, lsl #2 │ │ │ │ │ ldr r2, [r3, #0] │ │ │ │ │ ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ - lsls r2, r2, #2 │ │ │ │ │ + mov.w r2, r2, lsl #2 │ │ │ │ │ ldr r1, [r3, #0] │ │ │ │ │ add.w r1, r7, r1, lsl #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL memcpy │ │ │ │ │ cmp r6, r5 │ │ │ │ │ - bne.n 22a │ │ │ │ │ + bne.n 27c │ │ │ │ │ add sp, #92 @ 0x5c │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldr.w r0, [fp] │ │ │ │ │ - lsls r0, r0, #2 │ │ │ │ │ + mov.w r0, r0, lsl #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_malloc_plain │ │ │ │ │ cmp r6, #0 │ │ │ │ │ mov r9, r0 │ │ │ │ │ - ble.n 314 │ │ │ │ │ + ble.n 38a │ │ │ │ │ mul.w r3, r6, sl │ │ │ │ │ movw ip, #1034 @ 0x40a │ │ │ │ │ movt ip, #19456 @ 0x4c00 │ │ │ │ │ - str r3, [sp, #40] @ 0x28 │ │ │ │ │ ldr r7, [sp, #148] @ 0x94 │ │ │ │ │ + sub.w r4, r4, #4 │ │ │ │ │ + mov.w r5, #0 │ │ │ │ │ + str r3, [sp, #40] @ 0x28 │ │ │ │ │ add r3, sp, #68 @ 0x44 │ │ │ │ │ - subs r4, #4 │ │ │ │ │ - movs r5, #0 │ │ │ │ │ - str r3, [sp, #44] @ 0x2c │ │ │ │ │ str.w ip, [sp, #48] @ 0x30 │ │ │ │ │ - b.n 2a6 │ │ │ │ │ + str r3, [sp, #44] @ 0x2c │ │ │ │ │ + b.n 318 │ │ │ │ │ ldr.w r0, [r8, r3, lsl #2] │ │ │ │ │ cmp r0, r1 │ │ │ │ │ - beq.n 2a0 │ │ │ │ │ + beq.n 310 │ │ │ │ │ ldr.w r2, [fp, r3, lsl #2] │ │ │ │ │ add.w r1, r7, r1, lsl #2 │ │ │ │ │ add.w r0, r7, r0, lsl #2 │ │ │ │ │ - lsls r2, r2, #2 │ │ │ │ │ + mov.w r2, r2, lsl #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL memmove │ │ │ │ │ - adds r5, #1 │ │ │ │ │ + add.w r5, r5, #1 │ │ │ │ │ cmp r6, r5 │ │ │ │ │ - beq.n 314 │ │ │ │ │ + beq.n 38a │ │ │ │ │ ldr.w r3, [r4, #4]! │ │ │ │ │ ldr r2, [sp, #128] @ 0x80 │ │ │ │ │ cmp sl, r3 │ │ │ │ │ ldr.w r1, [r2, r3, lsl #2] │ │ │ │ │ - beq.n 286 │ │ │ │ │ - ldr.w r2, [fp, r3, lsl #2] │ │ │ │ │ + beq.n 2f4 │ │ │ │ │ add.w r1, r7, r1, lsl #2 │ │ │ │ │ mov r0, r9 │ │ │ │ │ str r3, [sp, #36] @ 0x24 │ │ │ │ │ - adds r5, #1 │ │ │ │ │ - lsls r2, r2, #2 │ │ │ │ │ + ldr.w r2, [fp, r3, lsl #2] │ │ │ │ │ + add.w r5, r5, #1 │ │ │ │ │ + mov.w r2, r2, lsl #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL memcpy │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ - ldr r2, [sp, #44] @ 0x2c │ │ │ │ │ mov r0, r9 │ │ │ │ │ + ldr r2, [sp, #44] @ 0x2c │ │ │ │ │ ldr.w r1, [fp, r3, lsl #2] │ │ │ │ │ + str r3, [sp, #16] │ │ │ │ │ str r2, [sp, #28] │ │ │ │ │ ldr r2, [sp, #140] @ 0x8c │ │ │ │ │ str r2, [sp, #24] │ │ │ │ │ mla r2, r3, r6, sl │ │ │ │ │ ubfx r2, r2, #0, #15 │ │ │ │ │ - strd r3, r2, [sp, #16] │ │ │ │ │ + str r2, [sp, #20] │ │ │ │ │ ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ str r2, [sp, #12] │ │ │ │ │ ldr r2, [sp, #132] @ 0x84 │ │ │ │ │ ldr.w r2, [r2, r3, lsl #2] │ │ │ │ │ str r2, [sp, #8] │ │ │ │ │ ldr.w r2, [r8, r3, lsl #2] │ │ │ │ │ add.w r2, r7, r2, lsl #2 │ │ │ │ │ @@ -323,31 +341,34 @@ │ │ │ │ │ ubfx r2, r2, #0, #15 │ │ │ │ │ str r2, [sp, #0] │ │ │ │ │ movw r2, #1034 @ 0x40a │ │ │ │ │ movt r2, #19456 @ 0x4c00 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Sendrecv │ │ │ │ │ cmp r6, r5 │ │ │ │ │ - bne.n 2a6 │ │ │ │ │ + bne.n 318 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ifree │ │ │ │ │ - add sp, #92 @ 0x5c │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b.n 2a8 │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -00000320 : │ │ │ │ │ +00000394 : │ │ │ │ │ apply(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ - sub sp, #28 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r1 │ │ │ │ │ mov r6, r2 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ + sub sp, #28 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n 394 │ │ │ │ │ + beq.n 430 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r3, [r4, #120] @ 0x78 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ it ne │ │ │ │ │ movne r5, r6 │ │ │ │ │ strd r6, r5, [sp, #16] │ │ │ │ │ @@ -355,64 +376,71 @@ │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ ldr r3, [r4, #112] @ 0x70 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [r4, #108] @ 0x6c │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [r4, #104] @ 0x68 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - ldr r3, [r4, #100] @ 0x64 │ │ │ │ │ ldrd r1, r2, [r4, #88] @ 0x58 │ │ │ │ │ - ldr r0, [r4, #96] @ 0x60 │ │ │ │ │ - bl 17c │ │ │ │ │ + ldrd r0, r3, [r4, #96] @ 0x60 │ │ │ │ │ + bl 1b8 │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ - cbz r0, 38e │ │ │ │ │ + cbz r0, 41c │ │ │ │ │ ldrd r1, r2, [r4, #80] @ 0x50 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ add.w r2, r6, r2, lsl #2 │ │ │ │ │ add.w r1, r5, r1, lsl #2 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #76] @ 0x4c │ │ │ │ │ - cbz r0, 38e │ │ │ │ │ + cbz r0, 41c │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r6 │ │ │ │ │ add sp, #28 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w lr, [sp], #4 │ │ │ │ │ bx r3 │ │ │ │ │ add sp, #28 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ - ldrd r8, r3, [r4, #116] @ 0x74 │ │ │ │ │ - ldr r0, [r4, #96] @ 0x60 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldrd r1, r2, [r4, #88] @ 0x58 │ │ │ │ │ - ldrd r9, r7, [r4, #100] @ 0x64 │ │ │ │ │ - ldrd ip, lr, [r4, #108] @ 0x6c │ │ │ │ │ - cbz r3, 3be │ │ │ │ │ - strd r5, r6, [sp, #16] │ │ │ │ │ + ldr r3, [r4, #120] @ 0x78 │ │ │ │ │ + ldrd r0, r9, [r4, #96] @ 0x60 │ │ │ │ │ + ldrd r7, ip, [r4, #104] @ 0x68 │ │ │ │ │ + ldrd lr, r8, [r4, #112] @ 0x70 │ │ │ │ │ + cbz r3, 45a │ │ │ │ │ mov r3, r9 │ │ │ │ │ + strd r7, ip, [sp] │ │ │ │ │ strd lr, r8, [sp, #8] │ │ │ │ │ + strd r5, r6, [sp, #16] │ │ │ │ │ mov r5, r6 │ │ │ │ │ - strd r7, ip, [sp] │ │ │ │ │ - bl 17c │ │ │ │ │ - b.n 35e │ │ │ │ │ + bl 1b8 │ │ │ │ │ + b.n 3de │ │ │ │ │ mov r3, r9 │ │ │ │ │ - strd r5, r5, [sp, #16] │ │ │ │ │ - strd lr, r8, [sp, #8] │ │ │ │ │ strd r7, ip, [sp] │ │ │ │ │ - bl 17c │ │ │ │ │ - b.n 35e │ │ │ │ │ + strd lr, r8, [sp, #8] │ │ │ │ │ + strd r5, r5, [sp, #16] │ │ │ │ │ + bl 1b8 │ │ │ │ │ + b.n 3de │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -000003d4 : │ │ │ │ │ +00000470 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #96] @ 0x60 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ifree0 │ │ │ │ │ ldr r0, [r4, #100] @ 0x64 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ifree0 │ │ │ │ │ @@ -425,443 +453,455 @@ │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - ldmia.w sp!, {r4, lr} │ │ │ │ │ + ldrd r4, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_plan_destroy_internal │ │ │ │ │ │ │ │ │ │ -00000408 : │ │ │ │ │ +000004a8 : │ │ │ │ │ awake(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ + mov r5, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_awake │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_awake │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_awake │ │ │ │ │ ldr r0, [r4, #76] @ 0x4c │ │ │ │ │ mov r1, r5 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, lr} │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + ldrd r5, lr, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_plan_awake │ │ │ │ │ │ │ │ │ │ -00000430 : │ │ │ │ │ +000004dc : │ │ │ │ │ fftwf_mpi_mkplans_posttranspose(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + mov r7, r3 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ ldr.w r8, [r0, #28] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ sub sp, #52 @ 0x34 │ │ │ │ │ - ldr r5, [r0, #4] │ │ │ │ │ mov fp, r2 │ │ │ │ │ - mov r7, r3 │ │ │ │ │ - ldr r2, [sp, #88] @ 0x58 │ │ │ │ │ + ldr r5, [r0, #4] │ │ │ │ │ str r1, [sp, #32] │ │ │ │ │ - mul.w sl, r8, r5 │ │ │ │ │ ldr r1, [r0, #32] │ │ │ │ │ ldr r0, [r0, #12] │ │ │ │ │ + mul.w sl, r8, r5 │ │ │ │ │ + ldr r2, [sp, #88] @ 0x58 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ - mov r1, r8 │ │ │ │ │ mov r6, r0 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ + mov r1, r8 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ ldr r2, [sp, #100] @ 0x64 │ │ │ │ │ - movs r3, #0 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ strd r0, r1, [sp, #36] @ 0x24 │ │ │ │ │ str r3, [r2, #0] │ │ │ │ │ ldr r2, [sp, #96] @ 0x60 │ │ │ │ │ str r3, [r2, #0] │ │ │ │ │ ldr r2, [sp, #92] @ 0x5c │ │ │ │ │ str r3, [r2, #0] │ │ │ │ │ ldr r2, [sp, #108] @ 0x6c │ │ │ │ │ str r3, [r2, #0] │ │ │ │ │ ldr r2, [sp, #104] @ 0x68 │ │ │ │ │ str r3, [r2, #0] │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ ands.w r9, r3, #8 │ │ │ │ │ - bne.n 492 │ │ │ │ │ + bne.n 550 │ │ │ │ │ subs.w r3, fp, r7 │ │ │ │ │ it ne │ │ │ │ │ movne r3, #1 │ │ │ │ │ cmp r1, #0 │ │ │ │ │ it eq │ │ │ │ │ orreq.w r3, r3, #1 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.n 550 │ │ │ │ │ + bne.n 628 │ │ │ │ │ mul.w r2, r6, r8 │ │ │ │ │ - strd sl, r5, [sp] │ │ │ │ │ - mul.w r3, r6, r5 │ │ │ │ │ - ldr r0, [sp, #36] @ 0x24 │ │ │ │ │ - str r3, [sp, #44] @ 0x2c │ │ │ │ │ mov.w r9, #1 │ │ │ │ │ - strd r3, r5, [sp, #16] │ │ │ │ │ - mov r3, r6 │ │ │ │ │ + ldr r0, [sp, #36] @ 0x24 │ │ │ │ │ + mul.w r3, r6, r5 │ │ │ │ │ + strd sl, r5, [sp] │ │ │ │ │ + mov.w sl, #8 │ │ │ │ │ + strd r8, r5, [sp, #8] │ │ │ │ │ mul.w r2, r5, r2 │ │ │ │ │ + strd r3, r5, [sp, #16] │ │ │ │ │ strd r9, r9, [sp, #24] │ │ │ │ │ - strd r8, r5, [sp, #8] │ │ │ │ │ - mov.w sl, #8 │ │ │ │ │ mov r1, r2 │ │ │ │ │ + str r3, [sp, #44] @ 0x2c │ │ │ │ │ + mov r3, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor_4d │ │ │ │ │ mov r2, r7 │ │ │ │ │ mov r1, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkproblem_rdft_0_d │ │ │ │ │ - movs r3, #0 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - mov r2, r3 │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ + mov r2, r3 │ │ │ │ │ str.w sl, [sp] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_f_d │ │ │ │ │ ldr r3, [sp, #92] @ 0x5c │ │ │ │ │ str r0, [r3, #0] │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.w 5ec │ │ │ │ │ + beq.w 6c6 │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ mov r0, r6 │ │ │ │ │ ldr r2, [sp, #108] @ 0x6c │ │ │ │ │ mul.w r3, r6, r3 │ │ │ │ │ mul.w r3, r8, r3 │ │ │ │ │ mul.w r3, r5, r3 │ │ │ │ │ str r3, [r2, #0] │ │ │ │ │ ldr r2, [sp, #104] @ 0x68 │ │ │ │ │ str r3, [r2, #0] │ │ │ │ │ mov r2, r5 │ │ │ │ │ ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ - strd r5, r3, [sp] │ │ │ │ │ + str r5, [sp, #0] │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ - strd r9, r9, [sp, #12] │ │ │ │ │ - str r5, [sp, #8] │ │ │ │ │ + strd r5, r9, [sp, #8] │ │ │ │ │ + str.w r9, [sp, #16] │ │ │ │ │ mul.w r1, r3, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor_3d │ │ │ │ │ ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ ldr r2, [r3, #0] │ │ │ │ │ ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ add.w r2, r7, r2, lsl #2 │ │ │ │ │ ldr r1, [r3, #0] │ │ │ │ │ add.w r1, fp, r1, lsl #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkproblem_rdft_0_d │ │ │ │ │ - movs r3, #0 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - mov r2, r3 │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ + mov r2, r3 │ │ │ │ │ str.w sl, [sp] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_f_d │ │ │ │ │ ldr r3, [sp, #96] @ 0x60 │ │ │ │ │ str r0, [r3, #0] │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n 5ec │ │ │ │ │ + beq.n 6c6 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ ands.w r8, r3, #8 │ │ │ │ │ - beq.n 618 │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + beq.n 6f0 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ add sp, #52 @ 0x34 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ + mov.w r8, #1 │ │ │ │ │ mul.w r1, sl, r6 │ │ │ │ │ mov r2, sl │ │ │ │ │ - mov.w r8, #1 │ │ │ │ │ - str.w sl, [sp] │ │ │ │ │ - movs r4, #8 │ │ │ │ │ - strd r8, r8, [sp, #12] │ │ │ │ │ + mov.w r4, #8 │ │ │ │ │ + strd sl, r8, [sp, #8] │ │ │ │ │ + str.w r8, [sp, #16] │ │ │ │ │ mul.w r3, r3, r5 │ │ │ │ │ + strd sl, r3, [sp] │ │ │ │ │ str r3, [sp, #44] @ 0x2c │ │ │ │ │ - strd r3, sl, [sp, #4] │ │ │ │ │ mov r3, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor_3d │ │ │ │ │ mov r2, r7 │ │ │ │ │ mov r1, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkproblem_rdft_0_d │ │ │ │ │ - mov r3, r9 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - mov r2, r9 │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ + mov r3, r9 │ │ │ │ │ + mov r2, r9 │ │ │ │ │ str r4, [sp, #0] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_f_d │ │ │ │ │ ldr r3, [sp, #92] @ 0x5c │ │ │ │ │ str r0, [r3, #0] │ │ │ │ │ - cbz r0, 5ec │ │ │ │ │ + cbz r0, 6c6 │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 548 │ │ │ │ │ + ble.n 60c │ │ │ │ │ ldr r2, [sp, #36] @ 0x24 │ │ │ │ │ mov r0, r6 │ │ │ │ │ ldr r1, [sp, #104] @ 0x68 │ │ │ │ │ mul.w r3, r2, r6 │ │ │ │ │ mul.w r3, sl, r3 │ │ │ │ │ str r3, [r1, #0] │ │ │ │ │ mul.w r3, sl, r2 │ │ │ │ │ ldr r2, [sp, #108] @ 0x6c │ │ │ │ │ str r3, [r2, #0] │ │ │ │ │ - ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ - ldr r2, [sp, #44] @ 0x2c │ │ │ │ │ + ldrd r3, r2, [sp, #40] @ 0x28 │ │ │ │ │ strd r8, r8, [sp] │ │ │ │ │ mul.w r3, r5, r3 │ │ │ │ │ mov r1, r3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor_2d │ │ │ │ │ ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ ldr r2, [r3, #0] │ │ │ │ │ ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ add.w r2, r7, r2, lsl #2 │ │ │ │ │ ldr r1, [r3, #0] │ │ │ │ │ add.w r1, fp, r1, lsl #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkproblem_rdft_0_d │ │ │ │ │ - mov r3, r9 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - mov r2, r9 │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ + mov r3, r9 │ │ │ │ │ + mov r2, r9 │ │ │ │ │ str r4, [sp, #0] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_f_d │ │ │ │ │ ldr r3, [sp, #96] @ 0x60 │ │ │ │ │ str r0, [r3, #0] │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.n 548 │ │ │ │ │ + bne.n 60c │ │ │ │ │ ldr r3, [sp, #100] @ 0x64 │ │ │ │ │ ldr r0, [r3, #0] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r3, [sp, #96] @ 0x60 │ │ │ │ │ ldr r0, [r3, #0] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r3, [sp, #92] @ 0x5c │ │ │ │ │ ldr r0, [r3, #0] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r3, [sp, #100] @ 0x64 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ str r0, [r3, #0] │ │ │ │ │ ldr r3, [sp, #96] @ 0x60 │ │ │ │ │ str r0, [r3, #0] │ │ │ │ │ ldr r3, [sp, #92] @ 0x5c │ │ │ │ │ str r0, [r3, #0] │ │ │ │ │ - add sp, #52 @ 0x34 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b.n 610 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ mov r2, r5 │ │ │ │ │ + strd r5, r9, [sp, #8] │ │ │ │ │ ldr r1, [sp, #44] @ 0x2c │ │ │ │ │ - strd r9, r9, [sp, #12] │ │ │ │ │ - str r5, [sp, #8] │ │ │ │ │ + str.w r9, [sp, #16] │ │ │ │ │ mul.w r3, r5, r0 │ │ │ │ │ strd r5, r3, [sp] │ │ │ │ │ mov r3, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor_3d │ │ │ │ │ mov r2, r7 │ │ │ │ │ mov r1, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkproblem_rdft_0_d │ │ │ │ │ - mov r3, r8 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - mov r2, r8 │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ + mov r3, r8 │ │ │ │ │ + mov r2, r8 │ │ │ │ │ str.w sl, [sp] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_f_d │ │ │ │ │ ldr r3, [sp, #100] @ 0x64 │ │ │ │ │ str r0, [r3, #0] │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.w 548 │ │ │ │ │ - b.n 5f0 │ │ │ │ │ - nop │ │ │ │ │ + bne.w 60c │ │ │ │ │ + b.n 6ca │ │ │ │ │ │ │ │ │ │ -00000658 : │ │ │ │ │ +00000730 : │ │ │ │ │ mkplan(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - movs r3, #0 │ │ │ │ │ - mov r8, r0 │ │ │ │ │ - sub sp, #116 @ 0x74 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + mov r8, r0 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ mov r9, r2 │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #116 @ 0x74 │ │ │ │ │ strd r3, r3, [sp, #84] @ 0x54 │ │ │ │ │ str r3, [sp, #92] @ 0x5c │ │ │ │ │ ldr r3, [r0, #8] │ │ │ │ │ - cbz r3, 688 │ │ │ │ │ + cbz r3, 786 │ │ │ │ │ ldr.w r3, [r2, #164] @ 0xa4 │ │ │ │ │ lsls r0, r3, #19 │ │ │ │ │ - bpl.n 680 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + bpl.n 77e │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add sp, #116 @ 0x74 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldrd r2, r3, [r1, #16] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - beq.n 678 │ │ │ │ │ + beq.n 762 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ bics.w r5, r3, #12 │ │ │ │ │ - bne.n 678 │ │ │ │ │ + bne.n 762 │ │ │ │ │ add r1, sp, #104 @ 0x68 │ │ │ │ │ - ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ ldr r6, [r4, #4] │ │ │ │ │ + ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ ldrd sl, fp, [r4, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ - add r1, sp, #108 @ 0x6c │ │ │ │ │ ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ + add r1, sp, #108 @ 0x6c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ - ldr r2, [sp, #104] @ 0x68 │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ + ldr r2, [sp, #104] @ 0x68 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ ldr r7, [r4, #24] │ │ │ │ │ mov r3, r0 │ │ │ │ │ ands.w r7, r7, #4 │ │ │ │ │ - beq.w 8cc │ │ │ │ │ + beq.w 9e2 │ │ │ │ │ ldr.w r3, [r8, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.w 8c8 │ │ │ │ │ + bne.w 9de │ │ │ │ │ ldr.w r3, [r9, #164] @ 0xa4 │ │ │ │ │ tst.w r3, #4096 @ 0x1000 │ │ │ │ │ it ne │ │ │ │ │ movne sl, fp │ │ │ │ │ add r3, sp, #100 @ 0x64 │ │ │ │ │ + mov r2, sl │ │ │ │ │ + mov r1, r9 │ │ │ │ │ + mov r0, r4 │ │ │ │ │ str r3, [sp, #20] │ │ │ │ │ add r3, sp, #96 @ 0x60 │ │ │ │ │ str r3, [sp, #16] │ │ │ │ │ add r3, sp, #92 @ 0x5c │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ add r3, sp, #88 @ 0x58 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ add r3, sp, #84 @ 0x54 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ - mov r2, sl │ │ │ │ │ - mov r1, r9 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - mov r0, r4 │ │ │ │ │ mov r3, fp │ │ │ │ │ - bl 430 │ │ │ │ │ + bl 4dc │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkplans_posttranspose │ │ │ │ │ ldr r1, [r4, #36] @ 0x24 │ │ │ │ │ eor.w r0, r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_any_true │ │ │ │ │ - ldr r3, [sp, #84] @ 0x54 │ │ │ │ │ - ldr r2, [sp, #88] @ 0x58 │ │ │ │ │ + ldrd r3, r2, [sp, #84] @ 0x54 │ │ │ │ │ ldr r1, [sp, #92] @ 0x5c │ │ │ │ │ - str r3, [sp, #48] @ 0x30 │ │ │ │ │ - str r2, [sp, #44] @ 0x2c │ │ │ │ │ - str r1, [sp, #40] @ 0x28 │ │ │ │ │ str r0, [sp, #76] @ 0x4c │ │ │ │ │ + strd r1, r2, [sp, #40] @ 0x28 │ │ │ │ │ + str r3, [sp, #48] @ 0x30 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.w 91a │ │ │ │ │ - ldr r2, [pc, #804] @ (a3c ) │ │ │ │ │ - movs r0, #128 @ 0x80 │ │ │ │ │ - ldr r1, [pc, #804] @ (a40 ) │ │ │ │ │ + bne.w a36 │ │ │ │ │ + ldr r2, [pc, #856] @ (b6c ) │ │ │ │ │ + mov.w r0, #128 @ 0x80 │ │ │ │ │ + ldr r1, [pc, #852] @ (b70 ) │ │ │ │ │ add r2, pc │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_rdft │ │ │ │ │ - ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ - str r3, [r0, #68] @ 0x44 │ │ │ │ │ + ldrd r1, r2, [sp, #40] @ 0x28 │ │ │ │ │ mov r7, r0 │ │ │ │ │ + ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ + strd r5, r3, [r0, #64] @ 0x40 │ │ │ │ │ ldr r3, [sp, #96] @ 0x60 │ │ │ │ │ + strd r2, r1, [r0, #72] @ 0x48 │ │ │ │ │ str r3, [r0, #80] @ 0x50 │ │ │ │ │ ldr r3, [sp, #100] @ 0x64 │ │ │ │ │ str r3, [r0, #84] @ 0x54 │ │ │ │ │ ldr.w r3, [r8, #8] │ │ │ │ │ - ldr r2, [sp, #44] @ 0x2c │ │ │ │ │ - ldr r1, [sp, #40] @ 0x28 │ │ │ │ │ - str r5, [r0, #64] @ 0x40 │ │ │ │ │ - str r2, [r0, #72] @ 0x48 │ │ │ │ │ - str r1, [r0, #76] @ 0x4c │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.w 934 │ │ │ │ │ + bne.w a50 │ │ │ │ │ ldr.w r3, [r9, #164] @ 0xa4 │ │ │ │ │ and.w r3, r3, #4096 @ 0x1000 │ │ │ │ │ - str r3, [r7, #120] @ 0x78 │ │ │ │ │ - add.w r1, r7, #116 @ 0x74 │ │ │ │ │ ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ + add.w r1, r7, #116 @ 0x74 │ │ │ │ │ + str r3, [r7, #120] @ 0x78 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_dup │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks │ │ │ │ │ ldr r1, [r4, #32] │ │ │ │ │ mov r8, r0 │ │ │ │ │ ldr r0, [r4, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_imax │ │ │ │ │ str r0, [sp, #108] @ 0x6c │ │ │ │ │ - lsls r0, r0, #4 │ │ │ │ │ + mov.w r0, r0, lsl #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_malloc_plain │ │ │ │ │ ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ mov r2, r0 │ │ │ │ │ - str r0, [sp, #52] @ 0x34 │ │ │ │ │ - lsls r3, r3, #2 │ │ │ │ │ + mov.w r3, r3, lsl #2 │ │ │ │ │ add r2, r3 │ │ │ │ │ - str r2, [sp, #56] @ 0x38 │ │ │ │ │ - adds r1, r2, r3 │ │ │ │ │ + add.w r1, r2, r3 │ │ │ │ │ + strd r0, r2, [sp, #52] @ 0x34 │ │ │ │ │ + add.w r0, r1, r3 │ │ │ │ │ ldr r2, [sp, #104] @ 0x68 │ │ │ │ │ - adds r0, r1, r3 │ │ │ │ │ str r1, [sp, #60] @ 0x3c │ │ │ │ │ - str r0, [sp, #64] @ 0x40 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ + str r0, [sp, #64] @ 0x40 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ - ldr r2, [sp, #104] @ 0x68 │ │ │ │ │ ldr r1, [r4, #32] │ │ │ │ │ mov r8, r0 │ │ │ │ │ ldr r0, [r4, #12] │ │ │ │ │ + ldr r2, [sp, #104] @ 0x68 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ mov r9, r0 │ │ │ │ │ ldr r0, [sp, #108] @ 0x6c │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - ble.w 9ee │ │ │ │ │ - ldr r2, [sp, #56] @ 0x38 │ │ │ │ │ + ble.w b1a │ │ │ │ │ + ldrd r3, r2, [sp, #52] @ 0x34 │ │ │ │ │ mov.w sl, #0 │ │ │ │ │ - ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - ldr r1, [sp, #60] @ 0x3c │ │ │ │ │ - subs r3, #4 │ │ │ │ │ - ldr r0, [sp, #64] @ 0x40 │ │ │ │ │ - str r3, [sp, #24] │ │ │ │ │ - subs r3, r2, #4 │ │ │ │ │ strd r5, r7, [sp, #68] @ 0x44 │ │ │ │ │ mov r7, sl │ │ │ │ │ - mov sl, r3 │ │ │ │ │ - subs r2, r0, #4 │ │ │ │ │ + ldrd r1, r0, [sp, #60] @ 0x3c │ │ │ │ │ + sub.w r3, r3, #4 │ │ │ │ │ + str r3, [sp, #24] │ │ │ │ │ + sub.w r3, r2, #4 │ │ │ │ │ + sub.w r2, r0, #4 │ │ │ │ │ sub.w fp, r1, #4 │ │ │ │ │ + mov sl, r3 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ str r2, [sp, #28] │ │ │ │ │ - movs r1, #1 │ │ │ │ │ mov.w r2, #4294967295 @ 0xffffffff │ │ │ │ │ strd r2, r1, [sp, #32] │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ - mov r2, r7 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ + mov r2, r7 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ ldr r1, [r4, #32] │ │ │ │ │ mov r5, r0 │ │ │ │ │ mov r2, r7 │ │ │ │ │ ldr r0, [r4, #12] │ │ │ │ │ bl 0 │ │ │ │ │ @@ -884,248 +924,249 @@ │ │ │ │ │ mul.w r1, r1, r9 │ │ │ │ │ mul.w r1, r7, r1 │ │ │ │ │ mul.w r1, r6, r1 │ │ │ │ │ str.w r1, [r3, #4]! │ │ │ │ │ mul.w r1, r0, r5 │ │ │ │ │ str r3, [sp, #28] │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - ble.n 856 │ │ │ │ │ + ble.n 966 │ │ │ │ │ ldr r1, [r4, #32] │ │ │ │ │ mul.w r5, r1, r5 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ mul.w r0, r1, r0 │ │ │ │ │ cmp r5, r0 │ │ │ │ │ - beq.n 856 │ │ │ │ │ + beq.n 966 │ │ │ │ │ ite gt │ │ │ │ │ movgt r3, #1 │ │ │ │ │ movle r3, #0 │ │ │ │ │ strd r7, r3, [sp, #32] │ │ │ │ │ ldr r0, [sp, #108] @ 0x6c │ │ │ │ │ - adds r7, #1 │ │ │ │ │ + add.w r7, r7, #1 │ │ │ │ │ cmp r0, r7 │ │ │ │ │ - bgt.n 7da │ │ │ │ │ + bgt.n 8ea │ │ │ │ │ ldrd r5, r7, [sp, #68] @ 0x44 │ │ │ │ │ - str r0, [r7, #88] @ 0x58 │ │ │ │ │ ldr r2, [sp, #52] @ 0x34 │ │ │ │ │ + ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ str r2, [r7, #100] @ 0x64 │ │ │ │ │ + cmp r3, r0 │ │ │ │ │ ldr r2, [sp, #56] @ 0x38 │ │ │ │ │ - ldr r3, [sp, #104] @ 0x68 │ │ │ │ │ + strd r0, r3, [r7, #88] @ 0x58 │ │ │ │ │ str r2, [r7, #104] @ 0x68 │ │ │ │ │ ldr r2, [sp, #60] @ 0x3c │ │ │ │ │ - cmp r3, r0 │ │ │ │ │ str r2, [r7, #108] @ 0x6c │ │ │ │ │ ldr r2, [sp, #64] @ 0x40 │ │ │ │ │ - str r3, [r7, #92] @ 0x5c │ │ │ │ │ str r2, [r7, #112] @ 0x70 │ │ │ │ │ - blt.n 938 │ │ │ │ │ - movs r3, #0 │ │ │ │ │ + blt.n a56 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ str r3, [r7, #96] @ 0x60 │ │ │ │ │ add.w r4, r7, #8 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ops_zero │ │ │ │ │ - cbz r5, 896 │ │ │ │ │ + cbz r5, 9aa │ │ │ │ │ mov r1, r4 │ │ │ │ │ add.w r0, r5, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ops_add2 │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ - cbz r3, 8a4 │ │ │ │ │ + cbz r3, 9ba │ │ │ │ │ mov r0, r3 │ │ │ │ │ mov r1, r4 │ │ │ │ │ - adds r0, #8 │ │ │ │ │ + add.w r0, r0, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ops_add2 │ │ │ │ │ ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ - cbz r3, 8b2 │ │ │ │ │ + cbz r3, 9ca │ │ │ │ │ mov r0, r3 │ │ │ │ │ mov r1, r4 │ │ │ │ │ - adds r0, #8 │ │ │ │ │ + add.w r0, r0, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ops_add2 │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ - cbz r3, 8c0 │ │ │ │ │ + cbz r3, 9da │ │ │ │ │ mov r0, r3 │ │ │ │ │ mov r1, r4 │ │ │ │ │ - adds r0, #8 │ │ │ │ │ + add.w r0, r0, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ops_add2 │ │ │ │ │ mov r0, r7 │ │ │ │ │ - add sp, #116 @ 0x74 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b.n 766 │ │ │ │ │ mov sl, fp │ │ │ │ │ - b.n 6d2 │ │ │ │ │ + b.n 7d0 │ │ │ │ │ mul.w r3, r6, r3 │ │ │ │ │ - movs r2, #1 │ │ │ │ │ - str r6, [sp, #8] │ │ │ │ │ - strd r2, r2, [sp, #12] │ │ │ │ │ - mov r2, r6 │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ strd r6, r3, [sp] │ │ │ │ │ + strd r6, r2, [sp, #8] │ │ │ │ │ + str r2, [sp, #16] │ │ │ │ │ + mov r2, r6 │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ mul.w r1, r6, r3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor_3d │ │ │ │ │ mov r2, fp │ │ │ │ │ mov r1, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkproblem_rdft_0_d │ │ │ │ │ - movs r3, #8 │ │ │ │ │ + mov.w r3, #8 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [sp, #0] │ │ │ │ │ mov r2, r7 │ │ │ │ │ - mov r3, r7 │ │ │ │ │ mov r0, r9 │ │ │ │ │ + str r3, [sp, #0] │ │ │ │ │ + mov r3, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_f_d │ │ │ │ │ mov r5, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #36] @ 0x24 │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.w 6bc │ │ │ │ │ - strd r7, r7, [sp, #44] @ 0x2c │ │ │ │ │ - str r7, [sp, #40] @ 0x28 │ │ │ │ │ + beq.w 7ba │ │ │ │ │ + strd r7, r7, [sp, #40] @ 0x28 │ │ │ │ │ + str r7, [sp, #48] @ 0x30 │ │ │ │ │ ldr r0, [sp, #40] @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [sp, #44] @ 0x2c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [sp, #48] @ 0x30 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ - b.n 678 │ │ │ │ │ - movs r3, #2 │ │ │ │ │ - b.n 74c │ │ │ │ │ - lsls r0, r0, #2 │ │ │ │ │ + b.n 762 │ │ │ │ │ + mov.w r3, #2 │ │ │ │ │ + b.n 84c │ │ │ │ │ + mov.w r0, r0, lsl #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_malloc_plain │ │ │ │ │ - str r0, [r7, #96] @ 0x60 │ │ │ │ │ ldrd r1, r2, [sp, #104] @ 0x68 │ │ │ │ │ mov r6, r0 │ │ │ │ │ + str r0, [r7, #96] @ 0x60 │ │ │ │ │ bl 40 │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ adds r3, #1 │ │ │ │ │ - beq.n 880 │ │ │ │ │ + beq.n 994 │ │ │ │ │ ldr.w r8, [sp, #108] @ 0x6c │ │ │ │ │ mov.w r0, r8, lsl #3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_malloc_plain │ │ │ │ │ ldr r1, [sp, #32] │ │ │ │ │ mov r2, r8 │ │ │ │ │ mov r4, r0 │ │ │ │ │ bl 40 │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.n 9fa │ │ │ │ │ + bne.n b28 │ │ │ │ │ cmp.w r8, #0 │ │ │ │ │ - ble.n 9e6 │ │ │ │ │ + ble.n b12 │ │ │ │ │ mov.w r0, r8, lsl #2 │ │ │ │ │ - mov.w ip, r8, lsl #1 │ │ │ │ │ sub.w r9, r6, #4 │ │ │ │ │ - add.w ip, ip, #4294967295 @ 0xffffffff │ │ │ │ │ mov r2, r4 │ │ │ │ │ + mov.w ip, r8, lsl #1 │ │ │ │ │ mov r1, r9 │ │ │ │ │ add.w lr, r4, r0 │ │ │ │ │ mov sl, r0 │ │ │ │ │ + add.w ip, ip, #4294967295 @ 0xffffffff │ │ │ │ │ ldr.w r3, [r2], #4 │ │ │ │ │ ldr.w r0, [r1, #4]! │ │ │ │ │ sub.w r3, ip, r3 │ │ │ │ │ cmp r2, lr │ │ │ │ │ str.w r0, [r4, r3, lsl #2] │ │ │ │ │ - bne.n 98c │ │ │ │ │ + bne.n aac │ │ │ │ │ mov r0, sl │ │ │ │ │ cmp.w r8, #7 │ │ │ │ │ - ble.n a28 │ │ │ │ │ + ble.n b56 │ │ │ │ │ add.w r2, r8, #1 │ │ │ │ │ - lsls r2, r2, #2 │ │ │ │ │ - adds r3, r4, r2 │ │ │ │ │ + mov.w r2, r2, lsl #2 │ │ │ │ │ + add.w r3, r4, r2 │ │ │ │ │ cmp r6, r3 │ │ │ │ │ - beq.n a28 │ │ │ │ │ + beq.n b56 │ │ │ │ │ mov.w ip, r8, lsr #1 │ │ │ │ │ - subs r2, #4 │ │ │ │ │ + sub.w r2, r2, #4 │ │ │ │ │ mov r3, r6 │ │ │ │ │ - adds r1, r4, r2 │ │ │ │ │ + add.w r1, r4, r2 │ │ │ │ │ add.w ip, r6, ip, lsl #3 │ │ │ │ │ ldrd r0, r2, [r1] │ │ │ │ │ + add.w r1, r1, #8 │ │ │ │ │ strd r0, r2, [r3] │ │ │ │ │ - adds r3, #8 │ │ │ │ │ - adds r1, #8 │ │ │ │ │ + add.w r3, r3, #8 │ │ │ │ │ cmp r3, ip │ │ │ │ │ - bne.n 9c2 │ │ │ │ │ + bne.n aea │ │ │ │ │ tst.w r8, #1 │ │ │ │ │ - beq.n 9e6 │ │ │ │ │ + beq.n b12 │ │ │ │ │ bic.w r3, r8, #1 │ │ │ │ │ add r8, r3 │ │ │ │ │ ldr.w r2, [r4, r8, lsl #2] │ │ │ │ │ str.w r2, [r6, r3, lsl #2] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ifree │ │ │ │ │ - b.n 880 │ │ │ │ │ + b.n 994 │ │ │ │ │ mov.w r3, #4294967295 @ 0xffffffff │ │ │ │ │ - movs r2, #1 │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ strd r3, r2, [sp, #32] │ │ │ │ │ - b.n 862 │ │ │ │ │ + b.n 974 │ │ │ │ │ cmp.w r8, #0 │ │ │ │ │ - ble.n 9e6 │ │ │ │ │ + ble.n b12 │ │ │ │ │ mov.w r0, r8, lsl #2 │ │ │ │ │ sub.w r9, r6, #4 │ │ │ │ │ mov r2, r4 │ │ │ │ │ mov r1, r9 │ │ │ │ │ add.w ip, r4, r0 │ │ │ │ │ mov lr, r0 │ │ │ │ │ ldr.w r3, [r2], #4 │ │ │ │ │ ldr.w r0, [r1, #4]! │ │ │ │ │ add r3, r8 │ │ │ │ │ cmp r2, ip │ │ │ │ │ str.w r0, [r4, r3, lsl #2] │ │ │ │ │ - bne.n a12 │ │ │ │ │ + bne.n b40 │ │ │ │ │ mov r0, lr │ │ │ │ │ - b.n 9a2 │ │ │ │ │ + b.n ac2 │ │ │ │ │ ldr r3, [sp, #76] @ 0x4c │ │ │ │ │ add r0, r4 │ │ │ │ │ + add.w r3, r3, #1 │ │ │ │ │ ldr.w r2, [r0], #4 │ │ │ │ │ - adds r3, #1 │ │ │ │ │ cmp r8, r3 │ │ │ │ │ str.w r2, [r9, #4]! │ │ │ │ │ - bgt.n a2c │ │ │ │ │ - b.n 9e6 │ │ │ │ │ - .word 0x0000031e │ │ │ │ │ + bgt.n b5a │ │ │ │ │ + b.n b12 │ │ │ │ │ + .word 0x0000034e │ │ │ │ │ R_ARM_REL32 apply │ │ │ │ │ - .word 0x00000320 │ │ │ │ │ + .word 0x00000350 │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -00000a44 : │ │ │ │ │ +00000b74 : │ │ │ │ │ fftwf_mpi_transpose_pairwise_register(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r5, [pc, #44] @ (a78 ) │ │ │ │ │ - movs r0, #12 │ │ │ │ │ + mov.w r0, #12 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ + ldr r5, [pc, #56] @ (bbc ) │ │ │ │ │ add r5, pc │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mksolver │ │ │ │ │ - movs r3, #0 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ + str r3, [r1, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_solver_register │ │ │ │ │ mov r1, r5 │ │ │ │ │ - movs r0, #12 │ │ │ │ │ + mov.w r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mksolver │ │ │ │ │ - movs r3, #1 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + ldrd r5, lr, [sp, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, lr} │ │ │ │ │ + str r3, [r1, #8] │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + add sp, #16 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_solver_register │ │ │ │ │ - .word 0x00000028 │ │ │ │ │ + .word 0x00000034 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ ├── transpose-recurse.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 4060 (bytes into file) │ │ │ │ │ + Start of section headers: 4232 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 15 │ │ │ │ │ Section header string table index: 14 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,24 +1,24 @@ │ │ │ │ │ -There are 15 section headers, starting at offset 0xfdc: │ │ │ │ │ +There are 15 section headers, starting at offset 0x1088: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 00064c 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000cbc 000270 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000680 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000680 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 000680 00004a 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 0006ca 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 000f2c 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 0006da 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 000f4c 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 0006e6 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 0006e6 000033 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 00071c 000350 10 13 26 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 000a6c 000250 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 000f54 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0006f8 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000d68 000270 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 00072c 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 00072c 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 00072c 00004a 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 000776 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 000fd8 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 000786 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 000ff8 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 000792 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000792 000033 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 0007c8 000350 10 13 26 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 000b18 000250 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 001000 000087 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,30 +1,30 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 53 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ - 1: 00000001 54 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ + 1: 00000001 72 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ 2: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ 3: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 4: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ 5: 00000004 0 NOTYPE LOCAL DEFAULT 5 .LC1 │ │ │ │ │ 6: 00000008 0 NOTYPE LOCAL DEFAULT 5 .LC2 │ │ │ │ │ - 7: 00000039 76 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 8: 00000078 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 9: 00000084 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 10: 00000085 26 FUNC LOCAL DEFAULT 1 radix_first │ │ │ │ │ - 11: 000000a1 38 FUNC LOCAL DEFAULT 1 radix_sqrt │ │ │ │ │ - 12: 000000c9 26 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 13: 000000e5 32 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 14: 00000105 1248 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 15: 000005dc 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 7: 00000049 88 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 8: 00000094 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 000000a0 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 10: 000000a1 38 FUNC LOCAL DEFAULT 1 radix_first │ │ │ │ │ + 11: 000000c9 52 FUNC LOCAL DEFAULT 1 radix_sqrt │ │ │ │ │ + 12: 000000fd 30 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 13: 0000011d 44 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 14: 00000149 1324 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 15: 0000066c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 16: 0000003c 0 NOTYPE LOCAL DEFAULT 5 .LC3 │ │ │ │ │ 17: 00000044 0 NOTYPE LOCAL DEFAULT 5 .LC4 │ │ │ │ │ - 18: 000005e4 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 19: 00000638 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 18: 00000674 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 19: 000006e4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 20: 00000000 0 SECTION LOCAL DEFAULT 6 .data.rel.ro │ │ │ │ │ 21: 00000000 0 NOTYPE LOCAL DEFAULT 6 $d │ │ │ │ │ 22: 00000000 16 OBJECT LOCAL DEFAULT 6 padt.0 │ │ │ │ │ 23: 00000000 0 SECTION LOCAL DEFAULT 8 .data.rel.ro.local │ │ │ │ │ 24: 00000000 0 NOTYPE LOCAL DEFAULT 8 $d │ │ │ │ │ 25: 00000000 12 OBJECT LOCAL DEFAULT 8 sadt.1 │ │ │ │ │ 26: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_first_divisor │ │ │ │ │ @@ -46,11 +46,11 @@ │ │ │ │ │ 42: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mkplan_d │ │ │ │ │ 43: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_free │ │ │ │ │ 44: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mkplan_rdft │ │ │ │ │ 45: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ops_add2 │ │ │ │ │ 46: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mktensor_3d │ │ │ │ │ 47: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mktensor_4d │ │ │ │ │ 48: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_toobig │ │ │ │ │ - 49: 000005e5 104 FUNC GLOBAL DEFAULT 1 fftwf_mpi_transpose_recurse_register │ │ │ │ │ + 49: 00000675 132 FUNC GLOBAL DEFAULT 1 fftwf_mpi_transpose_recurse_register │ │ │ │ │ 50: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mksolver │ │ │ │ │ 51: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_solver_register │ │ │ │ │ 52: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_transpose_solve │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,92 +1,92 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0xcbc contains 78 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0xd68 contains 78 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000078 00000503 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ -0000007c 00000603 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -00000080 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -00000088 00001a0a R_ARM_THM_CALL 00000000 fftwf_first_divisor │ │ │ │ │ -00000090 00001b0a R_ARM_THM_CALL 00000000 fftwf_isqrt │ │ │ │ │ -000000a4 00001b0a R_ARM_THM_CALL 00000000 fftwf_isqrt │ │ │ │ │ -000000ae 00001c0a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -000000ba 00001c0a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -000000ce 00001d0a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000000d4 00001d0a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000000ec 00001e0a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -000000f4 00001e0a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -0000011a 00001f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000178 0000200a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -0000019c 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -000001aa 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -000001b4 0000220a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ -000001be 00001c0a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -000001cc 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -000001d8 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -000001e4 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -000001f4 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -000001fe 0000220a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ -0000020c 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -0000021a 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -00000224 0000220a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ -00000266 0000200a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000278 0000200a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000294 00001f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -0000029c 0000230a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000002a4 0000200a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000002b4 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -0000031a 0000240a R_ARM_THM_CALL 00000000 fftwf_mktensor_5d │ │ │ │ │ -00000322 0000250a R_ARM_THM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ -00000332 0000260a R_ARM_THM_CALL 00000000 fftwf_mkplan_f_d │ │ │ │ │ -00000342 0000270a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -00000368 0000200a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000378 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -00000386 0000200a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000394 0000280a R_ARM_THM_CALL 00000000 MPI_Comm_split │ │ │ │ │ -000003d4 0000290a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ -000003dc 00002a0a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -000003ec 00002b0a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -00000402 0000270a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -0000040e 00001c0a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -0000041c 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -0000042a 00001c0a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ -00000434 0000280a R_ARM_THM_CALL 00000000 MPI_Comm_split │ │ │ │ │ -00000446 00002b0a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -00000458 0000270a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -0000046a 00002c0a R_ARM_THM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ -000004b4 00002d0a R_ARM_THM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ -000004c4 00002d0a R_ARM_THM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ -000004d6 00001d0a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000004dc 00001d0a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000004e2 00001d0a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -0000050c 00002e0a R_ARM_THM_CALL 00000000 fftwf_mktensor_3d │ │ │ │ │ -00000514 0000250a R_ARM_THM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ -00000524 0000260a R_ARM_THM_CALL 00000000 fftwf_mkplan_f_d │ │ │ │ │ -00000558 00002f0a R_ARM_THM_CALL 00000000 fftwf_mktensor_4d │ │ │ │ │ -00000588 0000290a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ -00000590 00002a0a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -000005ae 0000200a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000005c0 0000200a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -000005c4 0000300a R_ARM_THM_CALL 00000000 fftwf_toobig │ │ │ │ │ -000005dc 00000103 R_ARM_REL32 00000001 apply │ │ │ │ │ -000005e0 00001403 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -000005f6 0000320a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -00000608 0000330a R_ARM_THM_CALL 00000000 fftwf_solver_register │ │ │ │ │ -00000610 0000320a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -00000626 0000330a R_ARM_THM_CALL 00000000 fftwf_solver_register │ │ │ │ │ -00000638 00001703 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -0000063c 00000b03 R_ARM_REL32 000000a1 radix_sqrt │ │ │ │ │ -00000640 00001003 R_ARM_REL32 0000003c .LC3 │ │ │ │ │ -00000644 00000a03 R_ARM_REL32 00000085 radix_first │ │ │ │ │ -00000648 00001103 R_ARM_REL32 00000044 .LC4 │ │ │ │ │ -000000de 00001d1e R_ARM_THM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000100 00001e1e R_ARM_THM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ +00000094 00000503 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ +00000098 00000603 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +0000009c 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +000000aa 00001a0a R_ARM_THM_CALL 00000000 fftwf_first_divisor │ │ │ │ │ +000000b2 00001b0a R_ARM_THM_CALL 00000000 fftwf_isqrt │ │ │ │ │ +000000d2 00001b0a R_ARM_THM_CALL 00000000 fftwf_isqrt │ │ │ │ │ +000000dc 00001c0a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +000000ea 00001c0a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000104 00001d0a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +0000010a 00001d0a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +0000012a 00001e0a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +00000132 00001e0a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +0000016e 00001f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000001e0 0000200a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000204 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00000212 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +0000021c 0000220a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ +00000226 00001c0a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000234 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00000240 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +0000024c 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +0000025c 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00000266 0000220a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ +00000274 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00000282 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +0000028c 0000220a R_ARM_THM_CALL 00000000 fftwf_imax │ │ │ │ │ +000002ce 0000200a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +000002e0 0000200a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +000002fc 00001f0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000304 0000230a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +0000030c 0000200a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +0000031c 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00000388 0000240a R_ARM_THM_CALL 00000000 fftwf_mktensor_5d │ │ │ │ │ +00000390 0000250a R_ARM_THM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ +000003a2 0000260a R_ARM_THM_CALL 00000000 fftwf_mkplan_f_d │ │ │ │ │ +000003b4 0000270a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +000003da 0000200a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +000003ea 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +000003f8 0000200a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000406 0000280a R_ARM_THM_CALL 00000000 MPI_Comm_split │ │ │ │ │ +00000448 0000290a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ +00000450 00002a0a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +00000462 00002b0a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +00000478 0000270a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +00000484 00001c0a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +00000492 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +000004a0 00001c0a R_ARM_THM_CALL 00000000 __aeabi_idivmod │ │ │ │ │ +000004aa 0000280a R_ARM_THM_CALL 00000000 MPI_Comm_split │ │ │ │ │ +000004bc 00002b0a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +000004ce 0000270a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +000004e2 00002c0a R_ARM_THM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ +0000053c 00002d0a R_ARM_THM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ +0000054c 00002d0a R_ARM_THM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ +0000055a 00001d0a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000560 00001d0a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000566 00001d0a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000592 00002e0a R_ARM_THM_CALL 00000000 fftwf_mktensor_3d │ │ │ │ │ +0000059a 0000250a R_ARM_THM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ +000005ac 0000260a R_ARM_THM_CALL 00000000 fftwf_mkplan_f_d │ │ │ │ │ +000005e6 00002f0a R_ARM_THM_CALL 00000000 fftwf_mktensor_4d │ │ │ │ │ +00000618 0000290a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ +00000620 00002a0a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +0000063e 0000200a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000650 0000200a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000654 0000300a R_ARM_THM_CALL 00000000 fftwf_toobig │ │ │ │ │ +0000066c 00000103 R_ARM_REL32 00000001 apply │ │ │ │ │ +00000670 00001403 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +00000694 0000320a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +000006a6 0000330a R_ARM_THM_CALL 00000000 fftwf_solver_register │ │ │ │ │ +000006b0 0000320a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +000006c6 0000330a R_ARM_THM_CALL 00000000 fftwf_solver_register │ │ │ │ │ +000006e4 00001703 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +000006e8 00000b03 R_ARM_REL32 000000c9 radix_sqrt │ │ │ │ │ +000006ec 00001003 R_ARM_REL32 0000003c .LC3 │ │ │ │ │ +000006f0 00000a03 R_ARM_REL32 000000a1 radix_first │ │ │ │ │ +000006f4 00001103 R_ARM_REL32 00000044 .LC4 │ │ │ │ │ +00000116 00001d1e R_ARM_THM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000144 00001e1e R_ARM_THM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0xf2c contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0xfd8 contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000000 00003402 R_ARM_ABS32 00000000 fftwf_mpi_transpose_solve │ │ │ │ │ -00000004 00000d02 R_ARM_ABS32 000000e5 awake │ │ │ │ │ -00000008 00000702 R_ARM_ABS32 00000039 print │ │ │ │ │ -0000000c 00000c02 R_ARM_ABS32 000000c9 destroy │ │ │ │ │ +00000004 00000d02 R_ARM_ABS32 0000011d awake │ │ │ │ │ +00000008 00000702 R_ARM_ABS32 00000049 print │ │ │ │ │ +0000000c 00000c02 R_ARM_ABS32 000000fd destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0xf4c contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0xff8 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000e02 R_ARM_ABS32 00000105 mkplan │ │ │ │ │ +00000004 00000e02 R_ARM_ABS32 00000149 mkplan │ │ │ │ ├── strings --all --bytes=8 {} │ │ │ │ │ @@ -1,8 +1,7 @@ │ │ │ │ │ -^JX ^IzDyD │ │ │ │ │ (mpi-transpose-recurse/%s/%d%s%(%p%)%(%p%)%(%p%)) │ │ │ │ │ radix_first │ │ │ │ │ radix_sqrt │ │ │ │ │ fftwf_first_divisor │ │ │ │ │ fftwf_isqrt │ │ │ │ │ __aeabi_idivmod │ │ │ │ │ fftwf_plan_destroy_internal │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,239 +1,259 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, r5, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r5, r2 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r6, lr, [sp, #8] │ │ │ │ │ mov r6, r1 │ │ │ │ │ - mov r5, r2 │ │ │ │ │ - cbz r0, 10 │ │ │ │ │ + cbz r0, 16 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ ldr r3, [r4, #76] @ 0x4c │ │ │ │ │ cmp r3, #0 │ │ │ │ │ it ne │ │ │ │ │ movne r6, r5 │ │ │ │ │ - cbz r0, 24 │ │ │ │ │ + cbz r0, 2a │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ - cbz r0, 34 │ │ │ │ │ + cbz r0, 40 │ │ │ │ │ + ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ mov r2, r5 │ │ │ │ │ mov r1, r6 │ │ │ │ │ - ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, lr, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ bx r3 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ - nop │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + pop {r6, pc} │ │ │ │ │ │ │ │ │ │ -00000038 : │ │ │ │ │ +00000048 : │ │ │ │ │ print(): │ │ │ │ │ mov ip, r0 │ │ │ │ │ - push {r4, r5, lr} │ │ │ │ │ mov r0, r1 │ │ │ │ │ + str.w r4, [sp, #-12]! │ │ │ │ │ ldr r4, [r1, #0] │ │ │ │ │ + strd r5, lr, [sp, #4] │ │ │ │ │ sub sp, #20 │ │ │ │ │ - ldr.w r1, [ip, #76] @ 0x4c │ │ │ │ │ - ldrd r3, r2, [ip, #80] @ 0x50 │ │ │ │ │ + ldrd r1, r3, [ip, #76] @ 0x4c │ │ │ │ │ + ldr.w r2, [ip, #84] @ 0x54 │ │ │ │ │ cmp r1, #2 │ │ │ │ │ - beq.n 70 │ │ │ │ │ - ldr r1, [pc, #40] @ (78 ) │ │ │ │ │ + beq.n 8e │ │ │ │ │ + ldr r1, [pc, #44] @ (94 ) │ │ │ │ │ add r1, pc │ │ │ │ │ ldr.w r5, [ip, #72] @ 0x48 │ │ │ │ │ str r5, [sp, #12] │ │ │ │ │ ldr.w r5, [ip, #68] @ 0x44 │ │ │ │ │ str r5, [sp, #8] │ │ │ │ │ ldr.w r5, [ip, #64] @ 0x40 │ │ │ │ │ strd r1, r5, [sp] │ │ │ │ │ - ldr r1, [pc, #20] @ (7c ) │ │ │ │ │ + ldr r1, [pc, #24] @ (98 ) │ │ │ │ │ add r1, pc │ │ │ │ │ blx r4 │ │ │ │ │ add sp, #20 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ - ldr r1, [pc, #12] @ (80 ) │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + ldr r1, [pc, #12] @ (9c ) │ │ │ │ │ add r1, pc │ │ │ │ │ - b.n 52 │ │ │ │ │ - nop │ │ │ │ │ - .word 0x00000024 │ │ │ │ │ + b.n 68 │ │ │ │ │ + .word 0x0000002a │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x00000010 │ │ │ │ │ + .word 0x00000016 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ - .word 0x0000000a │ │ │ │ │ + .word 0x00000008 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ -00000084 : │ │ │ │ │ +000000a0 : │ │ │ │ │ radix_first(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ mov r5, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_first_divisor │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_isqrt │ │ │ │ │ cmp r0, r4 │ │ │ │ │ ite gt │ │ │ │ │ movgt r0, r4 │ │ │ │ │ movle r0, #0 │ │ │ │ │ - pop {r3, r4, r5, pc} │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + pop {r5, pc} │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -000000a0 : │ │ │ │ │ +000000c8 : │ │ │ │ │ radix_sqrt(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ mov r5, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_isqrt │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ - cbz r1, c2 │ │ │ │ │ - adds r4, #1 │ │ │ │ │ + cbz r1, f2 │ │ │ │ │ + add.w r4, r4, #1 │ │ │ │ │ mov r0, r5 │ │ │ │ │ mov r1, r4 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ cmp r1, #0 │ │ │ │ │ - bne.n b4 │ │ │ │ │ + bne.n e2 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - pop {r3, r4, r5, pc} │ │ │ │ │ - nop │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + pop {r5, pc} │ │ │ │ │ │ │ │ │ │ -000000c8 : │ │ │ │ │ +000000fc : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #72] @ 0x48 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - ldmia.w sp!, {r4, lr} │ │ │ │ │ + ldrd r4, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_plan_destroy_internal │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -000000e4 : │ │ │ │ │ +0000011c : │ │ │ │ │ awake(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ + mov r5, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_awake │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_awake │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, lr} │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + ldrd r5, lr, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_plan_awake │ │ │ │ │ │ │ │ │ │ -00000104 : │ │ │ │ │ +00000148 : │ │ │ │ │ mkplan(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ sub sp, #116 @ 0x74 │ │ │ │ │ add r3, sp, #108 @ 0x6c │ │ │ │ │ - str r0, [sp, #64] @ 0x40 │ │ │ │ │ - str r1, [sp, #52] @ 0x34 │ │ │ │ │ + strd r1, r3, [sp, #52] @ 0x34 │ │ │ │ │ mov r1, r3 │ │ │ │ │ + strd r2, r0, [sp, #60] @ 0x3c │ │ │ │ │ ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ - str r2, [sp, #60] @ 0x3c │ │ │ │ │ - str r3, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r0, [sp, #108] @ 0x6c │ │ │ │ │ ldr r3, [r4, #32] │ │ │ │ │ ldr r2, [r4, #12] │ │ │ │ │ mul.w r3, r0, r3 │ │ │ │ │ cmp r3, r2 │ │ │ │ │ - beq.n 134 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + beq.n 19c │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add sp, #116 @ 0x74 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ ldr r3, [r3, #16] │ │ │ │ │ - cbz r3, 14e │ │ │ │ │ + cbz r3, 1b6 │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ ldr.w r3, [r3, #164] @ 0xa4 │ │ │ │ │ lsls r4, r3, #19 │ │ │ │ │ - bmi.n 12c │ │ │ │ │ + bmi.n 180 │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ ldrd r2, r3, [r3, #16] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - beq.n 12c │ │ │ │ │ + beq.n 180 │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ ldr r3, [r3, #8] │ │ │ │ │ blx r3 │ │ │ │ │ - mov r6, r0 │ │ │ │ │ + mov r5, r0 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n 12c │ │ │ │ │ + beq.n 180 │ │ │ │ │ ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ cmp r0, r3 │ │ │ │ │ - bge.n 12c │ │ │ │ │ + bge.n 180 │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - ble.n 12c │ │ │ │ │ + ble.n 180 │ │ │ │ │ ldr r2, [sp, #52] @ 0x34 │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r3 │ │ │ │ │ - str r3, [sp, #72] @ 0x48 │ │ │ │ │ - ldr r4, [r2, #28] │ │ │ │ │ - ldr r5, [r2, #32] │ │ │ │ │ ldrd r9, r7, [r2, #8] │ │ │ │ │ - str r4, [sp, #68] @ 0x44 │ │ │ │ │ - str r5, [sp, #76] @ 0x4c │ │ │ │ │ + ldrd r4, r6, [r2, #28] │ │ │ │ │ + strd r4, r3, [sp, #68] @ 0x44 │ │ │ │ │ + str r6, [sp, #76] @ 0x4c │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ ldr r3, [sp, #72] @ 0x48 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 23a │ │ │ │ │ - mul.w r2, r4, r6 │ │ │ │ │ + ble.n 2a2 │ │ │ │ │ + mul.w r2, r4, r5 │ │ │ │ │ mov.w r8, #0 │ │ │ │ │ str r2, [sp, #80] @ 0x50 │ │ │ │ │ - mul.w r2, r0, r5 │ │ │ │ │ + mul.w r2, r0, r6 │ │ │ │ │ str r2, [sp, #72] @ 0x48 │ │ │ │ │ - strd r6, r3, [sp, #88] @ 0x58 │ │ │ │ │ + strd r5, r3, [sp, #88] @ 0x58 │ │ │ │ │ ldr r1, [sp, #68] @ 0x44 │ │ │ │ │ mov r2, r8 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ mul.w r4, r0, r7 │ │ │ │ │ - mov r2, r8 │ │ │ │ │ ldr r1, [sp, #76] @ 0x4c │ │ │ │ │ + mov r2, r8 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ mul.w r1, r0, r9 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_imax │ │ │ │ │ ldr r1, [sp, #88] @ 0x58 │ │ │ │ │ mov fp, r0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ mov r4, r1 │ │ │ │ │ - mov r2, r0 │ │ │ │ │ ldr r1, [sp, #80] @ 0x50 │ │ │ │ │ + mov r2, r0 │ │ │ │ │ mov r5, r0 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ ldr r1, [sp, #72] @ 0x48 │ │ │ │ │ mov r6, r0 │ │ │ │ │ mov r2, r4 │ │ │ │ │ @@ -242,27 +262,27 @@ │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ ldr r1, [sp, #68] @ 0x44 │ │ │ │ │ mov r2, r4 │ │ │ │ │ mov sl, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ - ldr r1, [sp, #72] @ 0x48 │ │ │ │ │ mul.w r3, r0, r7 │ │ │ │ │ + ldr r1, [sp, #72] @ 0x48 │ │ │ │ │ mov r2, r4 │ │ │ │ │ mov r0, r7 │ │ │ │ │ str r3, [sp, #84] @ 0x54 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ mul.w r1, r0, r6 │ │ │ │ │ ldr r0, [sp, #84] @ 0x54 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_imax │ │ │ │ │ cmp r0, fp │ │ │ │ │ - bgt.n 12c │ │ │ │ │ + bgt.n 180 │ │ │ │ │ ldr r1, [sp, #80] @ 0x50 │ │ │ │ │ mov r2, r5 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ mul.w r4, r0, sl │ │ │ │ │ ldr r1, [sp, #76] @ 0x4c │ │ │ │ │ @@ -271,442 +291,449 @@ │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ mul.w r1, r0, r9 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_imax │ │ │ │ │ cmp fp, r0 │ │ │ │ │ - blt.w 12c │ │ │ │ │ + blt.w 180 │ │ │ │ │ ldr r3, [sp, #92] @ 0x5c │ │ │ │ │ add.w r8, r8, #1 │ │ │ │ │ cmp r3, r8 │ │ │ │ │ - bne.n 196 │ │ │ │ │ - ldr r6, [sp, #88] @ 0x58 │ │ │ │ │ + bne.n 1fe │ │ │ │ │ + ldr r5, [sp, #88] @ 0x58 │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ ldr.w r3, [r3, #164] @ 0xa4 │ │ │ │ │ ubfx r2, r3, #0, #20 │ │ │ │ │ ubfx r3, r3, #14, #1 │ │ │ │ │ eor.w r3, r3, #1 │ │ │ │ │ - cmp r6, #8 │ │ │ │ │ + cmp r5, #8 │ │ │ │ │ it gt │ │ │ │ │ orrgt.w r3, r3, #1 │ │ │ │ │ lsls r1, r3, #31 │ │ │ │ │ - bpl.w 5a8 │ │ │ │ │ + bpl.w 638 │ │ │ │ │ lsls r3, r2, #28 │ │ │ │ │ - bpl.n 284 │ │ │ │ │ + bpl.n 2ec │ │ │ │ │ ldr r4, [sp, #52] @ 0x34 │ │ │ │ │ - ldr r5, [sp, #108] @ 0x6c │ │ │ │ │ + ldr r6, [sp, #108] @ 0x6c │ │ │ │ │ ldr r0, [r4, #12] │ │ │ │ │ - mov r1, r5 │ │ │ │ │ + mov r1, r6 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ - mov r1, r5 │ │ │ │ │ + mov r1, r6 │ │ │ │ │ mul.w r3, r0, r3 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mul.w r0, r3, r0 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ cmp.w r0, #2048 @ 0x800 │ │ │ │ │ - bgt.w 12c │ │ │ │ │ + bgt.w 180 │ │ │ │ │ ldr r4, [sp, #52] @ 0x34 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ bics.w r8, r3, #12 │ │ │ │ │ - bne.w 12c │ │ │ │ │ - add r1, sp, #104 @ 0x68 │ │ │ │ │ + bne.w 180 │ │ │ │ │ ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ + add r1, sp, #104 @ 0x68 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ - add r1, sp, #100 @ 0x64 │ │ │ │ │ ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ + add r1, sp, #100 @ 0x64 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ ldr r0, [sp, #104] @ 0x68 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ ldr r2, [sp, #100] @ 0x64 │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ - mov r7, r0 │ │ │ │ │ + mov r6, r0 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ ldrd r9, fp, [r4, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ - ldr r5, [r4, #24] │ │ │ │ │ - mov r3, r0 │ │ │ │ │ ldr r2, [r4, #4] │ │ │ │ │ + mov r3, r0 │ │ │ │ │ + ldr r7, [r4, #24] │ │ │ │ │ ldr r1, [r4, #32] │ │ │ │ │ - ands.w r5, r5, #4 │ │ │ │ │ - bne.w 4ec │ │ │ │ │ - mul.w lr, r1, r2 │ │ │ │ │ + ands.w r7, r7, #4 │ │ │ │ │ + bne.w 570 │ │ │ │ │ cmp r9, fp │ │ │ │ │ - beq.w 530 │ │ │ │ │ + mul.w lr, r1, r2 │ │ │ │ │ + beq.w 5ba │ │ │ │ │ mov.w r8, #1 │ │ │ │ │ - strd r8, r8, [sp, #36] @ 0x24 │ │ │ │ │ - mul.w r8, r2, r0 │ │ │ │ │ - str r1, [sp, #20] │ │ │ │ │ - strd r2, r8, [sp, #24] │ │ │ │ │ - mul.w ip, r6, r7 │ │ │ │ │ - mul.w r8, r1, r7 │ │ │ │ │ - str r2, [sp, #32] │ │ │ │ │ + mul.w ip, r5, r6 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ mul.w r3, r1, r3 │ │ │ │ │ - str r6, [sp, #8] │ │ │ │ │ + strd r1, r2, [sp, #20] │ │ │ │ │ + strd r2, r8, [sp, #32] │ │ │ │ │ + str.w r8, [sp, #40] @ 0x28 │ │ │ │ │ + mul.w r8, r2, r0 │ │ │ │ │ mul.w ip, r1, ip │ │ │ │ │ - mul.w r8, r0, r8 │ │ │ │ │ - mul.w r1, r6, r1 │ │ │ │ │ mul.w r3, r2, r3 │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ - mov r3, r7 │ │ │ │ │ - mul.w r8, r2, r8 │ │ │ │ │ + str.w r8, [sp, #28] │ │ │ │ │ + mul.w r8, r1, r6 │ │ │ │ │ + mul.w r1, r5, r1 │ │ │ │ │ + mul.w r8, r0, r8 │ │ │ │ │ mul.w r1, r2, r1 │ │ │ │ │ - strd lr, r8, [sp, #12] │ │ │ │ │ - str r1, [sp, #0] │ │ │ │ │ + mul.w r8, r2, r8 │ │ │ │ │ + strd r1, r3, [sp] │ │ │ │ │ mul.w r1, r2, ip │ │ │ │ │ + mov r3, r6 │ │ │ │ │ + str.w r8, [sp, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor_5d │ │ │ │ │ mov r2, fp │ │ │ │ │ mov r1, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkproblem_rdft_0_d │ │ │ │ │ - movs r3, #8 │ │ │ │ │ + mov.w r3, #8 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - mov r2, r5 │ │ │ │ │ - str r3, [sp, #0] │ │ │ │ │ - mov r3, r5 │ │ │ │ │ ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ + mov r2, r7 │ │ │ │ │ + str r3, [sp, #0] │ │ │ │ │ + mov r3, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_f_d │ │ │ │ │ - mov r5, r0 │ │ │ │ │ + mov r7, r0 │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - clz r0, r5 │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + clz r0, r7 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ ldr r1, [r3, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.w 5a0 │ │ │ │ │ + bne.w 630 │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ ldr r3, [r3, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.w 4e8 │ │ │ │ │ + bne.w 56c │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ ldr.w r3, [r3, #164] @ 0xa4 │ │ │ │ │ tst.w r3, #4096 @ 0x1000 │ │ │ │ │ it ne │ │ │ │ │ movne r9, fp │ │ │ │ │ ldr r0, [sp, #100] @ 0x64 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ ldr r4, [sp, #52] @ 0x34 │ │ │ │ │ mov r2, r0 │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ - mul.w r1, r6, r1 │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ + mul.w r1, r5, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ ldr r4, [sp, #100] @ 0x64 │ │ │ │ │ mov r8, r0 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ - mov r0, r4 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ mov sl, r8 │ │ │ │ │ + mov r0, r4 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ mov r2, r4 │ │ │ │ │ - ldr r4, [sp, #52] @ 0x34 │ │ │ │ │ + ldrd r4, r3, [sp, #52] @ 0x34 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_split │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ cmp.w r8, #0 │ │ │ │ │ - beq.n 3e8 │ │ │ │ │ - ldrd lr, r3, [r4, #28] │ │ │ │ │ - ldr r1, [r4, #12] │ │ │ │ │ + beq.n 45e │ │ │ │ │ + mov r0, r4 │ │ │ │ │ ldr r2, [r4, #4] │ │ │ │ │ - ldrd r4, r0, [r4, #16] │ │ │ │ │ - mul.w r3, r7, r3 │ │ │ │ │ + ldrd r1, r4, [r4, #12] │ │ │ │ │ + ldrd lr, r3, [r0, #28] │ │ │ │ │ + ldr r0, [r0, #20] │ │ │ │ │ ldr.w ip, [sp, #108] @ 0x6c │ │ │ │ │ + mul.w r3, r6, r3 │ │ │ │ │ cmp r4, r0 │ │ │ │ │ - itee ne │ │ │ │ │ - movne r0, #4 │ │ │ │ │ + itet eq │ │ │ │ │ ldreq r0, [sp, #52] @ 0x34 │ │ │ │ │ + movne r0, #4 │ │ │ │ │ ldreq r0, [r0, #24] │ │ │ │ │ - strd lr, r3, [sp, #4] │ │ │ │ │ + strd r9, lr, [sp] │ │ │ │ │ + strd r3, ip, [sp, #8] │ │ │ │ │ mov r3, fp │ │ │ │ │ it eq │ │ │ │ │ andeq.w r0, r0, #4 │ │ │ │ │ - str.w r9, [sp] │ │ │ │ │ - strd ip, r0, [sp, #12] │ │ │ │ │ + str r0, [sp, #16] │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkproblem_transpose │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_d │ │ │ │ │ clz r3, r0 │ │ │ │ │ mov sl, r0 │ │ │ │ │ - lsrs r3, r3, #5 │ │ │ │ │ + mov.w r3, r3, lsr #5 │ │ │ │ │ ldr r0, [sp, #56] @ 0x38 │ │ │ │ │ str r3, [sp, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_free │ │ │ │ │ ldr r4, [sp, #52] @ 0x34 │ │ │ │ │ ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ ldr r1, [r4, #36] @ 0x24 │ │ │ │ │ cmp.w r8, #0 │ │ │ │ │ ite eq │ │ │ │ │ moveq r0, #0 │ │ │ │ │ andne.w r0, r3, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.n 4d0 │ │ │ │ │ + bne.n 554 │ │ │ │ │ ldr r0, [sp, #100] @ 0x64 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ mov r2, r1 │ │ │ │ │ - ldr r1, [r4, #32] │ │ │ │ │ ldr r0, [r4, #12] │ │ │ │ │ - mul.w r1, r7, r1 │ │ │ │ │ + ldr r1, [r4, #32] │ │ │ │ │ + mul.w r1, r6, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ ldr.w r8, [sp, #100] @ 0x64 │ │ │ │ │ - mov r7, r0 │ │ │ │ │ - mov r1, r6 │ │ │ │ │ + mov r6, r0 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 <__aeabi_idivmod> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idivmod │ │ │ │ │ - ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ ldr r0, [r4, #36] @ 0x24 │ │ │ │ │ mov r2, r8 │ │ │ │ │ + ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_split │ │ │ │ │ - cmp r7, #0 │ │ │ │ │ - bne.w 560 │ │ │ │ │ + cmp r6, #0 │ │ │ │ │ + bne.w 5ee │ │ │ │ │ mov.w r9, #1 │ │ │ │ │ - mov r8, r7 │ │ │ │ │ + mov r8, r6 │ │ │ │ │ ldr r0, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_free │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - cmp r7, #0 │ │ │ │ │ + cmp r6, #0 │ │ │ │ │ ite eq │ │ │ │ │ moveq r0, #0 │ │ │ │ │ andne.w r0, r9, #1 │ │ │ │ │ ldr r1, [r3, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.n 4d4 │ │ │ │ │ - ldr r2, [pc, #376] @ (5dc ) │ │ │ │ │ - movs r0, #88 @ 0x58 │ │ │ │ │ - ldr r1, [pc, #376] @ (5e0 ) │ │ │ │ │ + bne.n 558 │ │ │ │ │ + ldr r2, [pc, #404] @ (66c ) │ │ │ │ │ + mov.w r0, #88 @ 0x58 │ │ │ │ │ + ldr r1, [pc, #400] @ (670 ) │ │ │ │ │ add r2, pc │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_rdft │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ mov r4, r0 │ │ │ │ │ - strd r5, sl, [r0, #64] @ 0x40 │ │ │ │ │ - str.w r8, [r0, #72] @ 0x48 │ │ │ │ │ ldr r3, [r3, #16] │ │ │ │ │ + strd r7, sl, [r0, #64] @ 0x40 │ │ │ │ │ + str.w r8, [r0, #72] @ 0x48 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.n 52c │ │ │ │ │ + bne.n 5b4 │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ ldr.w r3, [r3, #164] @ 0xa4 │ │ │ │ │ and.w r3, r3, #4096 @ 0x1000 │ │ │ │ │ - strd r3, r6, [r4, #76] @ 0x4c │ │ │ │ │ - adds r5, #8 │ │ │ │ │ + ldrd r0, r1, [r7, #8] │ │ │ │ │ + strd r3, r5, [r4, #76] @ 0x4c │ │ │ │ │ + add.w r5, r4, #8 │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ - add.w r7, r4, #8 │ │ │ │ │ - mov r6, r7 │ │ │ │ │ ldr r3, [r3, #12] │ │ │ │ │ + strd r0, r1, [r4, #8] │ │ │ │ │ + ldrd r0, r1, [r7, #16] │ │ │ │ │ str r3, [r4, #84] @ 0x54 │ │ │ │ │ - ldmia r5!, {r0, r1, r2, r3} │ │ │ │ │ - stmia r6!, {r0, r1, r2, r3} │ │ │ │ │ - ldmia.w r5, {r0, r1, r2, r3} │ │ │ │ │ - stmia.w r6, {r0, r1, r2, r3} │ │ │ │ │ + strd r0, r1, [r5, #8] │ │ │ │ │ + ldrd r0, r1, [r7, #24] │ │ │ │ │ + strd r0, r1, [r5, #16] │ │ │ │ │ + ldrd r2, r3, [r7, #32] │ │ │ │ │ + strd r2, r3, [r5, #24] │ │ │ │ │ cmp.w sl, #0 │ │ │ │ │ - beq.n 4b8 │ │ │ │ │ - mov r1, r7 │ │ │ │ │ + beq.n 540 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ add.w r0, sl, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ops_add2 │ │ │ │ │ cmp.w r8, #0 │ │ │ │ │ - beq.n 4c8 │ │ │ │ │ - mov r1, r7 │ │ │ │ │ + beq.n 550 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ add.w r0, r8, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ops_add2 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - add sp, #116 @ 0x74 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b.n 184 │ │ │ │ │ mov.w r8, #0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ - mov r0, r5 │ │ │ │ │ + mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ - b.n 12c │ │ │ │ │ + b.n 180 │ │ │ │ │ mov r9, fp │ │ │ │ │ - b.n 364 │ │ │ │ │ + b.n 3d6 │ │ │ │ │ mul.w r3, r2, r3 │ │ │ │ │ - mov r0, r7 │ │ │ │ │ + mov r0, r6 │ │ │ │ │ mul.w r2, r1, r3 │ │ │ │ │ - movs r3, #1 │ │ │ │ │ - strd r3, r3, [sp, #12] │ │ │ │ │ - str r2, [sp, #8] │ │ │ │ │ - mul.w r3, r2, r7 │ │ │ │ │ - mul.w r1, r6, r2 │ │ │ │ │ - strd r2, r3, [sp] │ │ │ │ │ - mov r3, r6 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + str r3, [sp, #16] │ │ │ │ │ + mul.w r1, r5, r2 │ │ │ │ │ + strd r2, r3, [sp, #8] │ │ │ │ │ + mul.w r3, r2, r6 │ │ │ │ │ + str r2, [sp, #0] │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + mov r3, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor_3d │ │ │ │ │ mov r2, fp │ │ │ │ │ mov r1, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkproblem_rdft_0_d │ │ │ │ │ - movs r3, #8 │ │ │ │ │ + mov.w r3, #8 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [sp, #0] │ │ │ │ │ ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ - mov r3, r8 │ │ │ │ │ mov r2, r8 │ │ │ │ │ + str r3, [sp, #0] │ │ │ │ │ + mov r3, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_f_d │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - b.n 338 │ │ │ │ │ - movs r3, #2 │ │ │ │ │ - b.n 48a │ │ │ │ │ + mov r7, r0 │ │ │ │ │ + b.n 3a8 │ │ │ │ │ + mov.w r3, #2 │ │ │ │ │ + b.n 502 │ │ │ │ │ ldr r2, [sp, #104] @ 0x68 │ │ │ │ │ - movs r3, #1 │ │ │ │ │ - strd r3, r3, [sp, #12] │ │ │ │ │ - mul.w r3, lr, r7 │ │ │ │ │ - str r0, [sp, #20] │ │ │ │ │ - mul.w r1, lr, r6 │ │ │ │ │ - strd lr, r3, [sp] │ │ │ │ │ - mov r0, r7 │ │ │ │ │ + mul.w r1, lr, r5 │ │ │ │ │ + mov r0, r6 │ │ │ │ │ + str.w lr, [sp] │ │ │ │ │ + str.w lr, [sp, #8] │ │ │ │ │ mul.w r2, r2, lr │ │ │ │ │ - mov r3, r6 │ │ │ │ │ - strd r2, r2, [sp, #24] │ │ │ │ │ + strd r3, r2, [sp, #20] │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + strd r3, r3, [sp, #12] │ │ │ │ │ + mul.w r3, lr, r6 │ │ │ │ │ + str r2, [sp, #28] │ │ │ │ │ mov r2, lr │ │ │ │ │ - str.w lr, [sp, #8] │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + mov r3, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor_4d │ │ │ │ │ mov r2, r9 │ │ │ │ │ - b.n 320 │ │ │ │ │ + b.n 38e │ │ │ │ │ ldr r0, [sp, #52] @ 0x34 │ │ │ │ │ - mov r1, r7 │ │ │ │ │ + mov r1, r6 │ │ │ │ │ ldr r3, [r0, #24] │ │ │ │ │ + mov r2, r0 │ │ │ │ │ and.w r3, r3, #8 │ │ │ │ │ orr.w r3, r3, #4 │ │ │ │ │ str r3, [sp, #16] │ │ │ │ │ ldr r3, [sp, #108] @ 0x6c │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ ldr r3, [r0, #32] │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [r0, #28] │ │ │ │ │ - mul.w r3, r6, r3 │ │ │ │ │ + mul.w r3, r5, r3 │ │ │ │ │ strd fp, r3, [sp] │ │ │ │ │ mov r3, r9 │ │ │ │ │ - ldr r2, [r0, #4] │ │ │ │ │ + ldr r2, [r2, #4] │ │ │ │ │ ldr r0, [r0, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkproblem_transpose │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [sp, #60] @ 0x3c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_d │ │ │ │ │ clz r9, r0 │ │ │ │ │ mov r8, r0 │ │ │ │ │ mov.w r9, r9, lsr #5 │ │ │ │ │ - b.n 444 │ │ │ │ │ + b.n 4ba │ │ │ │ │ mov.w r8, #0 │ │ │ │ │ mov sl, r8 │ │ │ │ │ - b.n 4d4 │ │ │ │ │ + b.n 558 │ │ │ │ │ ldr r4, [sp, #52] @ 0x34 │ │ │ │ │ ldr r1, [sp, #108] @ 0x6c │ │ │ │ │ ldr r0, [r4, #12] │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ - mov r1, r6 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ mul.w r3, r0, r3 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mul.w r0, r3, r0 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_toobig │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.w 12c │ │ │ │ │ + bne.w 180 │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ ldr.w r2, [r3, #164] @ 0xa4 │ │ │ │ │ ubfx r2, r2, #0, #20 │ │ │ │ │ - b.n 25a │ │ │ │ │ + b.n 2c2 │ │ │ │ │ nop │ │ │ │ │ - .word 0x00000172 │ │ │ │ │ + .word 0x0000018a │ │ │ │ │ R_ARM_REL32 apply │ │ │ │ │ - .word 0x00000174 │ │ │ │ │ + .word 0x0000018c │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -000005e4 : │ │ │ │ │ +00000674 : │ │ │ │ │ fftwf_mpi_transpose_recurse_register(): │ │ │ │ │ - push {r3, r4, r5, r6, r7, lr} │ │ │ │ │ + strd r3, r4, [sp, #-24]! │ │ │ │ │ + mov.w r4, #0 │ │ │ │ │ + strd r5, r6, [sp, #8] │ │ │ │ │ mov r5, r0 │ │ │ │ │ - ldr r6, [pc, #76] @ (638 ) │ │ │ │ │ - ldr r7, [pc, #80] @ (63c ) │ │ │ │ │ - movs r4, #0 │ │ │ │ │ + ldr r6, [pc, #96] @ (6e4 ) │ │ │ │ │ + strd r7, lr, [sp, #16] │ │ │ │ │ + ldr r7, [pc, #92] @ (6e8 ) │ │ │ │ │ add r6, pc │ │ │ │ │ add r7, pc │ │ │ │ │ mov r1, r6 │ │ │ │ │ - movs r0, #20 │ │ │ │ │ + mov.w r0, #20 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mksolver │ │ │ │ │ - ldr r3, [pc, #68] @ (640 ) │ │ │ │ │ + ldr r3, [pc, #80] @ (6ec ) │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r4, [r0, #16] │ │ │ │ │ - add r3, pc │ │ │ │ │ - str r7, [r0, #8] │ │ │ │ │ - str r3, [r0, #12] │ │ │ │ │ mov r0, r5 │ │ │ │ │ + str r4, [r1, #16] │ │ │ │ │ + add r3, pc │ │ │ │ │ + strd r7, r3, [r1, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_solver_register │ │ │ │ │ mov r1, r6 │ │ │ │ │ - movs r0, #20 │ │ │ │ │ + mov.w r0, #20 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mksolver │ │ │ │ │ - ldr r3, [pc, #44] @ (644 ) │ │ │ │ │ - str r4, [r0, #16] │ │ │ │ │ + ldr r3, [pc, #56] @ (6f0 ) │ │ │ │ │ mov r1, r0 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ + str r4, [r1, #16] │ │ │ │ │ add r3, pc │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ - ldr r3, [pc, #40] @ (648 ) │ │ │ │ │ + str r3, [r1, #8] │ │ │ │ │ + ldr r3, [pc, #48] @ (6f4 ) │ │ │ │ │ add r3, pc │ │ │ │ │ - str r3, [r0, #12] │ │ │ │ │ - mov r0, r5 │ │ │ │ │ + str r3, [r1, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_solver_register │ │ │ │ │ - adds r3, r4, #1 │ │ │ │ │ - cmp r3, #2 │ │ │ │ │ + add.w r3, r4, #1 │ │ │ │ │ mov.w r4, #1 │ │ │ │ │ - bne.n 5f2 │ │ │ │ │ - pop {r3, r4, r5, r6, r7, pc} │ │ │ │ │ + cmp r3, #2 │ │ │ │ │ + bne.n 68e │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + ldrd r5, r6, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + pop {r7, pc} │ │ │ │ │ nop │ │ │ │ │ - .word 0x00000046 │ │ │ │ │ + .word 0x00000056 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ │ │ - .word 0x00000048 │ │ │ │ │ + .word 0x00000058 │ │ │ │ │ R_ARM_REL32 radix_sqrt │ │ │ │ │ - .word 0x0000003c │ │ │ │ │ + .word 0x00000048 │ │ │ │ │ R_ARM_REL32 .LC3 │ │ │ │ │ - .word 0x00000026 │ │ │ │ │ + .word 0x00000030 │ │ │ │ │ R_ARM_REL32 radix_first │ │ │ │ │ - .word 0x00000024 │ │ │ │ │ + .word 0x0000002e │ │ │ │ │ R_ARM_REL32 .LC4 │ │ │ ├── transpose-problem.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 1612 (bytes into file) │ │ │ │ │ + Start of section headers: 1700 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 13 │ │ │ │ │ Section header string table index: 12 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,22 +1,22 @@ │ │ │ │ │ -There are 13 section headers, starting at offset 0x64c: │ │ │ │ │ +There are 13 section headers, starting at offset 0x6a4: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 000178 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000504 0000b0 08 I 10 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 0001ac 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 0001ac 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 0001ac 00003a 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro.local PROGBITS 00000000 0001e6 000014 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro.local REL 00000000 0005b4 000020 08 I 10 6 4 │ │ │ │ │ - [ 8] .note.GNU-stack PROGBITS 00000000 0001fa 000000 00 0 0 1 │ │ │ │ │ - [ 9] .ARM.attributes ARM_ATTRIBUTES 00000000 0001fa 000033 00 0 0 1 │ │ │ │ │ - [10] .symtab SYMTAB 00000000 000230 0001e0 10 11 17 4 │ │ │ │ │ - [11] .strtab STRTAB 00000000 000410 0000f2 00 0 0 1 │ │ │ │ │ - [12] .shstrtab STRTAB 00000000 0005d4 000076 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0001d0 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 00055c 0000b0 08 I 10 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000204 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000204 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 000204 00003a 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro.local PROGBITS 00000000 00023e 000014 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro.local REL 00000000 00060c 000020 08 I 10 6 4 │ │ │ │ │ + [ 8] .note.GNU-stack PROGBITS 00000000 000252 000000 00 0 0 1 │ │ │ │ │ + [ 9] .ARM.attributes ARM_ATTRIBUTES 00000000 000252 000033 00 0 0 1 │ │ │ │ │ + [10] .symtab SYMTAB 00000000 000288 0001e0 10 11 17 4 │ │ │ │ │ + [11] .strtab STRTAB 00000000 000468 0000f2 00 0 0 1 │ │ │ │ │ + [12] .shstrtab STRTAB 00000000 00062c 000076 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,33 +1,33 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 30 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ - 1: 00000001 20 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 1: 00000001 26 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ 2: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ 3: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 4: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ - 5: 00000015 96 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 6: 00000070 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 7: 00000074 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 8: 00000075 56 FUNC LOCAL DEFAULT 1 zero │ │ │ │ │ + 5: 0000001d 116 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 6: 0000008c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 7: 00000090 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 8: 00000091 72 FUNC LOCAL DEFAULT 1 zero │ │ │ │ │ 9: 0000002c 0 NOTYPE LOCAL DEFAULT 5 .LC1 │ │ │ │ │ - 10: 000000ad 100 FUNC LOCAL DEFAULT 1 hash │ │ │ │ │ - 11: 0000010c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 12: 00000110 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 13: 00000174 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 10: 000000d9 120 FUNC LOCAL DEFAULT 1 hash │ │ │ │ │ + 11: 0000014c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 12: 00000150 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 13: 000001cc 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 14: 00000000 0 SECTION LOCAL DEFAULT 6 .data.rel.ro.local │ │ │ │ │ 15: 00000000 0 NOTYPE LOCAL DEFAULT 6 $d │ │ │ │ │ 16: 00000000 20 OBJECT LOCAL DEFAULT 6 padt │ │ │ │ │ 17: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_free │ │ │ │ │ 18: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ifree │ │ │ │ │ 19: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_size │ │ │ │ │ 20: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ialignment_of │ │ │ │ │ 21: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_rank │ │ │ │ │ 22: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_block │ │ │ │ │ 23: 00000000 0 NOTYPE GLOBAL DEFAULT UND memset │ │ │ │ │ 24: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_md5puts │ │ │ │ │ 25: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_md5int │ │ │ │ │ 26: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_md5INT │ │ │ │ │ - 27: 00000111 104 FUNC GLOBAL DEFAULT 1 fftwf_mpi_mkproblem_transpose │ │ │ │ │ + 27: 00000151 128 FUNC GLOBAL DEFAULT 1 fftwf_mpi_mkproblem_transpose │ │ │ │ │ 28: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mkproblem │ │ │ │ │ 29: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_dup │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,32 +1,32 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x504 contains 22 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x55c contains 22 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000006 0000110a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -00000022 0000130a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000030 0000140a R_ARM_THM_CALL 00000000 fftwf_ialignment_of │ │ │ │ │ -00000038 0000140a R_ARM_THM_CALL 00000000 fftwf_ialignment_of │ │ │ │ │ -00000070 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -00000088 0000150a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000092 0000160a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -000000a4 0000170a R_ARM_THM_CALL 00000000 memset │ │ │ │ │ -000000ba 0000180a R_ARM_THM_CALL 00000000 fftwf_md5puts │ │ │ │ │ -000000cc 0000190a R_ARM_THM_CALL 00000000 fftwf_md5int │ │ │ │ │ -000000d4 00001a0a R_ARM_THM_CALL 00000000 fftwf_md5INT │ │ │ │ │ -000000dc 00001a0a R_ARM_THM_CALL 00000000 fftwf_md5INT │ │ │ │ │ -000000e4 00001a0a R_ARM_THM_CALL 00000000 fftwf_md5INT │ │ │ │ │ -000000ec 00001a0a R_ARM_THM_CALL 00000000 fftwf_md5INT │ │ │ │ │ -000000f4 00001a0a R_ARM_THM_CALL 00000000 fftwf_md5INT │ │ │ │ │ -000000fc 0000130a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000104 0000190a R_ARM_THM_CALL 00000000 fftwf_md5int │ │ │ │ │ -0000010c 00000903 R_ARM_REL32 0000002c .LC1 │ │ │ │ │ -00000126 00001c0a R_ARM_THM_CALL 00000000 fftwf_mkproblem │ │ │ │ │ -00000168 00001d0a R_ARM_THM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ -00000174 00000e03 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -00000010 0000121e R_ARM_THM_JUMP24 00000000 fftwf_ifree │ │ │ │ │ +0000000a 0000110a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +00000032 0000130a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000042 0000140a R_ARM_THM_CALL 00000000 fftwf_ialignment_of │ │ │ │ │ +0000004e 0000140a R_ARM_THM_CALL 00000000 fftwf_ialignment_of │ │ │ │ │ +0000008c 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +000000aa 0000150a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000000b4 0000160a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +000000ca 0000170a R_ARM_THM_CALL 00000000 memset │ │ │ │ │ +000000ec 0000180a R_ARM_THM_CALL 00000000 fftwf_md5puts │ │ │ │ │ +00000102 0000190a R_ARM_THM_CALL 00000000 fftwf_md5int │ │ │ │ │ +0000010a 00001a0a R_ARM_THM_CALL 00000000 fftwf_md5INT │ │ │ │ │ +00000112 00001a0a R_ARM_THM_CALL 00000000 fftwf_md5INT │ │ │ │ │ +0000011a 00001a0a R_ARM_THM_CALL 00000000 fftwf_md5INT │ │ │ │ │ +00000122 00001a0a R_ARM_THM_CALL 00000000 fftwf_md5INT │ │ │ │ │ +0000012a 00001a0a R_ARM_THM_CALL 00000000 fftwf_md5INT │ │ │ │ │ +00000132 0000130a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +0000013a 0000190a R_ARM_THM_CALL 00000000 fftwf_md5int │ │ │ │ │ +0000014c 00000903 R_ARM_REL32 0000002c .LC1 │ │ │ │ │ +00000174 00001c0a R_ARM_THM_CALL 00000000 fftwf_mkproblem │ │ │ │ │ +000001b4 00001d0a R_ARM_THM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ +000001cc 00000e03 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +00000016 0000121e R_ARM_THM_JUMP24 00000000 fftwf_ifree │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0x5b4 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0x60c contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000a02 R_ARM_ABS32 000000ad hash │ │ │ │ │ -00000008 00000802 R_ARM_ABS32 00000075 zero │ │ │ │ │ -0000000c 00000502 R_ARM_ABS32 00000015 print │ │ │ │ │ +00000004 00000a02 R_ARM_ABS32 000000d9 hash │ │ │ │ │ +00000008 00000802 R_ARM_ABS32 00000091 zero │ │ │ │ │ +0000000c 00000502 R_ARM_ABS32 0000001d print │ │ │ │ │ 00000010 00000102 R_ARM_ABS32 00000001 destroy │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,114 +1,123 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - adds r0, #36 @ 0x24 │ │ │ │ │ + add.w r0, r0, #36 @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_free │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r4, lr} │ │ │ │ │ + ldrd r4, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_ifree │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -00000014 : │ │ │ │ │ +0000001c : │ │ │ │ │ print(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ sub sp, #40 @ 0x28 │ │ │ │ │ ldr r0, [r0, #36] @ 0x24 │ │ │ │ │ add r1, sp, #36 @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ - ldr.w r8, [r5] │ │ │ │ │ ldrd r0, r6, [r4, #16] │ │ │ │ │ - subs r6, r6, r0 │ │ │ │ │ + ldr.w r8, [r5] │ │ │ │ │ + sub.w r6, r6, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ialignment_of │ │ │ │ │ mov r7, r0 │ │ │ │ │ ldr r0, [r4, #20] │ │ │ │ │ + clz r6, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ialignment_of │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ + mov.w r6, r6, lsr #5 │ │ │ │ │ + ldr r1, [pc, #48] @ (8c ) │ │ │ │ │ + mov r2, r6 │ │ │ │ │ str r3, [sp, #24] │ │ │ │ │ - clz r6, r6 │ │ │ │ │ - ldr r1, [pc, #40] @ (70 ) │ │ │ │ │ ldr r3, [r4, #32] │ │ │ │ │ - lsrs r6, r6, #5 │ │ │ │ │ - str r3, [sp, #20] │ │ │ │ │ - mov r2, r6 │ │ │ │ │ add r1, pc │ │ │ │ │ + str r3, [sp, #20] │ │ │ │ │ ldr r3, [r4, #28] │ │ │ │ │ str r3, [sp, #16] │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ strd r0, r3, [sp] │ │ │ │ │ mov r3, r7 │ │ │ │ │ mov r0, r5 │ │ │ │ │ blx r8 │ │ │ │ │ add sp, #40 @ 0x28 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, pc} │ │ │ │ │ - nop │ │ │ │ │ - .word 0x0000001e │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + ldmia.w sp!, {r8, pc} │ │ │ │ │ + .word 0x00000028 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ -00000074 : │ │ │ │ │ +00000090 : │ │ │ │ │ zero(): │ │ │ │ │ ldr r2, [r0, #4] │ │ │ │ │ - ldr r3, [r0, #12] │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, r5, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r6, [r0, #16] │ │ │ │ │ + strd r6, lr, [sp, #8] │ │ │ │ │ sub sp, #8 │ │ │ │ │ + ldrd r3, r6, [r0, #12] │ │ │ │ │ + add r1, sp, #4 │ │ │ │ │ ldr r0, [r0, #36] @ 0x24 │ │ │ │ │ mul.w r5, r3, r2 │ │ │ │ │ - add r1, sp, #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ - ldr r1, [r4, #28] │ │ │ │ │ ldr r2, [sp, #4] │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ + ldr r1, [r4, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ mul.w r0, r5, r0 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - ble.n a8 │ │ │ │ │ - lsls r2, r0, #2 │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + ble.n ce │ │ │ │ │ + mov.w r2, r0, lsl #2 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL memset │ │ │ │ │ add sp, #8 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + pop {r6, pc} │ │ │ │ │ │ │ │ │ │ -000000ac : │ │ │ │ │ +000000d8 : │ │ │ │ │ hash(): │ │ │ │ │ - push {r4, r5, lr} │ │ │ │ │ + str.w r4, [sp, #-12]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - ldr r1, [pc, #88] @ (10c ) │ │ │ │ │ + ldr r1, [pc, #108] @ (14c ) │ │ │ │ │ + strd r5, lr, [sp, #4] │ │ │ │ │ sub sp, #12 │ │ │ │ │ + mov r5, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_md5puts │ │ │ │ │ - mov r0, r4 │ │ │ │ │ ldrd r1, r3, [r5, #16] │ │ │ │ │ - subs r1, r1, r3 │ │ │ │ │ + mov r0, r4 │ │ │ │ │ + sub.w r1, r1, r3 │ │ │ │ │ clz r1, r1 │ │ │ │ │ - lsrs r1, r1, #5 │ │ │ │ │ + mov.w r1, r1, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_md5int │ │ │ │ │ ldr r1, [r5, #4] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_md5INT │ │ │ │ │ ldr r1, [r5, #8] │ │ │ │ │ @@ -123,65 +132,72 @@ │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_md5INT │ │ │ │ │ ldr r1, [r5, #32] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_md5INT │ │ │ │ │ - add r1, sp, #4 │ │ │ │ │ ldr r0, [r5, #36] @ 0x24 │ │ │ │ │ + add r1, sp, #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #4] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_md5int │ │ │ │ │ add sp, #12 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ - .word 0x00000050 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + nop │ │ │ │ │ + .word 0x0000005e │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ │ │ │ │ │ -00000110 : │ │ │ │ │ +00000150 : │ │ │ │ │ fftwf_mpi_mkproblem_transpose(): │ │ │ │ │ - stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + strd r3, r4, [sp, #-32]! │ │ │ │ │ + strd r5, r6, [sp, #8] │ │ │ │ │ mov r5, r1 │ │ │ │ │ - ldr r1, [pc, #92] @ (174 ) │ │ │ │ │ mov r6, r0 │ │ │ │ │ - movs r0, #40 @ 0x28 │ │ │ │ │ - add r1, pc │ │ │ │ │ - ldr.w r9, [sp, #48] @ 0x30 │ │ │ │ │ + ldr r1, [pc, #108] @ (1cc ) │ │ │ │ │ + mov.w r0, #40 @ 0x28 │ │ │ │ │ + strd r7, r8, [sp, #16] │ │ │ │ │ mov r8, r2 │ │ │ │ │ mov r7, r3 │ │ │ │ │ + strd r9, lr, [sp, #24] │ │ │ │ │ + ldr.w r9, [sp, #48] @ 0x30 │ │ │ │ │ + add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkproblem │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ - str r3, [r0, #20] │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ add.w r1, r0, #36 @ 0x24 │ │ │ │ │ - strd r6, r5, [r0, #8] │ │ │ │ │ + strd r8, r6, [r0, #4] │ │ │ │ │ + strd r5, r7, [r0, #12] │ │ │ │ │ + str r3, [r0, #20] │ │ │ │ │ + ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ cmp r6, r3 │ │ │ │ │ - str.w r8, [r0, #4] │ │ │ │ │ it ge │ │ │ │ │ movge r6, r3 │ │ │ │ │ ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ - str r7, [r0, #16] │ │ │ │ │ cmp r5, r3 │ │ │ │ │ - str r6, [r0, #28] │ │ │ │ │ it ge │ │ │ │ │ movge r5, r3 │ │ │ │ │ cmp r6, #1 │ │ │ │ │ it eq │ │ │ │ │ orreq.w r9, r9, #4 │ │ │ │ │ cmp r5, #1 │ │ │ │ │ it eq │ │ │ │ │ orreq.w r9, r9, #8 │ │ │ │ │ - str r5, [r0, #32] │ │ │ │ │ - str.w r9, [r0, #24] │ │ │ │ │ + strd r6, r5, [r0, #28] │ │ │ │ │ ldr r0, [sp, #44] @ 0x2c │ │ │ │ │ + str.w r9, [r4, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_dup │ │ │ │ │ + ldrd r5, r6, [sp, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ - nop │ │ │ │ │ - .word 0x00000054 │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + ldrd r7, r8, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldmia.w sp!, {r9, pc} │ │ │ │ │ + .word 0x00000056 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ ├── transpose-solve.o │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,10 +1,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftwf_mpi_transpose_solve(): │ │ │ │ │ - ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ ldrd r1, r2, [r1, #16] │ │ │ │ │ + ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ bx r3 │ │ │ ├── dft-serial.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 2044 (bytes into file) │ │ │ │ │ + Start of section headers: 2096 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 15 │ │ │ │ │ Section header string table index: 14 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,24 +1,24 @@ │ │ │ │ │ -There are 15 section headers, starting at offset 0x7fc: │ │ │ │ │ +There are 15 section headers, starting at offset 0x830: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 0001f8 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 00068c 0000c0 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 00022c 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 00022c 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 00022c 000018 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 000244 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 00074c 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 000254 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 00076c 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 000260 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000260 000033 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 000294 000260 10 13 20 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 0004f4 000198 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 000774 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 00022c 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 0006c0 0000c0 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000260 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000260 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 000260 000018 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 000278 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 000780 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 000288 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 0007a0 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 000294 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000294 000033 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 0002c8 000260 10 13 20 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 000528 000198 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 0007a8 000087 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,24 +1,24 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 38 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ - 1: 00000001 46 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ + 1: 00000001 48 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ 2: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ 3: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 4: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ 5: 00000031 20 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ 6: 00000040 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 7: 00000044 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ 8: 00000045 6 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ 9: 0000004d 6 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 10: 00000055 340 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 11: 000001a0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 12: 000001a8 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 13: 000001f4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 10: 00000055 380 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 11: 000001c8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 12: 000001d0 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 13: 00000228 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 14: 00000000 0 SECTION LOCAL DEFAULT 6 .data.rel.ro │ │ │ │ │ 15: 00000000 0 NOTYPE LOCAL DEFAULT 6 $d │ │ │ │ │ 16: 00000000 16 OBJECT LOCAL DEFAULT 6 padt.0 │ │ │ │ │ 17: 00000000 0 SECTION LOCAL DEFAULT 8 .data.rel.ro.local │ │ │ │ │ 18: 00000000 0 NOTYPE LOCAL DEFAULT 8 $d │ │ │ │ │ 19: 00000000 12 OBJECT LOCAL DEFAULT 8 sadt.1 │ │ │ │ │ 20: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_plan_destroy_internal │ │ │ │ │ @@ -30,12 +30,12 @@ │ │ │ │ │ 26: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mktensor_1d │ │ │ │ │ 27: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mkproblem_dft_d │ │ │ │ │ 28: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mkplan_d │ │ │ │ │ 29: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_any_true │ │ │ │ │ 30: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mkplan_rdft │ │ │ │ │ 31: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ops_cpy │ │ │ │ │ 32: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mktensor │ │ │ │ │ - 33: 000001a9 46 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dft_serial_applicable │ │ │ │ │ - 34: 000001d9 32 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dft_serial_register │ │ │ │ │ + 33: 000001d1 56 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dft_serial_applicable │ │ │ │ │ + 34: 00000209 36 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dft_serial_register │ │ │ │ │ 35: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mksolver │ │ │ │ │ 36: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_solver_register │ │ │ │ │ 37: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_dft_solve │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,38 +1,38 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x68c contains 24 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x6c0 contains 24 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000040 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -00000068 0000160a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ -00000080 0000170a R_ARM_THM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ -0000008c 0000170a R_ARM_THM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ -00000094 0000180a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000000a2 0000190a R_ARM_THM_CALL 00000000 fftwf_mktensor_0d │ │ │ │ │ -000000ae 00001a0a R_ARM_THM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ -000000c2 00001b0a R_ARM_THM_CALL 00000000 fftwf_mkproblem_dft_d │ │ │ │ │ -000000ca 00001c0a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -000000d8 00001d0a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -000000ea 00001e0a R_ARM_THM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ -0000010c 00001f0a R_ARM_THM_CALL 00000000 fftwf_ops_cpy │ │ │ │ │ -0000011c 0000200a R_ARM_THM_CALL 00000000 fftwf_mktensor │ │ │ │ │ -00000178 00001a0a R_ARM_THM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ -00000192 0000160a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ -000001a0 00000103 R_ARM_REL32 00000001 apply │ │ │ │ │ -000001a4 00000e03 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -000001b6 0000160a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ -000001ca 0000160a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ -000001e2 0000230a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -000001f4 00001103 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +00000080 0000160a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ +00000098 0000170a R_ARM_THM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ +000000a4 0000170a R_ARM_THM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ +000000ac 0000180a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000000ba 0000190a R_ARM_THM_CALL 00000000 fftwf_mktensor_0d │ │ │ │ │ +000000c8 00001a0a R_ARM_THM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ +000000dc 00001b0a R_ARM_THM_CALL 00000000 fftwf_mkproblem_dft_d │ │ │ │ │ +000000e4 00001c0a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +000000f4 00001d0a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +00000108 00001e0a R_ARM_THM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ +00000132 00001f0a R_ARM_THM_CALL 00000000 fftwf_ops_cpy │ │ │ │ │ +0000014a 0000200a R_ARM_THM_CALL 00000000 fftwf_mktensor │ │ │ │ │ +000001a0 00001a0a R_ARM_THM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ +000001bc 0000160a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ +000001c8 00000103 R_ARM_REL32 00000001 apply │ │ │ │ │ +000001cc 00000e03 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +000001e2 0000160a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ +000001fa 0000160a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ +00000216 0000230a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +00000228 00001103 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ 00000046 0000141e R_ARM_THM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ 0000004e 0000151e R_ARM_THM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ -000001ee 0000241e R_ARM_THM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ +00000224 0000241e R_ARM_THM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0x74c contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0x780 contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000000 00002502 R_ARM_ABS32 00000000 fftwf_mpi_dft_solve │ │ │ │ │ 00000004 00000902 R_ARM_ABS32 0000004d awake │ │ │ │ │ 00000008 00000502 R_ARM_ABS32 00000031 print │ │ │ │ │ 0000000c 00000802 R_ARM_ABS32 00000045 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0x76c contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0x7a0 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000004 00000a02 R_ARM_ABS32 00000055 mkplan │ │ │ │ ├── strings --all --bytes=8 {} │ │ │ │ │ @@ -1,8 +1,7 @@ │ │ │ │ │ -/JP /IzDyD │ │ │ │ │ (mpi-dft-serial %(%p%)) │ │ │ │ │ fftwf_plan_destroy_internal │ │ │ │ │ fftwf_plan_awake │ │ │ │ │ fftwf_mpi_is_local │ │ │ │ │ fftwf_extract_reim │ │ │ │ │ MPI_Comm_rank │ │ │ │ │ fftwf_mktensor_0d │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -2,37 +2,36 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply(): │ │ │ │ │ mov ip, r0 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ - ldrd r0, r3, [r0, #64] @ 0x40 │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ sub sp, #8 │ │ │ │ │ ldr.w r4, [ip, #72] @ 0x48 │ │ │ │ │ - mov.w lr, r3, lsl #2 │ │ │ │ │ + ldrd r0, r3, [r0, #64] @ 0x40 │ │ │ │ │ mov.w ip, r4, lsl #2 │ │ │ │ │ + mov.w lr, r3, lsl #2 │ │ │ │ │ add.w r3, r2, ip │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ add.w r3, r2, lr │ │ │ │ │ add.w r2, r1, ip │ │ │ │ │ ldr r4, [r0, #56] @ 0x38 │ │ │ │ │ add r1, lr │ │ │ │ │ blx r4 │ │ │ │ │ add sp, #8 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ - nop │ │ │ │ │ │ │ │ │ │ 00000030 : │ │ │ │ │ print(): │ │ │ │ │ mov r2, r0 │ │ │ │ │ - ldr r3, [r1, #0] │ │ │ │ │ mov r0, r1 │ │ │ │ │ ldr r1, [pc, #8] @ (40 ) │ │ │ │ │ + ldr r3, [r0, #0] │ │ │ │ │ ldr r2, [r2, #64] @ 0x40 │ │ │ │ │ add r1, pc │ │ │ │ │ bx r3 │ │ │ │ │ nop │ │ │ │ │ .word 0x00000002 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ @@ -48,197 +47,200 @@ │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_plan_awake │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ 00000054 : │ │ │ │ │ mkplan(): │ │ │ │ │ - push {r4, r5, r6, r7, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ ldr r1, [r1, #24] │ │ │ │ │ - sub sp, #36 @ 0x24 │ │ │ │ │ - cbz r1, 64 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ - add sp, #36 @ 0x24 │ │ │ │ │ - pop {r4, r5, r6, r7, pc} │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ + sub sp, #32 │ │ │ │ │ + cbz r1, 7c │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + ldmia.w sp!, {r8, pc} │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mov r6, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.w 18e │ │ │ │ │ + bne.w 1b6 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.n 5e │ │ │ │ │ + bne.n 68 │ │ │ │ │ ldr r1, [r4, #12] │ │ │ │ │ add r3, sp, #20 │ │ │ │ │ - ldr r0, [r4, #20] │ │ │ │ │ add r2, sp, #16 │ │ │ │ │ + ldr r0, [r4, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_extract_reim │ │ │ │ │ - add r3, sp, #28 │ │ │ │ │ ldrd r1, r0, [r4, #16] │ │ │ │ │ + add r3, sp, #28 │ │ │ │ │ add r2, sp, #24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_extract_reim │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ add r1, sp, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ - cbnz r3, a2 │ │ │ │ │ + cbnz r3, ba │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bgt.n 116 │ │ │ │ │ + bgt.n 13a │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor_0d │ │ │ │ │ - movs r2, #0 │ │ │ │ │ - mov r1, r2 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ mov r5, r0 │ │ │ │ │ + mov r1, r2 │ │ │ │ │ mov r0, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor_1d │ │ │ │ │ + ldr r2, [sp, #16] │ │ │ │ │ + mov r1, r0 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - mov r1, r0 │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ - mov r0, r5 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - ldrd r2, r3, [sp, #16] │ │ │ │ │ + ldr r3, [sp, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_d │ │ │ │ │ mov r6, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.n 5e │ │ │ │ │ - ldr r2, [pc, #188] @ (1a0 ) │ │ │ │ │ - movs r0, #80 @ 0x50 │ │ │ │ │ - ldr r1, [pc, #188] @ (1a4 ) │ │ │ │ │ + bne.n 68 │ │ │ │ │ + ldr r2, [pc, #200] @ (1c8 ) │ │ │ │ │ + mov.w r0, #80 @ 0x50 │ │ │ │ │ + ldr r1, [pc, #200] @ (1cc ) │ │ │ │ │ add r2, pc │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_rdft │ │ │ │ │ ldr r2, [r4, #16] │ │ │ │ │ - ldr r3, [sp, #24] │ │ │ │ │ mov r5, r0 │ │ │ │ │ add.w r1, r0, #8 │ │ │ │ │ - str r6, [r0, #64] @ 0x40 │ │ │ │ │ - subs r3, r3, r2 │ │ │ │ │ - asrs r3, r3, #2 │ │ │ │ │ - str r3, [r0, #68] @ 0x44 │ │ │ │ │ - ldr r3, [sp, #28] │ │ │ │ │ - subs r3, r3, r2 │ │ │ │ │ - asrs r3, r3, #2 │ │ │ │ │ - str r3, [r0, #72] @ 0x48 │ │ │ │ │ add.w r0, r6, #8 │ │ │ │ │ + ldr r3, [sp, #24] │ │ │ │ │ + sub.w r3, r3, r2 │ │ │ │ │ + mov.w r3, r3, asr #2 │ │ │ │ │ + strd r6, r3, [r5, #64] @ 0x40 │ │ │ │ │ + ldr r3, [sp, #28] │ │ │ │ │ + sub.w r3, r3, r2 │ │ │ │ │ + mov.w r3, r3, asr #2 │ │ │ │ │ + str r3, [r5, #72] @ 0x48 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ops_cpy │ │ │ │ │ mov r0, r5 │ │ │ │ │ - add sp, #36 @ 0x24 │ │ │ │ │ - pop {r4, r5, r6, r7, pc} │ │ │ │ │ + b.n 6c │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - ldr r5, [r3, #0] │ │ │ │ │ - mov r0, r5 │ │ │ │ │ + ldr.w r8, [r3] │ │ │ │ │ + mov r0, r8 │ │ │ │ │ + add.w r5, r8, #4294967295 @ 0xffffffff │ │ │ │ │ + add.w r8, r8, r8, lsl #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor │ │ │ │ │ - add.w ip, r5, #4294967295 @ 0xffffffff │ │ │ │ │ - movs r3, #12 │ │ │ │ │ + ldrd r2, ip, [r4, #4] │ │ │ │ │ mov r7, r0 │ │ │ │ │ - ldr r0, [r4, #8] │ │ │ │ │ - cmp.w ip, #0 │ │ │ │ │ - mul.w r2, r3, ip │ │ │ │ │ - mov.w r1, r0, lsl #1 │ │ │ │ │ - add.w lr, r7, r2 │ │ │ │ │ - str.w r1, [lr, #12] │ │ │ │ │ - mul.w lr, r3, r5 │ │ │ │ │ - ldr r5, [r4, #4] │ │ │ │ │ + add.w r0, r5, r5, lsl #1 │ │ │ │ │ + mov.w lr, r8, lsl #2 │ │ │ │ │ + cmp r5, #0 │ │ │ │ │ + mov.w r0, r0, lsl #2 │ │ │ │ │ + add.w r3, r7, r0 │ │ │ │ │ + add r0, r2 │ │ │ │ │ + mov.w r1, ip, lsl #1 │ │ │ │ │ + ldr r0, [r0, #4] │ │ │ │ │ + str r1, [r3, #12] │ │ │ │ │ add.w r3, r7, lr │ │ │ │ │ - add r2, r5 │ │ │ │ │ - str.w r1, [r3, #-4] │ │ │ │ │ - ldr r2, [r2, #4] │ │ │ │ │ - str.w r2, [r3, #-8] │ │ │ │ │ - ble.n 174 │ │ │ │ │ - add r5, lr │ │ │ │ │ - mul.w r1, r2, r1 │ │ │ │ │ - subs r5, #12 │ │ │ │ │ + strd r0, r1, [r3, #-8] │ │ │ │ │ + ble.n 198 │ │ │ │ │ + add r2, lr │ │ │ │ │ + mul.w r1, r0, r1 │ │ │ │ │ + subs r5, #1 │ │ │ │ │ + sub.w r2, r2, #12 │ │ │ │ │ strd r1, r1, [r3, #-16] │ │ │ │ │ - subs.w ip, ip, #1 │ │ │ │ │ sub.w r3, r3, #12 │ │ │ │ │ - ldr.w r2, [r5, #-8] │ │ │ │ │ - str.w r2, [r3, #-8] │ │ │ │ │ - bne.n 158 │ │ │ │ │ - movs r2, #2 │ │ │ │ │ + ldr.w r0, [r2, #-8] │ │ │ │ │ + str.w r0, [r3, #-8] │ │ │ │ │ + bne.n 17c │ │ │ │ │ + mov.w r2, #2 │ │ │ │ │ + mov r0, ip │ │ │ │ │ mov r1, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor_1d │ │ │ │ │ + ldr r2, [sp, #16] │ │ │ │ │ + mov r1, r0 │ │ │ │ │ + mov r0, r7 │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - mov r1, r0 │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ - mov r0, r7 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - ldrd r2, r3, [sp, #16] │ │ │ │ │ - b.n c2 │ │ │ │ │ + ldr r3, [sp, #20] │ │ │ │ │ + b.n dc │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.w 72 │ │ │ │ │ - b.n 78 │ │ │ │ │ - nop │ │ │ │ │ - .word 0x000000b6 │ │ │ │ │ + beq.w 8a │ │ │ │ │ + b.n 90 │ │ │ │ │ + .word 0x000000c0 │ │ │ │ │ R_ARM_REL32 apply │ │ │ │ │ - .word 0x000000b8 │ │ │ │ │ + .word 0x000000c2 │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -000001a8 : │ │ │ │ │ +000001d0 : │ │ │ │ │ fftwf_mpi_dft_serial_applicable(): │ │ │ │ │ ldr r1, [r0, #24] │ │ │ │ │ - cbz r1, 1b0 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + cbz r1, 1da │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ bx lr │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_is_local │ │ │ │ │ - cbnz r0, 1c6 │ │ │ │ │ + cbnz r0, 1f4 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ clz r0, r0 │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n 1bc │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + beq.n 1e8 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ - nop │ │ │ │ │ │ │ │ │ │ -000001d8 : │ │ │ │ │ +00000208 : │ │ │ │ │ fftwf_mpi_dft_serial_register(): │ │ │ │ │ - ldr r1, [pc, #24] @ (1f4 ) │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + ldr r1, [pc, #28] @ (228 ) │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov.w r0, #8 │ │ │ │ │ add r1, pc │ │ │ │ │ - movs r0, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mksolver │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r4, lr} │ │ │ │ │ + ldrd r4, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_solver_register │ │ │ │ │ - nop │ │ │ │ │ - .word 0x00000012 │ │ │ │ │ + .word 0x00000010 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ ├── dft-rank-geq2.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 2764 (bytes into file) │ │ │ │ │ + Start of section headers: 2892 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 15 │ │ │ │ │ Section header string table index: 14 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,24 +1,24 @@ │ │ │ │ │ -There are 15 section headers, starting at offset 0xacc: │ │ │ │ │ +There are 15 section headers, starting at offset 0xb4c: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 000394 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0008fc 000120 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 0003c8 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 0003c8 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 0003c8 00002a 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 0003f2 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 000a1c 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 000402 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 000a3c 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 00040e 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 00040e 000033 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 000444 0002c0 10 13 22 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 000704 0001f5 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 000a44 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000414 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 00097c 000120 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000448 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000448 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 000448 00002a 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 000472 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 000a9c 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 000482 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 000abc 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 00048e 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 00048e 000033 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 0004c4 0002c0 10 13 22 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 000784 0001f5 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 000ac4 000087 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,26 +1,26 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 44 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ - 1: 00000001 76 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ + 1: 00000001 98 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ 2: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ 3: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 4: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ 5: 00000004 0 NOTYPE LOCAL DEFAULT 5 .LC1 │ │ │ │ │ 6: 00000008 0 NOTYPE LOCAL DEFAULT 5 .LC2 │ │ │ │ │ - 7: 0000004d 56 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 8: 00000078 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 9: 00000084 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 10: 00000085 20 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 11: 00000099 684 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 12: 0000033c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 13: 00000344 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 14: 00000345 24 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 15: 00000390 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 7: 00000065 56 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 8: 00000090 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 0000009c 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 10: 0000009d 24 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 11: 000000b5 752 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 12: 0000039c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 13: 000003a4 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 14: 000003a5 36 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 15: 00000410 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 16: 00000000 0 SECTION LOCAL DEFAULT 6 .data.rel.ro │ │ │ │ │ 17: 00000000 0 NOTYPE LOCAL DEFAULT 6 $d │ │ │ │ │ 18: 00000000 16 OBJECT LOCAL DEFAULT 6 padt.0 │ │ │ │ │ 19: 00000000 0 SECTION LOCAL DEFAULT 8 .data.rel.ro.local │ │ │ │ │ 20: 00000000 0 NOTYPE LOCAL DEFAULT 8 $d │ │ │ │ │ 21: 00000000 12 OBJECT LOCAL DEFAULT 8 sadt.1 │ │ │ │ │ 22: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_plan_destroy_internal │ │ │ │ │ @@ -37,11 +37,11 @@ │ │ │ │ │ 33: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_any_true │ │ │ │ │ 34: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_mkdtensor │ │ │ │ │ 35: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_mkproblem_dft_d │ │ │ │ │ 36: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mkplan_rdft │ │ │ │ │ 37: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ops_add │ │ │ │ │ 38: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_dft_serial_applicable │ │ │ │ │ 39: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_plan_awake │ │ │ │ │ - 40: 0000035d 56 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dft_rank_geq2_register │ │ │ │ │ + 40: 000003c9 76 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dft_rank_geq2_register │ │ │ │ │ 41: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mksolver │ │ │ │ │ 42: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_solver_register │ │ │ │ │ 43: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_dft_solve │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,50 +1,50 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x8fc contains 36 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x97c contains 36 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000078 00000503 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ -0000007c 00000603 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -00000080 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -0000008a 0000160a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000000d0 0000170a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ -000000de 0000170a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ -000000fc 0000180a R_ARM_THM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ -0000010c 0000180a R_ARM_THM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ -0000012e 0000190a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000136 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000140 00001b0a R_ARM_THM_CALL 00000000 fftwf_mktensor │ │ │ │ │ -00000216 00001c0a R_ARM_THM_CALL 00000000 fftwf_tensor_sz │ │ │ │ │ -0000022c 00001d0a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -0000023a 00001e0a R_ARM_THM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ -0000024e 00001f0a R_ARM_THM_CALL 00000000 fftwf_mkproblem_dft_d │ │ │ │ │ -00000256 0000200a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -00000264 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -0000026e 0000220a R_ARM_THM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ -000002a0 0000230a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_dft_d │ │ │ │ │ -000002a8 0000200a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -000002b6 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -000002c6 0000240a R_ARM_THM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ -00000302 0000250a R_ARM_THM_CALL 00000000 fftwf_ops_add │ │ │ │ │ -00000318 0000160a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -0000031e 0000160a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -0000032e 0000260a R_ARM_THM_CALL 00000000 fftwf_mpi_dft_serial_applicable │ │ │ │ │ -0000033c 00000103 R_ARM_REL32 00000001 apply │ │ │ │ │ -00000340 00001003 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -0000034c 0000270a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -00000368 0000290a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -00000374 00002a0a R_ARM_THM_CALL 00000000 fftwf_solver_register │ │ │ │ │ -0000037c 0000290a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -00000390 00001303 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -00000094 0000161e R_ARM_THM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000358 0000271e R_ARM_THM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ -0000038c 00002a1e R_ARM_THM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ +00000090 00000503 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ +00000094 00000603 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +00000098 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +000000a4 0000160a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000114 0000170a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ +00000124 0000170a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ +00000142 0000180a R_ARM_THM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ +00000150 0000180a R_ARM_THM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ +00000174 0000190a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +0000017c 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000188 00001b0a R_ARM_THM_CALL 00000000 fftwf_mktensor │ │ │ │ │ +0000026c 00001c0a R_ARM_THM_CALL 00000000 fftwf_tensor_sz │ │ │ │ │ +00000282 00001d0a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00000290 00001e0a R_ARM_THM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ +000002a4 00001f0a R_ARM_THM_CALL 00000000 fftwf_mkproblem_dft_d │ │ │ │ │ +000002ac 0000200a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +000002bc 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +000002c8 0000220a R_ARM_THM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ +000002f8 0000230a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_dft_d │ │ │ │ │ +00000300 0000200a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +00000310 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +00000322 0000240a R_ARM_THM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ +00000368 0000250a R_ARM_THM_CALL 00000000 fftwf_ops_add │ │ │ │ │ +0000037a 0000160a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000380 0000160a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000390 0000260a R_ARM_THM_CALL 00000000 fftwf_mpi_dft_serial_applicable │ │ │ │ │ +0000039c 00000103 R_ARM_REL32 00000001 apply │ │ │ │ │ +000003a0 00001003 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +000003b2 0000270a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +000003dc 0000290a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +000003ea 00002a0a R_ARM_THM_CALL 00000000 fftwf_solver_register │ │ │ │ │ +000003f4 0000290a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +00000410 00001303 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +000000b0 0000161e R_ARM_THM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000003c4 0000271e R_ARM_THM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ +0000040c 00002a1e R_ARM_THM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0xa1c contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0xa9c contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000000 00002b02 R_ARM_ABS32 00000000 fftwf_mpi_dft_solve │ │ │ │ │ -00000004 00000e02 R_ARM_ABS32 00000345 awake │ │ │ │ │ -00000008 00000702 R_ARM_ABS32 0000004d print │ │ │ │ │ -0000000c 00000a02 R_ARM_ABS32 00000085 destroy │ │ │ │ │ +00000004 00000e02 R_ARM_ABS32 000003a5 awake │ │ │ │ │ +00000008 00000702 R_ARM_ABS32 00000065 print │ │ │ │ │ +0000000c 00000a02 R_ARM_ABS32 0000009d destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0xa3c contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0xabc contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000b02 R_ARM_ABS32 00000099 mkplan │ │ │ │ │ +00000004 00000b02 R_ARM_ABS32 000000b5 mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,395 +1,413 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply(): │ │ │ │ │ - push {r4, r5, r6, r7, lr} │ │ │ │ │ + str.w r4, [sp, #-20]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r5, r1 │ │ │ │ │ - ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ - ldr r2, [r4, #76] @ 0x4c │ │ │ │ │ + ldrd r3, r2, [r4, #72] @ 0x48 │ │ │ │ │ + strd r7, lr, [sp, #12] │ │ │ │ │ sub sp, #12 │ │ │ │ │ - ldr r3, [r4, #72] @ 0x48 │ │ │ │ │ - ldr r7, [r0, #56] @ 0x38 │ │ │ │ │ + ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + mov.w r3, r3, lsl #2 │ │ │ │ │ mov.w ip, r2, lsl #2 │ │ │ │ │ - lsls r3, r3, #2 │ │ │ │ │ - add.w r2, r1, ip │ │ │ │ │ add.w lr, r1, r3 │ │ │ │ │ + ldr r7, [r0, #56] @ 0x38 │ │ │ │ │ + add.w r2, r1, ip │ │ │ │ │ ldr r1, [r4, #80] @ 0x50 │ │ │ │ │ - cbz r1, 42 │ │ │ │ │ + cbz r1, 58 │ │ │ │ │ add.w r5, r6, ip │ │ │ │ │ - str r5, [sp, #0] │ │ │ │ │ - mov r5, r6 │ │ │ │ │ add r3, r6 │ │ │ │ │ mov r1, lr │ │ │ │ │ + str r5, [sp, #0] │ │ │ │ │ + mov r5, r6 │ │ │ │ │ blx r7 │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ add sp, #12 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + ldr.w lr, [sp], #4 │ │ │ │ │ bx r3 │ │ │ │ │ mov r3, lr │ │ │ │ │ mov r1, lr │ │ │ │ │ str r2, [sp, #0] │ │ │ │ │ blx r7 │ │ │ │ │ - b.n 32 │ │ │ │ │ + b.n 3e │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -0000004c : │ │ │ │ │ +00000064 : │ │ │ │ │ print(): │ │ │ │ │ mov r3, r0 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r0, r1 │ │ │ │ │ - ldr r4, [r1, #0] │ │ │ │ │ - sub sp, #8 │ │ │ │ │ ldr r2, [r3, #80] @ 0x50 │ │ │ │ │ + sub sp, #8 │ │ │ │ │ + ldr r4, [r1, #0] │ │ │ │ │ cmp r2, #2 │ │ │ │ │ - beq.n 70 │ │ │ │ │ - ldr r2, [pc, #24] @ (78 ) │ │ │ │ │ + beq.n 8a │ │ │ │ │ + ldr r2, [pc, #24] @ (90 ) │ │ │ │ │ add r2, pc │ │ │ │ │ ldr r1, [r3, #68] @ 0x44 │ │ │ │ │ str r1, [sp, #0] │ │ │ │ │ - ldr r1, [pc, #20] @ (7c ) │ │ │ │ │ + ldr r1, [pc, #20] @ (94 ) │ │ │ │ │ ldr r3, [r3, #64] @ 0x40 │ │ │ │ │ add r1, pc │ │ │ │ │ blx r4 │ │ │ │ │ add sp, #8 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ - ldr r2, [pc, #12] @ (80 ) │ │ │ │ │ + ldr r2, [pc, #12] @ (98 ) │ │ │ │ │ add r2, pc │ │ │ │ │ - b.n 60 │ │ │ │ │ - nop │ │ │ │ │ - .word 0x00000016 │ │ │ │ │ + b.n 7a │ │ │ │ │ + .word 0x00000014 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x00000010 │ │ │ │ │ + .word 0x0000000e │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ - .word 0x0000000a │ │ │ │ │ + .word 0x00000008 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ -00000084 : │ │ │ │ │ +0000009c : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - ldmia.w sp!, {r4, lr} │ │ │ │ │ + ldrd r4, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_plan_destroy_internal │ │ │ │ │ │ │ │ │ │ -00000098 : │ │ │ │ │ +000000b4 : │ │ │ │ │ mkplan(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ ldr r1, [r1, #4] │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ sub sp, #52 @ 0x34 │ │ │ │ │ ldr r3, [r1, #0] │ │ │ │ │ + str r0, [sp, #20] │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - ble.n ac │ │ │ │ │ + ble.n da │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ - cbz r3, b4 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + cbz r3, f6 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add sp, #52 @ 0x34 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldr r3, [r0, #8] │ │ │ │ │ - mov r7, r0 │ │ │ │ │ mov r6, r2 │ │ │ │ │ - cbz r3, cc │ │ │ │ │ + cbz r3, 10c │ │ │ │ │ ldr.w r3, [r2, #164] @ 0xa4 │ │ │ │ │ lsls r0, r3, #19 │ │ │ │ │ - bmi.n ac │ │ │ │ │ + bmi.n da │ │ │ │ │ ldrd r2, r3, [r4, #12] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - beq.n ac │ │ │ │ │ - movs r2, #0 │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + beq.n da │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n ac │ │ │ │ │ - movs r2, #1 │ │ │ │ │ + beq.n da │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ ldr r1, [r4, #4] │ │ │ │ │ mov r0, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n ac │ │ │ │ │ + beq.n da │ │ │ │ │ ldr.w r3, [r6, #164] @ 0xa4 │ │ │ │ │ lsls r2, r3, #28 │ │ │ │ │ - bmi.w 32c │ │ │ │ │ + bmi.w 38e │ │ │ │ │ ldr.w sl, [r4, #12] │ │ │ │ │ add r3, sp, #28 │ │ │ │ │ - ldr r0, [r4, #20] │ │ │ │ │ add r2, sp, #24 │ │ │ │ │ + ldr r0, [r4, #20] │ │ │ │ │ mov r1, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_extract_reim │ │ │ │ │ - ldr.w fp, [r4, #16] │ │ │ │ │ + ldrd fp, r0, [r4, #16] │ │ │ │ │ add r3, sp, #36 @ 0x24 │ │ │ │ │ - ldr r0, [r4, #20] │ │ │ │ │ add r2, sp, #32 │ │ │ │ │ mov r1, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_extract_reim │ │ │ │ │ - ldr r3, [r7, #8] │ │ │ │ │ + ldr r3, [sp, #20] │ │ │ │ │ + ldr r3, [r3, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.w 30e │ │ │ │ │ + bne.w 370 │ │ │ │ │ ldr.w r3, [r6, #164] @ 0xa4 │ │ │ │ │ lsls r3, r3, #19 │ │ │ │ │ - bmi.w 30e │ │ │ │ │ + bmi.w 370 │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ str r3, [sp, #32] │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ str r3, [sp, #36] @ 0x24 │ │ │ │ │ - add r1, sp, #40 @ 0x28 │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + add r1, sp, #40 @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ - add r1, sp, #44 @ 0x2c │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + add r1, sp, #44 @ 0x2c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r0, [r3, #0] │ │ │ │ │ - subs r0, #1 │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor │ │ │ │ │ ldr.w r9, [r4, #4] │ │ │ │ │ - mov.w ip, #12 │ │ │ │ │ mov r5, r0 │ │ │ │ │ - ldr.w r8, [r9] │ │ │ │ │ - add.w r2, r8, #4294967295 @ 0xffffffff │ │ │ │ │ - sub.w r1, r8, #2 │ │ │ │ │ - mul.w r3, ip, r8 │ │ │ │ │ - mla r2, ip, r2, r9 │ │ │ │ │ - add r0, r3 │ │ │ │ │ - mla r1, ip, r1, r5 │ │ │ │ │ - ldr r2, [r2, #4] │ │ │ │ │ - str.w r2, [r0, #-20] │ │ │ │ │ + ldr.w lr, [r9] │ │ │ │ │ + add.w r2, lr, lr, lsl #1 │ │ │ │ │ + add.w r3, lr, lr, lsl #1 │ │ │ │ │ + add.w r2, r9, r2, lsl #2 │ │ │ │ │ + mov.w r3, r3, lsl #2 │ │ │ │ │ + ldr.w r2, [r2, #-8] │ │ │ │ │ + add.w r1, r0, r3 │ │ │ │ │ + str.w r2, [r1, #-20] │ │ │ │ │ ldr r2, [r4, #8] │ │ │ │ │ - lsls r2, r2, #1 │ │ │ │ │ - str r2, [r1, #12] │ │ │ │ │ - str.w r2, [r0, #-16] │ │ │ │ │ - subs.w r0, r8, #3 │ │ │ │ │ - bmi.n 210 │ │ │ │ │ + mov.w r0, r2, lsl #1 │ │ │ │ │ + add.w r2, lr, lr, lsl #1 │ │ │ │ │ + add.w r2, r5, r2, lsl #2 │ │ │ │ │ + str.w r0, [r2, #-12] │ │ │ │ │ + str.w r0, [r1, #-16] │ │ │ │ │ + subs.w r0, lr, #3 │ │ │ │ │ + bmi.n 266 │ │ │ │ │ + cmp.w lr, #4 │ │ │ │ │ sub.w r2, r3, #16 │ │ │ │ │ sub.w r1, r3, #20 │ │ │ │ │ - cmp.w r8, #4 │ │ │ │ │ - ble.w 328 │ │ │ │ │ + ble.w 38a │ │ │ │ │ + ldr r2, [r5, r2] │ │ │ │ │ + sub.w lr, lr, #5 │ │ │ │ │ + and.w lr, lr, #1 │ │ │ │ │ ldr.w ip, [r5, r1] │ │ │ │ │ - sub.w r8, r8, #5 │ │ │ │ │ add.w r1, r9, r3 │ │ │ │ │ - ldr r2, [r5, r2] │ │ │ │ │ - subs r3, #28 │ │ │ │ │ - and.w r8, r8, #1 │ │ │ │ │ + sub.w r3, r3, #28 │ │ │ │ │ add r3, r5 │ │ │ │ │ - ldr.w lr, [r1, #-20] │ │ │ │ │ + ldr.w r8, [r1, #-20] │ │ │ │ │ mul.w r2, ip, r2 │ │ │ │ │ - strd r2, r2, [r3] │ │ │ │ │ - subs r0, #2 │ │ │ │ │ - str.w lr, [r3, #-4] │ │ │ │ │ - subs r1, #24 │ │ │ │ │ - cmp r0, r8 │ │ │ │ │ + sub.w r0, r0, #2 │ │ │ │ │ + cmp r0, lr │ │ │ │ │ + sub.w r1, r1, #24 │ │ │ │ │ + strd r8, r2, [r3, #-4] │ │ │ │ │ + str r2, [r3, #4] │ │ │ │ │ + mul.w r2, r2, r8 │ │ │ │ │ ldr.w ip, [r1, #-8] │ │ │ │ │ - mul.w r2, r2, lr │ │ │ │ │ - str.w ip, [r3, #-16] │ │ │ │ │ - strd r2, r2, [r3, #-12] │ │ │ │ │ + strd ip, r2, [r3, #-16] │ │ │ │ │ sub.w r3, r3, #24 │ │ │ │ │ - bne.n 1a4 │ │ │ │ │ - mov.w ip, #12 │ │ │ │ │ - add.w lr, r8, #4294967295 @ 0xffffffff │ │ │ │ │ - mul.w r3, ip, r8 │ │ │ │ │ + str r2, [r3, #16] │ │ │ │ │ + bne.n 1f6 │ │ │ │ │ + add.w r3, lr, lr, lsl #1 │ │ │ │ │ + add.w ip, lr, #4294967295 @ 0xffffffff │ │ │ │ │ + mov.w r3, r3, lsl #2 │ │ │ │ │ add r9, r3 │ │ │ │ │ add r3, r5 │ │ │ │ │ - ldrd r2, r0, [r3, #16] │ │ │ │ │ - ldr.w r1, [r9, #16] │ │ │ │ │ - str r1, [r3, #4] │ │ │ │ │ - mul.w r2, r0, r2 │ │ │ │ │ - strd r2, r2, [r3, #8] │ │ │ │ │ - cmp.w r8, #0 │ │ │ │ │ - beq.n 210 │ │ │ │ │ - mla lr, ip, lr, r5 │ │ │ │ │ - ldr.w r0, [r9, #4] │ │ │ │ │ + ldrd r2, r1, [r3, #16] │ │ │ │ │ + ldr.w r0, [r9, #16] │ │ │ │ │ mul.w r2, r1, r2 │ │ │ │ │ - str.w r0, [r3, #-8] │ │ │ │ │ - str.w r2, [lr, #12] │ │ │ │ │ + strd r0, r2, [r3, #4] │ │ │ │ │ + str r2, [r3, #12] │ │ │ │ │ + cmp.w lr, #0 │ │ │ │ │ + beq.n 266 │ │ │ │ │ + ldr.w r1, [r9, #4] │ │ │ │ │ + add.w ip, ip, ip, lsl #1 │ │ │ │ │ + mul.w r2, r0, r2 │ │ │ │ │ + add.w ip, r5, ip, lsl #2 │ │ │ │ │ + str.w r1, [r3, #-8] │ │ │ │ │ + str.w r2, [ip, #12] │ │ │ │ │ str.w r2, [r3, #-4] │ │ │ │ │ mov r0, r5 │ │ │ │ │ mov.w r8, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_tensor_sz │ │ │ │ │ - str r0, [sp, #20] │ │ │ │ │ ldrd r3, r2, [r5, #4] │ │ │ │ │ + mov r7, r0 │ │ │ │ │ mul.w r9, r2, r3 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ ldrd r0, r1, [r3, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ - strd r8, r8, [sp] │ │ │ │ │ mov r2, r9 │ │ │ │ │ mov r1, r9 │ │ │ │ │ + strd r8, r8, [sp] │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor_2d │ │ │ │ │ + ldr r2, [sp, #24] │ │ │ │ │ + mov r1, r0 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - mov r1, r0 │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ - mov r0, r5 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - ldrd r2, r3, [sp, #24] │ │ │ │ │ + ldr r3, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_d │ │ │ │ │ mov r5, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.n 312 │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + bne.n 374 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkdtensor │ │ │ │ │ - ldr r3, [r4, #4] │ │ │ │ │ - add.w lr, r0, #4 │ │ │ │ │ - mov ip, r0 │ │ │ │ │ - adds r3, #4 │ │ │ │ │ - ldmia.w r3, {r0, r1, r2} │ │ │ │ │ - stmia.w lr, {r0, r1, r2} │ │ │ │ │ - movs r3, #16 │ │ │ │ │ + ldr.w ip, [r4, #4] │ │ │ │ │ + mov.w r3, #16 │ │ │ │ │ + ldrd r1, r2, [ip, #4] │ │ │ │ │ + strd r1, r2, [r0, #4] │ │ │ │ │ + ldr.w r2, [ip, #12] │ │ │ │ │ ldr r1, [r4, #8] │ │ │ │ │ + str r2, [r0, #12] │ │ │ │ │ mov r2, sl │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ - ldr r0, [sp, #20] │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ + mul.w r7, r1, r7 │ │ │ │ │ + mov r1, r7 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - mul.w r0, r1, r0 │ │ │ │ │ ldr r3, [r4, #28] │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ mov r3, fp │ │ │ │ │ - mov r1, r0 │ │ │ │ │ - mov r0, ip │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_d │ │ │ │ │ mov sl, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_any_true │ │ │ │ │ - cbnz r0, 316 │ │ │ │ │ - ldr r2, [pc, #124] @ (33c ) │ │ │ │ │ - movs r0, #88 @ 0x58 │ │ │ │ │ - ldr r1, [pc, #124] @ (340 ) │ │ │ │ │ + cbnz r0, 378 │ │ │ │ │ + ldr r2, [pc, #132] @ (39c ) │ │ │ │ │ + mov.w r0, #88 @ 0x58 │ │ │ │ │ + ldr r1, [pc, #128] @ (3a0 ) │ │ │ │ │ add r2, pc │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_rdft │ │ │ │ │ - ldr r3, [r7, #8] │ │ │ │ │ + ldr r3, [sp, #20] │ │ │ │ │ mov r9, r0 │ │ │ │ │ + ldr r3, [r3, #8] │ │ │ │ │ strd r5, sl, [r0, #64] @ 0x40 │ │ │ │ │ - cbnz r3, 324 │ │ │ │ │ + cbnz r3, 386 │ │ │ │ │ ldr.w r3, [r6, #164] @ 0xa4 │ │ │ │ │ and.w r3, r3, #4096 @ 0x1000 │ │ │ │ │ ldr r2, [r4, #12] │ │ │ │ │ add.w r0, r5, #8 │ │ │ │ │ - str.w r3, [r9, #80] @ 0x50 │ │ │ │ │ add.w r1, sl, #8 │ │ │ │ │ + str.w r3, [r9, #80] @ 0x50 │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ - subs r3, r3, r2 │ │ │ │ │ - asrs r3, r3, #2 │ │ │ │ │ + sub.w r3, r3, r2 │ │ │ │ │ + mov.w r3, r3, asr #2 │ │ │ │ │ str.w r3, [r9, #72] @ 0x48 │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ - subs r3, r3, r2 │ │ │ │ │ + sub.w r3, r3, r2 │ │ │ │ │ add.w r2, r9, #8 │ │ │ │ │ - asrs r3, r3, #2 │ │ │ │ │ + mov.w r3, r3, asr #2 │ │ │ │ │ str.w r3, [r9, #76] @ 0x4c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ops_add │ │ │ │ │ mov r0, r9 │ │ │ │ │ - add sp, #52 @ 0x34 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b.n de │ │ │ │ │ mov sl, fp │ │ │ │ │ - b.n 12a │ │ │ │ │ + b.n 170 │ │ │ │ │ mov.w sl, #0 │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ - b.n ac │ │ │ │ │ + b.n da │ │ │ │ │ mov r3, r8 │ │ │ │ │ - b.n 2dc │ │ │ │ │ - mov r8, r0 │ │ │ │ │ - b.n 1d0 │ │ │ │ │ + b.n 33a │ │ │ │ │ + mov lr, r0 │ │ │ │ │ + b.n 222 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dft_serial_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.w f0 │ │ │ │ │ - b.n ac │ │ │ │ │ - nop │ │ │ │ │ - .word 0x00000076 │ │ │ │ │ + beq.w 136 │ │ │ │ │ + b.n da │ │ │ │ │ + .word 0x0000007a │ │ │ │ │ R_ARM_REL32 apply │ │ │ │ │ - .word 0x00000078 │ │ │ │ │ + .word 0x0000007c │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -00000344 : │ │ │ │ │ +000003a4 : │ │ │ │ │ awake(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ + mov r5, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_awake │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, lr} │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + ldrd r5, lr, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_plan_awake │ │ │ │ │ │ │ │ │ │ -0000035c : │ │ │ │ │ +000003c8 : │ │ │ │ │ fftwf_mpi_dft_rank_geq2_register(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r5, [pc, #44] @ (390 ) │ │ │ │ │ - movs r0, #12 │ │ │ │ │ + mov.w r0, #12 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ + ldr r5, [pc, #56] @ (410 ) │ │ │ │ │ add r5, pc │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mksolver │ │ │ │ │ - movs r3, #0 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ + str r3, [r1, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_solver_register │ │ │ │ │ mov r1, r5 │ │ │ │ │ - movs r0, #12 │ │ │ │ │ + mov.w r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mksolver │ │ │ │ │ - movs r3, #1 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + ldrd r5, lr, [sp, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, lr} │ │ │ │ │ + str r3, [r1, #8] │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + add sp, #16 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_solver_register │ │ │ │ │ - .word 0x00000028 │ │ │ │ │ + .word 0x00000034 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ ├── dft-rank-geq2-transposed.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 3120 (bytes into file) │ │ │ │ │ + Start of section headers: 3268 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 15 │ │ │ │ │ Section header string table index: 14 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,24 +1,24 @@ │ │ │ │ │ -There are 15 section headers, starting at offset 0xc30: │ │ │ │ │ +There are 15 section headers, starting at offset 0xcc4: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 000468 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000a10 000170 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 00049c 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 00049c 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 00049c 00003b 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 0004d7 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 000b80 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 0004e7 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 000ba0 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 0004f3 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 0004f3 000033 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 000528 0002d0 10 13 22 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 0007f8 000216 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 000ba8 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0004fc 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000aa4 000170 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000530 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000530 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 000530 00003b 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 00056b 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 000c14 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 00057b 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 000c34 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 000587 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000587 000033 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 0005bc 0002d0 10 13 22 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 00088c 000216 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 000c3c 000087 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,26 +1,26 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 45 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ - 1: 00000001 92 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ + 1: 00000001 120 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ 2: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ 3: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 4: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ 5: 00000004 0 NOTYPE LOCAL DEFAULT 5 .LC1 │ │ │ │ │ 6: 00000008 0 NOTYPE LOCAL DEFAULT 5 .LC2 │ │ │ │ │ - 7: 0000005d 60 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 8: 0000008c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 9: 00000098 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 10: 00000099 26 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 11: 000000b5 860 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 12: 00000408 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 13: 00000410 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 14: 00000411 32 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 15: 00000464 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 7: 00000079 60 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 8: 000000a8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 000000b4 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 10: 000000b5 30 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 11: 000000d5 944 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 12: 0000047c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 13: 00000484 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 14: 00000485 44 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 15: 000004f8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 16: 00000000 0 SECTION LOCAL DEFAULT 6 .data.rel.ro │ │ │ │ │ 17: 00000000 0 NOTYPE LOCAL DEFAULT 6 $d │ │ │ │ │ 18: 00000000 16 OBJECT LOCAL DEFAULT 6 padt.0 │ │ │ │ │ 19: 00000000 0 SECTION LOCAL DEFAULT 8 .data.rel.ro.local │ │ │ │ │ 20: 00000000 0 NOTYPE LOCAL DEFAULT 8 $d │ │ │ │ │ 21: 00000000 12 OBJECT LOCAL DEFAULT 8 sadt.1 │ │ │ │ │ 22: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_plan_destroy_internal │ │ │ │ │ @@ -38,11 +38,11 @@ │ │ │ │ │ 34: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_mkproblem_transpose │ │ │ │ │ 35: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mktensor_1d │ │ │ │ │ 36: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mkplan_rdft │ │ │ │ │ 37: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ops_add │ │ │ │ │ 38: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ops_add2 │ │ │ │ │ 39: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_dft_serial_applicable │ │ │ │ │ 40: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_plan_awake │ │ │ │ │ - 41: 00000431 56 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dft_rank_geq2_transposed_register │ │ │ │ │ + 41: 000004b1 76 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dft_rank_geq2_transposed_register │ │ │ │ │ 42: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mksolver │ │ │ │ │ 43: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_solver_register │ │ │ │ │ 44: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_dft_solve │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,60 +1,60 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0xa10 contains 46 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0xaa4 contains 46 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -0000008c 00000503 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ -00000090 00000603 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -00000094 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -0000009e 0000160a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000000a4 0000160a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000000ee 0000170a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ -000000fc 0000170a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ -0000010a 0000180a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -0000012a 0000190a R_ARM_THM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ -0000013e 0000190a R_ARM_THM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ -00000162 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -0000016a 00001b0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000174 00001c0a R_ARM_THM_CALL 00000000 fftwf_mktensor │ │ │ │ │ -0000027e 00001d0a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -0000028c 00001e0a R_ARM_THM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ -000002a0 00001f0a R_ARM_THM_CALL 00000000 fftwf_mkproblem_dft_d │ │ │ │ │ -000002a8 0000200a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -000002b6 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -000002e8 0000220a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ -000002f0 0000200a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -000002fe 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -0000030e 0000190a R_ARM_THM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ -00000324 00001d0a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -00000332 0000230a R_ARM_THM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ -00000344 00001e0a R_ARM_THM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ -00000354 00001f0a R_ARM_THM_CALL 00000000 fftwf_mkproblem_dft_d │ │ │ │ │ +000000a8 00000503 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ +000000ac 00000603 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +000000b0 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +000000bc 0000160a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000000c2 0000160a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000136 0000170a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ +00000148 0000170a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ +00000156 0000180a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +00000176 0000190a R_ARM_THM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ +00000188 0000190a R_ARM_THM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ +000001ac 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000001b4 00001b0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000001c0 00001c0a R_ARM_THM_CALL 00000000 fftwf_mktensor │ │ │ │ │ +000002e4 00001d0a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +000002f2 00001e0a R_ARM_THM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ +00000306 00001f0a R_ARM_THM_CALL 00000000 fftwf_mkproblem_dft_d │ │ │ │ │ +0000030e 0000200a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +0000031e 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +00000354 0000220a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ 0000035c 0000200a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -0000036a 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -0000037a 0000240a R_ARM_THM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ -000003b8 0000250a R_ARM_THM_CALL 00000000 fftwf_ops_add │ │ │ │ │ -000003c2 0000260a R_ARM_THM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ -000003dc 0000160a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000003e2 0000160a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000003e8 0000160a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000003fa 0000270a R_ARM_THM_CALL 00000000 fftwf_mpi_dft_serial_applicable │ │ │ │ │ -00000408 00000103 R_ARM_REL32 00000001 apply │ │ │ │ │ -0000040c 00001003 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -00000418 0000280a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -00000420 0000280a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -0000043c 00002a0a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -00000448 00002b0a R_ARM_THM_CALL 00000000 fftwf_solver_register │ │ │ │ │ -00000450 00002a0a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -00000464 00001303 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -000000ae 0000161e R_ARM_THM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -0000042c 0000281e R_ARM_THM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ -00000460 00002b1e R_ARM_THM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ +0000036c 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +0000037c 0000190a R_ARM_THM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ +00000392 00001d0a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +000003a2 0000230a R_ARM_THM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ +000003b4 00001e0a R_ARM_THM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ +000003c4 00001f0a R_ARM_THM_CALL 00000000 fftwf_mkproblem_dft_d │ │ │ │ │ +000003cc 0000200a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +000003dc 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +000003ee 0000240a R_ARM_THM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ +00000434 0000250a R_ARM_THM_CALL 00000000 fftwf_ops_add │ │ │ │ │ +0000043e 0000260a R_ARM_THM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ +00000452 0000160a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000458 0000160a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +0000045e 0000160a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000470 0000270a R_ARM_THM_CALL 00000000 fftwf_mpi_dft_serial_applicable │ │ │ │ │ +0000047c 00000103 R_ARM_REL32 00000001 apply │ │ │ │ │ +00000480 00001003 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +00000492 0000280a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +0000049a 0000280a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +000004c4 00002a0a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +000004d2 00002b0a R_ARM_THM_CALL 00000000 fftwf_solver_register │ │ │ │ │ +000004dc 00002a0a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +000004f8 00001303 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +000000ce 0000161e R_ARM_THM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000004ac 0000281e R_ARM_THM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ +000004f4 00002b1e R_ARM_THM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0xb80 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0xc14 contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000000 00002c02 R_ARM_ABS32 00000000 fftwf_mpi_dft_solve │ │ │ │ │ -00000004 00000e02 R_ARM_ABS32 00000411 awake │ │ │ │ │ -00000008 00000702 R_ARM_ABS32 0000005d print │ │ │ │ │ -0000000c 00000a02 R_ARM_ABS32 00000099 destroy │ │ │ │ │ +00000004 00000e02 R_ARM_ABS32 00000485 awake │ │ │ │ │ +00000008 00000702 R_ARM_ABS32 00000079 print │ │ │ │ │ +0000000c 00000a02 R_ARM_ABS32 000000b5 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0xba0 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0xc34 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000b02 R_ARM_ABS32 000000b5 mkplan │ │ │ │ │ +00000004 00000b02 R_ARM_ABS32 000000d5 mkplan │ │ │ │ ├── strings --all --bytes=8 {} │ │ │ │ │ @@ -1,8 +1,7 @@ │ │ │ │ │ -%JX %IzDyD │ │ │ │ │ (mpi-dft-rank-geq2-transposed%s%(%p%)%(%p%)%(%p%)) │ │ │ │ │ fftwf_plan_destroy_internal │ │ │ │ │ fftwf_mpi_is_local_after │ │ │ │ │ fftwf_mpi_num_blocks │ │ │ │ │ fftwf_extract_reim │ │ │ │ │ MPI_Comm_rank │ │ │ │ │ MPI_Comm_size │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,490 +1,509 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r1 │ │ │ │ │ - ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ mov r6, r2 │ │ │ │ │ - ldr r3, [r4, #80] @ 0x50 │ │ │ │ │ + ldrd r1, r3, [r4, #76] @ 0x4c │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ sub sp, #12 │ │ │ │ │ - ldr r1, [r4, #76] @ 0x4c │ │ │ │ │ - ldr.w r9, [r0, #56] @ 0x38 │ │ │ │ │ mov.w ip, r3, lsl #2 │ │ │ │ │ ldr r3, [r4, #84] @ 0x54 │ │ │ │ │ - lsls r1, r1, #2 │ │ │ │ │ + mov.w r1, r1, lsl #2 │ │ │ │ │ + ldr.w r9, [r0, #56] @ 0x38 │ │ │ │ │ add.w r7, r2, ip │ │ │ │ │ add.w r8, r2, r1 │ │ │ │ │ add r1, r5 │ │ │ │ │ add.w r2, r5, ip │ │ │ │ │ - cbz r3, 54 │ │ │ │ │ - mov r5, r6 │ │ │ │ │ + cbz r3, 70 │ │ │ │ │ mov r3, r8 │ │ │ │ │ str r7, [sp, #0] │ │ │ │ │ + mov r5, r6 │ │ │ │ │ blx r9 │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ - str r7, [sp, #0] │ │ │ │ │ mov r3, r8 │ │ │ │ │ mov r2, r7 │ │ │ │ │ + str r7, [sp, #0] │ │ │ │ │ mov r1, r8 │ │ │ │ │ ldr r4, [r0, #56] @ 0x38 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, #12 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ mov r3, r1 │ │ │ │ │ str r2, [sp, #0] │ │ │ │ │ blx r9 │ │ │ │ │ - b.n 36 │ │ │ │ │ + b.n 44 │ │ │ │ │ │ │ │ │ │ -0000005c : │ │ │ │ │ +00000078 : │ │ │ │ │ print(): │ │ │ │ │ mov r3, r0 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r0, r1 │ │ │ │ │ - ldr r4, [r1, #0] │ │ │ │ │ - sub sp, #8 │ │ │ │ │ ldr r2, [r3, #84] @ 0x54 │ │ │ │ │ + sub sp, #8 │ │ │ │ │ + ldr r4, [r1, #0] │ │ │ │ │ cmp r2, #2 │ │ │ │ │ - beq.n 84 │ │ │ │ │ - ldr r2, [pc, #28] @ (8c ) │ │ │ │ │ + beq.n a2 │ │ │ │ │ + ldr r2, [pc, #28] @ (a8 ) │ │ │ │ │ add r2, pc │ │ │ │ │ ldr r1, [r3, #72] @ 0x48 │ │ │ │ │ str r1, [sp, #4] │ │ │ │ │ ldr r1, [r3, #68] @ 0x44 │ │ │ │ │ str r1, [sp, #0] │ │ │ │ │ - ldr r1, [pc, #20] @ (90 ) │ │ │ │ │ + ldr r1, [pc, #20] @ (ac ) │ │ │ │ │ ldr r3, [r3, #64] @ 0x40 │ │ │ │ │ add r1, pc │ │ │ │ │ blx r4 │ │ │ │ │ add sp, #8 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ - ldr r2, [pc, #12] @ (94 ) │ │ │ │ │ + ldr r2, [pc, #12] @ (b0 ) │ │ │ │ │ add r2, pc │ │ │ │ │ - b.n 70 │ │ │ │ │ - nop │ │ │ │ │ - .word 0x0000001a │ │ │ │ │ + b.n 8e │ │ │ │ │ + .word 0x00000018 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x00000010 │ │ │ │ │ + .word 0x0000000e │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ - .word 0x0000000a │ │ │ │ │ + .word 0x00000008 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ -00000098 : │ │ │ │ │ +000000b4 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #72] @ 0x48 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - ldmia.w sp!, {r4, lr} │ │ │ │ │ + ldrd r4, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_plan_destroy_internal │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -000000b4 : │ │ │ │ │ +000000d4 : │ │ │ │ │ mkplan(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ ldr r1, [r1, #4] │ │ │ │ │ - sub sp, #76 @ 0x4c │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #68 @ 0x44 │ │ │ │ │ ldr r3, [r1, #0] │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - ble.n ca │ │ │ │ │ + ble.n fa │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ cmp r3, #8 │ │ │ │ │ - beq.n d2 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ - add sp, #76 @ 0x4c │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + beq.n 116 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ + add sp, #68 @ 0x44 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldr r3, [r0, #8] │ │ │ │ │ mov fp, r0 │ │ │ │ │ mov sl, r2 │ │ │ │ │ - cbz r3, ea │ │ │ │ │ + cbz r3, 12e │ │ │ │ │ ldr.w r3, [r2, #164] @ 0xa4 │ │ │ │ │ lsls r0, r3, #19 │ │ │ │ │ - bmi.n ca │ │ │ │ │ + bmi.n fa │ │ │ │ │ ldrd r2, r3, [r4, #12] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - beq.n ca │ │ │ │ │ - movs r2, #0 │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + beq.n fa │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n ca │ │ │ │ │ + beq.n fa │ │ │ │ │ ldr r1, [r4, #4] │ │ │ │ │ - movs r2, #1 │ │ │ │ │ - movs r0, #2 │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ + mov.w r0, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n ca │ │ │ │ │ + beq.n fa │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - ldr r1, [r3, #12] │ │ │ │ │ ldr r0, [r3, #4] │ │ │ │ │ + ldr r1, [r3, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks │ │ │ │ │ - mov r5, r0 │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - bne.n ca │ │ │ │ │ + mov r5, r0 │ │ │ │ │ + bne.n fa │ │ │ │ │ ldr.w r3, [sl, #164] @ 0xa4 │ │ │ │ │ lsls r2, r3, #28 │ │ │ │ │ - bmi.w 3f8 │ │ │ │ │ - ldr r3, [r4, #12] │ │ │ │ │ - add r2, sp, #48 @ 0x30 │ │ │ │ │ + bmi.w 46e │ │ │ │ │ + ldr.w r8, [r4, #12] │ │ │ │ │ + add r3, sp, #44 @ 0x2c │ │ │ │ │ + add r2, sp, #40 @ 0x28 │ │ │ │ │ ldr r0, [r4, #20] │ │ │ │ │ - mov r1, r3 │ │ │ │ │ - str r3, [sp, #28] │ │ │ │ │ - add r3, sp, #52 @ 0x34 │ │ │ │ │ + mov r1, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_extract_reim │ │ │ │ │ - ldr.w r9, [r4, #16] │ │ │ │ │ - add r3, sp, #60 @ 0x3c │ │ │ │ │ - add r2, sp, #56 @ 0x38 │ │ │ │ │ - ldr r0, [r4, #20] │ │ │ │ │ + ldrd r9, r0, [r4, #16] │ │ │ │ │ + add r3, sp, #52 @ 0x34 │ │ │ │ │ + add r2, sp, #48 @ 0x30 │ │ │ │ │ + strd r2, r3, [sp, #28] │ │ │ │ │ mov r1, r9 │ │ │ │ │ - str r3, [sp, #36] @ 0x24 │ │ │ │ │ - str r2, [sp, #32] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_extract_reim │ │ │ │ │ ldr.w r3, [fp, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.w 3ce │ │ │ │ │ + bne.w 446 │ │ │ │ │ ldr.w r3, [sl, #164] @ 0xa4 │ │ │ │ │ lsls r3, r3, #19 │ │ │ │ │ - bmi.w 3ce │ │ │ │ │ - ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ - str r3, [sp, #56] @ 0x38 │ │ │ │ │ - ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - str r3, [sp, #60] @ 0x3c │ │ │ │ │ - add r1, sp, #64 @ 0x40 │ │ │ │ │ + bmi.w 446 │ │ │ │ │ + ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ + str r3, [sp, #48] @ 0x30 │ │ │ │ │ + ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ + str r3, [sp, #52] @ 0x34 │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + add r1, sp, #56 @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ - add r1, sp, #68 @ 0x44 │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + add r1, sp, #60 @ 0x3c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r0, [r3, #0] │ │ │ │ │ - subs r0, #1 │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor │ │ │ │ │ ldr r7, [r4, #4] │ │ │ │ │ - movs r1, #12 │ │ │ │ │ mov r6, r0 │ │ │ │ │ ldr.w lr, [r7] │ │ │ │ │ - add.w r2, lr, #4294967295 @ 0xffffffff │ │ │ │ │ - sub.w ip, lr, #2 │ │ │ │ │ - mul.w r3, r1, lr │ │ │ │ │ - mla r2, r1, r2, r7 │ │ │ │ │ - add r0, r3 │ │ │ │ │ - mla ip, r1, ip, r6 │ │ │ │ │ - ldr r2, [r2, #4] │ │ │ │ │ - str.w r2, [r0, #-20] │ │ │ │ │ + add.w r2, lr, lr, lsl #1 │ │ │ │ │ + add.w r3, lr, lr, lsl #1 │ │ │ │ │ + add.w r2, r7, r2, lsl #2 │ │ │ │ │ + mov.w r3, r3, lsl #2 │ │ │ │ │ + ldr.w r2, [r2, #-8] │ │ │ │ │ + add.w r1, r0, r3 │ │ │ │ │ + add.w r0, lr, lr, lsl #1 │ │ │ │ │ + add.w r0, r6, r0, lsl #2 │ │ │ │ │ + str.w r2, [r1, #-20] │ │ │ │ │ ldr r2, [r4, #8] │ │ │ │ │ - lsls r2, r2, #1 │ │ │ │ │ - str.w r2, [ip, #12] │ │ │ │ │ - str.w r2, [r0, #-16] │ │ │ │ │ + mov.w r2, r2, lsl #1 │ │ │ │ │ + str.w r2, [r0, #-12] │ │ │ │ │ subs.w r0, lr, #3 │ │ │ │ │ - bmi.n 24e │ │ │ │ │ + str.w r2, [r1, #-16] │ │ │ │ │ + bmi.n 2aa │ │ │ │ │ + cmp.w lr, #4 │ │ │ │ │ sub.w r2, r3, #16 │ │ │ │ │ sub.w r1, r3, #20 │ │ │ │ │ - cmp.w lr, #4 │ │ │ │ │ - ble.w 3f4 │ │ │ │ │ + ble.w 46a │ │ │ │ │ ldr.w ip, [r6, r1] │ │ │ │ │ sub.w lr, lr, #5 │ │ │ │ │ - adds r1, r7, r3 │ │ │ │ │ + add.w r1, r7, r3 │ │ │ │ │ + sub.w r3, r3, #28 │ │ │ │ │ + and.w lr, lr, #1 │ │ │ │ │ + str r7, [sp, #24] │ │ │ │ │ ldr r2, [r6, r2] │ │ │ │ │ - subs r3, #28 │ │ │ │ │ - mov r8, r4 │ │ │ │ │ add r3, r6 │ │ │ │ │ - mov r4, ip │ │ │ │ │ - and.w lr, lr, #1 │ │ │ │ │ - mov ip, r5 │ │ │ │ │ - ldr.w r5, [r1, #-20] │ │ │ │ │ - mul.w r2, r4, r2 │ │ │ │ │ - strd r2, r2, [r3] │ │ │ │ │ - subs r0, #2 │ │ │ │ │ - str.w r5, [r3, #-4] │ │ │ │ │ - subs r1, #24 │ │ │ │ │ + mov r7, ip │ │ │ │ │ + mov ip, r4 │ │ │ │ │ + ldr.w r4, [r1, #-20] │ │ │ │ │ + mul.w r2, r7, r2 │ │ │ │ │ + sub.w r0, r0, #2 │ │ │ │ │ cmp r0, lr │ │ │ │ │ - ldr.w r4, [r1, #-8] │ │ │ │ │ - mul.w r2, r5, r2 │ │ │ │ │ - str.w r4, [r3, #-16] │ │ │ │ │ - strd r2, r2, [r3, #-12] │ │ │ │ │ + sub.w r1, r1, #24 │ │ │ │ │ + strd r4, r2, [r3, #-4] │ │ │ │ │ + str r2, [r3, #4] │ │ │ │ │ + mul.w r2, r4, r2 │ │ │ │ │ + ldr.w r7, [r1, #-8] │ │ │ │ │ + strd r7, r2, [r3, #-16] │ │ │ │ │ sub.w r3, r3, #24 │ │ │ │ │ - bne.n 1da │ │ │ │ │ - mov r5, ip │ │ │ │ │ - mov r4, r8 │ │ │ │ │ - movs r0, #12 │ │ │ │ │ - mul.w r1, r0, lr │ │ │ │ │ - add.w r8, r7, r1 │ │ │ │ │ + str r2, [r3, #16] │ │ │ │ │ + bne.n 232 │ │ │ │ │ + ldr r7, [sp, #24] │ │ │ │ │ + mov r4, ip │ │ │ │ │ + add.w r1, lr, lr, lsl #1 │ │ │ │ │ + mov.w r1, r1, lsl #2 │ │ │ │ │ + add.w ip, r7, r1 │ │ │ │ │ add r1, r6 │ │ │ │ │ ldrd r3, r2, [r1, #16] │ │ │ │ │ - ldr.w ip, [r8, #16] │ │ │ │ │ - str.w ip, [r1, #4] │ │ │ │ │ + ldr.w r0, [ip, #16] │ │ │ │ │ mul.w r3, r2, r3 │ │ │ │ │ add.w r2, lr, #4294967295 @ 0xffffffff │ │ │ │ │ - strd r3, r3, [r1, #8] │ │ │ │ │ - str r2, [sp, #40] @ 0x28 │ │ │ │ │ + str r2, [sp, #24] │ │ │ │ │ + strd r0, r3, [r1, #4] │ │ │ │ │ + str r3, [r1, #12] │ │ │ │ │ cmp.w lr, #0 │ │ │ │ │ - beq.n 24e │ │ │ │ │ - ldr.w r2, [r8, #4] │ │ │ │ │ - mul.w r3, ip, r3 │ │ │ │ │ + beq.n 2aa │ │ │ │ │ + ldr.w r2, [ip, #4] │ │ │ │ │ + mul.w r3, r0, r3 │ │ │ │ │ str.w r2, [r1, #-8] │ │ │ │ │ - ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ - mla r2, r0, r2, r6 │ │ │ │ │ + ldr r2, [sp, #24] │ │ │ │ │ + add.w r2, r2, r2, lsl #1 │ │ │ │ │ + add.w r2, r6, r2, lsl #2 │ │ │ │ │ str r3, [r2, #12] │ │ │ │ │ str.w r3, [r1, #-4] │ │ │ │ │ ldr r1, [r6, #0] │ │ │ │ │ cmp r1, #1 │ │ │ │ │ - ble.n 26e │ │ │ │ │ + ble.n 2d0 │ │ │ │ │ add.w r1, r1, r1, lsl #1 │ │ │ │ │ - movs r3, #0 │ │ │ │ │ - subs r1, #3 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ add.w r0, r6, #16 │ │ │ │ │ + sub.w r1, r1, #3 │ │ │ │ │ ldr.w r2, [r0, r3, lsl #2] │ │ │ │ │ - adds r3, #3 │ │ │ │ │ + add.w r3, r3, #3 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ mul.w r5, r2, r5 │ │ │ │ │ - bne.n 260 │ │ │ │ │ + bne.n 2c0 │ │ │ │ │ ldrd r3, r2, [r6, #4] │ │ │ │ │ ldrd r0, r1, [r7, #4] │ │ │ │ │ - movs r7, #2 │ │ │ │ │ - mul.w r8, r2, r3 │ │ │ │ │ - ldr r2, [sp, #64] @ 0x40 │ │ │ │ │ + mov.w r7, #2 │ │ │ │ │ + mul.w r3, r2, r3 │ │ │ │ │ + ldr r2, [sp, #56] @ 0x38 │ │ │ │ │ + str r3, [sp, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ + ldr r2, [sp, #24] │ │ │ │ │ strd r7, r7, [sp] │ │ │ │ │ - mov r2, r8 │ │ │ │ │ - mov r1, r8 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ + mov r1, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor_2d │ │ │ │ │ - ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ + ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ mov r0, r6 │ │ │ │ │ + ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - ldrd r2, r3, [sp, #48] @ 0x30 │ │ │ │ │ + ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_d │ │ │ │ │ mov r6, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_any_true │ │ │ │ │ mov r2, r0 │ │ │ │ │ - str r0, [sp, #40] @ 0x28 │ │ │ │ │ + str r0, [sp, #24] │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.w 3d4 │ │ │ │ │ + bne.w 44a │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ mul.w r5, r3, r5 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - lsls r1, r5, #1 │ │ │ │ │ + mov.w r1, r5, lsl #1 │ │ │ │ │ ldr r0, [r3, #4] │ │ │ │ │ - str r1, [sp, #44] @ 0x2c │ │ │ │ │ + str r1, [sp, #36] @ 0x24 │ │ │ │ │ ldr r1, [r3, #16] │ │ │ │ │ str r2, [sp, #16] │ │ │ │ │ ldr r2, [r4, #28] │ │ │ │ │ str r2, [sp, #12] │ │ │ │ │ ldr r2, [r3, #24] │ │ │ │ │ str r2, [sp, #8] │ │ │ │ │ - lsls r2, r5, #1 │ │ │ │ │ + mov.w r2, r5, lsl #1 │ │ │ │ │ ldr r3, [r3, #8] │ │ │ │ │ strd r9, r3, [sp] │ │ │ │ │ - ldr r3, [sp, #28] │ │ │ │ │ + mov r3, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkproblem_transpose │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_d │ │ │ │ │ mov r8, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.n 3ee │ │ │ │ │ - ldrd r2, r3, [sp, #32] │ │ │ │ │ - mov r1, r9 │ │ │ │ │ + bne.n 464 │ │ │ │ │ ldr r0, [r4, #20] │ │ │ │ │ + mov r1, r9 │ │ │ │ │ + ldrd r2, r3, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_extract_reim │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r2, [r3, #4] │ │ │ │ │ - ldr r1, [r3, #24] │ │ │ │ │ ldr r0, [r3, #16] │ │ │ │ │ + ldr r1, [r3, #24] │ │ │ │ │ mul.w r2, r5, r2 │ │ │ │ │ mov.w r9, r2, lsl #1 │ │ │ │ │ - ldr r2, [sp, #64] @ 0x40 │ │ │ │ │ + ldr r2, [sp, #56] @ 0x38 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - lsls r2, r5, #1 │ │ │ │ │ - str r0, [sp, #32] │ │ │ │ │ + mov.w r2, r5, lsl #1 │ │ │ │ │ + str r0, [sp, #28] │ │ │ │ │ mov r1, r2 │ │ │ │ │ ldr r0, [r3, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor_1d │ │ │ │ │ mov r2, r9 │ │ │ │ │ mov r1, r9 │ │ │ │ │ - mov r3, r5 │ │ │ │ │ - str r0, [sp, #28] │ │ │ │ │ strd r7, r7, [sp] │ │ │ │ │ - ldr r0, [sp, #32] │ │ │ │ │ + mov r3, r5 │ │ │ │ │ + str r0, [sp, #24] │ │ │ │ │ + ldr r0, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor_2d │ │ │ │ │ + ldrd r2, r3, [sp, #48] @ 0x30 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - ldrd r2, r3, [sp, #56] @ 0x38 │ │ │ │ │ + ldr r0, [sp, #24] │ │ │ │ │ strd r2, r3, [sp] │ │ │ │ │ - ldr r0, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_d │ │ │ │ │ mov r9, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_any_true │ │ │ │ │ - cbnz r0, 3da │ │ │ │ │ - ldr r2, [pc, #148] @ (408 ) │ │ │ │ │ - movs r0, #88 @ 0x58 │ │ │ │ │ - ldr r1, [pc, #148] @ (40c ) │ │ │ │ │ + cbnz r0, 450 │ │ │ │ │ + ldr r2, [pc, #152] @ (47c ) │ │ │ │ │ + mov.w r0, #88 @ 0x58 │ │ │ │ │ + ldr r1, [pc, #148] @ (480 ) │ │ │ │ │ add r2, pc │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_rdft │ │ │ │ │ ldr.w r3, [fp, #8] │ │ │ │ │ mov r5, r0 │ │ │ │ │ strd r6, r8, [r0, #64] @ 0x40 │ │ │ │ │ str.w r9, [r0, #72] @ 0x48 │ │ │ │ │ - cbnz r3, 396 │ │ │ │ │ + cbnz r3, 40a │ │ │ │ │ ldr.w r7, [sl, #164] @ 0xa4 │ │ │ │ │ and.w r7, r7, #4096 @ 0x1000 │ │ │ │ │ ldr r2, [r4, #12] │ │ │ │ │ add.w r4, r5, #8 │ │ │ │ │ - ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ add.w r1, r9, #8 │ │ │ │ │ add.w r0, r6, #8 │ │ │ │ │ str r7, [r5, #84] @ 0x54 │ │ │ │ │ - subs r3, r3, r2 │ │ │ │ │ - asrs r3, r3, #2 │ │ │ │ │ + ldr r3, [sp, #40] @ 0x28 │ │ │ │ │ + sub.w r3, r3, r2 │ │ │ │ │ + mov.w r3, r3, asr #2 │ │ │ │ │ str r3, [r5, #76] @ 0x4c │ │ │ │ │ - ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - subs r3, r3, r2 │ │ │ │ │ + ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ + sub.w r3, r3, r2 │ │ │ │ │ mov r2, r4 │ │ │ │ │ - asrs r3, r3, #2 │ │ │ │ │ + mov.w r3, r3, asr #2 │ │ │ │ │ str r3, [r5, #80] @ 0x50 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ops_add │ │ │ │ │ add.w r0, r8, #8 │ │ │ │ │ mov r1, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ops_add2 │ │ │ │ │ mov r0, r5 │ │ │ │ │ - add sp, #76 @ 0x4c │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ - str.w r9, [sp, #28] │ │ │ │ │ - b.n 15e │ │ │ │ │ + b.n fe │ │ │ │ │ + mov r8, r9 │ │ │ │ │ + b.n 1a8 │ │ │ │ │ mov.w r9, #0 │ │ │ │ │ mov r8, r9 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ - b.n ca │ │ │ │ │ - ldr.w r9, [sp, #40] @ 0x28 │ │ │ │ │ - b.n 3da │ │ │ │ │ + b.n fa │ │ │ │ │ + ldr.w r9, [sp, #24] │ │ │ │ │ + b.n 450 │ │ │ │ │ mov lr, r0 │ │ │ │ │ - b.n 20a │ │ │ │ │ + b.n 262 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dft_serial_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.w 11e │ │ │ │ │ - b.n ca │ │ │ │ │ - nop │ │ │ │ │ + beq.w 16a │ │ │ │ │ + b.n fa │ │ │ │ │ .word 0x0000008e │ │ │ │ │ R_ARM_REL32 apply │ │ │ │ │ .word 0x00000090 │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -00000410 : │ │ │ │ │ +00000484 : │ │ │ │ │ awake(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ + mov r5, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_awake │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_awake │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, lr} │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + ldrd r5, lr, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_plan_awake │ │ │ │ │ │ │ │ │ │ -00000430 : │ │ │ │ │ +000004b0 : │ │ │ │ │ fftwf_mpi_dft_rank_geq2_transposed_register(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r5, [pc, #44] @ (464 ) │ │ │ │ │ - movs r0, #12 │ │ │ │ │ + mov.w r0, #12 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ + ldr r5, [pc, #56] @ (4f8 ) │ │ │ │ │ add r5, pc │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mksolver │ │ │ │ │ - movs r3, #0 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ + str r3, [r1, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_solver_register │ │ │ │ │ mov r1, r5 │ │ │ │ │ - movs r0, #12 │ │ │ │ │ + mov.w r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mksolver │ │ │ │ │ - movs r3, #1 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + ldrd r5, lr, [sp, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, lr} │ │ │ │ │ + str r3, [r1, #8] │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + add sp, #16 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_solver_register │ │ │ │ │ - .word 0x00000028 │ │ │ │ │ + .word 0x00000034 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ ├── dft-rank1.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 4172 (bytes into file) │ │ │ │ │ + Start of section headers: 4460 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 15 │ │ │ │ │ Section header string table index: 14 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,24 +1,24 @@ │ │ │ │ │ -There are 15 section headers, starting at offset 0x104c: │ │ │ │ │ +There are 15 section headers, starting at offset 0x116c: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 000788 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000dbc 0001e0 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 0007bc 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 0007bc 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 0007bc 000041 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 0007fd 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 000f9c 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 00080d 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 000fbc 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 000819 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000819 000033 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 00084c 000320 10 13 25 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 000b6c 00024d 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 000fc4 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0008a8 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000edc 0001e0 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 0008dc 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 0008dc 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 0008dc 000041 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 00091d 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 0010bc 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 00092d 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 0010dc 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 000939 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000939 000033 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 00096c 000320 10 13 25 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 000c8c 00024d 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 0010e4 000087 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,29 +1,29 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 50 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ - 1: 00000001 324 FUNC LOCAL DEFAULT 1 apply_ddft_first │ │ │ │ │ + 1: 00000001 390 FUNC LOCAL DEFAULT 1 apply_ddft_first │ │ │ │ │ 2: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ 3: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 4: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC1 │ │ │ │ │ 5: 00000008 0 NOTYPE LOCAL DEFAULT 5 .LC2 │ │ │ │ │ 6: 00000010 0 NOTYPE LOCAL DEFAULT 5 .LC3 │ │ │ │ │ 7: 00000014 0 NOTYPE LOCAL DEFAULT 5 .LC4 │ │ │ │ │ 8: 00000018 0 NOTYPE LOCAL DEFAULT 5 .LC5 │ │ │ │ │ - 9: 00000145 108 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 10: 00000198 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 11: 000001b0 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 12: 000001b1 26 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 13: 000001cd 1000 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 14: 00000598 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 15: 000005f1 308 FUNC LOCAL DEFAULT 1 apply_ddft_last │ │ │ │ │ - 16: 000005b4 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 17: 000005b5 60 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 18: 0000077c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 00000189 124 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 10: 000001ec 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 11: 00000204 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 12: 00000205 30 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 13: 00000225 1088 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 14: 00000648 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 15: 000006b5 360 FUNC LOCAL DEFAULT 1 apply_ddft_last │ │ │ │ │ + 16: 00000664 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 17: 00000665 80 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 18: 0000089c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 19: 00000000 0 SECTION LOCAL DEFAULT 6 .data.rel.ro │ │ │ │ │ 20: 00000000 0 NOTYPE LOCAL DEFAULT 6 $d │ │ │ │ │ 21: 00000000 16 OBJECT LOCAL DEFAULT 6 padt.0 │ │ │ │ │ 22: 00000000 0 SECTION LOCAL DEFAULT 8 .data.rel.ro.local │ │ │ │ │ 23: 00000000 0 NOTYPE LOCAL DEFAULT 8 $d │ │ │ │ │ 24: 00000000 12 OBJECT LOCAL DEFAULT 8 sadt.1 │ │ │ │ │ 25: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_plan_destroy_internal │ │ │ │ │ @@ -43,11 +43,11 @@ │ │ │ │ │ 39: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mkplan_rdft │ │ │ │ │ 40: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ops_add │ │ │ │ │ 41: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ops_add2 │ │ │ │ │ 42: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_dft_serial_applicable │ │ │ │ │ 43: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_plan_awake │ │ │ │ │ 44: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_triggen_destroy │ │ │ │ │ 45: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mktriggen │ │ │ │ │ - 46: 00000725 100 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dft_rank1_register │ │ │ │ │ + 46: 0000081d 140 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dft_rank1_register │ │ │ │ │ 47: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mksolver │ │ │ │ │ 48: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_solver_register │ │ │ │ │ 49: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_dft_solve │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,74 +1,74 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0xdbc contains 60 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0xedc contains 60 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000198 00000103 R_ARM_REL32 00000001 apply_ddft_first │ │ │ │ │ -0000019c 00000503 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -000001a0 00000703 R_ARM_REL32 00000014 .LC4 │ │ │ │ │ -000001a4 00000803 R_ARM_REL32 00000018 .LC5 │ │ │ │ │ -000001a8 00000603 R_ARM_REL32 00000010 .LC3 │ │ │ │ │ -000001ac 00000403 R_ARM_REL32 00000000 .LC1 │ │ │ │ │ -000001b6 0000190a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000001bc 0000190a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000001de 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -0000024a 00001b0a R_ARM_THM_CALL 00000000 fftwf_mpi_choose_radix │ │ │ │ │ -00000258 00001c0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000260 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -0000026a 00001d0a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000292 00001e0a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -000002c2 00001f0a R_ARM_THM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ -000002ec 0000200a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_dft_d │ │ │ │ │ -000002f4 0000210a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -00000302 0000220a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -00000336 0000230a R_ARM_THM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ -00000346 0000230a R_ARM_THM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ -00000352 0000240a R_ARM_THM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ -0000035e 0000240a R_ARM_THM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ -00000372 0000250a R_ARM_THM_CALL 00000000 fftwf_mkproblem_dft_d │ │ │ │ │ +000001ec 00000103 R_ARM_REL32 00000001 apply_ddft_first │ │ │ │ │ +000001f0 00000503 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +000001f4 00000703 R_ARM_REL32 00000014 .LC4 │ │ │ │ │ +000001f8 00000803 R_ARM_REL32 00000018 .LC5 │ │ │ │ │ +000001fc 00000603 R_ARM_REL32 00000010 .LC3 │ │ │ │ │ +00000200 00000403 R_ARM_REL32 00000000 .LC1 │ │ │ │ │ +0000020c 0000190a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000212 0000190a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000246 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000002c8 00001b0a R_ARM_THM_CALL 00000000 fftwf_mpi_choose_radix │ │ │ │ │ +000002d6 00001c0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000002de 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000002e8 00001d0a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000310 00001e0a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00000344 00001f0a R_ARM_THM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ +00000372 0000200a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_dft_d │ │ │ │ │ 0000037a 0000210a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -00000388 0000220a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -000003d4 0000260a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ -000003dc 0000210a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -000003ea 0000220a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -000003fc 0000270a R_ARM_THM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ -00000414 0000230a R_ARM_THM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ -0000046c 0000280a R_ARM_THM_CALL 00000000 fftwf_ops_add │ │ │ │ │ -00000478 0000290a R_ARM_THM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ -00000504 0000200a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_dft_d │ │ │ │ │ -0000050c 0000210a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -0000051a 0000220a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -00000526 0000190a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -0000052c 0000190a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000532 0000190a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000562 00001e0a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -0000058a 00002a0a R_ARM_THM_CALL 00000000 fftwf_mpi_dft_serial_applicable │ │ │ │ │ -00000598 00000f03 R_ARM_REL32 000005f1 apply_ddft_last │ │ │ │ │ -0000059c 00000103 R_ARM_REL32 00000001 apply_ddft_first │ │ │ │ │ -000005a0 00000103 R_ARM_REL32 00000001 apply_ddft_first │ │ │ │ │ -000005a4 00001303 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -000005a8 00000103 R_ARM_REL32 00000001 apply_ddft_first │ │ │ │ │ -000005ac 00000103 R_ARM_REL32 00000001 apply_ddft_first │ │ │ │ │ -000005b0 00000103 R_ARM_REL32 00000001 apply_ddft_first │ │ │ │ │ -000005bc 00002b0a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -000005c4 00002b0a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -000005cc 00002b0a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -000005d4 00002c0a R_ARM_THM_CALL 00000000 fftwf_triggen_destroy │ │ │ │ │ -000005e6 00002d0a R_ARM_THM_CALL 00000000 fftwf_mktriggen │ │ │ │ │ -0000074c 00002f0a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -00000758 0000300a R_ARM_THM_CALL 00000000 fftwf_solver_register │ │ │ │ │ -00000760 00002f0a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -0000076e 0000300a R_ARM_THM_CALL 00000000 fftwf_solver_register │ │ │ │ │ -0000077c 00000103 R_ARM_REL32 00000001 apply_ddft_first │ │ │ │ │ -00000780 00001603 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -00000784 00000f03 R_ARM_REL32 000005f1 apply_ddft_last │ │ │ │ │ -000001c6 0000191e R_ARM_THM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +0000038a 0000220a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +000003be 0000230a R_ARM_THM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ +000003ce 0000230a R_ARM_THM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ +000003dc 0000240a R_ARM_THM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ +000003ea 0000240a R_ARM_THM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ +000003fe 0000250a R_ARM_THM_CALL 00000000 fftwf_mkproblem_dft_d │ │ │ │ │ +00000406 0000210a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +00000416 0000220a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +00000466 0000260a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ +0000046e 0000210a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +0000047e 0000220a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +00000492 0000270a R_ARM_THM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ +000004aa 0000230a R_ARM_THM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ +00000512 0000280a R_ARM_THM_CALL 00000000 fftwf_ops_add │ │ │ │ │ +0000051e 0000290a R_ARM_THM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ +000005ac 0000200a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_dft_d │ │ │ │ │ +000005b4 0000210a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +000005c4 0000220a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +000005d0 0000190a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000005d6 0000190a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000005dc 0000190a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +0000060c 00001e0a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00000638 00002a0a R_ARM_THM_CALL 00000000 fftwf_mpi_dft_serial_applicable │ │ │ │ │ +00000648 00000f03 R_ARM_REL32 000006b5 apply_ddft_last │ │ │ │ │ +0000064c 00000103 R_ARM_REL32 00000001 apply_ddft_first │ │ │ │ │ +00000650 00000103 R_ARM_REL32 00000001 apply_ddft_first │ │ │ │ │ +00000654 00001303 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +00000658 00000103 R_ARM_REL32 00000001 apply_ddft_first │ │ │ │ │ +0000065c 00000103 R_ARM_REL32 00000001 apply_ddft_first │ │ │ │ │ +00000660 00000103 R_ARM_REL32 00000001 apply_ddft_first │ │ │ │ │ +00000672 00002b0a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +0000067a 00002b0a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +00000682 00002b0a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +0000068a 00002c0a R_ARM_THM_CALL 00000000 fftwf_triggen_destroy │ │ │ │ │ +000006a4 00002d0a R_ARM_THM_CALL 00000000 fftwf_mktriggen │ │ │ │ │ +00000854 00002f0a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +00000860 0000300a R_ARM_THM_CALL 00000000 fftwf_solver_register │ │ │ │ │ +0000086a 00002f0a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +0000087a 0000300a R_ARM_THM_CALL 00000000 fftwf_solver_register │ │ │ │ │ +0000089c 00000103 R_ARM_REL32 00000001 apply_ddft_first │ │ │ │ │ +000008a0 00001603 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +000008a4 00000f03 R_ARM_REL32 000006b5 apply_ddft_last │ │ │ │ │ +0000021e 0000191e R_ARM_THM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0xf9c contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0x10bc contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000000 00003102 R_ARM_ABS32 00000000 fftwf_mpi_dft_solve │ │ │ │ │ -00000004 00001102 R_ARM_ABS32 000005b5 awake │ │ │ │ │ -00000008 00000902 R_ARM_ABS32 00000145 print │ │ │ │ │ -0000000c 00000c02 R_ARM_ABS32 000001b1 destroy │ │ │ │ │ +00000004 00001102 R_ARM_ABS32 00000665 awake │ │ │ │ │ +00000008 00000902 R_ARM_ABS32 00000189 print │ │ │ │ │ +0000000c 00000c02 R_ARM_ABS32 00000205 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0xfbc contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0x10dc contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000d02 R_ARM_ABS32 000001cd mkplan │ │ │ │ │ +00000004 00000d02 R_ARM_ABS32 00000225 mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,821 +1,869 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply_ddft_first(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ + mov r4, r2 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r8, r0 │ │ │ │ │ ldr r0, [r0, #72] @ 0x48 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ sub sp, #84 @ 0x54 │ │ │ │ │ mov fp, r1 │ │ │ │ │ - mov r4, r2 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ - ldr.w r5, [r8, #68] @ 0x44 │ │ │ │ │ - ldr.w r2, [r8, #88] @ 0x58 │ │ │ │ │ + ldrd r7, r5, [r8, #64] @ 0x40 │ │ │ │ │ + ldr.w ip, [r8, #80] @ 0x50 │ │ │ │ │ + ldrd r2, r6, [r8, #88] @ 0x58 │ │ │ │ │ clz r3, r5 │ │ │ │ │ - ldr.w r1, [r8, #100] @ 0x64 │ │ │ │ │ - ldr.w r0, [r8, #104] @ 0x68 │ │ │ │ │ - lsrs r3, r3, #5 │ │ │ │ │ - ldr.w r7, [r8, #64] @ 0x40 │ │ │ │ │ + mov.w r3, r3, lsr #5 │ │ │ │ │ + ldrd r1, r0, [r8, #100] @ 0x64 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ it ne │ │ │ │ │ orrne.w r3, r3, #1 │ │ │ │ │ - str r1, [sp, #56] @ 0x38 │ │ │ │ │ + ldr.w r2, [r8, #84] @ 0x54 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ it ne │ │ │ │ │ movne fp, r4 │ │ │ │ │ ldr.w r3, [r8, #76] @ 0x4c │ │ │ │ │ - str r3, [sp, #52] @ 0x34 │ │ │ │ │ + strd r3, r1, [sp, #52] @ 0x34 │ │ │ │ │ ldr.w r3, [r8, #112] @ 0x70 │ │ │ │ │ str r3, [sp, #24] │ │ │ │ │ - ldrd r6, r3, [r8, #92] @ 0x5c │ │ │ │ │ - str r3, [sp, #20] │ │ │ │ │ - ldrd ip, r2, [r8, #80] @ 0x50 │ │ │ │ │ + ldr.w r3, [r8, #96] @ 0x60 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ - blt.n 12c │ │ │ │ │ - lsls r1, r2, #2 │ │ │ │ │ - lsls r0, r0, #2 │ │ │ │ │ - adds r3, r4, r1 │ │ │ │ │ - str r3, [sp, #8] │ │ │ │ │ - add.w r9, fp, r1 │ │ │ │ │ - sub.w r3, ip, r2 │ │ │ │ │ - ldr r2, [sp, #8] │ │ │ │ │ + str r3, [sp, #20] │ │ │ │ │ + blt.n 14a │ │ │ │ │ + mov.w r1, r2, lsl #2 │ │ │ │ │ add.w r8, sp, #72 @ 0x48 │ │ │ │ │ - str r5, [sp, #60] @ 0x3c │ │ │ │ │ + strd r5, fp, [sp, #60] @ 0x3c │ │ │ │ │ + mov.w r0, r0, lsl #2 │ │ │ │ │ + str r4, [sp, #68] @ 0x44 │ │ │ │ │ + add.w r3, r4, r1 │ │ │ │ │ + add.w r9, fp, r1 │ │ │ │ │ + mov.w r1, r6, lsl #3 │ │ │ │ │ mov r5, r9 │ │ │ │ │ mov r9, r0 │ │ │ │ │ + str r3, [sp, #8] │ │ │ │ │ + sub.w r3, ip, r2 │ │ │ │ │ + ldr r2, [sp, #8] │ │ │ │ │ mov.w sl, r3, lsl #2 │ │ │ │ │ - lsls r1, r6, #3 │ │ │ │ │ - str.w sl, [sp, #32] │ │ │ │ │ str r1, [sp, #28] │ │ │ │ │ - strd fp, r4, [sp, #64] @ 0x40 │ │ │ │ │ + str.w sl, [sp, #32] │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ - adds r1, r2, r3 │ │ │ │ │ + add.w r1, r2, r3 │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ str r1, [sp, #36] @ 0x24 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 104 │ │ │ │ │ + ble.n 120 │ │ │ │ │ cmp r6, #0 │ │ │ │ │ - ble.n 104 │ │ │ │ │ - mov.w sl, #0 │ │ │ │ │ + ble.n 120 │ │ │ │ │ ldr.w fp, [r7, #8] │ │ │ │ │ - str.w r9, [sp, #40] @ 0x28 │ │ │ │ │ + mov.w sl, #0 │ │ │ │ │ mov lr, r2 │ │ │ │ │ mov r3, sl │ │ │ │ │ + strd r9, r2, [sp, #40] @ 0x28 │ │ │ │ │ mov r9, sl │ │ │ │ │ - strd r2, r5, [sp, #44] @ 0x2c │ │ │ │ │ + str r5, [sp, #48] @ 0x30 │ │ │ │ │ add.w r5, r1, #8 │ │ │ │ │ add.w r4, lr, #8 │ │ │ │ │ - mov.w sl, #0 │ │ │ │ │ strd r3, r1, [sp, #8] │ │ │ │ │ + mov.w sl, #0 │ │ │ │ │ str.w lr, [sp, #16] │ │ │ │ │ - mov r2, r8 │ │ │ │ │ vldr s1, [r4, #-8] │ │ │ │ │ - vldr s0, [r5, #-8] │ │ │ │ │ + mov r2, r8 │ │ │ │ │ mov r1, r9 │ │ │ │ │ mov r0, r7 │ │ │ │ │ add.w sl, sl, #1 │ │ │ │ │ + vldr s0, [r5, #-8] │ │ │ │ │ + add.w r4, r4, #8 │ │ │ │ │ + add.w r5, r5, #8 │ │ │ │ │ blx fp │ │ │ │ │ ldr r2, [sp, #72] @ 0x48 │ │ │ │ │ - str.w r2, [r5, #-8] │ │ │ │ │ - adds r4, #8 │ │ │ │ │ + cmp r6, sl │ │ │ │ │ + str.w r2, [r5, #-16] │ │ │ │ │ ldr r2, [sp, #76] @ 0x4c │ │ │ │ │ - adds r5, #8 │ │ │ │ │ str.w r2, [r4, #-16] │ │ │ │ │ - cmp r6, sl │ │ │ │ │ - bne.n bc │ │ │ │ │ + bne.n d2 │ │ │ │ │ ldrd r3, r1, [sp, #8] │ │ │ │ │ - ldr r2, [sp, #28] │ │ │ │ │ ldr.w lr, [sp, #16] │ │ │ │ │ - adds r3, #1 │ │ │ │ │ - add r1, r2 │ │ │ │ │ + ldr r2, [sp, #28] │ │ │ │ │ + add.w r3, r3, #1 │ │ │ │ │ add lr, r2 │ │ │ │ │ + add r1, r2 │ │ │ │ │ ldr r2, [sp, #20] │ │ │ │ │ add r9, r2 │ │ │ │ │ ldr r2, [sp, #24] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - bne.n a8 │ │ │ │ │ + bne.n be │ │ │ │ │ ldrd r9, r2, [sp, #40] @ 0x28 │ │ │ │ │ ldr r5, [sp, #48] @ 0x30 │ │ │ │ │ - ldr r0, [sp, #52] @ 0x34 │ │ │ │ │ str r5, [sp, #0] │ │ │ │ │ - ldr r3, [sp, #32] │ │ │ │ │ - ldr r1, [sp, #36] @ 0x24 │ │ │ │ │ - adds r3, r5, r3 │ │ │ │ │ - ldr r4, [r0, #56] @ 0x38 │ │ │ │ │ + ldrd r3, r1, [sp, #32] │ │ │ │ │ str r2, [sp, #8] │ │ │ │ │ - blx r4 │ │ │ │ │ - ldr r3, [sp, #20] │ │ │ │ │ + ldr r0, [sp, #52] @ 0x34 │ │ │ │ │ + add r3, r5 │ │ │ │ │ add r5, r9 │ │ │ │ │ + ldr r4, [r0, #56] @ 0x38 │ │ │ │ │ + blx r4 │ │ │ │ │ ldr r2, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #20] │ │ │ │ │ ldr r1, [sp, #56] @ 0x38 │ │ │ │ │ - adds r3, #1 │ │ │ │ │ add r2, r9 │ │ │ │ │ - str r3, [sp, #20] │ │ │ │ │ + add.w r3, r3, #1 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ - bge.n 82 │ │ │ │ │ + str r3, [sp, #20] │ │ │ │ │ + bge.n 98 │ │ │ │ │ ldrd r5, fp, [sp, #60] @ 0x3c │ │ │ │ │ ldr r4, [sp, #68] @ 0x44 │ │ │ │ │ - cbz r5, 13e │ │ │ │ │ + cbz r5, 16e │ │ │ │ │ ldr r3, [r5, #56] @ 0x38 │ │ │ │ │ mov r2, r4 │ │ │ │ │ mov r1, fp │ │ │ │ │ mov r0, r5 │ │ │ │ │ add sp, #84 @ 0x54 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w lr, [sp], #4 │ │ │ │ │ bx r3 │ │ │ │ │ add sp, #84 @ 0x54 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -00000144 : │ │ │ │ │ +00000188 : │ │ │ │ │ print(): │ │ │ │ │ mov ip, r0 │ │ │ │ │ - ldr r3, [pc, #80] @ (198 ) │ │ │ │ │ - push {r4, r5, lr} │ │ │ │ │ + ldr r3, [pc, #96] @ (1ec ) │ │ │ │ │ mov r0, r1 │ │ │ │ │ + str.w r4, [sp, #-12]! │ │ │ │ │ ldr r4, [r1, #0] │ │ │ │ │ + strd r5, lr, [sp, #4] │ │ │ │ │ + sub sp, #20 │ │ │ │ │ ldr.w r1, [ip, #56] @ 0x38 │ │ │ │ │ add r3, pc │ │ │ │ │ ldr.w r2, [ip, #112] @ 0x70 │ │ │ │ │ - sub sp, #20 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ - beq.n 192 │ │ │ │ │ - ldr r3, [pc, #60] @ (19c ) │ │ │ │ │ + beq.n 1e4 │ │ │ │ │ + ldr r3, [pc, #68] @ (1f0 ) │ │ │ │ │ add r3, pc │ │ │ │ │ ldr.w r1, [ip, #88] @ 0x58 │ │ │ │ │ cmp r1, #2 │ │ │ │ │ - beq.n 18c │ │ │ │ │ - ldr r1, [pc, #52] @ (1a0 ) │ │ │ │ │ + beq.n 1de │ │ │ │ │ + ldr r1, [pc, #60] @ (1f4 ) │ │ │ │ │ add r1, pc │ │ │ │ │ ldr.w r5, [ip, #68] @ 0x44 │ │ │ │ │ str r5, [sp, #12] │ │ │ │ │ ldr.w r5, [ip, #76] @ 0x4c │ │ │ │ │ str r5, [sp, #8] │ │ │ │ │ ldr.w r5, [ip, #72] @ 0x48 │ │ │ │ │ strd r1, r5, [sp] │ │ │ │ │ - ldr r1, [pc, #32] @ (1a4 ) │ │ │ │ │ + ldr r1, [pc, #40] @ (1f8 ) │ │ │ │ │ add r1, pc │ │ │ │ │ blx r4 │ │ │ │ │ add sp, #20 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ - ldr r1, [pc, #24] @ (1a8 ) │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + ldr r1, [pc, #28] @ (1fc ) │ │ │ │ │ add r1, pc │ │ │ │ │ - b.n 16e │ │ │ │ │ - ldr r3, [pc, #24] @ (1ac ) │ │ │ │ │ + b.n 1b8 │ │ │ │ │ + ldr r3, [pc, #24] @ (200 ) │ │ │ │ │ add r3, pc │ │ │ │ │ - b.n 162 │ │ │ │ │ - .word 0x00000042 │ │ │ │ │ + b.n 1ac │ │ │ │ │ + nop │ │ │ │ │ + .word 0x0000004a │ │ │ │ │ R_ARM_REL32 apply_ddft_first │ │ │ │ │ - .word 0x00000038 │ │ │ │ │ + .word 0x00000042 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ - .word 0x00000030 │ │ │ │ │ + .word 0x0000003a │ │ │ │ │ R_ARM_REL32 .LC4 │ │ │ │ │ - .word 0x0000001c │ │ │ │ │ + .word 0x00000026 │ │ │ │ │ R_ARM_REL32 .LC5 │ │ │ │ │ - .word 0x00000016 │ │ │ │ │ + .word 0x00000018 │ │ │ │ │ R_ARM_REL32 .LC3 │ │ │ │ │ - .word 0x00000014 │ │ │ │ │ + .word 0x00000016 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ │ │ │ │ │ -000001b0 : │ │ │ │ │ +00000204 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #76] @ 0x4c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ - ldmia.w sp!, {r4, lr} │ │ │ │ │ + ldrd r4, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_plan_destroy_internal │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -000001cc : │ │ │ │ │ +00000224 : │ │ │ │ │ mkplan(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + mov r6, r2 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r7, r0 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ sub sp, #100 @ 0x64 │ │ │ │ │ - mov r6, r2 │ │ │ │ │ add r5, sp, #76 @ 0x4c │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r3, [r3, #0] │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - beq.n 1f2 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + beq.n 26e │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add sp, #100 @ 0x64 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldr r2, [r4, #24] │ │ │ │ │ cmp r2, #3 │ │ │ │ │ - bhi.n 1ea │ │ │ │ │ + bhi.n 252 │ │ │ │ │ ldr r3, [r7, #12] │ │ │ │ │ - cbz r3, 20c │ │ │ │ │ + cbz r3, 288 │ │ │ │ │ ldr.w r3, [r6, #164] @ 0xa4 │ │ │ │ │ lsls r3, r3, #19 │ │ │ │ │ - bmi.n 1ea │ │ │ │ │ + bmi.n 252 │ │ │ │ │ ldrd r1, r3, [r4, #12] │ │ │ │ │ cmp r1, r3 │ │ │ │ │ - beq.n 1ea │ │ │ │ │ + beq.n 252 │ │ │ │ │ lsls r0, r2, #31 │ │ │ │ │ - bpl.w 4d0 │ │ │ │ │ - ldr r3, [pc, #900] @ (598 ) │ │ │ │ │ + bpl.w 576 │ │ │ │ │ + ldr r3, [pc, #952] @ (648 ) │ │ │ │ │ ldr r1, [r7, #8] │ │ │ │ │ add r3, pc │ │ │ │ │ cmp r1, r3 │ │ │ │ │ - bne.n 1ea │ │ │ │ │ + bne.n 252 │ │ │ │ │ lsls r3, r2, #30 │ │ │ │ │ - bmi.n 1ea │ │ │ │ │ + bmi.n 252 │ │ │ │ │ ldr.w r3, [r6, #164] @ 0xa4 │ │ │ │ │ lsls r1, r3, #28 │ │ │ │ │ - bmi.w 588 │ │ │ │ │ - ldr r3, [sp, #76] @ 0x4c │ │ │ │ │ + bmi.w 636 │ │ │ │ │ ldr r1, [r4, #8] │ │ │ │ │ + ldr r3, [sp, #76] @ 0x4c │ │ │ │ │ cmp r1, r3 │ │ │ │ │ - blt.n 236 │ │ │ │ │ + blt.n 2b2 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - beq.n 1ea │ │ │ │ │ - ldr r1, [r4, #4] │ │ │ │ │ + beq.n 252 │ │ │ │ │ add r0, sp, #88 @ 0x58 │ │ │ │ │ + ldr r1, [r4, #4] │ │ │ │ │ str r0, [sp, #12] │ │ │ │ │ add r0, sp, #80 @ 0x50 │ │ │ │ │ str r0, [sp, #8] │ │ │ │ │ ldr r0, [r4, #20] │ │ │ │ │ strd r2, r0, [sp] │ │ │ │ │ - adds r2, r1, #4 │ │ │ │ │ + add.w r2, r1, #4 │ │ │ │ │ ldmia r2, {r0, r1, r2} │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_choose_radix │ │ │ │ │ mov r8, r0 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n 1ea │ │ │ │ │ - add r1, sp, #72 @ 0x48 │ │ │ │ │ + beq.n 252 │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + add r1, sp, #72 @ 0x48 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ - mov r1, r5 │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ mov r1, r8 │ │ │ │ │ ldr r0, [r3, #4] │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ ldr r3, [r7, #8] │ │ │ │ │ - str r3, [sp, #40] @ 0x28 │ │ │ │ │ - mov r2, r3 │ │ │ │ │ - ldr r3, [pc, #804] @ (59c ) │ │ │ │ │ str r0, [sp, #24] │ │ │ │ │ + mov r2, r3 │ │ │ │ │ + ldr r3, [pc, #856] @ (64c ) │ │ │ │ │ add r3, pc │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - ldr r2, [sp, #72] @ 0x48 │ │ │ │ │ ite eq │ │ │ │ │ moveq r3, #1 │ │ │ │ │ movne r3, #0 │ │ │ │ │ - str r3, [sp, #36] @ 0x24 │ │ │ │ │ - beq.w 55a │ │ │ │ │ - ldrd sl, fp, [sp, #80] @ 0x50 │ │ │ │ │ + strd r3, r2, [sp, #36] @ 0x24 │ │ │ │ │ + ldr r2, [sp, #72] @ 0x48 │ │ │ │ │ + beq.w 604 │ │ │ │ │ mov r0, r8 │ │ │ │ │ + ldrd sl, fp, [sp, #80] @ 0x50 │ │ │ │ │ mov r1, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ ldr.w r9, [sp, #24] │ │ │ │ │ - str r0, [sp, #44] @ 0x2c │ │ │ │ │ str.w r8, [sp, #32] │ │ │ │ │ + str r0, [sp, #44] @ 0x2c │ │ │ │ │ ldr r3, [r7, #12] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.w 538 │ │ │ │ │ + bne.w 5e2 │ │ │ │ │ ldr.w r5, [r6, #164] @ 0xa4 │ │ │ │ │ and.w r3, r5, #4096 @ 0x1000 │ │ │ │ │ - str r3, [sp, #28] │ │ │ │ │ ubfx r5, r5, #12, #1 │ │ │ │ │ - ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ + str r3, [sp, #28] │ │ │ │ │ eor.w r5, r5, #1 │ │ │ │ │ - orrs r5, r3 │ │ │ │ │ + ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ + orr.w r5, r5, r3 │ │ │ │ │ uxtb r5, r5 │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkdtensor │ │ │ │ │ ldr r1, [r4, #8] │ │ │ │ │ ldr r2, [sp, #32] │ │ │ │ │ - strd r2, sl, [r0, #4] │ │ │ │ │ - ldrd r3, ip, [r4, #16] │ │ │ │ │ + ldr r3, [r4, #16] │ │ │ │ │ mul.w r1, r1, r9 │ │ │ │ │ + ldr.w ip, [r4, #20] │ │ │ │ │ + strd r2, sl, [r0, #4] │ │ │ │ │ ldr r2, [r4, #28] │ │ │ │ │ str.w fp, [r0, #12] │ │ │ │ │ cmp r5, #0 │ │ │ │ │ - beq.w 4f8 │ │ │ │ │ - str r2, [sp, #0] │ │ │ │ │ - movs r5, #16 │ │ │ │ │ - strd ip, r5, [sp, #4] │ │ │ │ │ + beq.w 59e │ │ │ │ │ + mov.w r5, #16 │ │ │ │ │ + strd r2, ip, [sp] │ │ │ │ │ + str r5, [sp, #8] │ │ │ │ │ ldr r2, [r4, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_d │ │ │ │ │ mov sl, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.w 582 │ │ │ │ │ - ldr r3, [pc, #656] @ (5a0 ) │ │ │ │ │ + bne.w 62e │ │ │ │ │ + ldr r3, [pc, #696] @ (650 ) │ │ │ │ │ ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ add r3, pc │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - bne.w 4e4 │ │ │ │ │ + bne.w 58a │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ ldr r1, [r4, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.w 4f4 │ │ │ │ │ + bne.w 59a │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.w 4f4 │ │ │ │ │ + bne.w 59a │ │ │ │ │ ldr r5, [r4, #12] │ │ │ │ │ - ldr r0, [r4, #20] │ │ │ │ │ add r3, sp, #60 @ 0x3c │ │ │ │ │ add r2, sp, #56 @ 0x38 │ │ │ │ │ + ldr r0, [r4, #20] │ │ │ │ │ add.w fp, sp, #68 @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_extract_reim │ │ │ │ │ add r3, sp, #64 @ 0x40 │ │ │ │ │ - mov r2, r3 │ │ │ │ │ - mov r1, r5 │ │ │ │ │ ldr r0, [r4, #20] │ │ │ │ │ - str r3, [sp, #48] @ 0x30 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ + mov r2, r3 │ │ │ │ │ mov r3, fp │ │ │ │ │ + str r2, [sp, #48] @ 0x30 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_extract_reim │ │ │ │ │ ldr r2, [r4, #8] │ │ │ │ │ mov r0, r9 │ │ │ │ │ - lsls r2, r2, #1 │ │ │ │ │ + mov.w r2, r2, lsl #1 │ │ │ │ │ mov r1, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor_1d │ │ │ │ │ - movs r2, #2 │ │ │ │ │ + mov.w r2, #2 │ │ │ │ │ mov r5, r0 │ │ │ │ │ - mov r1, r2 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ + mov r1, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor_1d │ │ │ │ │ + ldr r2, [sp, #56] @ 0x38 │ │ │ │ │ + mov r1, r0 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - mov r1, r0 │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - ldrd r2, r3, [sp, #56] @ 0x38 │ │ │ │ │ + ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_d │ │ │ │ │ mov r5, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.w 57e │ │ │ │ │ + bne.w 628 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.w 57a │ │ │ │ │ + bne.w 624 │ │ │ │ │ ldr r2, [r4, #8] │ │ │ │ │ ldr r0, [sp, #28] │ │ │ │ │ ldr r1, [r4, #16] │ │ │ │ │ - lsls r3, r2, #1 │ │ │ │ │ + mov.w r3, r2, lsl #1 │ │ │ │ │ str r3, [sp, #52] @ 0x34 │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ ite eq │ │ │ │ │ moveq r3, #0 │ │ │ │ │ andne.w r3, r3, #1 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq.w 540 │ │ │ │ │ + beq.w 5ec │ │ │ │ │ mov r3, r1 │ │ │ │ │ - ldr.w ip, [sp, #92] @ 0x5c │ │ │ │ │ ldr.w lr, [sp, #84] @ 0x54 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ - str r0, [sp, #16] │ │ │ │ │ + ldr.w ip, [sp, #92] @ 0x5c │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ ldr r2, [sp, #52] @ 0x34 │ │ │ │ │ + str r0, [sp, #16] │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ - strd lr, r0, [sp, #8] │ │ │ │ │ strd r1, ip, [sp] │ │ │ │ │ mov r1, r8 │ │ │ │ │ + strd lr, r0, [sp, #8] │ │ │ │ │ ldr r0, [sp, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkproblem_transpose │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_d │ │ │ │ │ mov r6, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.w 524 │ │ │ │ │ - ldr r1, [pc, #428] @ (5a4 ) │ │ │ │ │ - movs r0, #120 @ 0x78 │ │ │ │ │ + bne.w 5ce │ │ │ │ │ + ldr r1, [pc, #456] @ (654 ) │ │ │ │ │ + mov.w r0, #120 @ 0x78 │ │ │ │ │ ldr r2, [r7, #8] │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_rdft │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ mov r7, r0 │ │ │ │ │ - str r3, [r0, #88] @ 0x58 │ │ │ │ │ + ldrd r1, r0, [r4, #16] │ │ │ │ │ + strd r6, sl, [r7, #68] @ 0x44 │ │ │ │ │ ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ + str r5, [r7, #76] @ 0x4c │ │ │ │ │ + str r3, [r7, #88] @ 0x58 │ │ │ │ │ mov r3, fp │ │ │ │ │ - strd sl, r5, [r0, #72] @ 0x48 │ │ │ │ │ - str r6, [r0, #68] @ 0x44 │ │ │ │ │ - ldrd r1, r0, [r4, #16] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_extract_reim │ │ │ │ │ ldr r2, [r4, #16] │ │ │ │ │ add.w r0, sl, #8 │ │ │ │ │ - ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ ldr r1, [sp, #40] @ 0x28 │ │ │ │ │ - subs r3, r3, r2 │ │ │ │ │ - asrs r3, r3, #2 │ │ │ │ │ + ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ + sub.w r3, r3, r2 │ │ │ │ │ + mov.w r3, r3, asr #2 │ │ │ │ │ str r3, [r7, #80] @ 0x50 │ │ │ │ │ ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ - subs r3, r3, r2 │ │ │ │ │ + sub.w r3, r3, r2 │ │ │ │ │ ldr r2, [r4, #8] │ │ │ │ │ - str r2, [r7, #92] @ 0x5c │ │ │ │ │ add.w r4, r7, #8 │ │ │ │ │ - asrs r3, r3, #2 │ │ │ │ │ + mov.w r3, r3, asr #2 │ │ │ │ │ str r3, [r7, #84] @ 0x54 │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ - strd r3, r8, [r7, #108] @ 0x6c │ │ │ │ │ + str r2, [r7, #92] @ 0x5c │ │ │ │ │ mul.w r2, r9, r2 │ │ │ │ │ - ldr r3, [pc, #356] @ (5a8 ) │ │ │ │ │ + mov.w r2, r2, lsl #1 │ │ │ │ │ + str.w r8, [r7, #112] @ 0x70 │ │ │ │ │ + str r3, [r7, #108] @ 0x6c │ │ │ │ │ + ldr r3, [pc, #368] @ (658 ) │ │ │ │ │ + str r2, [r7, #104] @ 0x68 │ │ │ │ │ + mov r2, r4 │ │ │ │ │ add r3, pc │ │ │ │ │ - lsls r2, r2, #1 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ ldr r1, [sp, #72] @ 0x48 │ │ │ │ │ - str r2, [r7, #104] @ 0x68 │ │ │ │ │ - mov r2, r4 │ │ │ │ │ ite eq │ │ │ │ │ ldreq r3, [sp, #92] @ 0x5c │ │ │ │ │ ldrne r3, [sp, #80] @ 0x50 │ │ │ │ │ mul.w r3, r1, r3 │ │ │ │ │ ldr r1, [sp, #44] @ 0x2c │ │ │ │ │ str r3, [r7, #96] @ 0x60 │ │ │ │ │ add r3, r1 │ │ │ │ │ add.w r1, r5, #8 │ │ │ │ │ - subs r3, #1 │ │ │ │ │ + add.w r3, r3, #4294967295 @ 0xffffffff │ │ │ │ │ str r3, [r7, #100] @ 0x64 │ │ │ │ │ - movs r3, #0 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ str r3, [r7, #64] @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ops_add │ │ │ │ │ - cbz r6, 47c │ │ │ │ │ + cbz r6, 522 │ │ │ │ │ mov r1, r4 │ │ │ │ │ add.w r0, r6, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ops_add2 │ │ │ │ │ - ldrd r2, r3, [r7, #96] @ 0x60 │ │ │ │ │ vmov.f64 d6, #32 @ 0x41000000 8.0 │ │ │ │ │ vldr d5, [r7, #16] │ │ │ │ │ vmov.f64 d4, #16 @ 0x40800000 4.0 │ │ │ │ │ - subs r2, r3, r2 │ │ │ │ │ - ldr r3, [sp, #32] │ │ │ │ │ mov r0, r7 │ │ │ │ │ - subs r3, #1 │ │ │ │ │ + ldrd r2, r3, [r7, #96] @ 0x60 │ │ │ │ │ + sub.w r2, r3, r2 │ │ │ │ │ + ldr r3, [sp, #32] │ │ │ │ │ + add.w r3, r3, #4294967295 @ 0xffffffff │ │ │ │ │ mla r3, r2, r3, r3 │ │ │ │ │ ldr r2, [r7, #92] @ 0x5c │ │ │ │ │ mul.w r3, r2, r3 │ │ │ │ │ vmov s15, r3 │ │ │ │ │ vcvt.f64.s32 d7, s15 │ │ │ │ │ vmul.f64 d6, d7, d6 │ │ │ │ │ vadd.f64 d5, d5, d6 │ │ │ │ │ vstr d5, [r7, #16] │ │ │ │ │ vldr d5, [r7, #8] │ │ │ │ │ vmla.f64 d5, d7, d4 │ │ │ │ │ vldr d7, [r7, #32] │ │ │ │ │ vadd.f64 d7, d7, d6 │ │ │ │ │ - vstr d7, [r7, #32] │ │ │ │ │ vstr d5, [r7, #8] │ │ │ │ │ - add sp, #100 @ 0x64 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + vstr d7, [r7, #32] │ │ │ │ │ + b.n 256 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - beq.w 220 │ │ │ │ │ - ldr r3, [pc, #212] @ (5ac ) │ │ │ │ │ + beq.w 29c │ │ │ │ │ + ldr r3, [pc, #220] @ (65c ) │ │ │ │ │ ldr r1, [r7, #8] │ │ │ │ │ add r3, pc │ │ │ │ │ cmp r1, r3 │ │ │ │ │ - bne.w 1ea │ │ │ │ │ - b.n 220 │ │ │ │ │ + bne.w 252 │ │ │ │ │ + b.n 29c │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.n 56e │ │ │ │ │ + bne.n 618 │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ ldr r1, [r4, #16] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq.w 32a │ │ │ │ │ + beq.w 3b2 │ │ │ │ │ mov r5, r1 │ │ │ │ │ - b.n 32c │ │ │ │ │ + b.n 3b4 │ │ │ │ │ mov.w lr, #16 │ │ │ │ │ - str r2, [sp, #0] │ │ │ │ │ - strd ip, lr, [sp, #4] │ │ │ │ │ + strd r2, ip, [sp] │ │ │ │ │ mov r2, r3 │ │ │ │ │ + str.w lr, [sp, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_d │ │ │ │ │ mov sl, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n 4e4 │ │ │ │ │ + beq.n 58a │ │ │ │ │ mov r6, r5 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ - b.n 1ea │ │ │ │ │ - movs r3, #2 │ │ │ │ │ + b.n 252 │ │ │ │ │ + mov.w r3, #2 │ │ │ │ │ ldr r5, [sp, #36] @ 0x24 │ │ │ │ │ str r3, [sp, #28] │ │ │ │ │ - b.n 2c0 │ │ │ │ │ - ldr r0, [pc, #108] @ (5b0 ) │ │ │ │ │ + b.n 340 │ │ │ │ │ + ldr r0, [pc, #112] @ (660 ) │ │ │ │ │ ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ - add r0, pc │ │ │ │ │ ldr r3, [r4, #12] │ │ │ │ │ + add r0, pc │ │ │ │ │ cmp r2, r0 │ │ │ │ │ - itt ne │ │ │ │ │ - ldrne.w ip, [sp, #88] @ 0x58 │ │ │ │ │ - ldrne.w lr, [sp, #80] @ 0x50 │ │ │ │ │ - bne.w 3c0 │ │ │ │ │ - b.n 3b8 │ │ │ │ │ + beq.w 448 │ │ │ │ │ + ldr.w lr, [sp, #80] @ 0x50 │ │ │ │ │ + ldr.w ip, [sp, #88] @ 0x58 │ │ │ │ │ + b.n 450 │ │ │ │ │ ldrd sl, fp, [sp, #88] @ 0x58 │ │ │ │ │ mov r9, r8 │ │ │ │ │ mov r1, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ - str r0, [sp, #44] @ 0x2c │ │ │ │ │ str r3, [sp, #32] │ │ │ │ │ - b.n 2a0 │ │ │ │ │ + str r0, [sp, #44] @ 0x2c │ │ │ │ │ + b.n 31e │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ ldr r1, [r4, #12] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq.n 4f4 │ │ │ │ │ + beq.n 59a │ │ │ │ │ ldr r5, [r4, #16] │ │ │ │ │ - b.n 32c │ │ │ │ │ + b.n 3b4 │ │ │ │ │ mov r6, r0 │ │ │ │ │ - b.n 3f4 │ │ │ │ │ - movs r6, #0 │ │ │ │ │ - b.n 524 │ │ │ │ │ - movs r6, #0 │ │ │ │ │ + b.n 488 │ │ │ │ │ + mov.w r6, #0 │ │ │ │ │ + b.n 5ce │ │ │ │ │ + mov.w r6, #0 │ │ │ │ │ mov r5, r6 │ │ │ │ │ - b.n 524 │ │ │ │ │ + b.n 5ce │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dft_serial_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.w 1ea │ │ │ │ │ + bne.w 252 │ │ │ │ │ ldr r2, [r4, #24] │ │ │ │ │ - b.n 22a │ │ │ │ │ - .word 0x0000037e │ │ │ │ │ + b.n 2a6 │ │ │ │ │ + nop │ │ │ │ │ + .word 0x000003b2 │ │ │ │ │ R_ARM_REL32 apply_ddft_last │ │ │ │ │ - .word 0x00000320 │ │ │ │ │ + .word 0x00000354 │ │ │ │ │ R_ARM_REL32 apply_ddft_first │ │ │ │ │ - .word 0x0000028c │ │ │ │ │ + .word 0x000002b4 │ │ │ │ │ R_ARM_REL32 apply_ddft_first │ │ │ │ │ - .word 0x000001a6 │ │ │ │ │ + .word 0x000001c0 │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ - .word 0x00000160 │ │ │ │ │ + .word 0x00000168 │ │ │ │ │ R_ARM_REL32 apply_ddft_first │ │ │ │ │ - .word 0x000000ce │ │ │ │ │ + .word 0x000000d8 │ │ │ │ │ R_ARM_REL32 apply_ddft_first │ │ │ │ │ - .word 0x00000068 │ │ │ │ │ + .word 0x0000006a │ │ │ │ │ R_ARM_REL32 apply_ddft_first │ │ │ │ │ │ │ │ │ │ -000005b4 : │ │ │ │ │ +00000664 : │ │ │ │ │ awake(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ - mov r5, r0 │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ + mov r5, r0 │ │ │ │ │ ldr r0, [r0, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_awake │ │ │ │ │ ldr r0, [r5, #76] @ 0x4c │ │ │ │ │ mov r1, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_awake │ │ │ │ │ ldr r0, [r5, #72] @ 0x48 │ │ │ │ │ mov r1, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_awake │ │ │ │ │ - cbnz r4, 5dc │ │ │ │ │ + cbnz r4, 698 │ │ │ │ │ ldr r0, [r5, #64] @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_triggen_destroy │ │ │ │ │ str r4, [r5, #64] @ 0x40 │ │ │ │ │ - pop {r3, r4, r5, pc} │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + pop {r5, pc} │ │ │ │ │ ldrd r1, r3, [r5, #108] @ 0x6c │ │ │ │ │ - movs r0, #2 │ │ │ │ │ + mov.w r0, #2 │ │ │ │ │ mul.w r1, r3, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktriggen │ │ │ │ │ mov r4, r0 │ │ │ │ │ str r4, [r5, #64] @ 0x40 │ │ │ │ │ - pop {r3, r4, r5, pc} │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + pop {r5, pc} │ │ │ │ │ │ │ │ │ │ -000005f0 : │ │ │ │ │ +000006b4 : │ │ │ │ │ apply_ddft_last(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ mov fp, r0 │ │ │ │ │ ldr r0, [r0, #68] @ 0x44 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + mov r8, r2 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ sub sp, #84 @ 0x54 │ │ │ │ │ mov sl, r1 │ │ │ │ │ - mov r8, r2 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.w 720 │ │ │ │ │ + beq.w 818 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ mov r2, r8 │ │ │ │ │ + ldr.w r7, [fp, #64] @ 0x40 │ │ │ │ │ ldr.w r5, [fp, #108] @ 0x6c │ │ │ │ │ - ldr.w r3, [fp, #88] @ 0x58 │ │ │ │ │ + ldrd r1, r3, [fp, #84] @ 0x54 │ │ │ │ │ + ldrd r4, r0, [fp, #100] @ 0x64 │ │ │ │ │ str r5, [sp, #28] │ │ │ │ │ - ldrd r6, r5, [fp, #92] @ 0x5c │ │ │ │ │ + ldr.w r6, [fp, #92] @ 0x5c │ │ │ │ │ cmp r3, #0 │ │ │ │ │ it ne │ │ │ │ │ movne sl, r8 │ │ │ │ │ - ldr.w r4, [fp, #100] @ 0x64 │ │ │ │ │ + ldr.w r5, [fp, #96] @ 0x60 │ │ │ │ │ ldr.w r3, [fp, #76] @ 0x4c │ │ │ │ │ - str r3, [sp, #12] │ │ │ │ │ cmp r4, r5 │ │ │ │ │ - ldrd r3, r1, [fp, #80] @ 0x50 │ │ │ │ │ - str r4, [sp, #52] @ 0x34 │ │ │ │ │ - ldr.w r0, [fp, #104] @ 0x68 │ │ │ │ │ - ldr.w r7, [fp, #64] @ 0x40 │ │ │ │ │ + str r3, [sp, #12] │ │ │ │ │ + ldr.w r3, [fp, #80] @ 0x50 │ │ │ │ │ str r5, [sp, #24] │ │ │ │ │ - blt.n 70e │ │ │ │ │ - lsls r5, r1, #2 │ │ │ │ │ - lsls r0, r0, #2 │ │ │ │ │ + str r4, [sp, #52] @ 0x34 │ │ │ │ │ + blt.n 7f4 │ │ │ │ │ + mov.w r5, r1, lsl #2 │ │ │ │ │ + sub.w r3, r3, r1 │ │ │ │ │ + strd sl, r8, [sp, #64] @ 0x40 │ │ │ │ │ + mov.w r1, r3, lsl #2 │ │ │ │ │ + add.w r9, sp, #72 @ 0x48 │ │ │ │ │ add r2, r5 │ │ │ │ │ - subs r3, r3, r1 │ │ │ │ │ add r5, sl │ │ │ │ │ - str.w sl, [sp, #64] @ 0x40 │ │ │ │ │ ldr.w sl, [sp, #12] │ │ │ │ │ - add.w r9, sp, #72 @ 0x48 │ │ │ │ │ - str.w fp, [sp, #60] @ 0x3c │ │ │ │ │ + mov.w r0, r0, lsl #2 │ │ │ │ │ + strd r1, fp, [sp, #56] @ 0x38 │ │ │ │ │ + mov.w r1, r6, lsl #3 │ │ │ │ │ mov fp, r0 │ │ │ │ │ - lsls r1, r3, #2 │ │ │ │ │ - str.w r8, [sp, #68] @ 0x44 │ │ │ │ │ - str r1, [sp, #56] @ 0x38 │ │ │ │ │ - lsls r1, r6, #3 │ │ │ │ │ str r1, [sp, #32] │ │ │ │ │ ldr r1, [sp, #56] @ 0x38 │ │ │ │ │ mov r0, sl │ │ │ │ │ str r5, [sp, #0] │ │ │ │ │ - adds r3, r5, r1 │ │ │ │ │ - adds r1, r2, r1 │ │ │ │ │ ldr.w r4, [sl, #56] @ 0x38 │ │ │ │ │ - str r2, [sp, #16] │ │ │ │ │ - str r3, [sp, #12] │ │ │ │ │ + add.w r3, r5, r1 │ │ │ │ │ + add r1, r2 │ │ │ │ │ + strd r3, r2, [sp, #12] │ │ │ │ │ blx r4 │ │ │ │ │ ldr r2, [sp, #28] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ ldr r2, [sp, #16] │ │ │ │ │ - ble.n 6f6 │ │ │ │ │ + ble.n 7da │ │ │ │ │ cmp r6, #0 │ │ │ │ │ - ble.n 6f6 │ │ │ │ │ - movs r4, #0 │ │ │ │ │ + ble.n 7da │ │ │ │ │ ldr.w r8, [r7, #8] │ │ │ │ │ - ldr r3, [sp, #12] │ │ │ │ │ + mov.w r4, #0 │ │ │ │ │ + mov lr, r5 │ │ │ │ │ mov r1, r4 │ │ │ │ │ strd fp, sl, [sp, #36] @ 0x24 │ │ │ │ │ - mov lr, r5 │ │ │ │ │ mov fp, r4 │ │ │ │ │ + ldr r3, [sp, #12] │ │ │ │ │ strd r2, r5, [sp, #44] @ 0x2c │ │ │ │ │ add.w sl, r3, #8 │ │ │ │ │ add.w r5, lr, #8 │ │ │ │ │ - movs r4, #0 │ │ │ │ │ strd r1, r3, [sp, #12] │ │ │ │ │ + mov.w r4, #0 │ │ │ │ │ str.w lr, [sp, #20] │ │ │ │ │ - mov r2, r9 │ │ │ │ │ vldr s1, [r5, #-8] │ │ │ │ │ - vldr s0, [sl, #-8] │ │ │ │ │ + mov r2, r9 │ │ │ │ │ mov r1, fp │ │ │ │ │ mov r0, r7 │ │ │ │ │ - adds r4, #1 │ │ │ │ │ + add.w r4, r4, #1 │ │ │ │ │ + vldr s0, [sl, #-8] │ │ │ │ │ + add.w r5, r5, #8 │ │ │ │ │ + add.w sl, sl, #8 │ │ │ │ │ blx r8 │ │ │ │ │ ldr r2, [sp, #72] @ 0x48 │ │ │ │ │ - str.w r2, [sl, #-8] │ │ │ │ │ - adds r5, #8 │ │ │ │ │ + cmp r6, r4 │ │ │ │ │ + str.w r2, [sl, #-16] │ │ │ │ │ ldr r2, [sp, #76] @ 0x4c │ │ │ │ │ - add.w sl, sl, #8 │ │ │ │ │ str.w r2, [r5, #-16] │ │ │ │ │ - cmp r6, r4 │ │ │ │ │ - bne.n 6ac │ │ │ │ │ + bne.n 78a │ │ │ │ │ ldrd r1, r3, [sp, #12] │ │ │ │ │ - ldr r2, [sp, #32] │ │ │ │ │ ldr.w lr, [sp, #20] │ │ │ │ │ - adds r1, #1 │ │ │ │ │ - add r3, r2 │ │ │ │ │ + ldr r2, [sp, #32] │ │ │ │ │ + add.w r1, r1, #1 │ │ │ │ │ add lr, r2 │ │ │ │ │ + add r3, r2 │ │ │ │ │ ldr r2, [sp, #24] │ │ │ │ │ add fp, r2 │ │ │ │ │ ldr r2, [sp, #28] │ │ │ │ │ cmp r2, r1 │ │ │ │ │ - bne.n 69a │ │ │ │ │ + bne.n 776 │ │ │ │ │ ldrd fp, sl, [sp, #36] @ 0x24 │ │ │ │ │ ldrd r2, r5, [sp, #44] @ 0x2c │ │ │ │ │ add r2, fp │ │ │ │ │ - ldr r3, [sp, #24] │ │ │ │ │ add r5, fp │ │ │ │ │ + ldr r3, [sp, #24] │ │ │ │ │ ldr r1, [sp, #52] @ 0x34 │ │ │ │ │ - adds r3, #1 │ │ │ │ │ - str r3, [sp, #24] │ │ │ │ │ + add.w r3, r3, #1 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ - bge.n 664 │ │ │ │ │ + str r3, [sp, #24] │ │ │ │ │ + bge.n 73c │ │ │ │ │ ldrd fp, sl, [sp, #60] @ 0x3c │ │ │ │ │ ldr.w r8, [sp, #68] @ 0x44 │ │ │ │ │ - ldr.w r0, [fp, #72] @ 0x48 │ │ │ │ │ mov r2, r8 │ │ │ │ │ mov r1, sl │ │ │ │ │ + ldr.w r0, [fp, #72] @ 0x48 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ add sp, #84 @ 0x54 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w lr, [sp], #4 │ │ │ │ │ bx r3 │ │ │ │ │ mov r2, r1 │ │ │ │ │ - b.n 60a │ │ │ │ │ + b.n 6de │ │ │ │ │ │ │ │ │ │ -00000724 : │ │ │ │ │ +0000081c : │ │ │ │ │ fftwf_mpi_dft_rank1_register(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ + ldr r3, [pc, #124] @ (89c ) │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r3, [pc, #80] @ (77c ) │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + mov.w r7, #2 │ │ │ │ │ + mov.w r8, #0 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ sub sp, #12 │ │ │ │ │ - ldr r6, [pc, #80] @ (780 ) │ │ │ │ │ add r3, pc │ │ │ │ │ + ldr r6, [pc, #96] @ (8a0 ) │ │ │ │ │ mov r9, sp │ │ │ │ │ - add.w r8, sp, #8 │ │ │ │ │ - add r6, pc │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - movs r7, #0 │ │ │ │ │ - ldr r3, [pc, #68] @ (784 ) │ │ │ │ │ + ldr r3, [pc, #96] @ (8a4 ) │ │ │ │ │ + add r6, pc │ │ │ │ │ add r3, pc │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr.w r5, [r9], #4 │ │ │ │ │ mov r1, r6 │ │ │ │ │ - movs r0, #16 │ │ │ │ │ + mov.w r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mksolver │ │ │ │ │ mov r1, r0 │ │ │ │ │ - strd r5, r7, [r0, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ + strd r5, r8, [r1, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_solver_register │ │ │ │ │ mov r1, r6 │ │ │ │ │ - movs r0, #16 │ │ │ │ │ + mov.w r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mksolver │ │ │ │ │ - movs r3, #1 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r5, [r0, #8] │ │ │ │ │ - str r3, [r0, #12] │ │ │ │ │ mov r0, r4 │ │ │ │ │ + str r5, [r1, #8] │ │ │ │ │ + mov.w r5, #1 │ │ │ │ │ + str r5, [r1, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_solver_register │ │ │ │ │ - cmp r8, r9 │ │ │ │ │ - bne.n 744 │ │ │ │ │ + cmp r7, r5 │ │ │ │ │ + bne.n 896 │ │ │ │ │ add sp, #12 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ - .word 0x00000048 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + mov r7, r5 │ │ │ │ │ + b.n 84a │ │ │ │ │ + nop │ │ │ │ │ + .word 0x0000005e │ │ │ │ │ R_ARM_REL32 apply_ddft_first │ │ │ │ │ - .word 0x00000044 │ │ │ │ │ + .word 0x00000058 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ │ │ - .word 0x00000040 │ │ │ │ │ + .word 0x0000005a │ │ │ │ │ R_ARM_REL32 apply_ddft_last │ │ │ ├── dft-rank1-bigvec.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 3060 (bytes into file) │ │ │ │ │ + Start of section headers: 3204 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 16 │ │ │ │ │ Section header string table index: 15 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,25 +1,25 @@ │ │ │ │ │ -There are 16 section headers, starting at offset 0xbf4: │ │ │ │ │ +There are 16 section headers, starting at offset 0xc84: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 00037c 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0009cc 000170 08 I 13 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 0003b0 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 0003b0 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 0003b0 000039 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .rodata PROGBITS 00000000 0003e9 000050 00 A 0 0 4 │ │ │ │ │ - [ 7] .data.rel.ro PROGBITS 00000000 000439 000010 00 WA 0 0 4 │ │ │ │ │ - [ 8] .rel.data.rel.ro REL 00000000 000b3c 000020 08 I 13 7 4 │ │ │ │ │ - [ 9] .data.rel.ro.local PROGBITS 00000000 000449 00000c 00 WA 0 0 4 │ │ │ │ │ - [10] .rel.data.rel.ro.local REL 00000000 000b5c 000008 08 I 13 9 4 │ │ │ │ │ - [11] .note.GNU-stack PROGBITS 00000000 000455 000000 00 0 0 1 │ │ │ │ │ - [12] .ARM.attributes ARM_ATTRIBUTES 00000000 000455 000033 00 0 0 1 │ │ │ │ │ - [13] .symtab SYMTAB 00000000 000488 000310 10 14 24 4 │ │ │ │ │ - [14] .strtab STRTAB 00000000 000798 000233 00 0 0 1 │ │ │ │ │ - [15] .shstrtab STRTAB 00000000 000b64 00008f 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 00040c 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000a5c 000170 08 I 13 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000440 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000440 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 000440 000039 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .rodata PROGBITS 00000000 000479 000050 00 A 0 0 4 │ │ │ │ │ + [ 7] .data.rel.ro PROGBITS 00000000 0004c9 000010 00 WA 0 0 4 │ │ │ │ │ + [ 8] .rel.data.rel.ro REL 00000000 000bcc 000020 08 I 13 7 4 │ │ │ │ │ + [ 9] .data.rel.ro.local PROGBITS 00000000 0004d9 00000c 00 WA 0 0 4 │ │ │ │ │ + [10] .rel.data.rel.ro.local REL 00000000 000bec 000008 08 I 13 9 4 │ │ │ │ │ + [11] .note.GNU-stack PROGBITS 00000000 0004e5 000000 00 0 0 1 │ │ │ │ │ + [12] .ARM.attributes ARM_ATTRIBUTES 00000000 0004e5 000033 00 0 0 1 │ │ │ │ │ + [13] .symtab SYMTAB 00000000 000518 000310 10 14 24 4 │ │ │ │ │ + [14] .strtab STRTAB 00000000 000828 000233 00 0 0 1 │ │ │ │ │ + [15] .shstrtab STRTAB 00000000 000bf4 00008f 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,26 +1,26 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 49 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ - 1: 00000001 68 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ + 1: 00000001 92 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ 2: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ 3: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 4: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC1 │ │ │ │ │ 5: 00000004 0 NOTYPE LOCAL DEFAULT 5 .LC2 │ │ │ │ │ 6: 00000008 0 NOTYPE LOCAL DEFAULT 5 .LC3 │ │ │ │ │ - 7: 00000045 88 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 8: 0000008c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 9: 0000009c 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 10: 0000009d 26 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 11: 000000b9 608 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 12: 00000310 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 13: 00000318 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 14: 00000319 32 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 15: 00000378 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 7: 0000005d 100 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 8: 000000b0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 000000c0 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 10: 000000c1 30 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 11: 000000e1 672 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 12: 00000378 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 13: 00000380 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 14: 00000381 44 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 15: 00000408 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 16: 00000000 0 SECTION LOCAL DEFAULT 6 .rodata │ │ │ │ │ 17: 00000000 0 NOTYPE LOCAL DEFAULT 6 $d │ │ │ │ │ 18: 00000000 0 SECTION LOCAL DEFAULT 7 .data.rel.ro │ │ │ │ │ 19: 00000000 0 NOTYPE LOCAL DEFAULT 7 $d │ │ │ │ │ 20: 00000000 16 OBJECT LOCAL DEFAULT 7 padt.0 │ │ │ │ │ 21: 00000000 0 SECTION LOCAL DEFAULT 9 .data.rel.ro.local │ │ │ │ │ 22: 00000000 0 NOTYPE LOCAL DEFAULT 9 $d │ │ │ │ │ @@ -42,11 +42,11 @@ │ │ │ │ │ 38: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mktensor_2d │ │ │ │ │ 39: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mkproblem_dft_d │ │ │ │ │ 40: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mkplan_rdft │ │ │ │ │ 41: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ops_add │ │ │ │ │ 42: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ops_add2 │ │ │ │ │ 43: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_dft_serial_applicable │ │ │ │ │ 44: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_plan_awake │ │ │ │ │ - 45: 00000339 68 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dft_rank1_bigvec_register │ │ │ │ │ + 45: 000003ad 96 FUNC GLOBAL DEFAULT 1 fftwf_mpi_dft_rank1_bigvec_register │ │ │ │ │ 46: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mksolver │ │ │ │ │ 47: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_solver_register │ │ │ │ │ 48: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_dft_solve │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,60 +1,60 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x9cc contains 46 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0xa5c contains 46 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000056 0000180a R_ARM_THM_CALL 00000000 memcpy │ │ │ │ │ -0000008c 00001003 R_ARM_REL32 00000000 .rodata │ │ │ │ │ -00000090 00000503 R_ARM_REL32 00000004 .LC2 │ │ │ │ │ -00000094 00000603 R_ARM_REL32 00000008 .LC3 │ │ │ │ │ -00000098 00000403 R_ARM_REL32 00000000 .LC1 │ │ │ │ │ -000000a2 0000190a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000000a8 0000190a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000000ca 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -0000011a 00001b0a R_ARM_THM_CALL 00000000 fftwf_mpi_rearrange_applicable │ │ │ │ │ -00000130 00001c0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000138 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -0000014e 00001d0a R_ARM_THM_CALL 00000000 fftwf_mpi_rearrange_ny │ │ │ │ │ -0000015c 00001e0a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000166 00001f0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -00000190 0000200a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ -00000198 0000210a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -000001a6 0000220a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -000001ce 0000230a R_ARM_THM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ -000001da 0000230a R_ARM_THM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ -000001e4 0000240a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -000001f0 0000250a R_ARM_THM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ -00000208 0000260a R_ARM_THM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ -0000021c 0000270a R_ARM_THM_CALL 00000000 fftwf_mkproblem_dft_d │ │ │ │ │ -00000224 0000210a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -00000232 0000220a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -00000256 0000200a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ -0000025e 0000210a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -0000026c 0000220a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -0000027e 0000280a R_ARM_THM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ -000002c0 0000290a R_ARM_THM_CALL 00000000 fftwf_ops_add │ │ │ │ │ -000002ca 00002a0a R_ARM_THM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ -000002dc 0000190a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000002e2 0000190a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000002e8 0000190a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000302 00002b0a R_ARM_THM_CALL 00000000 fftwf_mpi_dft_serial_applicable │ │ │ │ │ -00000310 00000103 R_ARM_REL32 00000001 apply │ │ │ │ │ -00000314 00001203 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -00000320 00002c0a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -00000328 00002c0a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -00000348 00002e0a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -00000354 00002f0a R_ARM_THM_CALL 00000000 fftwf_solver_register │ │ │ │ │ -0000035c 00002e0a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -0000036c 00002f0a R_ARM_THM_CALL 00000000 fftwf_solver_register │ │ │ │ │ -00000378 00001503 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -000000b2 0000191e R_ARM_THM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000334 00002c1e R_ARM_THM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ +00000076 0000180a R_ARM_THM_CALL 00000000 memcpy │ │ │ │ │ +000000b0 00001003 R_ARM_REL32 00000000 .rodata │ │ │ │ │ +000000b4 00000503 R_ARM_REL32 00000004 .LC2 │ │ │ │ │ +000000b8 00000603 R_ARM_REL32 00000008 .LC3 │ │ │ │ │ +000000bc 00000403 R_ARM_REL32 00000000 .LC1 │ │ │ │ │ +000000c8 0000190a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000000ce 0000190a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000102 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000168 00001b0a R_ARM_THM_CALL 00000000 fftwf_mpi_rearrange_applicable │ │ │ │ │ +0000017e 00001c0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +00000186 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +0000019c 00001d0a R_ARM_THM_CALL 00000000 fftwf_mpi_rearrange_ny │ │ │ │ │ +000001aa 00001e0a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +000001b4 00001f0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +000001e2 0000200a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ +000001ea 0000210a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +000001fc 0000220a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +00000224 0000230a R_ARM_THM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ +00000230 0000230a R_ARM_THM_CALL 00000000 fftwf_extract_reim │ │ │ │ │ +0000023a 0000240a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00000246 0000250a R_ARM_THM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ +00000262 0000260a R_ARM_THM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ +00000276 0000270a R_ARM_THM_CALL 00000000 fftwf_mkproblem_dft_d │ │ │ │ │ +0000027e 0000210a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +0000028e 0000220a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +000002b2 0000200a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ +000002ba 0000210a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +000002ca 0000220a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +000002de 0000280a R_ARM_THM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ +0000032a 0000290a R_ARM_THM_CALL 00000000 fftwf_ops_add │ │ │ │ │ +00000334 00002a0a R_ARM_THM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ +00000342 0000190a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000348 0000190a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +0000034e 0000190a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +0000036a 00002b0a R_ARM_THM_CALL 00000000 fftwf_mpi_dft_serial_applicable │ │ │ │ │ +00000378 00000103 R_ARM_REL32 00000001 apply │ │ │ │ │ +0000037c 00001203 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +0000038e 00002c0a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +00000396 00002c0a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +000003ca 00002e0a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +000003d6 00002f0a R_ARM_THM_CALL 00000000 fftwf_solver_register │ │ │ │ │ +000003e0 00002e0a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +000003f4 00002f0a R_ARM_THM_CALL 00000000 fftwf_solver_register │ │ │ │ │ +00000408 00001503 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +000000da 0000191e R_ARM_THM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000003a8 00002c1e R_ARM_THM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0xb3c contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0xbcc contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000000 00003002 R_ARM_ABS32 00000000 fftwf_mpi_dft_solve │ │ │ │ │ -00000004 00000e02 R_ARM_ABS32 00000319 awake │ │ │ │ │ -00000008 00000702 R_ARM_ABS32 00000045 print │ │ │ │ │ -0000000c 00000a02 R_ARM_ABS32 0000009d destroy │ │ │ │ │ +00000004 00000e02 R_ARM_ABS32 00000381 awake │ │ │ │ │ +00000008 00000702 R_ARM_ABS32 0000005d print │ │ │ │ │ +0000000c 00000a02 R_ARM_ABS32 000000c1 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0xb5c contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0xbec contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000b02 R_ARM_ABS32 000000b9 mkplan │ │ │ │ │ +00000004 00000b02 R_ARM_ABS32 000000e1 mkplan │ │ │ │ ├── strings --all --bytes=8 {} │ │ │ │ │ @@ -1,8 +1,8 @@ │ │ │ │ │ -&J` &IzDyD │ │ │ │ │ +~'F~D1FO │ │ │ │ │ (mpi-dft-rank1-bigvec/%s%s %(%p%) %(%p%) %(%p%)) │ │ │ │ │ discontig │ │ │ │ │ square-after │ │ │ │ │ square-middle │ │ │ │ │ square-before │ │ │ │ │ fftwf_plan_destroy_internal │ │ │ │ │ MPI_Comm_size │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,286 +1,302 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r5, r1 │ │ │ │ │ + ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ - ldrd r7, r8, [r0, #76] @ 0x4c │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ sub sp, #8 │ │ │ │ │ - ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ + ldrd r7, r8, [r4, #76] @ 0x4c │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ - ldr r3, [r4, #84] @ 0x54 │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov.w r2, r8, lsl #2 │ │ │ │ │ + ldr r3, [r4, #84] @ 0x54 │ │ │ │ │ + mov.w r1, r7, lsl #2 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ it ne │ │ │ │ │ movne r5, r6 │ │ │ │ │ - lsls r1, r7, #2 │ │ │ │ │ - adds r3, r5, r2 │ │ │ │ │ - str r3, [sp, #0] │ │ │ │ │ + add.w r3, r5, r2 │ │ │ │ │ add r2, r6 │ │ │ │ │ - adds r3, r5, r1 │ │ │ │ │ - ldr r7, [r0, #56] @ 0x38 │ │ │ │ │ + str r3, [sp, #0] │ │ │ │ │ + add.w r3, r5, r1 │ │ │ │ │ add r1, r6 │ │ │ │ │ + ldr r7, [r0, #56] @ 0x38 │ │ │ │ │ blx r7 │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ add sp, #8 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, lr, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ bx r3 │ │ │ │ │ │ │ │ │ │ -00000044 : │ │ │ │ │ +0000005c : │ │ │ │ │ print(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ - mov r4, r0 │ │ │ │ │ + strd r4, r5, [sp, #-16]! │ │ │ │ │ mov r5, r1 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + ldr r1, [pc, #72] @ (b0 ) │ │ │ │ │ + mov.w r2, #80 @ 0x50 │ │ │ │ │ + strd r6, lr, [sp, #8] │ │ │ │ │ sub sp, #96 @ 0x60 │ │ │ │ │ - ldr r1, [pc, #60] @ (8c ) │ │ │ │ │ add r3, sp, #16 │ │ │ │ │ - movs r2, #80 @ 0x50 │ │ │ │ │ mov r0, r3 │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL memcpy │ │ │ │ │ - ldr r2, [r4, #88] @ 0x58 │ │ │ │ │ - ldr r3, [r4, #84] @ 0x54 │ │ │ │ │ + ldrd r3, r2, [r4, #84] @ 0x54 │ │ │ │ │ ldr r6, [r5, #0] │ │ │ │ │ - add.w r2, r0, r2, lsl #4 │ │ │ │ │ cmp r3, #2 │ │ │ │ │ - beq.n 84 │ │ │ │ │ - ldr r3, [pc, #36] @ (90 ) │ │ │ │ │ + add.w r2, r0, r2, lsl #4 │ │ │ │ │ + beq.n aa │ │ │ │ │ + ldr r3, [pc, #40] @ (b4 ) │ │ │ │ │ add r3, pc │ │ │ │ │ ldr r1, [r4, #72] @ 0x48 │ │ │ │ │ mov r0, r5 │ │ │ │ │ str r1, [sp, #8] │ │ │ │ │ ldr r1, [r4, #68] @ 0x44 │ │ │ │ │ str r1, [sp, #4] │ │ │ │ │ ldr r1, [r4, #64] @ 0x40 │ │ │ │ │ str r1, [sp, #0] │ │ │ │ │ - ldr r1, [pc, #24] @ (94 ) │ │ │ │ │ + ldr r1, [pc, #28] @ (b8 ) │ │ │ │ │ add r1, pc │ │ │ │ │ blx r6 │ │ │ │ │ add sp, #96 @ 0x60 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ - ldr r3, [pc, #16] @ (98 ) │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + pop {r6, pc} │ │ │ │ │ + ldr r3, [pc, #16] @ (bc ) │ │ │ │ │ add r3, pc │ │ │ │ │ - b.n 6c │ │ │ │ │ - nop │ │ │ │ │ - .word 0x00000034 │ │ │ │ │ + b.n 8c │ │ │ │ │ + .word 0x00000038 │ │ │ │ │ R_ARM_REL32 .rodata │ │ │ │ │ - .word 0x00000022 │ │ │ │ │ + .word 0x00000026 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ - .word 0x00000014 │ │ │ │ │ + .word 0x00000018 │ │ │ │ │ R_ARM_REL32 .LC3 │ │ │ │ │ - .word 0x0000000e │ │ │ │ │ + .word 0x0000000c │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ │ │ │ │ │ -0000009c : │ │ │ │ │ +000000c0 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #72] @ 0x48 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - ldmia.w sp!, {r4, lr} │ │ │ │ │ + ldrd r4, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_plan_destroy_internal │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -000000b8 : │ │ │ │ │ +000000e0 : │ │ │ │ │ mkplan(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r6, r0 │ │ │ │ │ - sub sp, #76 @ 0x4c │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r7, r2 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #76 @ 0x4c │ │ │ │ │ add r5, sp, #68 @ 0x44 │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r2, [r3, #0] │ │ │ │ │ cmp r2, #1 │ │ │ │ │ - beq.n de │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + beq.n 12a │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add sp, #76 @ 0x4c │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldr r2, [r4, #24] │ │ │ │ │ bics.w r1, r2, #16 │ │ │ │ │ - bne.n d6 │ │ │ │ │ + bne.n 10e │ │ │ │ │ ldr r1, [r6, #8] │ │ │ │ │ - cbz r1, fa │ │ │ │ │ + cbz r1, 146 │ │ │ │ │ ldr.w r1, [r7, #164] @ 0xa4 │ │ │ │ │ lsls r1, r1, #19 │ │ │ │ │ - bmi.n d6 │ │ │ │ │ + bmi.n 10e │ │ │ │ │ ldrd r0, r1, [r4, #12] │ │ │ │ │ cmp r0, r1 │ │ │ │ │ - beq.n d6 │ │ │ │ │ - subs r2, #0 │ │ │ │ │ + beq.n 10e │ │ │ │ │ ldr r1, [r4, #8] │ │ │ │ │ - ldr r0, [sp, #68] @ 0x44 │ │ │ │ │ + subs r2, #0 │ │ │ │ │ it ne │ │ │ │ │ movne r2, #1 │ │ │ │ │ + ldr r0, [sp, #68] @ 0x44 │ │ │ │ │ cmp r1, r0 │ │ │ │ │ it ge │ │ │ │ │ orrge.w r2, r2, #1 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - beq.n d6 │ │ │ │ │ - adds r3, #4 │ │ │ │ │ + beq.n 10e │ │ │ │ │ + add.w r3, r3, #4 │ │ │ │ │ strd r1, r0, [sp] │ │ │ │ │ - ldr r0, [r6, #12] │ │ │ │ │ ldmia r3, {r1, r2, r3} │ │ │ │ │ + ldr r0, [r6, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_rearrange_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n d6 │ │ │ │ │ + beq.n 10e │ │ │ │ │ ldr.w r3, [r7, #164] @ 0xa4 │ │ │ │ │ lsls r3, r3, #28 │ │ │ │ │ - bmi.w 300 │ │ │ │ │ - add r1, sp, #64 @ 0x40 │ │ │ │ │ + bmi.w 368 │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + add r1, sp, #64 @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ - mov r1, r5 │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r2, [sp, #68] @ 0x44 │ │ │ │ │ ldr.w sl, [r3, #4]! │ │ │ │ │ str r2, [sp, #4] │ │ │ │ │ ldr r2, [r4, #8] │ │ │ │ │ str r2, [sp, #0] │ │ │ │ │ ldmia r3, {r1, r2, r3} │ │ │ │ │ ldr r0, [r6, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_rearrange_ny │ │ │ │ │ mov r5, r0 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n d6 │ │ │ │ │ + beq.n 10e │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ ldr r1, [sp, #68] @ 0x44 │ │ │ │ │ mov r9, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_default_block │ │ │ │ │ - movs r3, #0 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ ldrd fp, r2, [r4, #12] │ │ │ │ │ - str r3, [sp, #16] │ │ │ │ │ mov.w r8, r9, lsl #1 │ │ │ │ │ mov r1, r5 │ │ │ │ │ + str r3, [sp, #16] │ │ │ │ │ ldr r3, [r4, #28] │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ - str r0, [sp, #8] │ │ │ │ │ - str r0, [sp, #32] │ │ │ │ │ + mov r3, r0 │ │ │ │ │ + strd r2, r0, [sp, #28] │ │ │ │ │ mov r0, sl │ │ │ │ │ + str r3, [sp, #8] │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - str r2, [sp, #28] │ │ │ │ │ ldr r3, [r3, #8] │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ + strd r2, r3, [sp] │ │ │ │ │ mov r3, fp │ │ │ │ │ - str r2, [sp, #0] │ │ │ │ │ mov r2, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkproblem_transpose │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_d │ │ │ │ │ - str r0, [sp, #36] @ 0x24 │ │ │ │ │ + mov r3, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ + str r3, [sp, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.w 2f8 │ │ │ │ │ + bne.w 360 │ │ │ │ │ ldr r3, [r6, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.w 2ee │ │ │ │ │ + bne.w 354 │ │ │ │ │ ldr.w r3, [r7, #164] @ 0xa4 │ │ │ │ │ ldr r2, [sp, #28] │ │ │ │ │ tst.w r3, #4096 @ 0x1000 │ │ │ │ │ it ne │ │ │ │ │ movne fp, r2 │ │ │ │ │ ldr r0, [r4, #20] │ │ │ │ │ add r3, sp, #52 @ 0x34 │ │ │ │ │ add r2, sp, #48 @ 0x30 │ │ │ │ │ mov r1, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_extract_reim │ │ │ │ │ + ldr r0, [r4, #20] │ │ │ │ │ add r3, sp, #60 @ 0x3c │ │ │ │ │ - ldr r1, [sp, #28] │ │ │ │ │ add r2, sp, #56 @ 0x38 │ │ │ │ │ - ldr r0, [r4, #20] │ │ │ │ │ + ldr r1, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_extract_reim │ │ │ │ │ - ldr r2, [sp, #64] @ 0x40 │ │ │ │ │ ldr r1, [sp, #32] │ │ │ │ │ mov r0, r5 │ │ │ │ │ + ldr r2, [sp, #64] @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ mov r2, r8 │ │ │ │ │ mov r1, r8 │ │ │ │ │ str r0, [sp, #44] @ 0x2c │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor_1d │ │ │ │ │ mul.w r2, r9, sl │ │ │ │ │ - movs r3, #2 │ │ │ │ │ - str r0, [sp, #40] @ 0x28 │ │ │ │ │ + mov.w r3, #2 │ │ │ │ │ strd r3, r3, [sp] │ │ │ │ │ mov r3, r9 │ │ │ │ │ - lsls r2, r2, #1 │ │ │ │ │ + mov.w r2, r2, lsl #1 │ │ │ │ │ + str r0, [sp, #40] @ 0x28 │ │ │ │ │ ldr r0, [sp, #44] @ 0x2c │ │ │ │ │ mov r1, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor_2d │ │ │ │ │ - ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ + ldrd r3, r2, [sp, #52] @ 0x34 │ │ │ │ │ mov r1, r0 │ │ │ │ │ + ldr r0, [sp, #40] @ 0x28 │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - ldr r0, [sp, #40] @ 0x28 │ │ │ │ │ - ldrd r2, r3, [sp, #56] @ 0x38 │ │ │ │ │ + ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_d │ │ │ │ │ mov r9, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.n 2d6 │ │ │ │ │ + bne.n 33c │ │ │ │ │ str r0, [sp, #16] │ │ │ │ │ mov r2, r8 │ │ │ │ │ mov r1, sl │ │ │ │ │ - mov r0, r5 │ │ │ │ │ ldr r3, [r4, #28] │ │ │ │ │ + mov r0, r5 │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r3, [r3, #12] │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ @@ -291,136 +307,141 @@ │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_d │ │ │ │ │ mov r8, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.n 2da │ │ │ │ │ - ldr r2, [pc, #152] @ (310 ) │ │ │ │ │ - movs r0, #96 @ 0x60 │ │ │ │ │ - ldr r1, [pc, #152] @ (314 ) │ │ │ │ │ + bne.n 340 │ │ │ │ │ + ldr r2, [pc, #164] @ (378 ) │ │ │ │ │ + mov.w r0, #96 @ 0x60 │ │ │ │ │ + ldr r1, [pc, #160] @ (37c ) │ │ │ │ │ add r2, pc │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_rdft │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ - strd r3, r9, [r0, #64] @ 0x40 │ │ │ │ │ mov r5, r0 │ │ │ │ │ + strd r3, r9, [r0, #64] @ 0x40 │ │ │ │ │ ldr r3, [r6, #8] │ │ │ │ │ str.w r8, [r0, #72] @ 0x48 │ │ │ │ │ - cbnz r3, 2f4 │ │ │ │ │ + cbnz r3, 35a │ │ │ │ │ ldr.w r3, [r7, #164] @ 0xa4 │ │ │ │ │ and.w r3, r3, #4096 @ 0x1000 │ │ │ │ │ ldr r2, [r4, #16] │ │ │ │ │ add.w r4, r5, #8 │ │ │ │ │ - str r3, [r5, #84] @ 0x54 │ │ │ │ │ add.w r1, r9, #8 │ │ │ │ │ - ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ + str r3, [r5, #84] @ 0x54 │ │ │ │ │ ldr r0, [sp, #36] @ 0x24 │ │ │ │ │ - subs r3, r3, r2 │ │ │ │ │ - adds r0, #8 │ │ │ │ │ - asrs r3, r3, #2 │ │ │ │ │ + ldr r3, [sp, #56] @ 0x38 │ │ │ │ │ + add.w r0, r0, #8 │ │ │ │ │ + sub.w r3, r3, r2 │ │ │ │ │ + mov.w r3, r3, asr #2 │ │ │ │ │ str r3, [r5, #76] @ 0x4c │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ - subs r3, r3, r2 │ │ │ │ │ + sub.w r3, r3, r2 │ │ │ │ │ mov r2, r4 │ │ │ │ │ - asrs r3, r3, #2 │ │ │ │ │ + mov.w r3, r3, asr #2 │ │ │ │ │ str r3, [r5, #80] @ 0x50 │ │ │ │ │ ldr r3, [r6, #12] │ │ │ │ │ str r3, [r5, #88] @ 0x58 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ops_add │ │ │ │ │ add.w r0, r8, #8 │ │ │ │ │ mov r1, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ops_add2 │ │ │ │ │ mov r0, r5 │ │ │ │ │ - add sp, #76 @ 0x4c │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b.n 112 │ │ │ │ │ mov.w r8, #0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [sp, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ - b.n d6 │ │ │ │ │ + b.n 10e │ │ │ │ │ ldr.w fp, [sp, #28] │ │ │ │ │ - b.n 1c6 │ │ │ │ │ - movs r3, #2 │ │ │ │ │ - b.n 29a │ │ │ │ │ + b.n 21c │ │ │ │ │ + mov.w r3, #2 │ │ │ │ │ + b.n 2fa │ │ │ │ │ mov.w r8, #0 │ │ │ │ │ mov r9, r8 │ │ │ │ │ - b.n 2da │ │ │ │ │ + b.n 340 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dft_serial_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.w d6 │ │ │ │ │ - b.n 12c │ │ │ │ │ + bne.w 10e │ │ │ │ │ + b.n 17a │ │ │ │ │ nop │ │ │ │ │ - .word 0x00000092 │ │ │ │ │ + .word 0x0000009a │ │ │ │ │ R_ARM_REL32 apply │ │ │ │ │ - .word 0x00000094 │ │ │ │ │ + .word 0x0000009c │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -00000318 : │ │ │ │ │ +00000380 : │ │ │ │ │ awake(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ + mov r5, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_awake │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_awake │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, lr} │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + ldrd r5, lr, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_plan_awake │ │ │ │ │ │ │ │ │ │ -00000338 : │ │ │ │ │ +000003ac : │ │ │ │ │ fftwf_mpi_dft_rank1_bigvec_register(): │ │ │ │ │ - push {r3, r4, r5, r6, r7, lr} │ │ │ │ │ - movs r4, #0 │ │ │ │ │ - ldr r6, [pc, #56] @ (378 ) │ │ │ │ │ + strd r3, r4, [sp, #-24]! │ │ │ │ │ + mov.w r4, #0 │ │ │ │ │ + strd r5, r6, [sp, #8] │ │ │ │ │ mov r5, r0 │ │ │ │ │ + ldr r6, [pc, #76] @ (408 ) │ │ │ │ │ + strd r7, lr, [sp, #16] │ │ │ │ │ mov r7, r4 │ │ │ │ │ add r6, pc │ │ │ │ │ mov r1, r6 │ │ │ │ │ - movs r0, #16 │ │ │ │ │ + mov.w r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mksolver │ │ │ │ │ mov r1, r0 │ │ │ │ │ - strd r7, r4, [r0, #8] │ │ │ │ │ mov r0, r5 │ │ │ │ │ + strd r7, r4, [r1, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_solver_register │ │ │ │ │ mov r1, r6 │ │ │ │ │ - movs r0, #16 │ │ │ │ │ + mov.w r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mksolver │ │ │ │ │ - movs r3, #1 │ │ │ │ │ - str r4, [r0, #12] │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ - adds r4, #1 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ mov r0, r5 │ │ │ │ │ + strd r3, r4, [r1, #8] │ │ │ │ │ + add.w r4, r4, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_solver_register │ │ │ │ │ cmp r4, #4 │ │ │ │ │ - bne.n 344 │ │ │ │ │ - pop {r3, r4, r5, r6, r7, pc} │ │ │ │ │ - nop │ │ │ │ │ - .word 0x00000032 │ │ │ │ │ + bne.n 3c4 │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + ldrd r5, r6, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + pop {r7, pc} │ │ │ │ │ + .word 0x00000042 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ ├── dft-problem.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 2144 (bytes into file) │ │ │ │ │ + Start of section headers: 2288 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 13 │ │ │ │ │ Section header string table index: 12 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,22 +1,22 @@ │ │ │ │ │ -There are 13 section headers, starting at offset 0x860: │ │ │ │ │ +There are 13 section headers, starting at offset 0x8f0: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 000238 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0006c0 000108 08 I 10 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 00026c 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 00026c 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 00026c 000030 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro.local PROGBITS 00000000 00029c 000014 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro.local REL 00000000 0007c8 000020 08 I 10 6 4 │ │ │ │ │ - [ 8] .note.GNU-stack PROGBITS 00000000 0002b0 000000 00 0 0 1 │ │ │ │ │ - [ 9] .ARM.attributes ARM_ATTRIBUTES 00000000 0002b0 000033 00 0 0 1 │ │ │ │ │ - [10] .symtab SYMTAB 00000000 0002e4 000270 10 11 21 4 │ │ │ │ │ - [11] .strtab STRTAB 00000000 000554 00016c 00 0 0 1 │ │ │ │ │ - [12] .shstrtab STRTAB 00000000 0007e8 000076 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0002c8 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000750 000108 08 I 10 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 0002fc 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 0002fc 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 0002fc 000030 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro.local PROGBITS 00000000 00032c 000014 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro.local REL 00000000 000858 000020 08 I 10 6 4 │ │ │ │ │ + [ 8] .note.GNU-stack PROGBITS 00000000 000340 000000 00 0 0 1 │ │ │ │ │ + [ 9] .ARM.attributes ARM_ATTRIBUTES 00000000 000340 000033 00 0 0 1 │ │ │ │ │ + [10] .symtab SYMTAB 00000000 000374 000270 10 11 21 4 │ │ │ │ │ + [11] .strtab STRTAB 00000000 0005e4 00016c 00 0 0 1 │ │ │ │ │ + [12] .shstrtab STRTAB 00000000 000878 000076 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,28 +1,28 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 39 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ - 1: 00000001 28 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 1: 00000001 32 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ 2: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ 3: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 4: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ 5: 00000014 0 NOTYPE LOCAL DEFAULT 5 .LC1 │ │ │ │ │ 6: 00000020 0 NOTYPE LOCAL DEFAULT 5 .LC2 │ │ │ │ │ - 7: 0000001d 116 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 8: 00000084 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 9: 00000090 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 10: 00000091 50 FUNC LOCAL DEFAULT 1 zero │ │ │ │ │ + 7: 00000021 140 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 8: 000000a0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 000000ac 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 10: 000000ad 68 FUNC LOCAL DEFAULT 1 zero │ │ │ │ │ 11: 00000028 0 NOTYPE LOCAL DEFAULT 5 .LC3 │ │ │ │ │ - 12: 000000c5 92 FUNC LOCAL DEFAULT 1 hash │ │ │ │ │ - 13: 0000011c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 14: 00000120 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 15: 000001a4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 16: 000001a8 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 17: 00000234 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 12: 000000f1 112 FUNC LOCAL DEFAULT 1 hash │ │ │ │ │ + 13: 0000015c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 14: 00000160 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 15: 0000020c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 16: 00000210 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 17: 000002c4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 18: 00000000 0 SECTION LOCAL DEFAULT 6 .data.rel.ro.local │ │ │ │ │ 19: 00000000 0 NOTYPE LOCAL DEFAULT 6 $d │ │ │ │ │ 20: 00000000 20 OBJECT LOCAL DEFAULT 6 padt │ │ │ │ │ 21: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_dtensor_destroy │ │ │ │ │ 22: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_free │ │ │ │ │ 23: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ifree │ │ │ │ │ 24: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ialignment_of │ │ │ │ │ @@ -31,12 +31,12 @@ │ │ │ │ │ 27: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_rank │ │ │ │ │ 28: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_total_block │ │ │ │ │ 29: 00000000 0 NOTYPE GLOBAL DEFAULT UND memset │ │ │ │ │ 30: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_md5puts │ │ │ │ │ 31: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_md5int │ │ │ │ │ 32: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_dtensor_md5 │ │ │ │ │ 33: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_md5INT │ │ │ │ │ - 34: 00000121 136 FUNC GLOBAL DEFAULT 1 fftwf_mpi_mkproblem_dft │ │ │ │ │ + 34: 00000161 176 FUNC GLOBAL DEFAULT 1 fftwf_mpi_mkproblem_dft │ │ │ │ │ 35: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mkproblem │ │ │ │ │ 36: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_dtensor_canonical │ │ │ │ │ 37: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_dup │ │ │ │ │ - 38: 000001a9 144 FUNC GLOBAL DEFAULT 1 fftwf_mpi_mkproblem_dft_d │ │ │ │ │ + 38: 00000211 184 FUNC GLOBAL DEFAULT 1 fftwf_mpi_mkproblem_dft_d │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,43 +1,43 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x6c0 contains 33 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x750 contains 33 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000006 0000150a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -0000000e 0000160a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -00000030 0000180a R_ARM_THM_CALL 00000000 fftwf_ialignment_of │ │ │ │ │ -0000003c 0000180a R_ARM_THM_CALL 00000000 fftwf_ialignment_of │ │ │ │ │ -00000054 0000190a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_print │ │ │ │ │ -0000006e 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000084 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -00000088 00000503 R_ARM_REL32 00000014 .LC1 │ │ │ │ │ -0000008c 00000603 R_ARM_REL32 00000020 .LC2 │ │ │ │ │ -0000009c 00001b0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000000a8 00001c0a R_ARM_THM_CALL 00000000 fftwf_mpi_total_block │ │ │ │ │ -000000ba 00001d0a R_ARM_THM_CALL 00000000 memset │ │ │ │ │ -000000d2 00001e0a R_ARM_THM_CALL 00000000 fftwf_md5puts │ │ │ │ │ -000000e4 00001f0a R_ARM_THM_CALL 00000000 fftwf_md5int │ │ │ │ │ -000000ec 0000200a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_md5 │ │ │ │ │ -000000f4 0000210a R_ARM_THM_CALL 00000000 fftwf_md5INT │ │ │ │ │ -000000fc 00001f0a R_ARM_THM_CALL 00000000 fftwf_md5int │ │ │ │ │ -00000104 00001f0a R_ARM_THM_CALL 00000000 fftwf_md5int │ │ │ │ │ -0000010c 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000114 00001f0a R_ARM_THM_CALL 00000000 fftwf_md5int │ │ │ │ │ -0000011c 00000b03 R_ARM_REL32 00000028 .LC3 │ │ │ │ │ -0000013a 0000230a R_ARM_THM_CALL 00000000 fftwf_mkproblem │ │ │ │ │ -00000144 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -0000014c 0000240a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_canonical │ │ │ │ │ -00000196 0000250a R_ARM_THM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ -000001a4 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -000001c2 0000230a R_ARM_THM_CALL 00000000 fftwf_mkproblem │ │ │ │ │ -000001cc 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000001d4 0000240a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_canonical │ │ │ │ │ -00000220 0000250a R_ARM_THM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ -00000226 0000150a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -00000234 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -00000018 0000171e R_ARM_THM_JUMP24 00000000 fftwf_ifree │ │ │ │ │ +00000008 0000150a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +00000010 0000160a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +0000003e 0000180a R_ARM_THM_CALL 00000000 fftwf_ialignment_of │ │ │ │ │ +0000004a 0000180a R_ARM_THM_CALL 00000000 fftwf_ialignment_of │ │ │ │ │ +00000064 0000190a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_print │ │ │ │ │ +0000007e 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000000a0 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +000000a4 00000503 R_ARM_REL32 00000014 .LC1 │ │ │ │ │ +000000a8 00000603 R_ARM_REL32 00000020 .LC2 │ │ │ │ │ +000000be 00001b0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000000cc 00001c0a R_ARM_THM_CALL 00000000 fftwf_mpi_total_block │ │ │ │ │ +000000e2 00001d0a R_ARM_THM_CALL 00000000 memset │ │ │ │ │ +00000104 00001e0a R_ARM_THM_CALL 00000000 fftwf_md5puts │ │ │ │ │ +0000011a 00001f0a R_ARM_THM_CALL 00000000 fftwf_md5int │ │ │ │ │ +00000122 0000200a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_md5 │ │ │ │ │ +0000012a 0000210a R_ARM_THM_CALL 00000000 fftwf_md5INT │ │ │ │ │ +00000132 00001f0a R_ARM_THM_CALL 00000000 fftwf_md5int │ │ │ │ │ +0000013a 00001f0a R_ARM_THM_CALL 00000000 fftwf_md5int │ │ │ │ │ +00000142 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +0000014a 00001f0a R_ARM_THM_CALL 00000000 fftwf_md5int │ │ │ │ │ +0000015c 00000b03 R_ARM_REL32 00000028 .LC3 │ │ │ │ │ +0000018c 0000230a R_ARM_THM_CALL 00000000 fftwf_mkproblem │ │ │ │ │ +00000196 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000001a0 0000240a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_canonical │ │ │ │ │ +000001ee 0000250a R_ARM_THM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ +0000020c 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +0000023c 0000230a R_ARM_THM_CALL 00000000 fftwf_mkproblem │ │ │ │ │ +00000246 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000250 0000240a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_canonical │ │ │ │ │ +000002a0 0000250a R_ARM_THM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ +000002a6 0000150a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +000002c4 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +0000001c 0000171e R_ARM_THM_JUMP24 00000000 fftwf_ifree │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0x7c8 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0x858 contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000c02 R_ARM_ABS32 000000c5 hash │ │ │ │ │ -00000008 00000a02 R_ARM_ABS32 00000091 zero │ │ │ │ │ -0000000c 00000702 R_ARM_ABS32 0000001d print │ │ │ │ │ +00000004 00000c02 R_ARM_ABS32 000000f1 hash │ │ │ │ │ +00000008 00000a02 R_ARM_ABS32 000000ad zero │ │ │ │ │ +0000000c 00000702 R_ARM_ABS32 00000021 print │ │ │ │ │ 00000010 00000102 R_ARM_ABS32 00000001 destroy │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,127 +1,136 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ add.w r0, r4, #28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_free │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r4, lr} │ │ │ │ │ + ldrd r4, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_ifree │ │ │ │ │ │ │ │ │ │ -0000001c : │ │ │ │ │ +00000020 : │ │ │ │ │ print(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ ldrd r0, r2, [r0, #12] │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ sub sp, #16 │ │ │ │ │ ldr.w r8, [r1] │ │ │ │ │ - subs r6, r2, r0 │ │ │ │ │ + sub.w r6, r2, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ialignment_of │ │ │ │ │ - clz r6, r6 │ │ │ │ │ mov r7, r0 │ │ │ │ │ ldr r0, [r4, #16] │ │ │ │ │ + clz r6, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ialignment_of │ │ │ │ │ - ldr r1, [pc, #64] @ (84 ) │ │ │ │ │ - lsrs r6, r6, #5 │ │ │ │ │ + ldr r1, [pc, #80] @ (a0 ) │ │ │ │ │ + mov.w r6, r6, lsr #5 │ │ │ │ │ mov r3, r7 │ │ │ │ │ - mov r2, r6 │ │ │ │ │ str r0, [sp, #0] │ │ │ │ │ - add r1, pc │ │ │ │ │ mov r0, r5 │ │ │ │ │ + mov r2, r6 │ │ │ │ │ + add r1, pc │ │ │ │ │ blx r8 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_print │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ - str r3, [sp, #0] │ │ │ │ │ mov r0, r5 │ │ │ │ │ - ldr r1, [pc, #40] @ (88 ) │ │ │ │ │ - ldr r3, [r4, #20] │ │ │ │ │ - ldr r2, [r4, #8] │ │ │ │ │ - add r1, pc │ │ │ │ │ + ldr r1, [pc, #52] @ (a4 ) │ │ │ │ │ + str r3, [sp, #0] │ │ │ │ │ ldr r6, [r5, #0] │ │ │ │ │ + add r1, pc │ │ │ │ │ + ldr r2, [r4, #8] │ │ │ │ │ + ldr r3, [r4, #20] │ │ │ │ │ blx r6 │ │ │ │ │ - add r1, sp, #12 │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + add r1, sp, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ - ldr r1, [pc, #24] @ (8c ) │ │ │ │ │ - ldr r3, [r5, #0] │ │ │ │ │ + ldr r1, [pc, #36] @ (a8 ) │ │ │ │ │ mov r0, r5 │ │ │ │ │ + ldr r3, [r5, #0] │ │ │ │ │ ldr r2, [sp, #12] │ │ │ │ │ add r1, pc │ │ │ │ │ blx r3 │ │ │ │ │ add sp, #16 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, pc} │ │ │ │ │ - .word 0x00000036 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + ldmia.w sp!, {r8, pc} │ │ │ │ │ + nop │ │ │ │ │ + .word 0x00000040 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ - .word 0x00000020 │ │ │ │ │ + .word 0x0000002e │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x0000000e │ │ │ │ │ + .word 0x0000001a │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ │ │ │ │ │ -00000090 : │ │ │ │ │ +000000ac : │ │ │ │ │ zero(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, r5, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r6, [r0, #12] │ │ │ │ │ + strd r6, lr, [sp, #8] │ │ │ │ │ sub sp, #8 │ │ │ │ │ - ldr r0, [r0, #28] │ │ │ │ │ + ldr r6, [r0, #12] │ │ │ │ │ add r1, sp, #4 │ │ │ │ │ + ldr r0, [r0, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ - ldr r5, [r4, #8] │ │ │ │ │ + ldrd r0, r5, [r4, #4] │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ ldr r2, [sp, #4] │ │ │ │ │ - movs r1, #0 │ │ │ │ │ - ldr r0, [r4, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_total_block │ │ │ │ │ mul.w r0, r5, r0 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - ble.n be │ │ │ │ │ - lsls r2, r0, #3 │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + ble.n e6 │ │ │ │ │ + mov.w r2, r0, lsl #3 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL memset │ │ │ │ │ add sp, #8 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ - nop │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + pop {r6, pc} │ │ │ │ │ │ │ │ │ │ -000000c4 : │ │ │ │ │ +000000f0 : │ │ │ │ │ hash(): │ │ │ │ │ - push {r4, r5, lr} │ │ │ │ │ + str.w r4, [sp, #-12]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - ldr r1, [pc, #80] @ (11c ) │ │ │ │ │ + ldr r1, [pc, #100] @ (15c ) │ │ │ │ │ + strd r5, lr, [sp, #4] │ │ │ │ │ sub sp, #12 │ │ │ │ │ + mov r5, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_md5puts │ │ │ │ │ - mov r0, r4 │ │ │ │ │ ldrd r1, r3, [r5, #12] │ │ │ │ │ - subs r1, r1, r3 │ │ │ │ │ + mov r0, r4 │ │ │ │ │ + sub.w r1, r1, r3 │ │ │ │ │ clz r1, r1 │ │ │ │ │ - lsrs r1, r1, #5 │ │ │ │ │ + mov.w r1, r1, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_md5int │ │ │ │ │ ldr r1, [r5, #4] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_md5 │ │ │ │ │ ldr r1, [r5, #8] │ │ │ │ │ @@ -132,136 +141,158 @@ │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_md5int │ │ │ │ │ ldr r1, [r5, #24] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_md5int │ │ │ │ │ - add r1, sp, #4 │ │ │ │ │ ldr r0, [r5, #28] │ │ │ │ │ + add r1, sp, #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #4] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_md5int │ │ │ │ │ add sp, #12 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ - .word 0x00000048 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + nop │ │ │ │ │ + .word 0x00000056 │ │ │ │ │ R_ARM_REL32 .LC3 │ │ │ │ │ │ │ │ │ │ -00000120 : │ │ │ │ │ +00000160 : │ │ │ │ │ fftwf_mpi_mkproblem_dft(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ - mov r8, r1 │ │ │ │ │ - ldr r1, [pc, #124] @ (1a4 ) │ │ │ │ │ - sub sp, #16 │ │ │ │ │ - mov r5, r0 │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + mov r5, r3 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + mov r7, r1 │ │ │ │ │ + ldr r1, [pc, #152] @ (20c ) │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + mov sl, r0 │ │ │ │ │ + mov.w r0, #32 │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #20 │ │ │ │ │ + mov r9, r2 │ │ │ │ │ + ldr.w r8, [sp, #56] @ 0x38 │ │ │ │ │ add r1, pc │ │ │ │ │ - movs r0, #32 │ │ │ │ │ - mov r7, r3 │ │ │ │ │ - mov sl, r2 │ │ │ │ │ - ldr.w r9, [sp, #48] @ 0x30 │ │ │ │ │ - ldr r6, [sp, #56] @ 0x38 │ │ │ │ │ + ldr r6, [sp, #64] @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkproblem │ │ │ │ │ - mov r1, sp │ │ │ │ │ mov r4, r0 │ │ │ │ │ - mov r0, r9 │ │ │ │ │ + mov r1, sp │ │ │ │ │ + mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ - movs r1, #1 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ + mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_canonical │ │ │ │ │ - ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ + ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ + tst.w r6, #4 │ │ │ │ │ + strd r0, r7, [r4, #4] │ │ │ │ │ + strd r9, r5, [r4, #12] │ │ │ │ │ str r3, [r4, #20] │ │ │ │ │ - lsls r3, r6, #29 │ │ │ │ │ - strd r0, r8, [r4, #4] │ │ │ │ │ - strd sl, r7, [r4, #12] │ │ │ │ │ - bpl.n 18e │ │ │ │ │ + beq.n 1e6 │ │ │ │ │ ldr r3, [r0, #0] │ │ │ │ │ - mov r5, r0 │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - ble.n 18e │ │ │ │ │ - adds r7, r0, #4 │ │ │ │ │ - add r3, sp, #4 │ │ │ │ │ - adds r5, #16 │ │ │ │ │ + ble.n 1e6 │ │ │ │ │ + ldrd r2, r3, [r0, #4] │ │ │ │ │ bic.w r6, r6, #4 │ │ │ │ │ eor.w r6, r6, #8 │ │ │ │ │ - ldmia.w r7, {r0, r1, r2} │ │ │ │ │ - stmia.w r3, {r0, r1, r2} │ │ │ │ │ - ldmia.w r5, {r0, r1, r2} │ │ │ │ │ - stmia.w r7, {r0, r1, r2} │ │ │ │ │ - ldmia.w r3, {r0, r1, r2} │ │ │ │ │ - stmia.w r5, {r0, r1, r2} │ │ │ │ │ + ldrd sl, fp, [r0, #16] │ │ │ │ │ + ldr r5, [r0, #24] │ │ │ │ │ + strd r2, r3, [sp, #4] │ │ │ │ │ + ldr r2, [r0, #12] │ │ │ │ │ + strd sl, fp, [r0, #4] │ │ │ │ │ + ldrd sl, fp, [sp, #4] │ │ │ │ │ + str r5, [r0, #12] │ │ │ │ │ + str r2, [sp, #12] │ │ │ │ │ + strd sl, fp, [r0, #16] │ │ │ │ │ + str r2, [r0, #24] │ │ │ │ │ add.w r1, r4, #28 │ │ │ │ │ - mov r0, r9 │ │ │ │ │ + mov r0, r8 │ │ │ │ │ str r6, [r4, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_dup │ │ │ │ │ mov r0, r4 │ │ │ │ │ - add sp, #16 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ - nop │ │ │ │ │ - .word 0x00000074 │ │ │ │ │ + add sp, #20 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + .word 0x00000080 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -000001a8 : │ │ │ │ │ +00000210 : │ │ │ │ │ fftwf_mpi_mkproblem_dft_d(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - mov r9, r1 │ │ │ │ │ - ldr r1, [pc, #132] @ (234 ) │ │ │ │ │ - sub sp, #20 │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r6, r0 │ │ │ │ │ - add r1, pc │ │ │ │ │ - movs r0, #32 │ │ │ │ │ + mov.w r0, #32 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + mov sl, r1 │ │ │ │ │ + mov r9, r2 │ │ │ │ │ + ldr r1, [pc, #156] @ (2c4 ) │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r8, r3 │ │ │ │ │ - mov fp, r2 │ │ │ │ │ - ldr.w sl, [sp, #56] @ 0x38 │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #20 │ │ │ │ │ + ldr.w fp, [sp, #56] @ 0x38 │ │ │ │ │ + add r1, pc │ │ │ │ │ ldr r7, [sp, #64] @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkproblem │ │ │ │ │ - mov r1, sp │ │ │ │ │ mov r4, r0 │ │ │ │ │ - mov r0, sl │ │ │ │ │ + mov r1, sp │ │ │ │ │ + mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_canonical │ │ │ │ │ ldr r3, [sp, #60] @ 0x3c │ │ │ │ │ + tst.w r7, #4 │ │ │ │ │ + strd r0, sl, [r4, #4] │ │ │ │ │ + strd r9, r8, [r4, #12] │ │ │ │ │ str r3, [r4, #20] │ │ │ │ │ - lsls r3, r7, #29 │ │ │ │ │ - strd r0, r9, [r4, #4] │ │ │ │ │ - strd fp, r8, [r4, #12] │ │ │ │ │ - bpl.n 218 │ │ │ │ │ + beq.n 298 │ │ │ │ │ ldr r3, [r0, #0] │ │ │ │ │ mov r5, r0 │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - ble.n 218 │ │ │ │ │ - add.w ip, r0, #4 │ │ │ │ │ - add r3, sp, #4 │ │ │ │ │ - adds r5, #16 │ │ │ │ │ + ble.n 298 │ │ │ │ │ + ldrd r2, r3, [r0, #4] │ │ │ │ │ bic.w r7, r7, #4 │ │ │ │ │ eor.w r7, r7, #8 │ │ │ │ │ - ldmia.w ip, {r0, r1, r2} │ │ │ │ │ - stmia.w r3, {r0, r1, r2} │ │ │ │ │ - ldmia.w r5, {r0, r1, r2} │ │ │ │ │ - stmia.w ip, {r0, r1, r2} │ │ │ │ │ - ldmia.w r3, {r0, r1, r2} │ │ │ │ │ - stmia.w r5, {r0, r1, r2} │ │ │ │ │ + strd r2, r3, [sp, #4] │ │ │ │ │ + ldrd r2, r3, [r0, #16] │ │ │ │ │ + strd r2, r3, [r0, #4] │ │ │ │ │ + ldr r3, [r5, #24] │ │ │ │ │ + ldr r0, [r0, #12] │ │ │ │ │ + str r3, [r5, #12] │ │ │ │ │ + ldrd r2, r3, [sp, #4] │ │ │ │ │ + str r0, [sp, #12] │ │ │ │ │ + strd r2, r3, [r5, #16] │ │ │ │ │ + str r0, [r5, #24] │ │ │ │ │ add.w r1, r4, #28 │ │ │ │ │ - mov r0, sl │ │ │ │ │ + mov r0, fp │ │ │ │ │ str r7, [r4, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_dup │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, #20 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ - nop │ │ │ │ │ - .word 0x0000007c │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + .word 0x00000088 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ ├── dft-solve.o │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,10 +1,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftwf_mpi_dft_solve(): │ │ │ │ │ - ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ ldrd r1, r2, [r1, #12] │ │ │ │ │ + ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ bx r3 │ │ │ ├── rdft-serial.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 2116 (bytes into file) │ │ │ │ │ + Start of section headers: 2172 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 15 │ │ │ │ │ Section header string table index: 14 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,24 +1,24 @@ │ │ │ │ │ -There are 15 section headers, starting at offset 0x844: │ │ │ │ │ +There are 15 section headers, starting at offset 0x87c: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 000210 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0006cc 0000c8 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000244 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000244 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 000244 000019 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 00025d 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 000794 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 00026d 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 0007b4 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 000279 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000279 000033 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 0002ac 000270 10 13 20 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 00051c 0001b0 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 0007bc 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000248 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000704 0000c8 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 00027c 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 00027c 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 00027c 000019 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 000295 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 0007cc 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 0002a5 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 0007ec 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 0002b1 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 0002b1 000033 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 0002e4 000270 10 13 20 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 000554 0001b0 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 0007f4 000087 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -7,18 +7,18 @@ │ │ │ │ │ 3: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 4: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ 5: 00000009 20 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ 6: 00000018 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 7: 0000001c 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ 8: 0000001d 6 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ 9: 00000025 6 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 10: 0000002d 404 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 11: 000001b8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 12: 000001c0 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 13: 0000020c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 10: 0000002d 448 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 11: 000001e4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 12: 000001ec 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 13: 00000244 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 14: 00000000 0 SECTION LOCAL DEFAULT 6 .data.rel.ro │ │ │ │ │ 15: 00000000 0 NOTYPE LOCAL DEFAULT 6 $d │ │ │ │ │ 16: 00000000 16 OBJECT LOCAL DEFAULT 6 padt.0 │ │ │ │ │ 17: 00000000 0 SECTION LOCAL DEFAULT 8 .data.rel.ro.local │ │ │ │ │ 18: 00000000 0 NOTYPE LOCAL DEFAULT 8 $d │ │ │ │ │ 19: 00000000 12 OBJECT LOCAL DEFAULT 8 sadt.1 │ │ │ │ │ 20: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_plan_destroy_internal │ │ │ │ │ @@ -31,12 +31,12 @@ │ │ │ │ │ 27: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_any_true │ │ │ │ │ 28: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mkplan_rdft │ │ │ │ │ 29: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ops_cpy │ │ │ │ │ 30: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mktensor │ │ │ │ │ 31: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_malloc_plain │ │ │ │ │ 32: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mkproblem_rdft_d │ │ │ │ │ 33: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ifree0 │ │ │ │ │ - 34: 000001c1 46 FUNC GLOBAL DEFAULT 1 fftwf_mpi_rdft_serial_applicable │ │ │ │ │ - 35: 000001f1 32 FUNC GLOBAL DEFAULT 1 fftwf_mpi_rdft_serial_register │ │ │ │ │ + 34: 000001ed 56 FUNC GLOBAL DEFAULT 1 fftwf_mpi_rdft_serial_applicable │ │ │ │ │ + 35: 00000225 36 FUNC GLOBAL DEFAULT 1 fftwf_mpi_rdft_serial_register │ │ │ │ │ 36: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mksolver │ │ │ │ │ 37: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_solver_register │ │ │ │ │ 38: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_rdft_solve │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,39 +1,39 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x6cc contains 25 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x704 contains 25 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000018 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -00000044 0000160a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ -00000058 0000170a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -0000006c 0000180a R_ARM_THM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ -00000074 0000190a R_ARM_THM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ -0000007c 00001a0a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -0000008a 00001b0a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -0000009c 00001c0a R_ARM_THM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ -000000ac 00001d0a R_ARM_THM_CALL 00000000 fftwf_ops_cpy │ │ │ │ │ -000000c8 00001e0a R_ARM_THM_CALL 00000000 fftwf_mktensor │ │ │ │ │ -000000d0 00001f0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ -00000168 0000180a R_ARM_THM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ -00000176 0000200a R_ARM_THM_CALL 00000000 fftwf_mkproblem_rdft_d │ │ │ │ │ -0000017e 00001a0a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -00000186 0000210a R_ARM_THM_CALL 00000000 fftwf_ifree0 │ │ │ │ │ -00000190 0000160a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ -000001b8 00000103 R_ARM_REL32 00000001 apply │ │ │ │ │ -000001bc 00000e03 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -000001ce 0000160a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ -000001e2 0000160a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ -000001fa 0000240a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -0000020c 00001103 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +00000060 0000160a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ +00000074 0000170a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +0000008a 0000180a R_ARM_THM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ +00000092 0000190a R_ARM_THM_CALL 00000000 fftwf_mkproblem_rdft_0_d │ │ │ │ │ +0000009a 00001a0a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +000000aa 00001b0a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +000000be 00001c0a R_ARM_THM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ +000000ce 00001d0a R_ARM_THM_CALL 00000000 fftwf_ops_cpy │ │ │ │ │ +000000e2 00001e0a R_ARM_THM_CALL 00000000 fftwf_mktensor │ │ │ │ │ +000000ee 00001f0a R_ARM_THM_CALL 00000000 fftwf_malloc_plain │ │ │ │ │ +00000190 0000180a R_ARM_THM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ +0000019e 0000200a R_ARM_THM_CALL 00000000 fftwf_mkproblem_rdft_d │ │ │ │ │ +000001a6 00001a0a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +000001ae 0000210a R_ARM_THM_CALL 00000000 fftwf_ifree0 │ │ │ │ │ +000001ba 0000160a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ +000001e4 00000103 R_ARM_REL32 00000001 apply │ │ │ │ │ +000001e8 00000e03 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +000001fe 0000160a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ +00000216 0000160a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ +00000232 0000240a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +00000244 00001103 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ 0000001e 0000141e R_ARM_THM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ 00000026 0000151e R_ARM_THM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ -00000206 0000251e R_ARM_THM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ +00000240 0000251e R_ARM_THM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0x794 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0x7cc contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000000 00002602 R_ARM_ABS32 00000000 fftwf_mpi_rdft_solve │ │ │ │ │ 00000004 00000902 R_ARM_ABS32 00000025 awake │ │ │ │ │ 00000008 00000502 R_ARM_ABS32 00000009 print │ │ │ │ │ 0000000c 00000802 R_ARM_ABS32 0000001d destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0x7b4 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0x7ec contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000004 00000a02 R_ARM_ABS32 0000002d mkplan │ │ │ │ ├── strings --all --bytes=8 {} │ │ │ │ │ @@ -1,8 +1,7 @@ │ │ │ │ │ -IJH IIzDyD │ │ │ │ │ (mpi-rdft-serial %(%p%)) │ │ │ │ │ fftwf_plan_destroy_internal │ │ │ │ │ fftwf_plan_awake │ │ │ │ │ fftwf_mpi_is_local │ │ │ │ │ MPI_Comm_rank │ │ │ │ │ fftwf_mktensor_1d │ │ │ │ │ fftwf_mkproblem_rdft_0_d │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -9,17 +9,17 @@ │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ bx r3 │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ 00000008 : │ │ │ │ │ print(): │ │ │ │ │ mov r2, r0 │ │ │ │ │ - ldr r3, [r1, #0] │ │ │ │ │ mov r0, r1 │ │ │ │ │ ldr r1, [pc, #8] @ (18 ) │ │ │ │ │ + ldr r3, [r0, #0] │ │ │ │ │ ldr r2, [r2, #64] @ 0x40 │ │ │ │ │ add r1, pc │ │ │ │ │ bx r3 │ │ │ │ │ nop │ │ │ │ │ .word 0x00000002 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ @@ -35,212 +35,217 @@ │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_plan_awake │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ 0000002c : │ │ │ │ │ mkplan(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} │ │ │ │ │ + strd r4, r5, [sp, #-32]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ ldr r1, [r1, #20] │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ + strd r8, r9, [sp, #16] │ │ │ │ │ + strd sl, lr, [sp, #24] │ │ │ │ │ sub sp, #16 │ │ │ │ │ - cbz r1, 40 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + cbz r1, 5c │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add sp, #16 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldmia.w sp!, {sl, pc} │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mov r5, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.w 18c │ │ │ │ │ + bne.w 1b4 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.n 38 │ │ │ │ │ + bne.n 44 │ │ │ │ │ ldr r0, [r4, #24] │ │ │ │ │ add r1, sp, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ - cbnz r3, 66 │ │ │ │ │ + cbnz r3, 82 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bgt.n b8 │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + bgt.n d6 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ mov r1, r2 │ │ │ │ │ mov r0, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor_1d │ │ │ │ │ ldrd r1, r2, [r4, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkproblem_rdft_0_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_d │ │ │ │ │ mov r5, r0 │ │ │ │ │ clz r0, r5 │ │ │ │ │ ldr r1, [r4, #24] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.n 38 │ │ │ │ │ - ldr r2, [pc, #292] @ (1b8 ) │ │ │ │ │ - movs r0, #72 @ 0x48 │ │ │ │ │ - ldr r1, [pc, #292] @ (1bc ) │ │ │ │ │ + bne.n 44 │ │ │ │ │ + ldr r2, [pc, #304] @ (1e4 ) │ │ │ │ │ + mov.w r0, #72 @ 0x48 │ │ │ │ │ + ldr r1, [pc, #300] @ (1e8 ) │ │ │ │ │ add r2, pc │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_rdft │ │ │ │ │ mov r4, r0 │ │ │ │ │ add.w r1, r0, #8 │ │ │ │ │ - str r5, [r0, #64] @ 0x40 │ │ │ │ │ add.w r0, r5, #8 │ │ │ │ │ + str r5, [r4, #64] @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ops_cpy │ │ │ │ │ mov r0, r4 │ │ │ │ │ - add sp, #16 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} │ │ │ │ │ + b.n 48 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr.w r9, [r3] │ │ │ │ │ - mov r0, r9 │ │ │ │ │ - add.w sl, r9, #4294967295 @ 0xffffffff │ │ │ │ │ mov.w r8, r9, lsl #2 │ │ │ │ │ + mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor │ │ │ │ │ mov r7, r0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ + add.w sl, r9, r9, lsl #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_malloc_plain │ │ │ │ │ - mov.w lr, #12 │ │ │ │ │ - ldr r2, [r4, #4] │ │ │ │ │ mov r6, r0 │ │ │ │ │ - ldr r0, [r4, #8] │ │ │ │ │ - cmp.w sl, #0 │ │ │ │ │ - mul.w r1, lr, sl │ │ │ │ │ - mov ip, sl │ │ │ │ │ - mul.w lr, lr, r9 │ │ │ │ │ + ldrd r2, r0, [r4, #4] │ │ │ │ │ + add.w lr, r9, #4294967295 @ 0xffffffff │ │ │ │ │ + add.w r1, lr, lr, lsl #1 │ │ │ │ │ + cmp.w lr, #0 │ │ │ │ │ + mov ip, lr │ │ │ │ │ + mov.w sl, sl, lsl #2 │ │ │ │ │ + mov.w r1, r1, lsl #2 │ │ │ │ │ add.w r3, r7, r1 │ │ │ │ │ add r1, r2 │ │ │ │ │ + ldr r1, [r1, #4] │ │ │ │ │ it gt │ │ │ │ │ - addgt r2, lr │ │ │ │ │ + addgt r2, sl │ │ │ │ │ str r0, [r3, #12] │ │ │ │ │ - add.w r3, r7, lr │ │ │ │ │ - ldr r1, [r1, #4] │ │ │ │ │ - str.w r0, [r3, #-4] │ │ │ │ │ - str.w r1, [r3, #-8] │ │ │ │ │ - ble.n 19c │ │ │ │ │ + add.w r3, r7, sl │ │ │ │ │ + strd r1, r0, [r3, #-8] │ │ │ │ │ + ble.n 1c6 │ │ │ │ │ mul.w r0, r1, r0 │ │ │ │ │ - subs r2, #12 │ │ │ │ │ - strd r0, r0, [r3, #-16] │ │ │ │ │ subs.w ip, ip, #1 │ │ │ │ │ + sub.w r2, r2, #12 │ │ │ │ │ + strd r0, r0, [r3, #-16] │ │ │ │ │ sub.w r3, r3, #12 │ │ │ │ │ ldr.w r1, [r2, #-8] │ │ │ │ │ str.w r1, [r3, #-8] │ │ │ │ │ - bne.n 108 │ │ │ │ │ - cmp.w sl, #6 │ │ │ │ │ - bls.n 1a2 │ │ │ │ │ + bne.n 126 │ │ │ │ │ + cmp.w lr, #6 │ │ │ │ │ + bls.n 1cc │ │ │ │ │ add.w r3, r4, #32 │ │ │ │ │ cmp r6, r3 │ │ │ │ │ - beq.n 1a2 │ │ │ │ │ + beq.n 1cc │ │ │ │ │ mov.w ip, r9, lsr #1 │ │ │ │ │ add.w r2, r4, #28 │ │ │ │ │ mov r3, r6 │ │ │ │ │ add.w ip, r6, ip, lsl #3 │ │ │ │ │ ldrd r1, r0, [r2] │ │ │ │ │ + add.w r2, r2, #8 │ │ │ │ │ strd r1, r0, [r3] │ │ │ │ │ - adds r3, #8 │ │ │ │ │ - adds r2, #8 │ │ │ │ │ + add.w r3, r3, #8 │ │ │ │ │ cmp r3, ip │ │ │ │ │ - bne.n 140 │ │ │ │ │ + bne.n 160 │ │ │ │ │ + tst.w r9, #1 │ │ │ │ │ bic.w r3, r9, #1 │ │ │ │ │ - cmp r9, r3 │ │ │ │ │ - beq.n 162 │ │ │ │ │ + beq.n 188 │ │ │ │ │ add.w r2, r4, r3, lsl #2 │ │ │ │ │ ldr r2, [r2, #28] │ │ │ │ │ str.w r2, [r6, r3, lsl #2] │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ - movs r2, #1 │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ mov r1, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor_1d │ │ │ │ │ - str r6, [sp, #0] │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ + str r6, [sp, #0] │ │ │ │ │ ldrd r2, r3, [r4, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkproblem_rdft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_d │ │ │ │ │ mov r5, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ifree0 │ │ │ │ │ - b.n 82 │ │ │ │ │ + b.n a0 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.w 4e │ │ │ │ │ - b.n 54 │ │ │ │ │ + beq.w 6a │ │ │ │ │ + b.n 70 │ │ │ │ │ cmp.w r9, #1 │ │ │ │ │ - bne.n 164 │ │ │ │ │ + bne.n 18a │ │ │ │ │ add.w r2, r4, #24 │ │ │ │ │ mov r3, r6 │ │ │ │ │ add r8, r6 │ │ │ │ │ ldr.w r1, [r2, #4]! │ │ │ │ │ str.w r1, [r3], #4 │ │ │ │ │ cmp r8, r3 │ │ │ │ │ - bne.n 1aa │ │ │ │ │ - b.n 162 │ │ │ │ │ - .word 0x0000011c │ │ │ │ │ + bne.n 1d4 │ │ │ │ │ + b.n 188 │ │ │ │ │ + nop │ │ │ │ │ + .word 0x00000126 │ │ │ │ │ R_ARM_REL32 apply │ │ │ │ │ - .word 0x0000011e │ │ │ │ │ + .word 0x00000128 │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -000001c0 : │ │ │ │ │ +000001ec : │ │ │ │ │ fftwf_mpi_rdft_serial_applicable(): │ │ │ │ │ ldr r1, [r0, #20] │ │ │ │ │ - cbz r1, 1c8 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + cbz r1, 1f6 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ bx lr │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_is_local │ │ │ │ │ - cbnz r0, 1de │ │ │ │ │ + cbnz r0, 210 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ clz r0, r0 │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n 1d4 │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + beq.n 204 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ - nop │ │ │ │ │ │ │ │ │ │ -000001f0 : │ │ │ │ │ +00000224 : │ │ │ │ │ fftwf_mpi_rdft_serial_register(): │ │ │ │ │ - ldr r1, [pc, #24] @ (20c ) │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + ldr r1, [pc, #28] @ (244 ) │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov.w r0, #8 │ │ │ │ │ add r1, pc │ │ │ │ │ - movs r0, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mksolver │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r4, lr} │ │ │ │ │ + ldrd r4, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_solver_register │ │ │ │ │ - nop │ │ │ │ │ - .word 0x00000012 │ │ │ │ │ + .word 0x00000010 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ ├── rdft-rank-geq2.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 2640 (bytes into file) │ │ │ │ │ + Start of section headers: 2756 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 15 │ │ │ │ │ Section header string table index: 14 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,24 +1,24 @@ │ │ │ │ │ -There are 15 section headers, starting at offset 0xa50: │ │ │ │ │ +There are 15 section headers, starting at offset 0xac4: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 000348 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000890 000110 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 00037c 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 00037c 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 00037c 00002b 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 0003a7 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 0009a0 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 0003b7 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 0009c0 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 0003c3 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 0003c3 000033 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 0003f8 0002b0 10 13 22 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 0006a8 0001e7 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 0009c8 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0003bc 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000904 000110 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 0003f0 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 0003f0 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 0003f0 00002b 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 00041b 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 000a14 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 00042b 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 000a34 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 000437 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000437 000033 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 00046c 0002b0 10 13 22 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 00071c 0001e7 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 000a3c 000087 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,26 +1,26 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 43 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ - 1: 00000001 42 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ + 1: 00000001 60 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ 2: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ 3: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 4: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ 5: 00000004 0 NOTYPE LOCAL DEFAULT 5 .LC1 │ │ │ │ │ 6: 00000008 0 NOTYPE LOCAL DEFAULT 5 .LC2 │ │ │ │ │ - 7: 0000002d 56 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 8: 00000058 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 9: 00000064 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 10: 00000065 20 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 11: 00000079 640 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 12: 000002f0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 13: 000002f8 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 14: 000002f9 24 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 15: 00000344 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 7: 0000003d 56 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 8: 00000068 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 00000074 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 10: 00000075 24 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 11: 0000008d 704 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 12: 00000344 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 13: 0000034c 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 14: 0000034d 36 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 15: 000003b8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 16: 00000000 0 SECTION LOCAL DEFAULT 6 .data.rel.ro │ │ │ │ │ 17: 00000000 0 NOTYPE LOCAL DEFAULT 6 $d │ │ │ │ │ 18: 00000000 16 OBJECT LOCAL DEFAULT 6 padt.0 │ │ │ │ │ 19: 00000000 0 SECTION LOCAL DEFAULT 8 .data.rel.ro.local │ │ │ │ │ 20: 00000000 0 NOTYPE LOCAL DEFAULT 8 $d │ │ │ │ │ 21: 00000000 12 OBJECT LOCAL DEFAULT 8 sadt.1 │ │ │ │ │ 22: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_plan_destroy_internal │ │ │ │ │ @@ -36,11 +36,11 @@ │ │ │ │ │ 32: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_any_true │ │ │ │ │ 33: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_mkdtensor │ │ │ │ │ 34: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_mkproblem_rdft_d │ │ │ │ │ 35: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mkplan_rdft │ │ │ │ │ 36: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ops_add │ │ │ │ │ 37: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_rdft_serial_applicable │ │ │ │ │ 38: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_plan_awake │ │ │ │ │ - 39: 00000311 56 FUNC GLOBAL DEFAULT 1 fftwf_mpi_rdft_rank_geq2_register │ │ │ │ │ + 39: 00000371 76 FUNC GLOBAL DEFAULT 1 fftwf_mpi_rdft_rank_geq2_register │ │ │ │ │ 40: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mksolver │ │ │ │ │ 41: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_solver_register │ │ │ │ │ 42: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_rdft_solve │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,48 +1,48 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x890 contains 34 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x904 contains 34 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000058 00000503 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ -0000005c 00000603 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -00000060 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -0000006a 0000160a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000000b0 0000170a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ -000000be 0000170a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ -000000e6 0000180a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000000ee 0000190a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000000f8 00001a0a R_ARM_THM_CALL 00000000 fftwf_mktensor │ │ │ │ │ -000001d6 00001b0a R_ARM_THM_CALL 00000000 fftwf_tensor_sz │ │ │ │ │ -000001ec 00001c0a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -000001fa 00001d0a R_ARM_THM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ -0000020c 00001e0a R_ARM_THM_CALL 00000000 fftwf_mkproblem_rdft_d │ │ │ │ │ -00000214 00001f0a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -00000222 0000200a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -0000022c 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ -00000260 0000220a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_rdft_d │ │ │ │ │ -00000268 00001f0a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -00000276 0000200a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -00000286 0000230a R_ARM_THM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ -000002aa 0000240a R_ARM_THM_CALL 00000000 fftwf_ops_add │ │ │ │ │ -000002bc 0000160a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000002c2 0000160a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000002e4 0000250a R_ARM_THM_CALL 00000000 fftwf_mpi_rdft_serial_applicable │ │ │ │ │ -000002f0 00000103 R_ARM_REL32 00000001 apply │ │ │ │ │ -000002f4 00001003 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -00000300 0000260a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -0000031c 0000280a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -00000328 0000290a R_ARM_THM_CALL 00000000 fftwf_solver_register │ │ │ │ │ -00000330 0000280a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -00000344 00001303 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -00000074 0000161e R_ARM_THM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -0000030c 0000261e R_ARM_THM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ -00000340 0000291e R_ARM_THM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ +00000068 00000503 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ +0000006c 00000603 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +00000070 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +0000007c 0000160a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000000ec 0000170a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ +000000fc 0000170a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ +00000124 0000180a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +0000012c 0000190a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000138 00001a0a R_ARM_THM_CALL 00000000 fftwf_mktensor │ │ │ │ │ +00000224 00001b0a R_ARM_THM_CALL 00000000 fftwf_tensor_sz │ │ │ │ │ +0000023a 00001c0a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00000248 00001d0a R_ARM_THM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ +0000025a 00001e0a R_ARM_THM_CALL 00000000 fftwf_mkproblem_rdft_d │ │ │ │ │ +00000262 00001f0a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +00000272 0000200a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +0000027c 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ +000002ae 0000220a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_rdft_d │ │ │ │ │ +000002b6 00001f0a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +000002c6 0000200a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +000002d8 0000230a R_ARM_THM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ +000002fe 0000240a R_ARM_THM_CALL 00000000 fftwf_ops_add │ │ │ │ │ +0000030c 0000160a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000312 0000160a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000336 0000250a R_ARM_THM_CALL 00000000 fftwf_mpi_rdft_serial_applicable │ │ │ │ │ +00000344 00000103 R_ARM_REL32 00000001 apply │ │ │ │ │ +00000348 00001003 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +0000035a 0000260a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +00000384 0000280a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +00000392 0000290a R_ARM_THM_CALL 00000000 fftwf_solver_register │ │ │ │ │ +0000039c 0000280a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +000003b8 00001303 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +00000088 0000161e R_ARM_THM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +0000036c 0000261e R_ARM_THM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ +000003b4 0000291e R_ARM_THM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0x9a0 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0xa14 contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000000 00002a02 R_ARM_ABS32 00000000 fftwf_mpi_rdft_solve │ │ │ │ │ -00000004 00000e02 R_ARM_ABS32 000002f9 awake │ │ │ │ │ -00000008 00000702 R_ARM_ABS32 0000002d print │ │ │ │ │ -0000000c 00000a02 R_ARM_ABS32 00000065 destroy │ │ │ │ │ +00000004 00000e02 R_ARM_ABS32 0000034d awake │ │ │ │ │ +00000008 00000702 R_ARM_ABS32 0000003d print │ │ │ │ │ +0000000c 00000a02 R_ARM_ABS32 00000075 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0x9c0 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0xa34 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000b02 R_ARM_ABS32 00000079 mkplan │ │ │ │ │ +00000004 00000b02 R_ARM_ABS32 0000008d mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,363 +1,382 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ ldr r7, [r4, #72] @ 0x48 │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ - cbz r7, 22 │ │ │ │ │ + cbz r7, 34 │ │ │ │ │ mov r5, r6 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, lr, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ bx r3 │ │ │ │ │ mov r2, r1 │ │ │ │ │ mov r5, r1 │ │ │ │ │ blx r3 │ │ │ │ │ - b.n 14 │ │ │ │ │ - nop │ │ │ │ │ + b.n 1c │ │ │ │ │ │ │ │ │ │ -0000002c : │ │ │ │ │ +0000003c : │ │ │ │ │ print(): │ │ │ │ │ mov r3, r0 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r0, r1 │ │ │ │ │ - ldr r4, [r1, #0] │ │ │ │ │ - sub sp, #8 │ │ │ │ │ ldr r2, [r3, #72] @ 0x48 │ │ │ │ │ + sub sp, #8 │ │ │ │ │ + ldr r4, [r1, #0] │ │ │ │ │ cmp r2, #2 │ │ │ │ │ - beq.n 50 │ │ │ │ │ - ldr r2, [pc, #24] @ (58 ) │ │ │ │ │ + beq.n 62 │ │ │ │ │ + ldr r2, [pc, #24] @ (68 ) │ │ │ │ │ add r2, pc │ │ │ │ │ ldr r1, [r3, #68] @ 0x44 │ │ │ │ │ str r1, [sp, #0] │ │ │ │ │ - ldr r1, [pc, #20] @ (5c ) │ │ │ │ │ + ldr r1, [pc, #20] @ (6c ) │ │ │ │ │ ldr r3, [r3, #64] @ 0x40 │ │ │ │ │ add r1, pc │ │ │ │ │ blx r4 │ │ │ │ │ add sp, #8 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ - ldr r2, [pc, #12] @ (60 ) │ │ │ │ │ + ldr r2, [pc, #12] @ (70 ) │ │ │ │ │ add r2, pc │ │ │ │ │ - b.n 40 │ │ │ │ │ - nop │ │ │ │ │ - .word 0x00000016 │ │ │ │ │ + b.n 52 │ │ │ │ │ + .word 0x00000014 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x00000010 │ │ │ │ │ + .word 0x0000000e │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ - .word 0x0000000a │ │ │ │ │ + .word 0x00000008 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ -00000064 : │ │ │ │ │ +00000074 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - ldmia.w sp!, {r4, lr} │ │ │ │ │ + ldrd r4, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_plan_destroy_internal │ │ │ │ │ │ │ │ │ │ -00000078 : │ │ │ │ │ +0000008c : │ │ │ │ │ mkplan(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ ldr r1, [r1, #4] │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ sub sp, #36 @ 0x24 │ │ │ │ │ ldr r3, [r1, #0] │ │ │ │ │ + str r0, [sp, #16] │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - ble.n 8c │ │ │ │ │ + ble.n b2 │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ - cbz r3, 94 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + cbz r3, ce │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add sp, #36 @ 0x24 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldr r3, [r0, #8] │ │ │ │ │ - mov r7, r0 │ │ │ │ │ mov r6, r2 │ │ │ │ │ - cbz r3, ac │ │ │ │ │ + cbz r3, e4 │ │ │ │ │ ldr.w r3, [r2, #164] @ 0xa4 │ │ │ │ │ lsls r2, r3, #19 │ │ │ │ │ - bmi.n 8c │ │ │ │ │ + bmi.n b2 │ │ │ │ │ ldrd r2, r3, [r4, #12] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - beq.n 8c │ │ │ │ │ - movs r2, #0 │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + beq.n b2 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n 8c │ │ │ │ │ - movs r2, #1 │ │ │ │ │ + beq.n b2 │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ ldr r1, [r4, #4] │ │ │ │ │ mov r0, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n 8c │ │ │ │ │ + beq.n b2 │ │ │ │ │ ldr.w r3, [r6, #164] @ 0xa4 │ │ │ │ │ lsls r3, r3, #28 │ │ │ │ │ - bmi.w 2e2 │ │ │ │ │ - ldr r3, [r4, #12] │ │ │ │ │ - str r3, [sp, #16] │ │ │ │ │ - ldr r3, [r7, #8] │ │ │ │ │ - ldr.w fp, [r4, #16] │ │ │ │ │ + bmi.w 334 │ │ │ │ │ + ldrd r3, fp, [r4, #12] │ │ │ │ │ + str r3, [sp, #20] │ │ │ │ │ + ldr r3, [sp, #16] │ │ │ │ │ + ldr r3, [r3, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq.w 2c8 │ │ │ │ │ + beq.w 318 │ │ │ │ │ mov r9, fp │ │ │ │ │ - add r1, sp, #24 │ │ │ │ │ ldr r0, [r4, #24] │ │ │ │ │ + add r1, sp, #24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ - add r1, sp, #28 │ │ │ │ │ ldr r0, [r4, #24] │ │ │ │ │ + add r1, sp, #28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r0, [r3, #0] │ │ │ │ │ - subs r0, #1 │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor │ │ │ │ │ - ldr.w r8, [r4, #4] │ │ │ │ │ - movs r1, #12 │ │ │ │ │ mov r5, r0 │ │ │ │ │ - ldr.w ip, [r4, #8] │ │ │ │ │ + ldrd r8, r0, [r4, #4] │ │ │ │ │ ldr.w lr, [r8] │ │ │ │ │ - add.w r2, lr, #4294967295 @ 0xffffffff │ │ │ │ │ - mul.w r3, r1, lr │ │ │ │ │ - mla r2, r1, r2, r8 │ │ │ │ │ - add r0, r3 │ │ │ │ │ - ldr r2, [r2, #4] │ │ │ │ │ - str.w r2, [r0, #-20] │ │ │ │ │ - sub.w r2, lr, #2 │ │ │ │ │ - mla r2, r1, r2, r5 │ │ │ │ │ - str.w ip, [r2, #12] │ │ │ │ │ - str.w ip, [r0, #-16] │ │ │ │ │ + add.w r2, lr, lr, lsl #1 │ │ │ │ │ + add.w r3, lr, lr, lsl #1 │ │ │ │ │ + add.w r2, r8, r2, lsl #2 │ │ │ │ │ + mov.w r3, r3, lsl #2 │ │ │ │ │ + ldr.w r2, [r2, #-8] │ │ │ │ │ + add.w r1, r5, r3 │ │ │ │ │ + str.w r2, [r1, #-20] │ │ │ │ │ + add.w r2, lr, lr, lsl #1 │ │ │ │ │ + add.w r2, r5, r2, lsl #2 │ │ │ │ │ + str.w r0, [r2, #-12] │ │ │ │ │ + str.w r0, [r1, #-16] │ │ │ │ │ subs.w r0, lr, #3 │ │ │ │ │ - bmi.n 1d0 │ │ │ │ │ + bmi.n 21e │ │ │ │ │ + cmp.w lr, #4 │ │ │ │ │ sub.w r2, r3, #16 │ │ │ │ │ sub.w r1, r3, #20 │ │ │ │ │ - cmp.w lr, #4 │ │ │ │ │ - ble.w 2de │ │ │ │ │ + ble.w 330 │ │ │ │ │ ldr.w ip, [r5, r1] │ │ │ │ │ sub.w lr, lr, #5 │ │ │ │ │ add.w r1, r8, r3 │ │ │ │ │ - ldr r2, [r5, r2] │ │ │ │ │ - subs r3, #28 │ │ │ │ │ + sub.w r3, r3, #28 │ │ │ │ │ mov sl, r4 │ │ │ │ │ + ldr r2, [r5, r2] │ │ │ │ │ add r3, r5 │ │ │ │ │ - mov r4, ip │ │ │ │ │ and.w lr, lr, #1 │ │ │ │ │ + ldr r7, [sp, #16] │ │ │ │ │ + mov r4, ip │ │ │ │ │ mov ip, r5 │ │ │ │ │ ldr.w r5, [r1, #-20] │ │ │ │ │ mul.w r2, r4, r2 │ │ │ │ │ - strd r2, r2, [r3] │ │ │ │ │ - subs r0, #2 │ │ │ │ │ - str.w r5, [r3, #-4] │ │ │ │ │ - subs r1, #24 │ │ │ │ │ + sub.w r0, r0, #2 │ │ │ │ │ cmp r0, lr │ │ │ │ │ - ldr.w r4, [r1, #-8] │ │ │ │ │ + sub.w r1, r1, #24 │ │ │ │ │ + strd r5, r2, [r3, #-4] │ │ │ │ │ + str r2, [r3, #4] │ │ │ │ │ mul.w r2, r5, r2 │ │ │ │ │ - str.w r4, [r3, #-16] │ │ │ │ │ - strd r2, r2, [r3, #-12] │ │ │ │ │ + ldr.w r4, [r1, #-8] │ │ │ │ │ + strd r4, r2, [r3, #-16] │ │ │ │ │ sub.w r3, r3, #24 │ │ │ │ │ - bne.n 162 │ │ │ │ │ + str r2, [r3, #16] │ │ │ │ │ + bne.n 1a8 │ │ │ │ │ mov r5, ip │ │ │ │ │ mov r4, sl │ │ │ │ │ - movs r0, #12 │ │ │ │ │ - add.w sl, lr, #4294967295 @ 0xffffffff │ │ │ │ │ - mul.w r3, r0, lr │ │ │ │ │ + str r7, [sp, #16] │ │ │ │ │ + add.w r3, lr, lr, lsl #1 │ │ │ │ │ + add.w ip, lr, #4294967295 @ 0xffffffff │ │ │ │ │ + mov.w r3, r3, lsl #2 │ │ │ │ │ add r8, r3 │ │ │ │ │ add r3, r5 │ │ │ │ │ ldrd r2, r1, [r3, #16] │ │ │ │ │ - ldr.w ip, [r8, #16] │ │ │ │ │ - str.w ip, [r3, #4] │ │ │ │ │ + ldr.w r0, [r8, #16] │ │ │ │ │ mul.w r2, r1, r2 │ │ │ │ │ - strd r2, r2, [r3, #8] │ │ │ │ │ + strd r0, r2, [r3, #4] │ │ │ │ │ + str r2, [r3, #12] │ │ │ │ │ cmp.w lr, #0 │ │ │ │ │ - beq.n 1d0 │ │ │ │ │ + beq.n 21e │ │ │ │ │ ldr.w r1, [r8, #4] │ │ │ │ │ - mul.w r2, ip, r2 │ │ │ │ │ + add.w ip, ip, ip, lsl #1 │ │ │ │ │ + mul.w r2, r0, r2 │ │ │ │ │ + add.w ip, r5, ip, lsl #2 │ │ │ │ │ str.w r1, [r3, #-8] │ │ │ │ │ - mla r1, r0, sl, r5 │ │ │ │ │ - str r2, [r1, #12] │ │ │ │ │ + str.w r2, [ip, #12] │ │ │ │ │ str.w r2, [r3, #-4] │ │ │ │ │ mov r0, r5 │ │ │ │ │ mov.w sl, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_tensor_sz │ │ │ │ │ - str r0, [sp, #20] │ │ │ │ │ ldrd r3, r2, [r5, #4] │ │ │ │ │ + mov r7, r0 │ │ │ │ │ mul.w r8, r2, r3 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r2, [sp, #24] │ │ │ │ │ ldrd r0, r1, [r3, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ - strd sl, sl, [sp] │ │ │ │ │ mov r2, r8 │ │ │ │ │ mov r1, r8 │ │ │ │ │ + strd sl, sl, [sp] │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor_2d │ │ │ │ │ - ldr r2, [sp, #16] │ │ │ │ │ - mov r1, r0 │ │ │ │ │ add.w r3, r4, #32 │ │ │ │ │ + ldr r2, [sp, #20] │ │ │ │ │ + mov r1, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ mov r3, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkproblem_rdft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_d │ │ │ │ │ mov r5, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #24] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.n 2b6 │ │ │ │ │ + bne.n 306 │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkdtensor │ │ │ │ │ - ldr r3, [r4, #4] │ │ │ │ │ - add.w lr, r0, #4 │ │ │ │ │ - mov ip, r0 │ │ │ │ │ - adds r3, #4 │ │ │ │ │ - ldmia.w r3, {r0, r1, r2} │ │ │ │ │ - stmia.w lr, {r0, r1, r2} │ │ │ │ │ + ldr.w ip, [r4, #4] │ │ │ │ │ + mov.w r3, #16 │ │ │ │ │ + ldrd r1, r2, [ip, #4] │ │ │ │ │ + strd r1, r2, [r0, #4] │ │ │ │ │ + ldr.w r2, [ip, #12] │ │ │ │ │ ldr r1, [r4, #8] │ │ │ │ │ - ldr r0, [sp, #20] │ │ │ │ │ - movs r3, #16 │ │ │ │ │ + str r2, [r0, #12] │ │ │ │ │ + mov r2, r9 │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ add.w r3, r4, #28 │ │ │ │ │ + mul.w r7, r1, r7 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - mov r2, r9 │ │ │ │ │ - mul.w r0, r1, r0 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ + mov r1, r7 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ mov r3, fp │ │ │ │ │ - mov r1, r0 │ │ │ │ │ - mov r0, ip │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkproblem_rdft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_d │ │ │ │ │ mov r8, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #24] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_any_true │ │ │ │ │ - cbnz r0, 2ba │ │ │ │ │ - ldr r2, [pc, #112] @ (2f0 ) │ │ │ │ │ - movs r0, #80 @ 0x50 │ │ │ │ │ - ldr r1, [pc, #112] @ (2f4 ) │ │ │ │ │ + cbnz r0, 30a │ │ │ │ │ + ldr r2, [pc, #116] @ (344 ) │ │ │ │ │ + mov.w r0, #80 @ 0x50 │ │ │ │ │ + ldr r1, [pc, #116] @ (348 ) │ │ │ │ │ add r2, pc │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_rdft │ │ │ │ │ - ldr r3, [r7, #8] │ │ │ │ │ + ldr r3, [sp, #16] │ │ │ │ │ mov r4, r0 │ │ │ │ │ + ldr r3, [r3, #8] │ │ │ │ │ strd r5, r8, [r0, #64] @ 0x40 │ │ │ │ │ - cbnz r3, 2da │ │ │ │ │ + cbnz r3, 32a │ │ │ │ │ ldr.w r3, [r6, #164] @ 0xa4 │ │ │ │ │ and.w r3, r3, #4096 @ 0x1000 │ │ │ │ │ add.w r0, r5, #8 │ │ │ │ │ add.w r2, r4, #8 │ │ │ │ │ - add.w r1, r8, #8 │ │ │ │ │ str r3, [r4, #72] @ 0x48 │ │ │ │ │ + add.w r1, r8, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ops_add │ │ │ │ │ mov r0, r4 │ │ │ │ │ - add sp, #36 @ 0x24 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b.n b6 │ │ │ │ │ mov.w r8, #0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ - b.n 8c │ │ │ │ │ + b.n b2 │ │ │ │ │ ldr.w r3, [r6, #164] @ 0xa4 │ │ │ │ │ tst.w r3, #4096 @ 0x1000 │ │ │ │ │ - ldr r3, [sp, #16] │ │ │ │ │ + ldr r3, [sp, #20] │ │ │ │ │ ite ne │ │ │ │ │ movne r9, fp │ │ │ │ │ moveq r9, r3 │ │ │ │ │ - b.n e2 │ │ │ │ │ - movs r3, #2 │ │ │ │ │ - b.n 29c │ │ │ │ │ + b.n 120 │ │ │ │ │ + mov.w r3, #2 │ │ │ │ │ + b.n 2f0 │ │ │ │ │ mov lr, r0 │ │ │ │ │ - b.n 192 │ │ │ │ │ + b.n 1da │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_rdft_serial_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.w d0 │ │ │ │ │ - b.n 8c │ │ │ │ │ - .word 0x0000006a │ │ │ │ │ - R_ARM_REL32 apply │ │ │ │ │ + beq.w 10e │ │ │ │ │ + b.n b2 │ │ │ │ │ + nop │ │ │ │ │ .word 0x0000006c │ │ │ │ │ + R_ARM_REL32 apply │ │ │ │ │ + .word 0x0000006e │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -000002f8 : │ │ │ │ │ +0000034c : │ │ │ │ │ awake(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ + mov r5, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_awake │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, lr} │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + ldrd r5, lr, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_plan_awake │ │ │ │ │ │ │ │ │ │ -00000310 : │ │ │ │ │ +00000370 : │ │ │ │ │ fftwf_mpi_rdft_rank_geq2_register(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r5, [pc, #44] @ (344 ) │ │ │ │ │ - movs r0, #12 │ │ │ │ │ + mov.w r0, #12 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ + ldr r5, [pc, #56] @ (3b8 ) │ │ │ │ │ add r5, pc │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mksolver │ │ │ │ │ - movs r3, #0 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ + str r3, [r1, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_solver_register │ │ │ │ │ mov r1, r5 │ │ │ │ │ - movs r0, #12 │ │ │ │ │ + mov.w r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mksolver │ │ │ │ │ - movs r3, #1 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + ldrd r5, lr, [sp, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, lr} │ │ │ │ │ + str r3, [r1, #8] │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + add sp, #16 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_solver_register │ │ │ │ │ - .word 0x00000028 │ │ │ │ │ + .word 0x00000034 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ ├── rdft-rank-geq2-transposed.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 2984 (bytes into file) │ │ │ │ │ + Start of section headers: 3108 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 15 │ │ │ │ │ Section header string table index: 14 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,24 +1,24 @@ │ │ │ │ │ -There are 15 section headers, starting at offset 0xba8: │ │ │ │ │ +There are 15 section headers, starting at offset 0xc24: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 0003f0 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0009a0 000158 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000424 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000424 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 000424 00003c 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 000460 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 000af8 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 000470 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 000b18 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 00047c 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 00047c 000033 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 0004b0 0002d0 10 13 22 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 000780 000220 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 000b20 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 00046c 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000a1c 000158 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 0004a0 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 0004a0 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 0004a0 00003c 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 0004dc 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 000b74 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 0004ec 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 000b94 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 0004f8 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 0004f8 000033 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 00052c 0002d0 10 13 22 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 0007fc 000220 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 000b9c 000087 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,26 +1,26 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 45 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ - 1: 00000001 52 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ + 1: 00000001 70 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ 2: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ 3: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 4: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ 5: 00000004 0 NOTYPE LOCAL DEFAULT 5 .LC1 │ │ │ │ │ 6: 00000008 0 NOTYPE LOCAL DEFAULT 5 .LC2 │ │ │ │ │ - 7: 00000035 60 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 8: 00000064 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 9: 00000070 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 10: 00000071 26 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 11: 0000008d 780 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 12: 00000390 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 13: 00000398 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 14: 00000399 32 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 15: 000003ec 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 7: 00000049 60 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 8: 00000078 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 00000084 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 10: 00000085 30 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 11: 000000a5 848 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 12: 000003ec 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 13: 000003f4 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 14: 000003f5 44 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 15: 00000468 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 16: 00000000 0 SECTION LOCAL DEFAULT 6 .data.rel.ro │ │ │ │ │ 17: 00000000 0 NOTYPE LOCAL DEFAULT 6 $d │ │ │ │ │ 18: 00000000 16 OBJECT LOCAL DEFAULT 6 padt.0 │ │ │ │ │ 19: 00000000 0 SECTION LOCAL DEFAULT 8 .data.rel.ro.local │ │ │ │ │ 20: 00000000 0 NOTYPE LOCAL DEFAULT 8 $d │ │ │ │ │ 21: 00000000 12 OBJECT LOCAL DEFAULT 8 sadt.1 │ │ │ │ │ 22: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_plan_destroy_internal │ │ │ │ │ @@ -38,11 +38,11 @@ │ │ │ │ │ 34: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mktensor_1d │ │ │ │ │ 35: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mkproblem_rdft_1_d │ │ │ │ │ 36: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mkplan_rdft │ │ │ │ │ 37: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ops_add │ │ │ │ │ 38: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ops_add2 │ │ │ │ │ 39: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_rdft_serial_applicable │ │ │ │ │ 40: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_plan_awake │ │ │ │ │ - 41: 000003b9 56 FUNC GLOBAL DEFAULT 1 fftwf_mpi_rdft_rank_geq2_transposed_register │ │ │ │ │ + 41: 00000421 76 FUNC GLOBAL DEFAULT 1 fftwf_mpi_rdft_rank_geq2_transposed_register │ │ │ │ │ 42: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mksolver │ │ │ │ │ 43: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_solver_register │ │ │ │ │ 44: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_rdft_solve │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,57 +1,57 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x9a0 contains 43 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0xa1c contains 43 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000064 00000503 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ -00000068 00000603 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -0000006c 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -00000076 0000160a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -0000007c 0000160a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000000c6 0000170a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ -000000d4 0000170a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ -000000e2 0000180a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -0000010e 0000190a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000116 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000120 00001b0a R_ARM_THM_CALL 00000000 fftwf_mktensor │ │ │ │ │ -00000222 00001c0a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -00000230 00001d0a R_ARM_THM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ -00000244 00001e0a R_ARM_THM_CALL 00000000 fftwf_mkproblem_rdft_d │ │ │ │ │ -0000024c 00001f0a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -0000025a 0000200a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -00000288 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ -00000290 00001f0a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -0000029e 0000200a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -000002b6 00001c0a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -000002c4 0000220a R_ARM_THM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ -000002d6 00001d0a R_ARM_THM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ -000002e6 0000230a R_ARM_THM_CALL 00000000 fftwf_mkproblem_rdft_1_d │ │ │ │ │ -000002ee 00001f0a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -000002fc 0000200a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -0000030c 0000240a R_ARM_THM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ -00000336 0000250a R_ARM_THM_CALL 00000000 fftwf_ops_add │ │ │ │ │ -00000340 0000260a R_ARM_THM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ -00000352 0000160a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000358 0000160a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -0000035e 0000160a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000384 0000270a R_ARM_THM_CALL 00000000 fftwf_mpi_rdft_serial_applicable │ │ │ │ │ -00000390 00000103 R_ARM_REL32 00000001 apply │ │ │ │ │ -00000394 00001003 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -000003a0 0000280a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -000003a8 0000280a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -000003c4 00002a0a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -000003d0 00002b0a R_ARM_THM_CALL 00000000 fftwf_solver_register │ │ │ │ │ -000003d8 00002a0a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -000003ec 00001303 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -00000086 0000161e R_ARM_THM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000003b4 0000281e R_ARM_THM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ -000003e8 00002b1e R_ARM_THM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ +00000078 00000503 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ +0000007c 00000603 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +00000080 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +0000008c 0000160a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000092 0000160a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000106 0000170a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ +00000118 0000170a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ +00000126 0000180a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +00000152 0000190a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +0000015a 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000166 00001b0a R_ARM_THM_CALL 00000000 fftwf_mktensor │ │ │ │ │ +00000274 00001c0a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00000282 00001d0a R_ARM_THM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ +00000296 00001e0a R_ARM_THM_CALL 00000000 fftwf_mkproblem_rdft_d │ │ │ │ │ +0000029e 00001f0a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +000002ae 0000200a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +000002dc 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ +000002e4 00001f0a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +000002f4 0000200a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +0000030c 00001c0a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +0000031a 0000220a R_ARM_THM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ +0000032c 00001d0a R_ARM_THM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ +0000033c 0000230a R_ARM_THM_CALL 00000000 fftwf_mkproblem_rdft_1_d │ │ │ │ │ +00000344 00001f0a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +00000354 0000200a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +00000366 0000240a R_ARM_THM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ +00000390 0000250a R_ARM_THM_CALL 00000000 fftwf_ops_add │ │ │ │ │ +0000039a 0000260a R_ARM_THM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ +000003aa 0000160a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000003b0 0000160a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000003b6 0000160a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000003de 0000270a R_ARM_THM_CALL 00000000 fftwf_mpi_rdft_serial_applicable │ │ │ │ │ +000003ec 00000103 R_ARM_REL32 00000001 apply │ │ │ │ │ +000003f0 00001003 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +00000402 0000280a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +0000040a 0000280a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +00000434 00002a0a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +00000442 00002b0a R_ARM_THM_CALL 00000000 fftwf_solver_register │ │ │ │ │ +0000044c 00002a0a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +00000468 00001303 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +0000009e 0000161e R_ARM_THM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +0000041c 0000281e R_ARM_THM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ +00000464 00002b1e R_ARM_THM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0xaf8 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0xb74 contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000000 00002c02 R_ARM_ABS32 00000000 fftwf_mpi_rdft_solve │ │ │ │ │ -00000004 00000e02 R_ARM_ABS32 00000399 awake │ │ │ │ │ -00000008 00000702 R_ARM_ABS32 00000035 print │ │ │ │ │ -0000000c 00000a02 R_ARM_ABS32 00000071 destroy │ │ │ │ │ +00000004 00000e02 R_ARM_ABS32 000003f5 awake │ │ │ │ │ +00000008 00000702 R_ARM_ABS32 00000049 print │ │ │ │ │ +0000000c 00000a02 R_ARM_ABS32 00000085 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0xb18 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0xb94 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000b02 R_ARM_ABS32 0000008d mkplan │ │ │ │ │ +00000004 00000b02 R_ARM_ABS32 000000a5 mkplan │ │ │ │ ├── strings --all --bytes=8 {} │ │ │ │ │ @@ -1,8 +1,7 @@ │ │ │ │ │ -#JX #IzDyD │ │ │ │ │ (mpi-rdft-rank-geq2-transposed%s%(%p%)%(%p%)%(%p%)) │ │ │ │ │ fftwf_plan_destroy_internal │ │ │ │ │ fftwf_mpi_is_local_after │ │ │ │ │ fftwf_mpi_num_blocks │ │ │ │ │ MPI_Comm_rank │ │ │ │ │ MPI_Comm_size │ │ │ │ │ fftwf_mktensor │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,297 +1,309 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ mov r5, r2 │ │ │ │ │ + ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ ldr r7, [r4, #84] @ 0x54 │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ - cbz r7, 2c │ │ │ │ │ + cbz r7, 3e │ │ │ │ │ mov r6, r5 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r2, r5 │ │ │ │ │ mov r1, r6 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ mov r2, r5 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, lr, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ bx r3 │ │ │ │ │ mov r2, r1 │ │ │ │ │ mov r6, r1 │ │ │ │ │ blx r3 │ │ │ │ │ - b.n 14 │ │ │ │ │ + b.n 1c │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -00000034 : │ │ │ │ │ +00000048 : │ │ │ │ │ print(): │ │ │ │ │ mov r3, r0 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r0, r1 │ │ │ │ │ - ldr r4, [r1, #0] │ │ │ │ │ - sub sp, #8 │ │ │ │ │ ldr r2, [r3, #84] @ 0x54 │ │ │ │ │ + sub sp, #8 │ │ │ │ │ + ldr r4, [r1, #0] │ │ │ │ │ cmp r2, #2 │ │ │ │ │ - beq.n 5c │ │ │ │ │ - ldr r2, [pc, #28] @ (64 ) │ │ │ │ │ + beq.n 72 │ │ │ │ │ + ldr r2, [pc, #28] @ (78 ) │ │ │ │ │ add r2, pc │ │ │ │ │ ldr r1, [r3, #72] @ 0x48 │ │ │ │ │ str r1, [sp, #4] │ │ │ │ │ ldr r1, [r3, #68] @ 0x44 │ │ │ │ │ str r1, [sp, #0] │ │ │ │ │ - ldr r1, [pc, #20] @ (68 ) │ │ │ │ │ + ldr r1, [pc, #20] @ (7c ) │ │ │ │ │ ldr r3, [r3, #64] @ 0x40 │ │ │ │ │ add r1, pc │ │ │ │ │ blx r4 │ │ │ │ │ add sp, #8 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ - ldr r2, [pc, #12] @ (6c ) │ │ │ │ │ + ldr r2, [pc, #12] @ (80 ) │ │ │ │ │ add r2, pc │ │ │ │ │ - b.n 48 │ │ │ │ │ - nop │ │ │ │ │ - .word 0x0000001a │ │ │ │ │ + b.n 5e │ │ │ │ │ + .word 0x00000018 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x00000010 │ │ │ │ │ + .word 0x0000000e │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ - .word 0x0000000a │ │ │ │ │ + .word 0x00000008 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ -00000070 : │ │ │ │ │ +00000084 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #72] @ 0x48 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - ldmia.w sp!, {r4, lr} │ │ │ │ │ + ldrd r4, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_plan_destroy_internal │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -0000008c : │ │ │ │ │ +000000a4 : │ │ │ │ │ mkplan(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ ldr r1, [r1, #4] │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ sub sp, #52 @ 0x34 │ │ │ │ │ ldr r3, [r1, #0] │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - ble.n a2 │ │ │ │ │ + ble.n ca │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #8 │ │ │ │ │ - beq.n aa │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + beq.n e6 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add sp, #52 @ 0x34 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldr r3, [r0, #8] │ │ │ │ │ mov sl, r0 │ │ │ │ │ mov fp, r2 │ │ │ │ │ - cbz r3, c2 │ │ │ │ │ + cbz r3, fe │ │ │ │ │ ldr.w r3, [r2, #164] @ 0xa4 │ │ │ │ │ lsls r2, r3, #19 │ │ │ │ │ - bmi.n a2 │ │ │ │ │ + bmi.n ca │ │ │ │ │ ldrd r2, r3, [r4, #12] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - beq.n a2 │ │ │ │ │ - movs r2, #0 │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + beq.n ca │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n a2 │ │ │ │ │ + beq.n ca │ │ │ │ │ ldr r1, [r4, #4] │ │ │ │ │ - movs r2, #1 │ │ │ │ │ - movs r0, #2 │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ + mov.w r0, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n a2 │ │ │ │ │ + beq.n ca │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - ldr r1, [r3, #12] │ │ │ │ │ ldr r0, [r3, #4] │ │ │ │ │ + ldr r1, [r3, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks │ │ │ │ │ - mov r5, r0 │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - bne.n a2 │ │ │ │ │ + mov r5, r0 │ │ │ │ │ + bne.n ca │ │ │ │ │ ldr.w r3, [fp, #164] @ 0xa4 │ │ │ │ │ lsls r3, r3, #28 │ │ │ │ │ - bmi.w 382 │ │ │ │ │ + bmi.w 3dc │ │ │ │ │ ldrd r9, r3, [r4, #12] │ │ │ │ │ str r3, [sp, #28] │ │ │ │ │ ldr.w r3, [sl, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - beq.w 364 │ │ │ │ │ + beq.w 3bc │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ str r3, [sp, #32] │ │ │ │ │ - add r1, sp, #40 @ 0x28 │ │ │ │ │ ldr r0, [r4, #24] │ │ │ │ │ + add r1, sp, #40 @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ - add r1, sp, #44 @ 0x2c │ │ │ │ │ ldr r0, [r4, #24] │ │ │ │ │ + add r1, sp, #44 @ 0x2c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r0, [r3, #0] │ │ │ │ │ - subs r0, #1 │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor │ │ │ │ │ - ldr.w ip, [r4, #4] │ │ │ │ │ - movs r1, #12 │ │ │ │ │ mov r6, r0 │ │ │ │ │ - ldr r7, [r4, #8] │ │ │ │ │ + ldrd ip, r0, [r4, #4] │ │ │ │ │ ldr.w lr, [ip] │ │ │ │ │ - add.w r2, lr, #4294967295 @ 0xffffffff │ │ │ │ │ - mul.w r3, r1, lr │ │ │ │ │ - mla r2, r1, r2, ip │ │ │ │ │ - add r0, r3 │ │ │ │ │ - ldr r2, [r2, #4] │ │ │ │ │ - str.w r2, [r0, #-20] │ │ │ │ │ - sub.w r2, lr, #2 │ │ │ │ │ - mla r2, r1, r2, r6 │ │ │ │ │ - str r7, [r2, #12] │ │ │ │ │ - str.w r7, [r0, #-16] │ │ │ │ │ + add.w r2, lr, lr, lsl #1 │ │ │ │ │ + add.w r3, lr, lr, lsl #1 │ │ │ │ │ + add.w r2, ip, r2, lsl #2 │ │ │ │ │ + mov.w r3, r3, lsl #2 │ │ │ │ │ + ldr.w r2, [r2, #-8] │ │ │ │ │ + add.w r1, r6, r3 │ │ │ │ │ + str.w r2, [r1, #-20] │ │ │ │ │ + add.w r2, lr, lr, lsl #1 │ │ │ │ │ + add.w r2, r6, r2, lsl #2 │ │ │ │ │ + str.w r0, [r2, #-12] │ │ │ │ │ + str.w r0, [r1, #-16] │ │ │ │ │ subs.w r0, lr, #3 │ │ │ │ │ - bmi.n 1f0 │ │ │ │ │ + bmi.n 23c │ │ │ │ │ + cmp.w lr, #4 │ │ │ │ │ sub.w r2, r3, #16 │ │ │ │ │ sub.w r1, r3, #20 │ │ │ │ │ - cmp.w lr, #4 │ │ │ │ │ - ble.w 37e │ │ │ │ │ - ldr r7, [r6, r1] │ │ │ │ │ - sub.w lr, lr, #5 │ │ │ │ │ - add.w r1, ip, r3 │ │ │ │ │ + ble.w 3d8 │ │ │ │ │ ldr r2, [r6, r2] │ │ │ │ │ - subs r3, #28 │ │ │ │ │ + sub.w lr, lr, #5 │ │ │ │ │ + mov r8, r4 │ │ │ │ │ and.w lr, lr, #1 │ │ │ │ │ + ldr r7, [r6, r1] │ │ │ │ │ + add.w r1, ip, r3 │ │ │ │ │ + sub.w r3, r3, #28 │ │ │ │ │ add r3, r6 │ │ │ │ │ - mov r8, r4 │ │ │ │ │ ldr.w r4, [r1, #-20] │ │ │ │ │ mul.w r2, r7, r2 │ │ │ │ │ - strd r2, r2, [r3] │ │ │ │ │ - subs r0, #2 │ │ │ │ │ - str.w r4, [r3, #-4] │ │ │ │ │ - subs r1, #24 │ │ │ │ │ + sub.w r0, r0, #2 │ │ │ │ │ cmp r0, lr │ │ │ │ │ - ldr.w r7, [r1, #-8] │ │ │ │ │ + sub.w r1, r1, #24 │ │ │ │ │ + strd r4, r2, [r3, #-4] │ │ │ │ │ + str r2, [r3, #4] │ │ │ │ │ mul.w r2, r4, r2 │ │ │ │ │ - str.w r7, [r3, #-16] │ │ │ │ │ - strd r2, r2, [r3, #-12] │ │ │ │ │ + ldr.w r7, [r1, #-8] │ │ │ │ │ + strd r7, r2, [r3, #-16] │ │ │ │ │ sub.w r3, r3, #24 │ │ │ │ │ - bne.n 180 │ │ │ │ │ + str r2, [r3, #16] │ │ │ │ │ + bne.n 1ce │ │ │ │ │ mov r4, r8 │ │ │ │ │ - movs r0, #12 │ │ │ │ │ - mul.w r1, r0, lr │ │ │ │ │ - add.w r8, ip, r1 │ │ │ │ │ + add.w r1, lr, lr, lsl #1 │ │ │ │ │ + mov.w r1, r1, lsl #2 │ │ │ │ │ + add.w r7, ip, r1 │ │ │ │ │ add r1, r6 │ │ │ │ │ ldrd r3, r2, [r1, #16] │ │ │ │ │ - ldr.w r7, [r8, #16] │ │ │ │ │ - str r7, [r1, #4] │ │ │ │ │ + ldr r0, [r7, #16] │ │ │ │ │ mul.w r3, r2, r3 │ │ │ │ │ add.w r2, lr, #4294967295 @ 0xffffffff │ │ │ │ │ - strd r3, r3, [r1, #8] │ │ │ │ │ - str r2, [sp, #36] @ 0x24 │ │ │ │ │ + strd r0, r3, [r1, #4] │ │ │ │ │ + str r3, [r1, #12] │ │ │ │ │ cmp.w lr, #0 │ │ │ │ │ - beq.n 1f0 │ │ │ │ │ - ldr.w r2, [r8, #4] │ │ │ │ │ - mul.w r3, r7, r3 │ │ │ │ │ - str.w r2, [r1, #-8] │ │ │ │ │ - ldr r2, [sp, #36] @ 0x24 │ │ │ │ │ - mla r2, r0, r2, r6 │ │ │ │ │ + beq.n 23c │ │ │ │ │ + ldr r7, [r7, #4] │ │ │ │ │ + add.w r2, r2, r2, lsl #1 │ │ │ │ │ + mul.w r3, r0, r3 │ │ │ │ │ + add.w r2, r6, r2, lsl #2 │ │ │ │ │ + str.w r7, [r1, #-8] │ │ │ │ │ str r3, [r2, #12] │ │ │ │ │ str.w r3, [r1, #-4] │ │ │ │ │ ldr r1, [r6, #0] │ │ │ │ │ cmp r1, #1 │ │ │ │ │ - ble.n 210 │ │ │ │ │ + ble.n 262 │ │ │ │ │ add.w r1, r1, r1, lsl #1 │ │ │ │ │ - movs r3, #0 │ │ │ │ │ - subs r1, #3 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ add.w r0, r6, #16 │ │ │ │ │ + sub.w r1, r1, #3 │ │ │ │ │ ldr.w r2, [r0, r3, lsl #2] │ │ │ │ │ - adds r3, #3 │ │ │ │ │ + add.w r3, r3, #3 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ mul.w r5, r2, r5 │ │ │ │ │ - bne.n 202 │ │ │ │ │ + bne.n 252 │ │ │ │ │ ldrd r7, r3, [r6, #4] │ │ │ │ │ mov.w r8, #1 │ │ │ │ │ ldrd r0, r1, [ip, #4] │ │ │ │ │ ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ mul.w r7, r3, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ strd r8, r8, [sp] │ │ │ │ │ + ldr r3, [r4, #8] │ │ │ │ │ mov r2, r7 │ │ │ │ │ mov r1, r7 │ │ │ │ │ - ldr r3, [r4, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor_2d │ │ │ │ │ ldr r7, [sp, #32] │ │ │ │ │ + add.w r3, r4, #32 │ │ │ │ │ mov r2, r9 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - add.w r3, r4, #32 │ │ │ │ │ mov r0, r6 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ mov r3, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkproblem_rdft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_d │ │ │ │ │ mov r6, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #24] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_any_true │ │ │ │ │ mov r9, r0 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.n 34c │ │ │ │ │ + bne.n 3a2 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ mul.w r5, r3, r5 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - ldr r1, [r3, #16] │ │ │ │ │ ldr r0, [r3, #4] │ │ │ │ │ + ldr r1, [r3, #16] │ │ │ │ │ str.w r9, [sp, #16] │ │ │ │ │ ldr r2, [r4, #24] │ │ │ │ │ str r2, [sp, #12] │ │ │ │ │ ldr r2, [r3, #24] │ │ │ │ │ str r2, [sp, #8] │ │ │ │ │ - ldr r2, [sp, #28] │ │ │ │ │ ldr r3, [r3, #8] │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ + ldr r2, [sp, #28] │ │ │ │ │ + strd r2, r3, [sp] │ │ │ │ │ mov r3, r7 │ │ │ │ │ - str r2, [sp, #0] │ │ │ │ │ mov r2, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkproblem_transpose │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_d │ │ │ │ │ mov r7, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #24] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.n 376 │ │ │ │ │ + bne.n 3ce │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r2, [r3, #4] │ │ │ │ │ ldr r0, [r3, #16] │ │ │ │ │ mul.w r1, r2, r5 │ │ │ │ │ ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ str r1, [sp, #32] │ │ │ │ │ ldr r1, [r3, #24] │ │ │ │ │ @@ -300,145 +312,150 @@ │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ mov r2, r5 │ │ │ │ │ mov r1, r5 │ │ │ │ │ str r0, [sp, #36] @ 0x24 │ │ │ │ │ ldr r0, [r3, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor_1d │ │ │ │ │ - ldr r2, [sp, #32] │ │ │ │ │ - mov r3, r5 │ │ │ │ │ mov r9, r0 │ │ │ │ │ - mov r1, r2 │ │ │ │ │ - ldr r0, [sp, #36] @ 0x24 │ │ │ │ │ + ldrd r2, r0, [sp, #32] │ │ │ │ │ + mov r3, r5 │ │ │ │ │ strd r8, r8, [sp] │ │ │ │ │ + mov r1, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor_2d │ │ │ │ │ ldr r3, [r4, #28] │ │ │ │ │ - str r3, [sp, #0] │ │ │ │ │ mov r1, r0 │ │ │ │ │ - ldr r3, [sp, #28] │ │ │ │ │ mov r0, r9 │ │ │ │ │ + str r3, [sp, #0] │ │ │ │ │ + ldr r3, [sp, #28] │ │ │ │ │ mov r2, r3 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkproblem_rdft_1_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_d │ │ │ │ │ mov r5, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #24] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_any_true │ │ │ │ │ - cbnz r0, 350 │ │ │ │ │ - ldr r2, [pc, #140] @ (390 ) │ │ │ │ │ - movs r0, #88 @ 0x58 │ │ │ │ │ - ldr r1, [pc, #140] @ (394 ) │ │ │ │ │ + cbnz r0, 3a8 │ │ │ │ │ + ldr r2, [pc, #144] @ (3ec ) │ │ │ │ │ + mov.w r0, #88 @ 0x58 │ │ │ │ │ + ldr r1, [pc, #140] @ (3f0 ) │ │ │ │ │ add r2, pc │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_rdft │ │ │ │ │ ldr.w r3, [sl, #8] │ │ │ │ │ mov r4, r0 │ │ │ │ │ strd r6, r7, [r0, #64] @ 0x40 │ │ │ │ │ str r5, [r0, #72] @ 0x48 │ │ │ │ │ - cbnz r3, 37a │ │ │ │ │ + cbnz r3, 3d2 │ │ │ │ │ ldr.w r3, [fp, #164] @ 0xa4 │ │ │ │ │ and.w r3, r3, #4096 @ 0x1000 │ │ │ │ │ add.w r8, r4, #8 │ │ │ │ │ add.w r1, r5, #8 │ │ │ │ │ + str r3, [r4, #84] @ 0x54 │ │ │ │ │ mov r2, r8 │ │ │ │ │ add.w r0, r6, #8 │ │ │ │ │ - str r3, [r4, #84] @ 0x54 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ops_add │ │ │ │ │ add.w r0, r7, #8 │ │ │ │ │ mov r1, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ops_add2 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - add sp, #52 @ 0x34 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ - movs r5, #0 │ │ │ │ │ + b.n ce │ │ │ │ │ + mov.w r5, #0 │ │ │ │ │ mov r7, r5 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ - b.n a2 │ │ │ │ │ + b.n ca │ │ │ │ │ ldr.w r3, [fp, #164] @ 0xa4 │ │ │ │ │ tst.w r3, #4096 @ 0x1000 │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ it eq │ │ │ │ │ moveq r3, r9 │ │ │ │ │ str r3, [sp, #32] │ │ │ │ │ - b.n 10a │ │ │ │ │ + b.n 14e │ │ │ │ │ mov r5, r9 │ │ │ │ │ - b.n 350 │ │ │ │ │ - movs r3, #2 │ │ │ │ │ - b.n 326 │ │ │ │ │ + b.n 3a8 │ │ │ │ │ + mov.w r3, #2 │ │ │ │ │ + b.n 380 │ │ │ │ │ mov lr, r0 │ │ │ │ │ - b.n 1ae │ │ │ │ │ + b.n 1fc │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_rdft_serial_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.w f6 │ │ │ │ │ - b.n a2 │ │ │ │ │ - .word 0x00000084 │ │ │ │ │ - R_ARM_REL32 apply │ │ │ │ │ + beq.w 13a │ │ │ │ │ + b.n ca │ │ │ │ │ + nop │ │ │ │ │ .word 0x00000086 │ │ │ │ │ + R_ARM_REL32 apply │ │ │ │ │ + .word 0x00000088 │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -00000398 : │ │ │ │ │ +000003f4 : │ │ │ │ │ awake(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ + mov r5, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_awake │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_awake │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, lr} │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + ldrd r5, lr, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_plan_awake │ │ │ │ │ │ │ │ │ │ -000003b8 : │ │ │ │ │ +00000420 : │ │ │ │ │ fftwf_mpi_rdft_rank_geq2_transposed_register(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r5, [pc, #44] @ (3ec ) │ │ │ │ │ - movs r0, #12 │ │ │ │ │ + mov.w r0, #12 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ + ldr r5, [pc, #56] @ (468 ) │ │ │ │ │ add r5, pc │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mksolver │ │ │ │ │ - movs r3, #0 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ + str r3, [r1, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_solver_register │ │ │ │ │ mov r1, r5 │ │ │ │ │ - movs r0, #12 │ │ │ │ │ + mov.w r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mksolver │ │ │ │ │ - movs r3, #1 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + ldrd r5, lr, [sp, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, lr} │ │ │ │ │ + str r3, [r1, #8] │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + add sp, #16 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_solver_register │ │ │ │ │ - .word 0x00000028 │ │ │ │ │ + .word 0x00000034 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ ├── rdft-rank1-bigvec.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 2920 (bytes into file) │ │ │ │ │ + Start of section headers: 3044 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 16 │ │ │ │ │ Section header string table index: 15 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,25 +1,25 @@ │ │ │ │ │ -There are 16 section headers, starting at offset 0xb68: │ │ │ │ │ +There are 16 section headers, starting at offset 0xbe4: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 000318 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000950 000160 08 I 13 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 00034c 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 00034c 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 00034c 00003a 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .rodata PROGBITS 00000000 000386 000050 00 A 0 0 4 │ │ │ │ │ - [ 7] .data.rel.ro PROGBITS 00000000 0003d6 000010 00 WA 0 0 4 │ │ │ │ │ - [ 8] .rel.data.rel.ro REL 00000000 000ab0 000020 08 I 13 7 4 │ │ │ │ │ - [ 9] .data.rel.ro.local PROGBITS 00000000 0003e6 00000c 00 WA 0 0 4 │ │ │ │ │ - [10] .rel.data.rel.ro.local REL 00000000 000ad0 000008 08 I 13 9 4 │ │ │ │ │ - [11] .note.GNU-stack PROGBITS 00000000 0003f2 000000 00 0 0 1 │ │ │ │ │ - [12] .ARM.attributes ARM_ATTRIBUTES 00000000 0003f2 000033 00 0 0 1 │ │ │ │ │ - [13] .symtab SYMTAB 00000000 000428 000300 10 14 24 4 │ │ │ │ │ - [14] .strtab STRTAB 00000000 000728 000226 00 0 0 1 │ │ │ │ │ - [15] .shstrtab STRTAB 00000000 000ad8 00008f 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000394 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 0009cc 000160 08 I 13 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 0003c8 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 0003c8 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 0003c8 00003a 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .rodata PROGBITS 00000000 000402 000050 00 A 0 0 4 │ │ │ │ │ + [ 7] .data.rel.ro PROGBITS 00000000 000452 000010 00 WA 0 0 4 │ │ │ │ │ + [ 8] .rel.data.rel.ro REL 00000000 000b2c 000020 08 I 13 7 4 │ │ │ │ │ + [ 9] .data.rel.ro.local PROGBITS 00000000 000462 00000c 00 WA 0 0 4 │ │ │ │ │ + [10] .rel.data.rel.ro.local REL 00000000 000b4c 000008 08 I 13 9 4 │ │ │ │ │ + [11] .note.GNU-stack PROGBITS 00000000 00046e 000000 00 0 0 1 │ │ │ │ │ + [12] .ARM.attributes ARM_ATTRIBUTES 00000000 00046e 000033 00 0 0 1 │ │ │ │ │ + [13] .symtab SYMTAB 00000000 0004a4 000300 10 14 24 4 │ │ │ │ │ + [14] .strtab STRTAB 00000000 0007a4 000226 00 0 0 1 │ │ │ │ │ + [15] .shstrtab STRTAB 00000000 000b54 00008f 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,26 +1,26 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 48 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ - 1: 00000001 46 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ + 1: 00000001 58 FUNC LOCAL DEFAULT 1 apply │ │ │ │ │ 2: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ 3: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 4: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC1 │ │ │ │ │ 5: 00000004 0 NOTYPE LOCAL DEFAULT 5 .LC2 │ │ │ │ │ 6: 00000008 0 NOTYPE LOCAL DEFAULT 5 .LC3 │ │ │ │ │ - 7: 00000031 88 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 8: 00000078 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 9: 00000088 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 10: 00000089 26 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 11: 000000a5 528 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 12: 000002ac 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 13: 000002b4 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 14: 000002b5 32 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 15: 00000314 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 7: 0000003d 100 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 8: 00000090 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 000000a0 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 10: 000000a1 30 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 11: 000000c1 584 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 12: 00000300 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 13: 00000308 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 14: 00000309 44 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 15: 00000390 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 16: 00000000 0 SECTION LOCAL DEFAULT 6 .rodata │ │ │ │ │ 17: 00000000 0 NOTYPE LOCAL DEFAULT 6 $d │ │ │ │ │ 18: 00000000 0 SECTION LOCAL DEFAULT 7 .data.rel.ro │ │ │ │ │ 19: 00000000 0 NOTYPE LOCAL DEFAULT 7 $d │ │ │ │ │ 20: 00000000 16 OBJECT LOCAL DEFAULT 7 padt.0 │ │ │ │ │ 21: 00000000 0 SECTION LOCAL DEFAULT 9 .data.rel.ro.local │ │ │ │ │ 22: 00000000 0 NOTYPE LOCAL DEFAULT 9 $d │ │ │ │ │ @@ -41,11 +41,11 @@ │ │ │ │ │ 37: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mktensor_2d │ │ │ │ │ 38: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mkproblem_rdft_1_d │ │ │ │ │ 39: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mkplan_rdft │ │ │ │ │ 40: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ops_add │ │ │ │ │ 41: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ops_add2 │ │ │ │ │ 42: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_rdft_serial_applicable │ │ │ │ │ 43: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_plan_awake │ │ │ │ │ - 44: 000002d5 68 FUNC GLOBAL DEFAULT 1 fftwf_mpi_rdft_rank1_bigvec_register │ │ │ │ │ + 44: 00000335 96 FUNC GLOBAL DEFAULT 1 fftwf_mpi_rdft_rank1_bigvec_register │ │ │ │ │ 45: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mksolver │ │ │ │ │ 46: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_solver_register │ │ │ │ │ 47: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_rdft_solve │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,58 +1,58 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x950 contains 44 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x9cc contains 44 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000042 0000180a R_ARM_THM_CALL 00000000 memcpy │ │ │ │ │ -00000078 00001003 R_ARM_REL32 00000000 .rodata │ │ │ │ │ -0000007c 00000503 R_ARM_REL32 00000004 .LC2 │ │ │ │ │ -00000080 00000603 R_ARM_REL32 00000008 .LC3 │ │ │ │ │ -00000084 00000403 R_ARM_REL32 00000000 .LC1 │ │ │ │ │ -0000008e 0000190a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000094 0000190a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000000b6 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000000f4 00001b0a R_ARM_THM_CALL 00000000 fftwf_mpi_rearrange_applicable │ │ │ │ │ -0000010a 00001c0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -00000112 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000128 00001d0a R_ARM_THM_CALL 00000000 fftwf_mpi_rearrange_ny │ │ │ │ │ -00000136 00001e0a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ -00000140 00001f0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ -0000016a 0000200a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ -00000172 0000210a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -00000180 0000220a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -000001a4 0000230a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -000001b0 0000240a R_ARM_THM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ -000001c6 0000250a R_ARM_THM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ -000001d6 0000260a R_ARM_THM_CALL 00000000 fftwf_mkproblem_rdft_1_d │ │ │ │ │ -000001de 0000210a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -000001ec 0000220a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -00000210 0000200a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ -00000218 0000210a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -00000226 0000220a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -00000236 0000270a R_ARM_THM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ -00000264 0000280a R_ARM_THM_CALL 00000000 fftwf_ops_add │ │ │ │ │ -0000026e 0000290a R_ARM_THM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ -0000027e 0000190a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000284 0000190a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -0000028a 0000190a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000002a0 00002a0a R_ARM_THM_CALL 00000000 fftwf_mpi_rdft_serial_applicable │ │ │ │ │ -000002ac 00000103 R_ARM_REL32 00000001 apply │ │ │ │ │ -000002b0 00001203 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -000002bc 00002b0a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -000002c4 00002b0a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -000002e4 00002d0a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -000002f0 00002e0a R_ARM_THM_CALL 00000000 fftwf_solver_register │ │ │ │ │ -000002f8 00002d0a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -00000308 00002e0a R_ARM_THM_CALL 00000000 fftwf_solver_register │ │ │ │ │ -00000314 00001503 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -0000009e 0000191e R_ARM_THM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000002d0 00002b1e R_ARM_THM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ +00000056 0000180a R_ARM_THM_CALL 00000000 memcpy │ │ │ │ │ +00000090 00001003 R_ARM_REL32 00000000 .rodata │ │ │ │ │ +00000094 00000503 R_ARM_REL32 00000004 .LC2 │ │ │ │ │ +00000098 00000603 R_ARM_REL32 00000008 .LC3 │ │ │ │ │ +0000009c 00000403 R_ARM_REL32 00000000 .LC1 │ │ │ │ │ +000000a8 0000190a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000000ae 0000190a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000000e2 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000136 00001b0a R_ARM_THM_CALL 00000000 fftwf_mpi_rearrange_applicable │ │ │ │ │ +0000014c 00001c0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +00000154 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +0000016a 00001d0a R_ARM_THM_CALL 00000000 fftwf_mpi_rearrange_ny │ │ │ │ │ +0000017c 00001e0a R_ARM_THM_CALL 00000000 __aeabi_idiv │ │ │ │ │ +00000186 00001f0a R_ARM_THM_CALL 00000000 fftwf_mpi_default_block │ │ │ │ │ +000001ae 0000200a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ +000001b6 0000210a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +000001c8 0000220a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +000001ee 0000230a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +000001fa 0000240a R_ARM_THM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ +00000212 0000250a R_ARM_THM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ +00000222 0000260a R_ARM_THM_CALL 00000000 fftwf_mkproblem_rdft_1_d │ │ │ │ │ +0000022a 0000210a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +0000023a 0000220a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +0000025e 0000200a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ +00000266 0000210a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +00000276 0000220a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +00000288 0000270a R_ARM_THM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ +000002b8 0000280a R_ARM_THM_CALL 00000000 fftwf_ops_add │ │ │ │ │ +000002c2 0000290a R_ARM_THM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ +000002d0 0000190a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000002d6 0000190a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000002dc 0000190a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000002f4 00002a0a R_ARM_THM_CALL 00000000 fftwf_mpi_rdft_serial_applicable │ │ │ │ │ +00000300 00000103 R_ARM_REL32 00000001 apply │ │ │ │ │ +00000304 00001203 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +00000316 00002b0a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +0000031e 00002b0a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +00000352 00002d0a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +0000035e 00002e0a R_ARM_THM_CALL 00000000 fftwf_solver_register │ │ │ │ │ +00000368 00002d0a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +0000037c 00002e0a R_ARM_THM_CALL 00000000 fftwf_solver_register │ │ │ │ │ +00000390 00001503 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +000000ba 0000191e R_ARM_THM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000330 00002b1e R_ARM_THM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0xab0 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0xb2c contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000000 00002f02 R_ARM_ABS32 00000000 fftwf_mpi_rdft_solve │ │ │ │ │ -00000004 00000e02 R_ARM_ABS32 000002b5 awake │ │ │ │ │ -00000008 00000702 R_ARM_ABS32 00000031 print │ │ │ │ │ -0000000c 00000a02 R_ARM_ABS32 00000089 destroy │ │ │ │ │ +00000004 00000e02 R_ARM_ABS32 00000309 awake │ │ │ │ │ +00000008 00000702 R_ARM_ABS32 0000003d print │ │ │ │ │ +0000000c 00000a02 R_ARM_ABS32 000000a1 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0xad0 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0xb4c contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000b02 R_ARM_ABS32 000000a5 mkplan │ │ │ │ │ +00000004 00000b02 R_ARM_ABS32 000000c1 mkplan │ │ │ │ ├── strings --all --bytes=8 {} │ │ │ │ │ @@ -1,7 +1,8 @@ │ │ │ │ │ +~'F~D1FO │ │ │ │ │ (mpi-rdft-rank1-bigvec/%s%s %(%p%) %(%p%) %(%p%)) │ │ │ │ │ discontig │ │ │ │ │ square-after │ │ │ │ │ square-middle │ │ │ │ │ square-before │ │ │ │ │ fftwf_plan_destroy_internal │ │ │ │ │ MPI_Comm_size │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,257 +1,271 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, r5, [sp, #-16]! │ │ │ │ │ mov r5, r0 │ │ │ │ │ + mov r4, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r6, lr, [sp, #8] │ │ │ │ │ mov r6, r2 │ │ │ │ │ - mov r4, r1 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ - ldr r3, [r5, #76] @ 0x4c │ │ │ │ │ ldr r0, [r5, #68] @ 0x44 │ │ │ │ │ mov r1, r6 │ │ │ │ │ + ldr r3, [r5, #76] @ 0x4c │ │ │ │ │ cmp r3, #0 │ │ │ │ │ it ne │ │ │ │ │ movne r4, r6 │ │ │ │ │ - mov r2, r4 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ + mov r2, r4 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r5, #72] @ 0x48 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r4 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, lr, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ bx r3 │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -00000030 : │ │ │ │ │ +0000003c : │ │ │ │ │ print(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ - mov r4, r0 │ │ │ │ │ + strd r4, r5, [sp, #-16]! │ │ │ │ │ mov r5, r1 │ │ │ │ │ + mov r4, r0 │ │ │ │ │ + ldr r1, [pc, #72] @ (90 ) │ │ │ │ │ + mov.w r2, #80 @ 0x50 │ │ │ │ │ + strd r6, lr, [sp, #8] │ │ │ │ │ sub sp, #96 @ 0x60 │ │ │ │ │ - ldr r1, [pc, #60] @ (78 ) │ │ │ │ │ add r3, sp, #16 │ │ │ │ │ - movs r2, #80 @ 0x50 │ │ │ │ │ mov r0, r3 │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL memcpy │ │ │ │ │ - ldr r2, [r4, #80] @ 0x50 │ │ │ │ │ - ldr r3, [r4, #76] @ 0x4c │ │ │ │ │ + ldrd r3, r2, [r4, #76] @ 0x4c │ │ │ │ │ ldr r6, [r5, #0] │ │ │ │ │ - add.w r2, r0, r2, lsl #4 │ │ │ │ │ cmp r3, #2 │ │ │ │ │ - beq.n 70 │ │ │ │ │ - ldr r3, [pc, #36] @ (7c ) │ │ │ │ │ + add.w r2, r0, r2, lsl #4 │ │ │ │ │ + beq.n 8a │ │ │ │ │ + ldr r3, [pc, #40] @ (94 ) │ │ │ │ │ add r3, pc │ │ │ │ │ ldr r1, [r4, #72] @ 0x48 │ │ │ │ │ mov r0, r5 │ │ │ │ │ str r1, [sp, #8] │ │ │ │ │ ldr r1, [r4, #68] @ 0x44 │ │ │ │ │ str r1, [sp, #4] │ │ │ │ │ ldr r1, [r4, #64] @ 0x40 │ │ │ │ │ str r1, [sp, #0] │ │ │ │ │ - ldr r1, [pc, #24] @ (80 ) │ │ │ │ │ + ldr r1, [pc, #28] @ (98 ) │ │ │ │ │ add r1, pc │ │ │ │ │ blx r6 │ │ │ │ │ add sp, #96 @ 0x60 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ - ldr r3, [pc, #16] @ (84 ) │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + pop {r6, pc} │ │ │ │ │ + ldr r3, [pc, #16] @ (9c ) │ │ │ │ │ add r3, pc │ │ │ │ │ - b.n 58 │ │ │ │ │ - nop │ │ │ │ │ - .word 0x00000034 │ │ │ │ │ + b.n 6c │ │ │ │ │ + .word 0x00000038 │ │ │ │ │ R_ARM_REL32 .rodata │ │ │ │ │ - .word 0x00000022 │ │ │ │ │ + .word 0x00000026 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ - .word 0x00000014 │ │ │ │ │ + .word 0x00000018 │ │ │ │ │ R_ARM_REL32 .LC3 │ │ │ │ │ - .word 0x0000000e │ │ │ │ │ + .word 0x0000000c │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ │ │ │ │ │ -00000088 : │ │ │ │ │ +000000a0 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #72] @ 0x48 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - ldmia.w sp!, {r4, lr} │ │ │ │ │ + ldrd r4, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_plan_destroy_internal │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -000000a4 : │ │ │ │ │ +000000c0 : │ │ │ │ │ mkplan(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r6, r0 │ │ │ │ │ - sub sp, #52 @ 0x34 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ mov r7, r2 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #52 @ 0x34 │ │ │ │ │ add r5, sp, #44 @ 0x2c │ │ │ │ │ ldr r0, [r4, #24] │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r2, [r3, #0] │ │ │ │ │ cmp r2, #1 │ │ │ │ │ - beq.n ca │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + beq.n 10a │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add sp, #52 @ 0x34 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldr r2, [r4, #20] │ │ │ │ │ bics.w r2, r2, #16 │ │ │ │ │ - bne.n c2 │ │ │ │ │ + bne.n ee │ │ │ │ │ ldr r2, [r6, #8] │ │ │ │ │ - cbz r2, e6 │ │ │ │ │ + cbz r2, 126 │ │ │ │ │ ldr.w r2, [r7, #164] @ 0xa4 │ │ │ │ │ lsls r2, r2, #19 │ │ │ │ │ - bmi.n c2 │ │ │ │ │ + bmi.n ee │ │ │ │ │ ldrd r1, r2, [r4, #12] │ │ │ │ │ cmp r1, r2 │ │ │ │ │ - beq.n c2 │ │ │ │ │ + beq.n ee │ │ │ │ │ ldr r2, [sp, #44] @ 0x2c │ │ │ │ │ - adds r3, #4 │ │ │ │ │ + add.w r3, r3, #4 │ │ │ │ │ str r2, [sp, #4] │ │ │ │ │ ldr r2, [r4, #8] │ │ │ │ │ str r2, [sp, #0] │ │ │ │ │ ldmia r3, {r1, r2, r3} │ │ │ │ │ ldr r0, [r6, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_rearrange_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n c2 │ │ │ │ │ + beq.n ee │ │ │ │ │ ldr.w r3, [r7, #164] @ 0xa4 │ │ │ │ │ lsls r3, r3, #28 │ │ │ │ │ - bmi.w 29e │ │ │ │ │ - add r1, sp, #40 @ 0x28 │ │ │ │ │ + bmi.w 2f2 │ │ │ │ │ ldr r0, [r4, #24] │ │ │ │ │ + add r1, sp, #40 @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ - mov r1, r5 │ │ │ │ │ ldr r0, [r4, #24] │ │ │ │ │ + mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r2, [sp, #44] @ 0x2c │ │ │ │ │ ldr.w sl, [r3, #4]! │ │ │ │ │ str r2, [sp, #4] │ │ │ │ │ ldr r2, [r4, #8] │ │ │ │ │ str r2, [sp, #0] │ │ │ │ │ ldmia r3, {r1, r2, r3} │ │ │ │ │ ldr r0, [r6, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_rearrange_ny │ │ │ │ │ mov r5, r0 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n c2 │ │ │ │ │ + beq.n ee │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ + mov.w r9, #0 │ │ │ │ │ bl 0 <__aeabi_idiv> │ │ │ │ │ R_ARM_THM_CALL __aeabi_idiv │ │ │ │ │ ldr r1, [sp, #44] @ 0x2c │ │ │ │ │ mov r8, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_default_block │ │ │ │ │ - mov.w r9, #0 │ │ │ │ │ ldrd fp, r2, [r4, #12] │ │ │ │ │ - str.w r9, [sp, #16] │ │ │ │ │ mov r1, r5 │ │ │ │ │ - str r0, [sp, #28] │ │ │ │ │ + str.w r9, [sp, #16] │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ - str r0, [sp, #8] │ │ │ │ │ + mov r3, r0 │ │ │ │ │ + strd r2, r0, [sp, #24] │ │ │ │ │ mov r0, sl │ │ │ │ │ - str r2, [sp, #24] │ │ │ │ │ + str r3, [sp, #8] │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r3, [r3, #8] │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ + strd r2, r3, [sp] │ │ │ │ │ mov r3, fp │ │ │ │ │ - str r2, [sp, #0] │ │ │ │ │ mov r2, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkproblem_transpose │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_d │ │ │ │ │ - str r0, [sp, #32] │ │ │ │ │ + mov r3, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #24] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ + str r3, [sp, #32] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.w 29a │ │ │ │ │ + bne.w 2ee │ │ │ │ │ ldr r3, [r6, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.n 290 │ │ │ │ │ + bne.w 2e2 │ │ │ │ │ ldr.w r3, [r7, #164] @ 0xa4 │ │ │ │ │ ldr r2, [sp, #24] │ │ │ │ │ tst.w r3, #4096 @ 0x1000 │ │ │ │ │ it ne │ │ │ │ │ movne fp, r2 │ │ │ │ │ - ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ ldr r1, [sp, #28] │ │ │ │ │ + mov r0, r5 │ │ │ │ │ + ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ - mov r2, r8 │ │ │ │ │ mov r9, r0 │ │ │ │ │ + mov r2, r8 │ │ │ │ │ mov r1, r8 │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor_1d │ │ │ │ │ mul.w r2, r8, sl │ │ │ │ │ - movs r3, #1 │ │ │ │ │ - str r0, [sp, #36] @ 0x24 │ │ │ │ │ - mov r1, r2 │ │ │ │ │ - mov r0, r9 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ strd r3, r3, [sp] │ │ │ │ │ mov r3, r8 │ │ │ │ │ + mov r1, r2 │ │ │ │ │ + str r0, [sp, #36] @ 0x24 │ │ │ │ │ + mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor_2d │ │ │ │ │ ldr r3, [r4, #28] │ │ │ │ │ mov r1, r0 │ │ │ │ │ ldr r2, [sp, #24] │ │ │ │ │ + ldr r0, [sp, #36] @ 0x24 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ mov r3, fp │ │ │ │ │ - ldr r0, [sp, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkproblem_rdft_1_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_d │ │ │ │ │ mov r9, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #24] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.n 27a │ │ │ │ │ + bne.n 2ca │ │ │ │ │ str r0, [sp, #16] │ │ │ │ │ mov r2, r8 │ │ │ │ │ mov r1, sl │ │ │ │ │ - mov r0, r5 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ + mov r0, r5 │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r3, [r3, #12] │ │ │ │ │ str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ @@ -262,124 +276,129 @@ │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_d │ │ │ │ │ mov r5, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #24] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_any_true │ │ │ │ │ - cbnz r0, 27c │ │ │ │ │ - ldr r2, [pc, #124] @ (2ac ) │ │ │ │ │ - movs r0, #88 @ 0x58 │ │ │ │ │ - ldr r1, [pc, #124] @ (2b0 ) │ │ │ │ │ + cbnz r0, 2ce │ │ │ │ │ + ldr r2, [pc, #128] @ (300 ) │ │ │ │ │ + mov.w r0, #88 @ 0x58 │ │ │ │ │ + ldr r1, [pc, #128] @ (304 ) │ │ │ │ │ add r2, pc │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_rdft │ │ │ │ │ ldr r3, [sp, #32] │ │ │ │ │ - strd r3, r9, [r0, #64] @ 0x40 │ │ │ │ │ mov r4, r0 │ │ │ │ │ + strd r3, r9, [r0, #64] @ 0x40 │ │ │ │ │ ldr r3, [r6, #8] │ │ │ │ │ str r5, [r0, #72] @ 0x48 │ │ │ │ │ - cbnz r3, 296 │ │ │ │ │ + cbnz r3, 2e8 │ │ │ │ │ ldr.w r3, [r7, #164] @ 0xa4 │ │ │ │ │ and.w r3, r3, #4096 @ 0x1000 │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ add.w r1, r9, #8 │ │ │ │ │ str r3, [r4, #76] @ 0x4c │ │ │ │ │ ldr r3, [r6, #12] │ │ │ │ │ add.w r6, r4, #8 │ │ │ │ │ mov r2, r6 │ │ │ │ │ + add.w r0, r0, #8 │ │ │ │ │ str r3, [r4, #80] @ 0x50 │ │ │ │ │ - adds r0, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ops_add │ │ │ │ │ add.w r0, r5, #8 │ │ │ │ │ mov r1, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ops_add2 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - add sp, #52 @ 0x34 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ - movs r5, #0 │ │ │ │ │ + b.n f2 │ │ │ │ │ + mov.w r5, #0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [sp, #32] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ - b.n c2 │ │ │ │ │ + b.n ee │ │ │ │ │ ldr.w fp, [sp, #24] │ │ │ │ │ - b.n 19e │ │ │ │ │ - movs r3, #2 │ │ │ │ │ - b.n 250 │ │ │ │ │ + b.n 1e8 │ │ │ │ │ + mov.w r3, #2 │ │ │ │ │ + b.n 2a2 │ │ │ │ │ mov r5, r9 │ │ │ │ │ - b.n 27c │ │ │ │ │ + b.n 2ce │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_rdft_serial_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.w c2 │ │ │ │ │ - b.n 106 │ │ │ │ │ - .word 0x00000076 │ │ │ │ │ - R_ARM_REL32 apply │ │ │ │ │ + bne.w ee │ │ │ │ │ + b.n 148 │ │ │ │ │ .word 0x00000078 │ │ │ │ │ + R_ARM_REL32 apply │ │ │ │ │ + .word 0x0000007a │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ │ │ │ │ │ -000002b4 : │ │ │ │ │ +00000308 : │ │ │ │ │ awake(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ + mov r5, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_awake │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_awake │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, lr} │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + ldrd r5, lr, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_plan_awake │ │ │ │ │ │ │ │ │ │ -000002d4 : │ │ │ │ │ +00000334 : │ │ │ │ │ fftwf_mpi_rdft_rank1_bigvec_register(): │ │ │ │ │ - push {r3, r4, r5, r6, r7, lr} │ │ │ │ │ - movs r4, #0 │ │ │ │ │ - ldr r6, [pc, #56] @ (314 ) │ │ │ │ │ + strd r3, r4, [sp, #-24]! │ │ │ │ │ + mov.w r4, #0 │ │ │ │ │ + strd r5, r6, [sp, #8] │ │ │ │ │ mov r5, r0 │ │ │ │ │ + ldr r6, [pc, #76] @ (390 ) │ │ │ │ │ + strd r7, lr, [sp, #16] │ │ │ │ │ mov r7, r4 │ │ │ │ │ add r6, pc │ │ │ │ │ mov r1, r6 │ │ │ │ │ - movs r0, #16 │ │ │ │ │ + mov.w r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mksolver │ │ │ │ │ mov r1, r0 │ │ │ │ │ - strd r7, r4, [r0, #8] │ │ │ │ │ mov r0, r5 │ │ │ │ │ + strd r7, r4, [r1, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_solver_register │ │ │ │ │ mov r1, r6 │ │ │ │ │ - movs r0, #16 │ │ │ │ │ + mov.w r0, #16 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mksolver │ │ │ │ │ - movs r3, #1 │ │ │ │ │ - str r4, [r0, #12] │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ - adds r4, #1 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ mov r0, r5 │ │ │ │ │ + strd r3, r4, [r1, #8] │ │ │ │ │ + add.w r4, r4, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_solver_register │ │ │ │ │ cmp r4, #4 │ │ │ │ │ - bne.n 2e0 │ │ │ │ │ - pop {r3, r4, r5, r6, r7, pc} │ │ │ │ │ - nop │ │ │ │ │ - .word 0x00000032 │ │ │ │ │ + bne.n 34c │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + ldrd r5, r6, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + pop {r7, pc} │ │ │ │ │ + .word 0x00000042 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ ├── rdft-problem.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 2232 (bytes into file) │ │ │ │ │ + Start of section headers: 2360 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 13 │ │ │ │ │ Section header string table index: 12 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,22 +1,22 @@ │ │ │ │ │ -There are 13 section headers, starting at offset 0x8b8: │ │ │ │ │ +There are 13 section headers, starting at offset 0x938: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 0002a0 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000730 0000f0 08 I 10 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 0002d4 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 0002d4 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 0002d4 000030 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro.local PROGBITS 00000000 000304 000014 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro.local REL 00000000 000820 000020 08 I 10 6 4 │ │ │ │ │ - [ 8] .note.GNU-stack PROGBITS 00000000 000318 000000 00 0 0 1 │ │ │ │ │ - [ 9] .ARM.attributes ARM_ATTRIBUTES 00000000 000318 000033 00 0 0 1 │ │ │ │ │ - [10] .symtab SYMTAB 00000000 00034c 000270 10 11 21 4 │ │ │ │ │ - [11] .strtab STRTAB 00000000 0005bc 000173 00 0 0 1 │ │ │ │ │ - [12] .shstrtab STRTAB 00000000 000840 000076 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000320 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 0007b0 0000f0 08 I 10 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000354 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000354 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 000354 000030 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro.local PROGBITS 00000000 000384 000014 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro.local REL 00000000 0008a0 000020 08 I 10 6 4 │ │ │ │ │ + [ 8] .note.GNU-stack PROGBITS 00000000 000398 000000 00 0 0 1 │ │ │ │ │ + [ 9] .ARM.attributes ARM_ATTRIBUTES 00000000 000398 000033 00 0 0 1 │ │ │ │ │ + [10] .symtab SYMTAB 00000000 0003cc 000270 10 11 21 4 │ │ │ │ │ + [11] .strtab STRTAB 00000000 00063c 000173 00 0 0 1 │ │ │ │ │ + [12] .shstrtab STRTAB 00000000 0008c0 000076 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,28 +1,28 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 39 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ - 1: 00000001 28 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 1: 00000001 32 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ 2: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ 3: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 4: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ 5: 00000014 0 NOTYPE LOCAL DEFAULT 5 .LC1 │ │ │ │ │ 6: 00000018 0 NOTYPE LOCAL DEFAULT 5 .LC2 │ │ │ │ │ 7: 00000020 0 NOTYPE LOCAL DEFAULT 5 .LC3 │ │ │ │ │ - 8: 0000001d 160 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 9: 000000ac 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 10: 000000bc 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 11: 000000bd 50 FUNC LOCAL DEFAULT 1 zero │ │ │ │ │ + 8: 00000021 188 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 9: 000000cc 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 10: 000000dc 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 11: 000000dd 68 FUNC LOCAL DEFAULT 1 zero │ │ │ │ │ 12: 00000028 0 NOTYPE LOCAL DEFAULT 5 .LC4 │ │ │ │ │ - 13: 000000f1 124 FUNC LOCAL DEFAULT 1 hash │ │ │ │ │ - 14: 00000168 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 15: 0000016c 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 16: 00000278 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 17: 0000027c 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 13: 00000121 144 FUNC LOCAL DEFAULT 1 hash │ │ │ │ │ + 14: 000001ac 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 15: 000001b0 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 16: 000002e8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 17: 000002ec 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ 18: 00000000 0 SECTION LOCAL DEFAULT 6 .data.rel.ro.local │ │ │ │ │ 19: 00000000 0 NOTYPE LOCAL DEFAULT 6 $d │ │ │ │ │ 20: 00000000 20 OBJECT LOCAL DEFAULT 6 padt │ │ │ │ │ 21: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_dtensor_destroy │ │ │ │ │ 22: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_free │ │ │ │ │ 23: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ifree │ │ │ │ │ 24: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ialignment_of │ │ │ │ │ @@ -31,12 +31,12 @@ │ │ │ │ │ 27: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_rank │ │ │ │ │ 28: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_total_block │ │ │ │ │ 29: 00000000 0 NOTYPE GLOBAL DEFAULT UND memset │ │ │ │ │ 30: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_md5puts │ │ │ │ │ 31: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_md5int │ │ │ │ │ 32: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_dtensor_md5 │ │ │ │ │ 33: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_md5INT │ │ │ │ │ - 34: 0000016d 272 FUNC GLOBAL DEFAULT 1 fftwf_mpi_mkproblem_rdft │ │ │ │ │ + 34: 000001b1 316 FUNC GLOBAL DEFAULT 1 fftwf_mpi_mkproblem_rdft │ │ │ │ │ 35: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mkproblem │ │ │ │ │ 36: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_dtensor_canonical │ │ │ │ │ 37: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_dup │ │ │ │ │ - 38: 0000027d 36 FUNC GLOBAL DEFAULT 1 fftwf_mpi_mkproblem_rdft_d │ │ │ │ │ + 38: 000002ed 50 FUNC GLOBAL DEFAULT 1 fftwf_mpi_mkproblem_rdft_d │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,40 +1,40 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x730 contains 30 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x7b0 contains 30 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000006 0000150a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -0000000e 0000160a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -00000030 0000180a R_ARM_THM_CALL 00000000 fftwf_ialignment_of │ │ │ │ │ -0000003c 0000180a R_ARM_THM_CALL 00000000 fftwf_ialignment_of │ │ │ │ │ -00000054 0000190a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_print │ │ │ │ │ -00000096 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000000ac 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -000000b0 00000503 R_ARM_REL32 00000014 .LC1 │ │ │ │ │ -000000b4 00000603 R_ARM_REL32 00000018 .LC2 │ │ │ │ │ -000000b8 00000703 R_ARM_REL32 00000020 .LC3 │ │ │ │ │ -000000c8 00001b0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000000d4 00001c0a R_ARM_THM_CALL 00000000 fftwf_mpi_total_block │ │ │ │ │ -000000e6 00001d0a R_ARM_THM_CALL 00000000 memset │ │ │ │ │ -000000fe 00001e0a R_ARM_THM_CALL 00000000 fftwf_md5puts │ │ │ │ │ -00000110 00001f0a R_ARM_THM_CALL 00000000 fftwf_md5int │ │ │ │ │ -00000118 0000200a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_md5 │ │ │ │ │ -00000120 0000210a R_ARM_THM_CALL 00000000 fftwf_md5INT │ │ │ │ │ -00000138 00001f0a R_ARM_THM_CALL 00000000 fftwf_md5int │ │ │ │ │ -0000014e 00001f0a R_ARM_THM_CALL 00000000 fftwf_md5int │ │ │ │ │ -00000156 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -0000015e 00001f0a R_ARM_THM_CALL 00000000 fftwf_md5int │ │ │ │ │ -00000168 00000c03 R_ARM_REL32 00000028 .LC4 │ │ │ │ │ -00000184 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000198 0000230a R_ARM_THM_CALL 00000000 fftwf_mkproblem │ │ │ │ │ -000001a2 0000240a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_canonical │ │ │ │ │ -0000021c 0000250a R_ARM_THM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ -00000278 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -0000028e 0000220a R_ARM_THM_CALL 0000016d fftwf_mpi_mkproblem_rdft │ │ │ │ │ -00000296 0000150a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -00000018 0000171e R_ARM_THM_JUMP24 00000000 fftwf_ifree │ │ │ │ │ +00000008 0000150a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +00000010 0000160a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +0000003e 0000180a R_ARM_THM_CALL 00000000 fftwf_ialignment_of │ │ │ │ │ +0000004a 0000180a R_ARM_THM_CALL 00000000 fftwf_ialignment_of │ │ │ │ │ +00000064 0000190a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_print │ │ │ │ │ +000000aa 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000000cc 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +000000d0 00000503 R_ARM_REL32 00000014 .LC1 │ │ │ │ │ +000000d4 00000603 R_ARM_REL32 00000018 .LC2 │ │ │ │ │ +000000d8 00000703 R_ARM_REL32 00000020 .LC3 │ │ │ │ │ +000000ee 00001b0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000000fc 00001c0a R_ARM_THM_CALL 00000000 fftwf_mpi_total_block │ │ │ │ │ +00000112 00001d0a R_ARM_THM_CALL 00000000 memset │ │ │ │ │ +00000134 00001e0a R_ARM_THM_CALL 00000000 fftwf_md5puts │ │ │ │ │ +0000014a 00001f0a R_ARM_THM_CALL 00000000 fftwf_md5int │ │ │ │ │ +00000152 0000200a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_md5 │ │ │ │ │ +0000015a 0000210a R_ARM_THM_CALL 00000000 fftwf_md5INT │ │ │ │ │ +00000174 00001f0a R_ARM_THM_CALL 00000000 fftwf_md5int │ │ │ │ │ +0000018c 00001f0a R_ARM_THM_CALL 00000000 fftwf_md5int │ │ │ │ │ +00000194 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +0000019c 00001f0a R_ARM_THM_CALL 00000000 fftwf_md5int │ │ │ │ │ +000001ac 00000c03 R_ARM_REL32 00000028 .LC4 │ │ │ │ │ +000001d8 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000001ea 0000230a R_ARM_THM_CALL 00000000 fftwf_mkproblem │ │ │ │ │ +000001f6 0000240a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_canonical │ │ │ │ │ +00000274 0000250a R_ARM_THM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ +000002e8 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +00000304 0000220a R_ARM_THM_CALL 000001b1 fftwf_mpi_mkproblem_rdft │ │ │ │ │ +0000030c 0000150a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +0000001c 0000171e R_ARM_THM_JUMP24 00000000 fftwf_ifree │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0x820 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0x8a0 contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000d02 R_ARM_ABS32 000000f1 hash │ │ │ │ │ -00000008 00000b02 R_ARM_ABS32 000000bd zero │ │ │ │ │ -0000000c 00000802 R_ARM_ABS32 0000001d print │ │ │ │ │ +00000004 00000d02 R_ARM_ABS32 00000121 hash │ │ │ │ │ +00000008 00000b02 R_ARM_ABS32 000000dd zero │ │ │ │ │ +0000000c 00000802 R_ARM_ABS32 00000021 print │ │ │ │ │ 00000010 00000102 R_ARM_ABS32 00000001 destroy │ │ │ │ ├── strings --all --bytes=8 {} │ │ │ │ │ @@ -1,8 +1,7 @@ │ │ │ │ │ -Iv ;F2FyD │ │ │ │ │ (mpi-rdft %d %d %d │ │ │ │ │ fftwf_mpi_dtensor_destroy │ │ │ │ │ MPI_Comm_free │ │ │ │ │ fftwf_ifree │ │ │ │ │ fftwf_ialignment_of │ │ │ │ │ fftwf_mpi_dtensor_print │ │ │ │ │ MPI_Comm_size │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,309 +1,332 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ add.w r0, r4, #24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_free │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r4, lr} │ │ │ │ │ + ldrd r4, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_ifree │ │ │ │ │ │ │ │ │ │ -0000001c : │ │ │ │ │ +00000020 : │ │ │ │ │ print(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r0, [r0, #12] │ │ │ │ │ - sub sp, #16 │ │ │ │ │ mov r5, r1 │ │ │ │ │ + ldr r0, [r0, #12] │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ ldr r2, [r4, #16] │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ + sub sp, #16 │ │ │ │ │ ldr.w r8, [r1] │ │ │ │ │ - subs r6, r2, r0 │ │ │ │ │ + sub.w r6, r2, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ialignment_of │ │ │ │ │ - clz r6, r6 │ │ │ │ │ mov r7, r0 │ │ │ │ │ ldr r0, [r4, #16] │ │ │ │ │ + clz r6, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ialignment_of │ │ │ │ │ - ldr r1, [pc, #104] @ (ac ) │ │ │ │ │ - lsrs r6, r6, #5 │ │ │ │ │ + ldr r1, [pc, #124] @ (cc ) │ │ │ │ │ + mov.w r6, r6, lsr #5 │ │ │ │ │ mov r3, r7 │ │ │ │ │ - mov r2, r6 │ │ │ │ │ - add r1, pc │ │ │ │ │ str r0, [sp, #0] │ │ │ │ │ mov r0, r5 │ │ │ │ │ + mov r2, r6 │ │ │ │ │ + add r1, pc │ │ │ │ │ blx r8 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_print │ │ │ │ │ ldr r2, [r4, #4] │ │ │ │ │ - movs r3, #0 │ │ │ │ │ - str r3, [sp, #12] │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ ldr r2, [r2, #0] │ │ │ │ │ + str r3, [sp, #12] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - ble.n 84 │ │ │ │ │ - ldr r6, [pc, #72] @ (b0 ) │ │ │ │ │ + ble.n 98 │ │ │ │ │ + ldr r6, [pc, #88] @ (d0 ) │ │ │ │ │ add r6, pc │ │ │ │ │ add.w r3, r4, r3, lsl #2 │ │ │ │ │ mov r1, r6 │ │ │ │ │ mov r0, r5 │ │ │ │ │ ldr r2, [r3, #28] │ │ │ │ │ ldr r3, [r5, #0] │ │ │ │ │ blx r3 │ │ │ │ │ ldr r2, [r4, #4] │ │ │ │ │ ldr r3, [sp, #12] │ │ │ │ │ ldr r2, [r2, #0] │ │ │ │ │ - adds r3, #1 │ │ │ │ │ + add.w r3, r3, #1 │ │ │ │ │ str r3, [sp, #12] │ │ │ │ │ cmp r3, r2 │ │ │ │ │ - blt.n 68 │ │ │ │ │ - ldr r1, [pc, #44] @ (b4 ) │ │ │ │ │ + blt.n 7a │ │ │ │ │ + ldr r1, [pc, #56] @ (d4 ) │ │ │ │ │ mov r0, r5 │ │ │ │ │ - ldr r3, [r4, #20] │ │ │ │ │ + ldr r6, [r5, #0] │ │ │ │ │ ldr r2, [r4, #8] │ │ │ │ │ add r1, pc │ │ │ │ │ - ldr r6, [r5, #0] │ │ │ │ │ + ldr r3, [r4, #20] │ │ │ │ │ blx r6 │ │ │ │ │ - add r1, sp, #12 │ │ │ │ │ ldr r0, [r4, #24] │ │ │ │ │ + add r1, sp, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ - ldr r1, [pc, #28] @ (b8 ) │ │ │ │ │ - ldr r3, [r5, #0] │ │ │ │ │ + ldr r1, [pc, #40] @ (d8 ) │ │ │ │ │ mov r0, r5 │ │ │ │ │ + ldr r3, [r5, #0] │ │ │ │ │ ldr r2, [sp, #12] │ │ │ │ │ add r1, pc │ │ │ │ │ blx r3 │ │ │ │ │ add sp, #16 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, pc} │ │ │ │ │ - .word 0x00000060 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + ldmia.w sp!, {r8, pc} │ │ │ │ │ + nop │ │ │ │ │ + .word 0x0000006c │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ - .word 0x00000046 │ │ │ │ │ + .word 0x00000054 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x00000024 │ │ │ │ │ + .word 0x00000030 │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ - .word 0x00000012 │ │ │ │ │ + .word 0x0000001e │ │ │ │ │ R_ARM_REL32 .LC3 │ │ │ │ │ │ │ │ │ │ -000000bc : │ │ │ │ │ +000000dc : │ │ │ │ │ zero(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ + strd r4, r5, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r6, [r0, #12] │ │ │ │ │ + strd r6, lr, [sp, #8] │ │ │ │ │ sub sp, #8 │ │ │ │ │ - ldr r0, [r0, #24] │ │ │ │ │ + ldr r6, [r0, #12] │ │ │ │ │ add r1, sp, #4 │ │ │ │ │ + ldr r0, [r0, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ - ldr r5, [r4, #8] │ │ │ │ │ + ldrd r0, r5, [r4, #4] │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ ldr r2, [sp, #4] │ │ │ │ │ - movs r1, #0 │ │ │ │ │ - ldr r0, [r4, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_total_block │ │ │ │ │ mul.w r0, r5, r0 │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - ble.n ea │ │ │ │ │ - lsls r2, r0, #2 │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + ble.n 116 │ │ │ │ │ + mov.w r2, r0, lsl #2 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL memset │ │ │ │ │ add sp, #8 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ - nop │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + pop {r6, pc} │ │ │ │ │ │ │ │ │ │ -000000f0 : │ │ │ │ │ +00000120 : │ │ │ │ │ hash(): │ │ │ │ │ - push {r4, r5, lr} │ │ │ │ │ + str.w r4, [sp, #-12]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + strd r5, lr, [sp, #4] │ │ │ │ │ mov r5, r1 │ │ │ │ │ - ldr r1, [pc, #112] @ (168 ) │ │ │ │ │ sub sp, #12 │ │ │ │ │ + ldr r1, [pc, #124] @ (1ac ) │ │ │ │ │ mov r0, r5 │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_md5puts │ │ │ │ │ - mov r0, r5 │ │ │ │ │ ldrd r1, r3, [r4, #12] │ │ │ │ │ - subs r1, r1, r3 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ + sub.w r1, r1, r3 │ │ │ │ │ clz r1, r1 │ │ │ │ │ - lsrs r1, r1, #5 │ │ │ │ │ + mov.w r1, r1, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_md5int │ │ │ │ │ ldr r1, [r4, #4] │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_md5 │ │ │ │ │ ldr r1, [r4, #8] │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_md5INT │ │ │ │ │ ldr r2, [r4, #4] │ │ │ │ │ - movs r3, #0 │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ ldr r2, [r2, #0] │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - ble.n 14a │ │ │ │ │ + ble.n 188 │ │ │ │ │ add.w r3, r4, r3, lsl #2 │ │ │ │ │ mov r0, r5 │ │ │ │ │ ldr r1, [r3, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_md5int │ │ │ │ │ ldr r2, [r4, #4] │ │ │ │ │ ldr r3, [sp, #4] │ │ │ │ │ ldr r2, [r2, #0] │ │ │ │ │ - adds r3, #1 │ │ │ │ │ + add.w r3, r3, #1 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ cmp r3, r2 │ │ │ │ │ - blt.n 130 │ │ │ │ │ + blt.n 16c │ │ │ │ │ ldr r1, [r4, #20] │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_md5int │ │ │ │ │ - add r1, sp, #4 │ │ │ │ │ ldr r0, [r4, #24] │ │ │ │ │ + add r1, sp, #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #4] │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_md5int │ │ │ │ │ add sp, #12 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ - nop │ │ │ │ │ - .word 0x00000068 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + .word 0x00000076 │ │ │ │ │ R_ARM_REL32 .LC4 │ │ │ │ │ │ │ │ │ │ -0000016c : │ │ │ │ │ +000001b0 : │ │ │ │ │ fftwf_mpi_mkproblem_rdft(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ - mov fp, r0 │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + mov r8, r3 │ │ │ │ │ ldr r7, [r0, #0] │ │ │ │ │ - sub sp, #20 │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ mov sl, r1 │ │ │ │ │ - mov r1, sp │ │ │ │ │ - mov r8, r3 │ │ │ │ │ mov r9, r2 │ │ │ │ │ - ldr r0, [sp, #56] @ 0x38 │ │ │ │ │ - ldrd r4, r5, [sp, #60] @ 0x3c │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ + sub sp, #20 │ │ │ │ │ + mov fp, r0 │ │ │ │ │ + ldrd r0, r4, [sp, #56] @ 0x38 │ │ │ │ │ + mov r1, sp │ │ │ │ │ + ldr r5, [sp, #64] @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ + ldr r1, [pc, #264] @ (2e8 ) │ │ │ │ │ cmp r7, #0 │ │ │ │ │ - ldr r1, [pc, #236] @ (278 ) │ │ │ │ │ - ite gt │ │ │ │ │ + itet gt │ │ │ │ │ addgt r0, r7, #7 │ │ │ │ │ movle r0, #32 │ │ │ │ │ - add r1, pc │ │ │ │ │ - it gt │ │ │ │ │ lslgt r0, r0, #2 │ │ │ │ │ + add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkproblem │ │ │ │ │ - movs r1, #0 │ │ │ │ │ mov r7, r0 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_canonical │ │ │ │ │ ldr.w lr, [r0] │ │ │ │ │ - mov ip, r0 │ │ │ │ │ - cmp.w lr, #0 │ │ │ │ │ - strd r9, r8, [r7, #12] │ │ │ │ │ strd r0, sl, [r7, #4] │ │ │ │ │ + strd r9, r8, [r7, #12] │ │ │ │ │ + cmp.w lr, #0 │ │ │ │ │ it le │ │ │ │ │ - addle.w r8, r7, #24 │ │ │ │ │ - ble.n 216 │ │ │ │ │ + addle.w r1, r7, #24 │ │ │ │ │ + ble.n 270 │ │ │ │ │ add.w r3, lr, #4294967295 @ 0xffffffff │ │ │ │ │ cmp r3, #6 │ │ │ │ │ - bls.n 25e │ │ │ │ │ + bls.n 2ce │ │ │ │ │ add.w r2, r7, #28 │ │ │ │ │ - adds r3, r4, #4 │ │ │ │ │ + add.w r3, r4, #4 │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - beq.n 25e │ │ │ │ │ - mov.w r0, lr, lsr #1 │ │ │ │ │ + beq.n 2ce │ │ │ │ │ + mov.w ip, lr, lsr #1 │ │ │ │ │ mov r3, r4 │ │ │ │ │ - add.w r0, r4, r0, lsl #3 │ │ │ │ │ + add.w ip, r4, ip, lsl #3 │ │ │ │ │ ldrd r6, r1, [r3] │ │ │ │ │ - adds r3, #8 │ │ │ │ │ + add.w r3, r3, #8 │ │ │ │ │ + cmp r3, ip │ │ │ │ │ strd r6, r1, [r2] │ │ │ │ │ - cmp r3, r0 │ │ │ │ │ add.w r2, r2, #8 │ │ │ │ │ - bne.n 1dc │ │ │ │ │ + bne.n 230 │ │ │ │ │ bic.w r3, lr, #1 │ │ │ │ │ - add.w r8, r7, #24 │ │ │ │ │ - cmp lr, r3 │ │ │ │ │ - ittt ne │ │ │ │ │ + tst.w lr, #1 │ │ │ │ │ + itt ne │ │ │ │ │ ldrne.w r2, [r4, r3, lsl #2] │ │ │ │ │ addne.w r3, r7, r3, lsl #2 │ │ │ │ │ + add.w r1, r7, #24 │ │ │ │ │ + it ne │ │ │ │ │ strne r2, [r3, #28] │ │ │ │ │ ubfx r3, r5, #2, #1 │ │ │ │ │ cmp.w lr, #1 │ │ │ │ │ ite eq │ │ │ │ │ moveq r3, #0 │ │ │ │ │ andne.w r3, r3, #1 │ │ │ │ │ - cbnz r3, 228 │ │ │ │ │ + cbnz r3, 292 │ │ │ │ │ ldr r0, [sp, #56] @ 0x38 │ │ │ │ │ - mov r1, r8 │ │ │ │ │ str r5, [r7, #20] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_dup │ │ │ │ │ mov r0, r7 │ │ │ │ │ add sp, #20 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ - add.w r4, ip, #4 │ │ │ │ │ - add r3, sp, #4 │ │ │ │ │ - add.w ip, ip, #16 │ │ │ │ │ - ldr.w lr, [r7, #28] │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + ldrd r2, r3, [r0, #4] │ │ │ │ │ bic.w r5, r5, #4 │ │ │ │ │ - ldmia.w r4, {r0, r1, r2} │ │ │ │ │ - stmia.w r3, {r0, r1, r2} │ │ │ │ │ eor.w r5, r5, #8 │ │ │ │ │ - ldmia.w ip, {r0, r1, r2} │ │ │ │ │ - stmia.w r4, {r0, r1, r2} │ │ │ │ │ - ldmia.w r3, {r0, r1, r2} │ │ │ │ │ - stmia.w ip, {r0, r1, r2} │ │ │ │ │ + ldr.w ip, [r7, #28] │ │ │ │ │ + ldr.w lr, [r0, #12] │ │ │ │ │ + strd r2, r3, [sp, #4] │ │ │ │ │ + ldrd r2, r3, [r0, #16] │ │ │ │ │ + str.w lr, [sp, #12] │ │ │ │ │ + strd r2, r3, [r0, #4] │ │ │ │ │ + ldr r3, [r0, #24] │ │ │ │ │ + str r3, [r0, #12] │ │ │ │ │ + ldrd r2, r3, [sp, #4] │ │ │ │ │ + str.w lr, [r0, #24] │ │ │ │ │ + strd r2, r3, [r0, #16] │ │ │ │ │ ldr r3, [r7, #32] │ │ │ │ │ - strd r3, lr, [r7, #28] │ │ │ │ │ - b.n 216 │ │ │ │ │ - add.w r8, r7, #24 │ │ │ │ │ - add.w r1, r4, lr, lsl #2 │ │ │ │ │ - mov r3, r8 │ │ │ │ │ + strd r3, ip, [r7, #28] │ │ │ │ │ + b.n 270 │ │ │ │ │ + add.w r1, r7, #24 │ │ │ │ │ + add.w ip, r4, lr, lsl #2 │ │ │ │ │ + mov r3, r1 │ │ │ │ │ ldr.w r2, [r4], #4 │ │ │ │ │ + cmp r4, ip │ │ │ │ │ str.w r2, [r3, #4]! │ │ │ │ │ - cmp r4, r1 │ │ │ │ │ - bne.n 268 │ │ │ │ │ - b.n 204 │ │ │ │ │ + bne.n 2d8 │ │ │ │ │ + b.n 25e │ │ │ │ │ nop │ │ │ │ │ - .word 0x000000e2 │ │ │ │ │ + .word 0x000000fc │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -0000027c : │ │ │ │ │ +000002ec : │ │ │ │ │ fftwf_mpi_mkproblem_rdft_d(): │ │ │ │ │ - push {r4, r5, lr} │ │ │ │ │ - mov r5, r0 │ │ │ │ │ + str.w r4, [sp, #-12]! │ │ │ │ │ + strd r5, lr, [sp, #4] │ │ │ │ │ sub sp, #20 │ │ │ │ │ + mov r5, r0 │ │ │ │ │ ldr r4, [sp, #40] @ 0x28 │ │ │ │ │ str r4, [sp, #8] │ │ │ │ │ ldr r4, [sp, #36] @ 0x24 │ │ │ │ │ str r4, [sp, #4] │ │ │ │ │ ldr r4, [sp, #32] │ │ │ │ │ str r4, [sp, #0] │ │ │ │ │ - bl 16c │ │ │ │ │ + bl 1b0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkproblem_rdft │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, #20 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + nop │ │ │ ├── rdft-solve.o │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,10 +1,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftwf_mpi_rdft_solve(): │ │ │ │ │ - ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ ldrd r1, r2, [r1, #12] │ │ │ │ │ + ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ bx r3 │ │ │ ├── rdft2-serial.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 2140 (bytes into file) │ │ │ │ │ + Start of section headers: 2224 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 15 │ │ │ │ │ Section header string table index: 14 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,24 +1,24 @@ │ │ │ │ │ -There are 15 section headers, starting at offset 0x85c: │ │ │ │ │ +There are 15 section headers, starting at offset 0x8b0: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 000258 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0006f4 0000b8 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 00028c 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 00028c 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 00028c 00001a 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 0002a6 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 0007ac 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 0002b6 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 0007cc 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 0002c2 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 0002c2 000033 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 0002f8 000260 10 13 21 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 000558 00019b 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 0007d4 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0002ac 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000748 0000b8 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 0002e0 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 0002e0 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 0002e0 00001a 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 0002fa 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 000800 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 00030a 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 000820 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 000316 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000316 000033 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 00034c 000260 10 13 21 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 0005ac 00019b 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 000828 000087 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,25 +1,25 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 38 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ - 1: 00000001 26 FUNC LOCAL DEFAULT 1 apply_r2c │ │ │ │ │ + 1: 00000001 30 FUNC LOCAL DEFAULT 1 apply_r2c │ │ │ │ │ 2: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 3: 0000001d 28 FUNC LOCAL DEFAULT 1 apply_c2r │ │ │ │ │ + 3: 00000021 32 FUNC LOCAL DEFAULT 1 apply_c2r │ │ │ │ │ 4: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 5: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ - 6: 00000039 20 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 7: 00000048 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 8: 0000004c 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 9: 0000004d 6 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 10: 00000055 6 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 11: 0000005d 428 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 12: 000001fc 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 13: 00000208 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 14: 00000254 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 6: 00000041 20 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 7: 00000050 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 8: 00000054 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 9: 00000055 6 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 10: 0000005d 6 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 11: 00000065 492 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 12: 00000244 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 13: 00000250 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 14: 000002a8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 15: 00000000 0 SECTION LOCAL DEFAULT 6 .data.rel.ro │ │ │ │ │ 16: 00000000 0 NOTYPE LOCAL DEFAULT 6 $d │ │ │ │ │ 17: 00000000 16 OBJECT LOCAL DEFAULT 6 padt.0 │ │ │ │ │ 18: 00000000 0 SECTION LOCAL DEFAULT 8 .data.rel.ro.local │ │ │ │ │ 19: 00000000 0 NOTYPE LOCAL DEFAULT 8 $d │ │ │ │ │ 20: 00000000 12 OBJECT LOCAL DEFAULT 8 sadt.1 │ │ │ │ │ 21: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_plan_destroy_internal │ │ │ │ │ @@ -30,12 +30,12 @@ │ │ │ │ │ 26: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mktensor_1d │ │ │ │ │ 27: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mktensor_0d │ │ │ │ │ 28: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mkproblem_rdft2_d │ │ │ │ │ 29: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mkplan_d │ │ │ │ │ 30: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_any_true │ │ │ │ │ 31: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mkplan_rdft │ │ │ │ │ 32: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ops_cpy │ │ │ │ │ - 33: 00000209 46 FUNC GLOBAL DEFAULT 1 fftwf_mpi_rdft2_serial_applicable │ │ │ │ │ - 34: 00000239 32 FUNC GLOBAL DEFAULT 1 fftwf_mpi_rdft2_serial_register │ │ │ │ │ + 33: 00000251 56 FUNC GLOBAL DEFAULT 1 fftwf_mpi_rdft2_serial_applicable │ │ │ │ │ + 34: 00000289 36 FUNC GLOBAL DEFAULT 1 fftwf_mpi_rdft2_serial_register │ │ │ │ │ 35: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mksolver │ │ │ │ │ 36: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_solver_register │ │ │ │ │ 37: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_rdft2_solve │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,37 +1,37 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x6f4 contains 23 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x748 contains 23 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000048 00000503 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -00000074 0000170a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ -0000009e 0000180a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000000cc 0000190a R_ARM_THM_CALL 00000000 fftwf_mktensor │ │ │ │ │ -0000013e 00001a0a R_ARM_THM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ -00000154 00001b0a R_ARM_THM_CALL 00000000 fftwf_mktensor_0d │ │ │ │ │ -00000160 00001a0a R_ARM_THM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ -00000174 00001c0a R_ARM_THM_CALL 00000000 fftwf_mkproblem_rdft2_d │ │ │ │ │ -0000017c 00001d0a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -0000018a 00001e0a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -000001a2 00001f0a R_ARM_THM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ -000001b6 0000200a R_ARM_THM_CALL 00000000 fftwf_ops_cpy │ │ │ │ │ -000001ee 0000170a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ -000001fc 00000103 R_ARM_REL32 00000001 apply_r2c │ │ │ │ │ -00000200 00000f03 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -00000204 00000303 R_ARM_REL32 0000001d apply_c2r │ │ │ │ │ -00000216 0000170a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ -0000022a 0000170a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ -00000242 0000230a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -00000254 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -0000004e 0000151e R_ARM_THM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000056 0000161e R_ARM_THM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ -0000024e 0000241e R_ARM_THM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ +00000050 00000503 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +000000a0 0000170a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ +000000cc 0000180a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000000fe 0000190a R_ARM_THM_CALL 00000000 fftwf_mktensor │ │ │ │ │ +0000017a 00001a0a R_ARM_THM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ +00000190 00001b0a R_ARM_THM_CALL 00000000 fftwf_mktensor_0d │ │ │ │ │ +0000019e 00001a0a R_ARM_THM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ +000001b4 00001c0a R_ARM_THM_CALL 00000000 fftwf_mkproblem_rdft2_d │ │ │ │ │ +000001bc 00001d0a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +000001cc 00001e0a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +000001e6 00001f0a R_ARM_THM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ +000001fa 0000200a R_ARM_THM_CALL 00000000 fftwf_ops_cpy │ │ │ │ │ +00000236 0000170a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ +00000244 00000103 R_ARM_REL32 00000001 apply_r2c │ │ │ │ │ +00000248 00000f03 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +0000024c 00000303 R_ARM_REL32 00000021 apply_c2r │ │ │ │ │ +00000262 0000170a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ +0000027a 0000170a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local │ │ │ │ │ +00000296 0000230a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +000002a8 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +00000056 0000151e R_ARM_THM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +0000005e 0000161e R_ARM_THM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ +000002a4 0000241e R_ARM_THM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0x7ac contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0x800 contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000000 00002502 R_ARM_ABS32 00000000 fftwf_mpi_rdft2_solve │ │ │ │ │ -00000004 00000a02 R_ARM_ABS32 00000055 awake │ │ │ │ │ -00000008 00000602 R_ARM_ABS32 00000039 print │ │ │ │ │ -0000000c 00000902 R_ARM_ABS32 0000004d destroy │ │ │ │ │ +00000004 00000a02 R_ARM_ABS32 0000005d awake │ │ │ │ │ +00000008 00000602 R_ARM_ABS32 00000041 print │ │ │ │ │ +0000000c 00000902 R_ARM_ABS32 00000055 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0x7cc contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0x820 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000b02 R_ARM_ABS32 0000005d mkplan │ │ │ │ │ +00000004 00000b02 R_ARM_ABS32 00000065 mkplan │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,282 +1,287 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply_r2c(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r3, r2 │ │ │ │ │ - adds r4, r3, #4 │ │ │ │ │ - sub sp, #8 │ │ │ │ │ + add.w r4, r2, #4 │ │ │ │ │ ldrd r0, r2, [r0, #64] @ 0x40 │ │ │ │ │ + sub sp, #8 │ │ │ │ │ str r4, [sp, #0] │ │ │ │ │ - add.w r2, r1, r2, lsl #2 │ │ │ │ │ ldr r4, [r0, #56] @ 0x38 │ │ │ │ │ + add.w r2, r1, r2, lsl #2 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, #8 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -0000001c : │ │ │ │ │ +00000020 : │ │ │ │ │ apply_c2r(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ mov r3, r1 │ │ │ │ │ mov r1, r2 │ │ │ │ │ - sub sp, #8 │ │ │ │ │ - adds r4, r3, #4 │ │ │ │ │ ldrd r0, r2, [r0, #64] @ 0x40 │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ + add.w r4, r3, #4 │ │ │ │ │ + sub sp, #8 │ │ │ │ │ str r4, [sp, #0] │ │ │ │ │ - add.w r2, r1, r2, lsl #2 │ │ │ │ │ ldr r4, [r0, #56] @ 0x38 │ │ │ │ │ + add.w r2, r1, r2, lsl #2 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, #8 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ │ │ │ │ │ -00000038 : │ │ │ │ │ +00000040 : │ │ │ │ │ print(): │ │ │ │ │ mov r2, r0 │ │ │ │ │ - ldr r3, [r1, #0] │ │ │ │ │ mov r0, r1 │ │ │ │ │ - ldr r1, [pc, #8] @ (48 ) │ │ │ │ │ + ldr r1, [pc, #8] @ (50 ) │ │ │ │ │ + ldr r3, [r0, #0] │ │ │ │ │ ldr r2, [r2, #64] @ 0x40 │ │ │ │ │ add r1, pc │ │ │ │ │ bx r3 │ │ │ │ │ nop │ │ │ │ │ .word 0x00000002 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ -0000004c : │ │ │ │ │ +00000054 : │ │ │ │ │ destroy(): │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_plan_destroy_internal │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -00000054 : │ │ │ │ │ +0000005c : │ │ │ │ │ awake(): │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_plan_awake │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -0000005c : │ │ │ │ │ +00000064 : │ │ │ │ │ mkplan(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ ldr r1, [r1, #24] │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ sub sp, #44 @ 0x2c │ │ │ │ │ - cbz r1, 70 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + cbz r1, 9c │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add sp, #44 @ 0x2c │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mov r5, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.w 1ea │ │ │ │ │ + bne.w 230 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.n 68 │ │ │ │ │ - ldr r2, [r4, #20] │ │ │ │ │ - lsls r3, r3, #2 │ │ │ │ │ + bne.n 80 │ │ │ │ │ ldrd r7, r6, [r4, #12] │ │ │ │ │ + mov.w r3, r3, lsl #2 │ │ │ │ │ + ldr r2, [r4, #20] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - bne.w 1c2 │ │ │ │ │ + bne.w 202 │ │ │ │ │ + add r3, r7 │ │ │ │ │ add.w r8, r6, #4 │ │ │ │ │ - adds r3, r7, r3 │ │ │ │ │ str r3, [sp, #16] │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ add r1, sp, #36 @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.n 154 │ │ │ │ │ + bne.n 190 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - ble.n 154 │ │ │ │ │ + ble.n 190 │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #4 │ │ │ │ │ - beq.w 1e0 │ │ │ │ │ + beq.w 222 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.w 1d8 │ │ │ │ │ - movs r3, #2 │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + bne.w 218 │ │ │ │ │ + mov.w r3, #2 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ strd r3, r1, [sp, #24] │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr.w sl, [r3] │ │ │ │ │ mov r0, sl │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor │ │ │ │ │ - ldr r3, [r4, #8] │ │ │ │ │ add.w ip, sl, #4294967295 @ 0xffffffff │ │ │ │ │ - movs r2, #12 │ │ │ │ │ - str r3, [sp, #20] │ │ │ │ │ + add.w sl, sl, sl, lsl #1 │ │ │ │ │ mov r9, r0 │ │ │ │ │ - lsls r1, r3, #1 │ │ │ │ │ cmp.w ip, #0 │ │ │ │ │ - mul.w r3, r2, ip │ │ │ │ │ - mul.w lr, r2, sl │ │ │ │ │ - add r0, r3 │ │ │ │ │ - add.w sl, r9, lr │ │ │ │ │ - str r1, [r0, #12] │ │ │ │ │ - ldr r0, [r4, #4] │ │ │ │ │ - str.w r1, [sl, #-4] │ │ │ │ │ + mov.w lr, sl, lsl #2 │ │ │ │ │ + add.w sl, r0, lr │ │ │ │ │ + ldrd r0, r3, [r4, #4] │ │ │ │ │ + mov.w r1, r3, lsl #1 │ │ │ │ │ + str r3, [sp, #20] │ │ │ │ │ + add.w r3, ip, ip, lsl #1 │ │ │ │ │ + mov.w r3, r3, lsl #2 │ │ │ │ │ + add.w r2, r9, r3 │ │ │ │ │ add r3, r0 │ │ │ │ │ - it gt │ │ │ │ │ - addgt r0, lr │ │ │ │ │ ldr.w fp, [r3, #4] │ │ │ │ │ - it gt │ │ │ │ │ + itt gt │ │ │ │ │ + addgt r0, lr │ │ │ │ │ movgt r3, sl │ │ │ │ │ + str r1, [r2, #12] │ │ │ │ │ + str.w r1, [sl, #-4] │ │ │ │ │ add.w r2, fp, fp, lsr #31 │ │ │ │ │ mov.w r2, r2, asr #1 │ │ │ │ │ add.w r2, r2, #1 │ │ │ │ │ str.w r2, [sl, #-8] │ │ │ │ │ - ble.n 134 │ │ │ │ │ + ble.n 170 │ │ │ │ │ mul.w r1, r2, r1 │ │ │ │ │ - subs r0, #12 │ │ │ │ │ - strd r1, r1, [r3, #-16] │ │ │ │ │ subs.w ip, ip, #1 │ │ │ │ │ + sub.w r0, r0, #12 │ │ │ │ │ + strd r1, r1, [r3, #-16] │ │ │ │ │ sub.w r3, r3, #12 │ │ │ │ │ ldr.w r2, [r0, #-8] │ │ │ │ │ str.w r2, [r3, #-8] │ │ │ │ │ - bne.n 118 │ │ │ │ │ - ldrd r2, r1, [sp, #24] │ │ │ │ │ + bne.n 152 │ │ │ │ │ + ldrd r0, r2, [sp, #20] │ │ │ │ │ str.w fp, [sl, #-8] │ │ │ │ │ - ldr r0, [sp, #20] │ │ │ │ │ + ldr r1, [sp, #28] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor_1d │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ mov r1, r0 │ │ │ │ │ - strd r8, r3, [sp, #4] │ │ │ │ │ mov r2, r7 │ │ │ │ │ - ldr r3, [sp, #16] │ │ │ │ │ mov r0, r9 │ │ │ │ │ - str r6, [sp, #0] │ │ │ │ │ - b.n 174 │ │ │ │ │ + strd r6, r8, [sp] │ │ │ │ │ + str r3, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #16] │ │ │ │ │ + b.n 1b4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor_0d │ │ │ │ │ - movs r2, #0 │ │ │ │ │ - mov r1, r2 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ mov r7, r0 │ │ │ │ │ + mov r1, r2 │ │ │ │ │ mov r0, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor_1d │ │ │ │ │ - movs r3, #4 │ │ │ │ │ + mov.w r3, #4 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - strd r8, r3, [sp, #4] │ │ │ │ │ + strd r6, r8, [sp] │ │ │ │ │ mov r2, r6 │ │ │ │ │ - mov r3, r8 │ │ │ │ │ mov r0, r7 │ │ │ │ │ - str r6, [sp, #0] │ │ │ │ │ + str r3, [sp, #8] │ │ │ │ │ + mov r3, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkproblem_rdft2_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_d │ │ │ │ │ mov r6, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.w 68 │ │ │ │ │ + bne.w 80 │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ - cbnz r3, 1d2 │ │ │ │ │ - ldr r2, [pc, #96] @ (1fc ) │ │ │ │ │ + cbnz r3, 212 │ │ │ │ │ + ldr r2, [pc, #104] @ (244 ) │ │ │ │ │ add r2, pc │ │ │ │ │ - ldr r1, [pc, #96] @ (200 ) │ │ │ │ │ - movs r0, #72 @ 0x48 │ │ │ │ │ + ldr r1, [pc, #104] @ (248 ) │ │ │ │ │ + mov.w r0, #72 @ 0x48 │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_rdft │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ mov r5, r0 │ │ │ │ │ add.w r1, r0, #8 │ │ │ │ │ - str r6, [r0, #64] @ 0x40 │ │ │ │ │ - str r3, [r0, #68] @ 0x44 │ │ │ │ │ add.w r0, r6, #8 │ │ │ │ │ + strd r6, r3, [r5, #64] @ 0x40 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ops_cpy │ │ │ │ │ mov r0, r5 │ │ │ │ │ - add sp, #44 @ 0x2c │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ - adds r3, r6, r3 │ │ │ │ │ + b.n 84 │ │ │ │ │ + add r3, r6 │ │ │ │ │ + add.w r8, r7, #4 │ │ │ │ │ str r3, [sp, #16] │ │ │ │ │ mov r3, r7 │ │ │ │ │ - add.w r8, r7, #4 │ │ │ │ │ mov r7, r6 │ │ │ │ │ mov r6, r3 │ │ │ │ │ - b.n 9a │ │ │ │ │ - ldr r2, [pc, #48] @ (204 ) │ │ │ │ │ + b.n c8 │ │ │ │ │ + ldr r2, [pc, #56] @ (24c ) │ │ │ │ │ add r2, pc │ │ │ │ │ - b.n 19c │ │ │ │ │ - movs r3, #1 │ │ │ │ │ + b.n 1de │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ strd r3, r3, [sp, #24] │ │ │ │ │ - b.n c4 │ │ │ │ │ - movs r3, #1 │ │ │ │ │ - movs r2, #2 │ │ │ │ │ + b.n f6 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + mov.w r2, #2 │ │ │ │ │ strd r3, r2, [sp, #24] │ │ │ │ │ - b.n c4 │ │ │ │ │ + b.n f6 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.w 7e │ │ │ │ │ + beq.w aa │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ - b.n 84 │ │ │ │ │ - .word 0x0000005e │ │ │ │ │ + b.n b0 │ │ │ │ │ + .word 0x00000064 │ │ │ │ │ R_ARM_REL32 apply_r2c │ │ │ │ │ - .word 0x0000005c │ │ │ │ │ + .word 0x00000060 │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ - .word 0x0000002c │ │ │ │ │ + .word 0x00000034 │ │ │ │ │ R_ARM_REL32 apply_c2r │ │ │ │ │ │ │ │ │ │ -00000208 : │ │ │ │ │ +00000250 : │ │ │ │ │ fftwf_mpi_rdft2_serial_applicable(): │ │ │ │ │ ldr r1, [r0, #24] │ │ │ │ │ - cbz r1, 210 │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + cbz r1, 25a │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ bx lr │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_is_local │ │ │ │ │ - cbnz r0, 226 │ │ │ │ │ + cbnz r0, 274 │ │ │ │ │ ldr r0, [r4, #8] │ │ │ │ │ clz r0, r0 │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ - movs r1, #1 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_is_local │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n 21c │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + beq.n 268 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ - nop │ │ │ │ │ │ │ │ │ │ -00000238 : │ │ │ │ │ +00000288 : │ │ │ │ │ fftwf_mpi_rdft2_serial_register(): │ │ │ │ │ - ldr r1, [pc, #24] @ (254 ) │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + ldr r1, [pc, #28] @ (2a8 ) │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov.w r0, #8 │ │ │ │ │ add r1, pc │ │ │ │ │ - movs r0, #8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mksolver │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r4, lr} │ │ │ │ │ + ldrd r4, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_solver_register │ │ │ │ │ - nop │ │ │ │ │ - .word 0x00000012 │ │ │ │ │ + .word 0x00000010 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ ├── rdft2-rank-geq2.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 2912 (bytes into file) │ │ │ │ │ + Start of section headers: 3056 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 15 │ │ │ │ │ Section header string table index: 14 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,24 +1,24 @@ │ │ │ │ │ -There are 15 section headers, starting at offset 0xb60: │ │ │ │ │ +There are 15 section headers, starting at offset 0xbf0: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 000430 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000998 000118 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000464 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000464 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 000464 00002c 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 000490 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 000ab0 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 0004a0 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 000ad0 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 0004ac 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 0004ac 000033 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 0004e0 0002c0 10 13 23 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 0007a0 0001f8 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 000ad8 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0004c0 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000a28 000118 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 0004f4 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 0004f4 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 0004f4 00002c 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 000520 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 000b40 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 000530 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 000b60 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 00053c 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 00053c 000033 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 000570 0002c0 10 13 23 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 000830 0001f8 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 000b68 000087 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,27 +1,27 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 44 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ - 1: 00000001 60 FUNC LOCAL DEFAULT 1 apply_r2c │ │ │ │ │ + 1: 00000001 84 FUNC LOCAL DEFAULT 1 apply_r2c │ │ │ │ │ 2: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 3: 0000003d 38 FUNC LOCAL DEFAULT 1 apply_c2r │ │ │ │ │ + 3: 00000055 54 FUNC LOCAL DEFAULT 1 apply_c2r │ │ │ │ │ 4: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 5: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ 6: 00000004 0 NOTYPE LOCAL DEFAULT 5 .LC1 │ │ │ │ │ 7: 00000008 0 NOTYPE LOCAL DEFAULT 5 .LC2 │ │ │ │ │ - 8: 00000065 56 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 9: 00000090 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 10: 0000009c 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 11: 0000009d 20 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 12: 000000b1 816 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 13: 000003d4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 14: 000003e0 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 15: 000003e1 24 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 16: 0000042c 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 8: 0000008d 56 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 9: 000000b8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 10: 000000c4 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 11: 000000c5 24 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 12: 000000dd 884 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 13: 00000444 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 14: 00000450 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 15: 00000451 36 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 16: 000004bc 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 17: 00000000 0 SECTION LOCAL DEFAULT 6 .data.rel.ro │ │ │ │ │ 18: 00000000 0 NOTYPE LOCAL DEFAULT 6 $d │ │ │ │ │ 19: 00000000 16 OBJECT LOCAL DEFAULT 6 padt.0 │ │ │ │ │ 20: 00000000 0 SECTION LOCAL DEFAULT 8 .data.rel.ro.local │ │ │ │ │ 21: 00000000 0 NOTYPE LOCAL DEFAULT 8 $d │ │ │ │ │ 22: 00000000 12 OBJECT LOCAL DEFAULT 8 sadt.1 │ │ │ │ │ 23: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_plan_destroy_internal │ │ │ │ │ @@ -37,11 +37,11 @@ │ │ │ │ │ 33: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_any_true │ │ │ │ │ 34: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_mkdtensor │ │ │ │ │ 35: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_mkproblem_dft_d │ │ │ │ │ 36: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mkplan_rdft │ │ │ │ │ 37: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ops_add │ │ │ │ │ 38: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_rdft2_serial_applicable │ │ │ │ │ 39: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_plan_awake │ │ │ │ │ - 40: 000003f9 56 FUNC GLOBAL DEFAULT 1 fftwf_mpi_rdft2_rank_geq2_register │ │ │ │ │ + 40: 00000475 76 FUNC GLOBAL DEFAULT 1 fftwf_mpi_rdft2_rank_geq2_register │ │ │ │ │ 41: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mksolver │ │ │ │ │ 42: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_solver_register │ │ │ │ │ 43: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_rdft2_solve │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,49 +1,49 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x998 contains 35 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0xa28 contains 35 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000090 00000603 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ -00000094 00000703 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -00000098 00000503 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -000000a2 0000170a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000000ee 0000180a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ -000000fc 0000180a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ -00000144 0000190a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -0000014c 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000156 00001b0a R_ARM_THM_CALL 00000000 fftwf_mktensor │ │ │ │ │ -00000246 00001c0a R_ARM_THM_CALL 00000000 fftwf_tensor_sz │ │ │ │ │ -00000272 00001d0a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -000002a0 00001e0a R_ARM_THM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ -000002b8 00001f0a R_ARM_THM_CALL 00000000 fftwf_mkproblem_rdft2_d │ │ │ │ │ -000002c0 0000200a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -000002ce 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -000002d8 0000220a R_ARM_THM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ -00000314 0000230a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_dft_d │ │ │ │ │ -0000031c 0000200a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -0000032a 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -00000340 0000240a R_ARM_THM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ -00000368 0000250a R_ARM_THM_CALL 00000000 fftwf_ops_add │ │ │ │ │ -0000038c 0000170a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000392 0000170a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000003c6 0000260a R_ARM_THM_CALL 00000000 fftwf_mpi_rdft2_serial_applicable │ │ │ │ │ -000003d4 00000103 R_ARM_REL32 00000001 apply_r2c │ │ │ │ │ -000003d8 00001103 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -000003dc 00000303 R_ARM_REL32 0000003d apply_c2r │ │ │ │ │ -000003e8 0000270a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -00000404 0000290a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -00000410 00002a0a R_ARM_THM_CALL 00000000 fftwf_solver_register │ │ │ │ │ -00000418 0000290a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -0000042c 00001403 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -000000ac 0000171e R_ARM_THM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000003f4 0000271e R_ARM_THM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ -00000428 00002a1e R_ARM_THM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ +000000b8 00000603 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ +000000bc 00000703 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +000000c0 00000503 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +000000cc 0000170a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000142 0000180a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ +00000152 0000180a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ +0000019a 0000190a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000001a2 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000001ae 00001b0a R_ARM_THM_CALL 00000000 fftwf_mktensor │ │ │ │ │ +000002a8 00001c0a R_ARM_THM_CALL 00000000 fftwf_tensor_sz │ │ │ │ │ +000002d8 00001d0a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +00000308 00001e0a R_ARM_THM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ +00000320 00001f0a R_ARM_THM_CALL 00000000 fftwf_mkproblem_rdft2_d │ │ │ │ │ +00000328 0000200a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +00000338 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +00000344 0000220a R_ARM_THM_CALL 00000000 fftwf_mpi_mkdtensor │ │ │ │ │ +0000037c 0000230a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_dft_d │ │ │ │ │ +00000384 0000200a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +00000394 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +000003ac 0000240a R_ARM_THM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ +000003d4 0000250a R_ARM_THM_CALL 00000000 fftwf_ops_add │ │ │ │ │ +000003f2 0000170a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +000003f8 0000170a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000436 0000260a R_ARM_THM_CALL 00000000 fftwf_mpi_rdft2_serial_applicable │ │ │ │ │ +00000444 00000103 R_ARM_REL32 00000001 apply_r2c │ │ │ │ │ +00000448 00001103 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +0000044c 00000303 R_ARM_REL32 00000055 apply_c2r │ │ │ │ │ +0000045e 0000270a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +00000488 0000290a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +00000496 00002a0a R_ARM_THM_CALL 00000000 fftwf_solver_register │ │ │ │ │ +000004a0 0000290a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +000004bc 00001403 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +000000d8 0000171e R_ARM_THM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000470 0000271e R_ARM_THM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ +000004b8 00002a1e R_ARM_THM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0xab0 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0xb40 contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000000 00002b02 R_ARM_ABS32 00000000 fftwf_mpi_rdft2_solve │ │ │ │ │ -00000004 00000f02 R_ARM_ABS32 000003e1 awake │ │ │ │ │ -00000008 00000802 R_ARM_ABS32 00000065 print │ │ │ │ │ -0000000c 00000b02 R_ARM_ABS32 0000009d destroy │ │ │ │ │ +00000004 00000f02 R_ARM_ABS32 00000451 awake │ │ │ │ │ +00000008 00000802 R_ARM_ABS32 0000008d print │ │ │ │ │ +0000000c 00000b02 R_ARM_ABS32 000000c5 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0xad0 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0xb60 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000c02 R_ARM_ABS32 000000b1 mkplan │ │ │ │ │ +00000004 00000c02 R_ARM_ABS32 000000dd mkplan │ │ │ │ ├── strings --all --bytes=8 {} │ │ │ │ │ @@ -1,8 +1,7 @@ │ │ │ │ │ -'JzD'IP yD │ │ │ │ │ (mpi-rdft2-rank-geq2%s%(%p%)%(%p%)) │ │ │ │ │ apply_r2c │ │ │ │ │ apply_c2r │ │ │ │ │ fftwf_plan_destroy_internal │ │ │ │ │ fftwf_mpi_is_local_after │ │ │ │ │ MPI_Comm_rank │ │ │ │ │ MPI_Comm_size │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,461 +1,476 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply_r2c(): │ │ │ │ │ - push {r4, r5, r6, r7, lr} │ │ │ │ │ + str.w r4, [sp, #-20]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - mov r6, r2 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + mov r6, r2 │ │ │ │ │ + ldrd r2, r3, [r4, #72] @ 0x48 │ │ │ │ │ + strd r7, lr, [sp, #12] │ │ │ │ │ sub sp, #12 │ │ │ │ │ - ldr r3, [r4, #76] @ 0x4c │ │ │ │ │ - ldr r2, [r4, #72] @ 0x48 │ │ │ │ │ ldr r7, [r0, #56] @ 0x38 │ │ │ │ │ add.w r2, r1, r2, lsl #2 │ │ │ │ │ - cbz r3, 30 │ │ │ │ │ + cbz r3, 46 │ │ │ │ │ + add.w r3, r6, #4 │ │ │ │ │ mov r5, r6 │ │ │ │ │ - adds r3, r6, #4 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ mov r3, r6 │ │ │ │ │ blx r7 │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r2, r6 │ │ │ │ │ mov r1, r5 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ add sp, #12 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, lr} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + ldr.w lr, [sp], #4 │ │ │ │ │ bx r3 │ │ │ │ │ - adds r3, r1, #4 │ │ │ │ │ + add.w r3, r1, #4 │ │ │ │ │ + mov r5, r1 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ mov r3, r1 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ blx r7 │ │ │ │ │ - b.n 20 │ │ │ │ │ + b.n 2c │ │ │ │ │ │ │ │ │ │ -0000003c : │ │ │ │ │ +00000054 : │ │ │ │ │ apply_c2r(): │ │ │ │ │ - push {r4, r5, lr} │ │ │ │ │ + str.w r4, [sp, #-12]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #68] @ 0x44 │ │ │ │ │ + strd r5, lr, [sp, #4] │ │ │ │ │ sub sp, #12 │ │ │ │ │ mov r5, r2 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ + add.w r3, r5, #4 │ │ │ │ │ + mov r1, r5 │ │ │ │ │ ldr r2, [r4, #72] @ 0x48 │ │ │ │ │ - adds r3, r5, #4 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ - mov r1, r5 │ │ │ │ │ mov r3, r5 │ │ │ │ │ ldr r4, [r0, #56] @ 0x38 │ │ │ │ │ add.w r2, r5, r2, lsl #2 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, #12 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -00000064 : │ │ │ │ │ +0000008c : │ │ │ │ │ print(): │ │ │ │ │ mov r3, r0 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r0, r1 │ │ │ │ │ - ldr r4, [r1, #0] │ │ │ │ │ - sub sp, #8 │ │ │ │ │ ldr r2, [r3, #76] @ 0x4c │ │ │ │ │ + sub sp, #8 │ │ │ │ │ + ldr r4, [r1, #0] │ │ │ │ │ cmp r2, #2 │ │ │ │ │ - beq.n 88 │ │ │ │ │ - ldr r2, [pc, #24] @ (90 ) │ │ │ │ │ + beq.n b2 │ │ │ │ │ + ldr r2, [pc, #24] @ (b8 ) │ │ │ │ │ add r2, pc │ │ │ │ │ ldr r1, [r3, #68] @ 0x44 │ │ │ │ │ str r1, [sp, #0] │ │ │ │ │ - ldr r1, [pc, #20] @ (94 ) │ │ │ │ │ + ldr r1, [pc, #20] @ (bc ) │ │ │ │ │ ldr r3, [r3, #64] @ 0x40 │ │ │ │ │ add r1, pc │ │ │ │ │ blx r4 │ │ │ │ │ add sp, #8 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ - ldr r2, [pc, #12] @ (98 ) │ │ │ │ │ + ldr r2, [pc, #12] @ (c0 ) │ │ │ │ │ add r2, pc │ │ │ │ │ - b.n 78 │ │ │ │ │ - nop │ │ │ │ │ - .word 0x00000016 │ │ │ │ │ + b.n a2 │ │ │ │ │ + .word 0x00000014 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x00000010 │ │ │ │ │ + .word 0x0000000e │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ - .word 0x0000000a │ │ │ │ │ + .word 0x00000008 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ -0000009c : │ │ │ │ │ +000000c4 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - ldmia.w sp!, {r4, lr} │ │ │ │ │ + ldrd r4, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_plan_destroy_internal │ │ │ │ │ │ │ │ │ │ -000000b0 : │ │ │ │ │ +000000dc : │ │ │ │ │ mkplan(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ ldr r1, [r1, #4] │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ sub sp, #52 @ 0x34 │ │ │ │ │ ldr r3, [r1, #0] │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - ble.n c4 │ │ │ │ │ + ble.n 100 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ - cbz r3, cc │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + cbz r3, 11c │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add sp, #52 @ 0x34 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldr r3, [r0, #8] │ │ │ │ │ mov r7, r0 │ │ │ │ │ mov r6, r2 │ │ │ │ │ - cbz r3, ea │ │ │ │ │ + cbz r3, 13a │ │ │ │ │ ldr.w r3, [r2, #164] @ 0xa4 │ │ │ │ │ - lsls r0, r3, #19 │ │ │ │ │ - bmi.n c4 │ │ │ │ │ + lsls r3, r3, #19 │ │ │ │ │ + bmi.n 100 │ │ │ │ │ ldrd r2, r3, [r4, #12] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - beq.n c4 │ │ │ │ │ + beq.n 100 │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.n c4 │ │ │ │ │ - movs r2, #0 │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + bne.n 100 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n c4 │ │ │ │ │ - movs r2, #1 │ │ │ │ │ + beq.n 100 │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ ldr r1, [r4, #4] │ │ │ │ │ mov r0, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n c4 │ │ │ │ │ + beq.n 100 │ │ │ │ │ ldr.w r3, [r6, #164] @ 0xa4 │ │ │ │ │ - lsls r2, r3, #28 │ │ │ │ │ - bmi.w 3c4 │ │ │ │ │ - ldr r2, [r4, #20] │ │ │ │ │ - ldr r3, [r4, #8] │ │ │ │ │ - ldrd sl, r8, [r4, #12] │ │ │ │ │ - lsls r3, r3, #2 │ │ │ │ │ + lsls r5, r3, #28 │ │ │ │ │ + bmi.w 434 │ │ │ │ │ + ldrd r3, sl, [r4, #8] │ │ │ │ │ + ldrd r8, r2, [r4, #16] │ │ │ │ │ + mov.w r3, r3, lsl #2 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - bne.w 374 │ │ │ │ │ + bne.w 3dc │ │ │ │ │ add.w fp, sl, r3 │ │ │ │ │ ldr r3, [r7, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.w 398 │ │ │ │ │ + bne.w 3fe │ │ │ │ │ ldr.w r3, [r6, #164] @ 0xa4 │ │ │ │ │ - lsls r3, r3, #19 │ │ │ │ │ - bmi.w 398 │ │ │ │ │ + lsls r0, r3, #19 │ │ │ │ │ + bmi.w 3fe │ │ │ │ │ add.w r3, sl, #4 │ │ │ │ │ - str.w sl, [sp, #20] │ │ │ │ │ - strd sl, r3, [sp, #24] │ │ │ │ │ - add r1, sp, #40 @ 0x28 │ │ │ │ │ + strd sl, sl, [sp, #16] │ │ │ │ │ + str r3, [sp, #24] │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + add r1, sp, #40 @ 0x28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ - add r1, sp, #44 @ 0x2c │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + add r1, sp, #44 @ 0x2c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r0, [r3, #0] │ │ │ │ │ - subs r0, #1 │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor │ │ │ │ │ - ldr.w r9, [r4, #4] │ │ │ │ │ + ldrd r9, r2, [r4, #4] │ │ │ │ │ mov r5, r0 │ │ │ │ │ - movs r0, #12 │ │ │ │ │ - ldr r2, [r4, #8] │ │ │ │ │ ldr.w lr, [r9] │ │ │ │ │ - sub.w r3, lr, #2 │ │ │ │ │ - lsls r2, r2, #1 │ │ │ │ │ - mla r3, r0, r3, r5 │ │ │ │ │ - str r2, [r3, #12] │ │ │ │ │ - mul.w r3, r0, lr │ │ │ │ │ - adds r1, r5, r3 │ │ │ │ │ - str.w r2, [r1, #-16] │ │ │ │ │ - add.w r2, lr, #4294967295 @ 0xffffffff │ │ │ │ │ - mla r2, r0, r2, r9 │ │ │ │ │ + mov.w r2, r2, lsl #1 │ │ │ │ │ + add.w r3, lr, lr, lsl #1 │ │ │ │ │ + add.w r3, r0, r3, lsl #2 │ │ │ │ │ subs.w r0, lr, #3 │ │ │ │ │ - ldr r2, [r2, #4] │ │ │ │ │ + str.w r2, [r3, #-12] │ │ │ │ │ + add.w r3, lr, lr, lsl #1 │ │ │ │ │ + mov.w r3, r3, lsl #2 │ │ │ │ │ + add.w r1, r5, r3 │ │ │ │ │ + str.w r2, [r1, #-16] │ │ │ │ │ + add.w r2, lr, lr, lsl #1 │ │ │ │ │ + add.w r2, r9, r2, lsl #2 │ │ │ │ │ + ldr.w r2, [r2, #-8] │ │ │ │ │ add.w r2, r2, r2, lsr #31 │ │ │ │ │ mov.w r2, r2, asr #1 │ │ │ │ │ add.w r2, r2, #1 │ │ │ │ │ str.w r2, [r1, #-20] │ │ │ │ │ - bmi.n 244 │ │ │ │ │ + bmi.n 2a6 │ │ │ │ │ + cmp.w lr, #4 │ │ │ │ │ sub.w r2, r3, #16 │ │ │ │ │ sub.w r1, r3, #20 │ │ │ │ │ - cmp.w lr, #4 │ │ │ │ │ - ble.w 3c0 │ │ │ │ │ + ble.w 430 │ │ │ │ │ ldr.w ip, [r5, r1] │ │ │ │ │ sub.w lr, lr, #5 │ │ │ │ │ add.w r1, r9, r3 │ │ │ │ │ + sub.w r3, r3, #28 │ │ │ │ │ + and.w lr, lr, #1 │ │ │ │ │ + str.w r9, [sp, #28] │ │ │ │ │ ldr r2, [r5, r2] │ │ │ │ │ - subs r3, #28 │ │ │ │ │ - str.w r9, [sp, #16] │ │ │ │ │ - add r3, r5 │ │ │ │ │ mov r9, r4 │ │ │ │ │ - and.w lr, lr, #1 │ │ │ │ │ + add r3, r5 │ │ │ │ │ mov r4, ip │ │ │ │ │ mov ip, r5 │ │ │ │ │ ldr.w r5, [r1, #-20] │ │ │ │ │ mul.w r2, r4, r2 │ │ │ │ │ - strd r2, r2, [r3] │ │ │ │ │ - subs r0, #2 │ │ │ │ │ - str.w r5, [r3, #-4] │ │ │ │ │ - subs r1, #24 │ │ │ │ │ + sub.w r0, r0, #2 │ │ │ │ │ cmp r0, lr │ │ │ │ │ - ldr.w r4, [r1, #-8] │ │ │ │ │ + sub.w r1, r1, #24 │ │ │ │ │ + strd r5, r2, [r3, #-4] │ │ │ │ │ + str r2, [r3, #4] │ │ │ │ │ mul.w r2, r5, r2 │ │ │ │ │ - str.w r4, [r3, #-16] │ │ │ │ │ - strd r2, r2, [r3, #-12] │ │ │ │ │ + ldr.w r4, [r1, #-8] │ │ │ │ │ + strd r4, r2, [r3, #-16] │ │ │ │ │ sub.w r3, r3, #24 │ │ │ │ │ - bne.n 1ce │ │ │ │ │ + str r2, [r3, #16] │ │ │ │ │ + bne.n 230 │ │ │ │ │ mov r4, r9 │ │ │ │ │ - ldr.w r9, [sp, #16] │ │ │ │ │ + ldr.w r9, [sp, #28] │ │ │ │ │ mov r5, ip │ │ │ │ │ - movs r0, #12 │ │ │ │ │ - mul.w r3, r0, lr │ │ │ │ │ + add.w r3, lr, lr, lsl #1 │ │ │ │ │ + add.w ip, lr, #4294967295 @ 0xffffffff │ │ │ │ │ + mov.w r3, r3, lsl #2 │ │ │ │ │ add r9, r3 │ │ │ │ │ add r3, r5 │ │ │ │ │ ldrd r2, r1, [r3, #16] │ │ │ │ │ - ldr.w ip, [r9, #16] │ │ │ │ │ - str.w ip, [r3, #4] │ │ │ │ │ + ldr.w r0, [r9, #16] │ │ │ │ │ mul.w r2, r1, r2 │ │ │ │ │ - add.w r1, lr, #4294967295 @ 0xffffffff │ │ │ │ │ - strd r2, r2, [r3, #8] │ │ │ │ │ - str r1, [sp, #16] │ │ │ │ │ + strd r0, r2, [r3, #4] │ │ │ │ │ + str r2, [r3, #12] │ │ │ │ │ cmp.w lr, #0 │ │ │ │ │ - beq.n 244 │ │ │ │ │ + beq.n 2a6 │ │ │ │ │ ldr.w r1, [r9, #4] │ │ │ │ │ - mul.w r2, ip, r2 │ │ │ │ │ + mul.w r2, r0, r2 │ │ │ │ │ str.w r1, [r3, #-8] │ │ │ │ │ - ldr r1, [sp, #16] │ │ │ │ │ - mla r1, r0, r1, r5 │ │ │ │ │ + add.w r1, ip, ip, lsl #1 │ │ │ │ │ + add.w r1, r5, r1, lsl #2 │ │ │ │ │ str r2, [r1, #12] │ │ │ │ │ str.w r2, [r3, #-4] │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_tensor_sz │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ str r0, [sp, #36] @ 0x24 │ │ │ │ │ cmp r3, #4 │ │ │ │ │ - beq.w 3a8 │ │ │ │ │ + beq.w 40c │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.w 3ba │ │ │ │ │ - movs r3, #1 │ │ │ │ │ - movs r2, #2 │ │ │ │ │ - str r2, [sp, #32] │ │ │ │ │ + bne.w 426 │ │ │ │ │ + mov.w r3, #2 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ + strd r3, r1, [sp, #28] │ │ │ │ │ ldrd r2, r1, [r5, #4] │ │ │ │ │ - str r3, [sp, #16] │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mul.w r9, r1, r2 │ │ │ │ │ ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ ldrd r0, r1, [r0, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ - ldr r2, [r4, #4] │ │ │ │ │ - mov.w lr, #12 │ │ │ │ │ - ldr r3, [sp, #32] │ │ │ │ │ - ldr r1, [r2, #0] │ │ │ │ │ - sub.w ip, r1, #2 │ │ │ │ │ - subs r1, #1 │ │ │ │ │ - mla r2, lr, r1, r2 │ │ │ │ │ - mov r1, r9 │ │ │ │ │ - mla ip, lr, ip, r5 │ │ │ │ │ - ldr r2, [r2, #4] │ │ │ │ │ - str.w r2, [ip, #4] │ │ │ │ │ + ldr r3, [r4, #4] │ │ │ │ │ + ldr r2, [r3, #0] │ │ │ │ │ + sub.w r1, r2, #2 │ │ │ │ │ + add.w r2, r2, r2, lsl #1 │ │ │ │ │ + add.w r1, r1, r1, lsl #1 │ │ │ │ │ + add.w ip, r3, r2, lsl #2 │ │ │ │ │ + ldr r3, [sp, #28] │ │ │ │ │ + add.w r1, r5, r1, lsl #2 │ │ │ │ │ + ldr.w r2, [ip, #-8] │ │ │ │ │ + str r2, [r1, #4] │ │ │ │ │ mov r2, r9 │ │ │ │ │ + mov r1, r9 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - ldr r3, [sp, #16] │ │ │ │ │ + ldr r3, [sp, #32] │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor_2d │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ - str r3, [sp, #8] │ │ │ │ │ mov r1, r0 │ │ │ │ │ - ldr r3, [sp, #28] │ │ │ │ │ mov r0, r5 │ │ │ │ │ - str r3, [sp, #4] │ │ │ │ │ + ldr r2, [sp, #16] │ │ │ │ │ + str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ - ldr r2, [sp, #20] │ │ │ │ │ + str r3, [sp, #4] │ │ │ │ │ + ldr r3, [sp, #20] │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ mov r3, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkproblem_rdft2_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_d │ │ │ │ │ mov r9, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.n 386 │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + bne.n 3ec │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkdtensor │ │ │ │ │ - ldr r3, [r4, #4] │ │ │ │ │ - add.w ip, r0, #4 │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - adds r3, #4 │ │ │ │ │ - ldmia.w r3, {r0, r1, r2} │ │ │ │ │ - stmia.w ip, {r0, r1, r2} │ │ │ │ │ - ldr r2, [r4, #20] │ │ │ │ │ + ldr r5, [r4, #4] │ │ │ │ │ + ldr r3, [r4, #28] │ │ │ │ │ + ldrd r1, r2, [r5, #4] │ │ │ │ │ + strd r1, r2, [r0, #4] │ │ │ │ │ + ldr r2, [r5, #12] │ │ │ │ │ + mov.w r5, #16 │ │ │ │ │ ldr r1, [r4, #8] │ │ │ │ │ - movs r0, #16 │ │ │ │ │ + str r2, [r0, #12] │ │ │ │ │ + ldr r2, [r4, #20] │ │ │ │ │ + str r5, [sp, #8] │ │ │ │ │ + ldr r5, [sp, #36] @ 0x24 │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - ldr r3, [r4, #28] │ │ │ │ │ ite ne │ │ │ │ │ movne r2, #1 │ │ │ │ │ moveq.w r2, #4294967295 @ 0xffffffff │ │ │ │ │ - strd r2, r0, [sp, #4] │ │ │ │ │ - mov r2, sl │ │ │ │ │ - ldr r0, [sp, #36] @ 0x24 │ │ │ │ │ - str r3, [sp, #0] │ │ │ │ │ + mul.w r5, r1, r5 │ │ │ │ │ + strd r3, r2, [sp] │ │ │ │ │ mov r3, r8 │ │ │ │ │ - mul.w r0, r1, r0 │ │ │ │ │ - mov r1, r0 │ │ │ │ │ - mov r0, r5 │ │ │ │ │ + mov r2, sl │ │ │ │ │ + mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_d │ │ │ │ │ mov r8, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_any_true │ │ │ │ │ - cbnz r0, 38a │ │ │ │ │ + cbnz r0, 3f0 │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.n 3b4 │ │ │ │ │ - ldr r2, [pc, #156] @ (3d4 ) │ │ │ │ │ + bne.n 420 │ │ │ │ │ + ldr r2, [pc, #160] @ (444 ) │ │ │ │ │ add r2, pc │ │ │ │ │ - ldr r1, [pc, #156] @ (3d8 ) │ │ │ │ │ - movs r0, #80 @ 0x50 │ │ │ │ │ + ldr r1, [pc, #160] @ (448 ) │ │ │ │ │ + mov.w r0, #80 @ 0x50 │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_rdft │ │ │ │ │ ldr r3, [r7, #8] │ │ │ │ │ mov r5, r0 │ │ │ │ │ strd r9, r8, [r0, #64] @ 0x40 │ │ │ │ │ - cbnz r3, 3b0 │ │ │ │ │ + cbnz r3, 41a │ │ │ │ │ ldr.w r3, [r6, #164] @ 0xa4 │ │ │ │ │ and.w r3, r3, #4096 @ 0x1000 │ │ │ │ │ str r3, [r5, #76] @ 0x4c │ │ │ │ │ add.w r0, r9, #8 │ │ │ │ │ - ldr r3, [r4, #8] │ │ │ │ │ add.w r2, r5, #8 │ │ │ │ │ + ldr r3, [r4, #8] │ │ │ │ │ add.w r1, r8, #8 │ │ │ │ │ str r3, [r5, #72] @ 0x48 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ops_add │ │ │ │ │ mov r0, r5 │ │ │ │ │ - add sp, #52 @ 0x34 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b.n 104 │ │ │ │ │ add.w fp, r8, r3 │ │ │ │ │ - str.w r8, [sp, #20] │ │ │ │ │ add.w r3, r8, #4 │ │ │ │ │ - strd r8, r3, [sp, #24] │ │ │ │ │ - b.n 140 │ │ │ │ │ + strd r8, r8, [sp, #16] │ │ │ │ │ + str r3, [sp, #24] │ │ │ │ │ + b.n 196 │ │ │ │ │ mov.w r8, #0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ - b.n c4 │ │ │ │ │ + b.n 100 │ │ │ │ │ add.w r3, r8, #4 │ │ │ │ │ - str.w sl, [sp, #20] │ │ │ │ │ - strd r8, r3, [sp, #24] │ │ │ │ │ + strd sl, r8, [sp, #16] │ │ │ │ │ mov sl, r8 │ │ │ │ │ - b.n 140 │ │ │ │ │ - movs r2, #1 │ │ │ │ │ - movs r3, #2 │ │ │ │ │ - str r2, [sp, #32] │ │ │ │ │ - b.n 260 │ │ │ │ │ - movs r3, #2 │ │ │ │ │ - b.n 356 │ │ │ │ │ - ldr r2, [pc, #36] @ (3dc ) │ │ │ │ │ + str r3, [sp, #24] │ │ │ │ │ + b.n 196 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + mov.w r2, #2 │ │ │ │ │ + strd r3, r2, [sp, #28] │ │ │ │ │ + b.n 2c8 │ │ │ │ │ + mov.w r3, #2 │ │ │ │ │ + b.n 3c2 │ │ │ │ │ + ldr r2, [pc, #40] @ (44c ) │ │ │ │ │ add r2, pc │ │ │ │ │ - b.n 33a │ │ │ │ │ - movs r3, #1 │ │ │ │ │ - str r3, [sp, #32] │ │ │ │ │ - b.n 260 │ │ │ │ │ + b.n 3a4 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + strd r3, r3, [sp, #28] │ │ │ │ │ + b.n 2c8 │ │ │ │ │ mov lr, r0 │ │ │ │ │ - b.n 202 │ │ │ │ │ + b.n 264 │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_rdft2_serial_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.w 10e │ │ │ │ │ - b.n c4 │ │ │ │ │ + beq.w 164 │ │ │ │ │ + b.n 100 │ │ │ │ │ nop │ │ │ │ │ - .word 0x00000098 │ │ │ │ │ + .word 0x0000009e │ │ │ │ │ R_ARM_REL32 apply_r2c │ │ │ │ │ - .word 0x00000096 │ │ │ │ │ + .word 0x0000009a │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ - .word 0x00000022 │ │ │ │ │ + .word 0x00000026 │ │ │ │ │ R_ARM_REL32 apply_c2r │ │ │ │ │ │ │ │ │ │ -000003e0 : │ │ │ │ │ +00000450 : │ │ │ │ │ awake(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ + mov r5, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_awake │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, lr} │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + ldrd r5, lr, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_plan_awake │ │ │ │ │ │ │ │ │ │ -000003f8 : │ │ │ │ │ +00000474 : │ │ │ │ │ fftwf_mpi_rdft2_rank_geq2_register(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r5, [pc, #44] @ (42c ) │ │ │ │ │ - movs r0, #12 │ │ │ │ │ + mov.w r0, #12 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ + ldr r5, [pc, #56] @ (4bc ) │ │ │ │ │ add r5, pc │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mksolver │ │ │ │ │ - movs r3, #0 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ + str r3, [r1, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_solver_register │ │ │ │ │ mov r1, r5 │ │ │ │ │ - movs r0, #12 │ │ │ │ │ + mov.w r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mksolver │ │ │ │ │ - movs r3, #1 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + ldrd r5, lr, [sp, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, lr} │ │ │ │ │ + str r3, [r1, #8] │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + add sp, #16 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_solver_register │ │ │ │ │ - .word 0x00000028 │ │ │ │ │ + .word 0x00000034 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ ├── rdft2-rank-geq2-transposed.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 3568 (bytes into file) │ │ │ │ │ + Start of section headers: 3780 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 15 │ │ │ │ │ Section header string table index: 14 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,24 +1,24 @@ │ │ │ │ │ -There are 15 section headers, starting at offset 0xdf0: │ │ │ │ │ +There are 15 section headers, starting at offset 0xec4: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 0005f8 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 000bc8 000178 08 I 12 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 00062c 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 00062c 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 00062c 00003d 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro PROGBITS 00000000 000669 000010 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro REL 00000000 000d40 000020 08 I 12 6 4 │ │ │ │ │ - [ 8] .data.rel.ro.local PROGBITS 00000000 000679 00000c 00 WA 0 0 4 │ │ │ │ │ - [ 9] .rel.data.rel.ro.local REL 00000000 000d60 000008 08 I 12 8 4 │ │ │ │ │ - [10] .note.GNU-stack PROGBITS 00000000 000685 000000 00 0 0 1 │ │ │ │ │ - [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000685 000033 00 0 0 1 │ │ │ │ │ - [12] .symtab SYMTAB 00000000 0006b8 0002e0 10 13 23 4 │ │ │ │ │ - [13] .strtab STRTAB 00000000 000998 00022f 00 0 0 1 │ │ │ │ │ - [14] .shstrtab STRTAB 00000000 000d68 000087 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 0006cc 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000c9c 000178 08 I 12 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 000700 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 000700 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 000700 00003d 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro PROGBITS 00000000 00073d 000010 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro REL 00000000 000e14 000020 08 I 12 6 4 │ │ │ │ │ + [ 8] .data.rel.ro.local PROGBITS 00000000 00074d 00000c 00 WA 0 0 4 │ │ │ │ │ + [ 9] .rel.data.rel.ro.local REL 00000000 000e34 000008 08 I 12 8 4 │ │ │ │ │ + [10] .note.GNU-stack PROGBITS 00000000 000759 000000 00 0 0 1 │ │ │ │ │ + [11] .ARM.attributes ARM_ATTRIBUTES 00000000 000759 000033 00 0 0 1 │ │ │ │ │ + [12] .symtab SYMTAB 00000000 00078c 0002e0 10 13 23 4 │ │ │ │ │ + [13] .strtab STRTAB 00000000 000a6c 00022f 00 0 0 1 │ │ │ │ │ + [14] .shstrtab STRTAB 00000000 000e3c 000087 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,27 +1,27 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 46 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ - 1: 00000001 78 FUNC LOCAL DEFAULT 1 apply_r2c │ │ │ │ │ + 1: 00000001 100 FUNC LOCAL DEFAULT 1 apply_r2c │ │ │ │ │ 2: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 3: 00000051 80 FUNC LOCAL DEFAULT 1 apply_c2r │ │ │ │ │ + 3: 00000065 102 FUNC LOCAL DEFAULT 1 apply_c2r │ │ │ │ │ 4: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 5: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ 6: 00000004 0 NOTYPE LOCAL DEFAULT 5 .LC1 │ │ │ │ │ 7: 00000008 0 NOTYPE LOCAL DEFAULT 5 .LC2 │ │ │ │ │ - 8: 000000a1 60 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 9: 000000d0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 10: 000000dc 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 11: 000000dd 26 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ - 12: 000000f9 1192 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ - 13: 00000594 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 14: 000005a0 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 15: 000005a1 32 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ - 16: 000005f4 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 8: 000000cd 60 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 9: 000000fc 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 10: 00000108 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 11: 00000109 30 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 12: 00000129 1324 FUNC LOCAL DEFAULT 1 mkplan │ │ │ │ │ + 13: 00000648 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 14: 00000654 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 15: 00000655 44 FUNC LOCAL DEFAULT 1 awake │ │ │ │ │ + 16: 000006c8 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 17: 00000000 0 SECTION LOCAL DEFAULT 6 .data.rel.ro │ │ │ │ │ 18: 00000000 0 NOTYPE LOCAL DEFAULT 6 $d │ │ │ │ │ 19: 00000000 16 OBJECT LOCAL DEFAULT 6 padt.0 │ │ │ │ │ 20: 00000000 0 SECTION LOCAL DEFAULT 8 .data.rel.ro.local │ │ │ │ │ 21: 00000000 0 NOTYPE LOCAL DEFAULT 8 $d │ │ │ │ │ 22: 00000000 12 OBJECT LOCAL DEFAULT 8 sadt.1 │ │ │ │ │ 23: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_plan_destroy_internal │ │ │ │ │ @@ -39,11 +39,11 @@ │ │ │ │ │ 35: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mktensor_1d │ │ │ │ │ 36: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mkproblem_dft_d │ │ │ │ │ 37: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mkplan_rdft │ │ │ │ │ 38: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ops_add │ │ │ │ │ 39: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ops_add2 │ │ │ │ │ 40: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_rdft2_serial_applicable │ │ │ │ │ 41: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_plan_awake │ │ │ │ │ - 42: 000005c1 56 FUNC GLOBAL DEFAULT 1 fftwf_mpi_rdft2_rank_geq2_transposed_register │ │ │ │ │ + 42: 00000681 76 FUNC GLOBAL DEFAULT 1 fftwf_mpi_rdft2_rank_geq2_transposed_register │ │ │ │ │ 43: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mksolver │ │ │ │ │ 44: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_solver_register │ │ │ │ │ 45: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_rdft2_solve │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,61 +1,61 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0xbc8 contains 47 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0xc9c contains 47 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -000000d0 00000603 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ -000000d4 00000703 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ -000000d8 00000503 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -000000e2 0000170a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000000e8 0000170a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -00000140 0000180a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ -0000015a 0000180a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ -00000168 0000180a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ -00000176 0000190a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -000001da 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000001e2 00001b0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000001ec 00001c0a R_ARM_THM_CALL 00000000 fftwf_mktensor │ │ │ │ │ -00000322 00001d0a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -0000034a 00001e0a R_ARM_THM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ -00000360 00001f0a R_ARM_THM_CALL 00000000 fftwf_mkproblem_rdft2_d │ │ │ │ │ -00000368 0000200a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -00000376 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -000003d6 0000220a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ -000003de 0000200a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -000003ec 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -00000402 00001d0a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ -00000414 0000230a R_ARM_THM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ -00000428 00001e0a R_ARM_THM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ -0000043c 0000240a R_ARM_THM_CALL 00000000 fftwf_mkproblem_dft_d │ │ │ │ │ -00000444 0000200a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ -00000452 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ -00000468 0000250a R_ARM_THM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ -0000049a 0000260a R_ARM_THM_CALL 00000000 fftwf_ops_add │ │ │ │ │ -000004a4 0000270a R_ARM_THM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ -000004b6 0000170a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000004bc 0000170a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000004c2 0000170a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -0000056a 0000180a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ -0000057a 0000190a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ -00000588 0000280a R_ARM_THM_CALL 00000000 fftwf_mpi_rdft2_serial_applicable │ │ │ │ │ -00000594 00000103 R_ARM_REL32 00000001 apply_r2c │ │ │ │ │ -00000598 00001103 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ -0000059c 00000303 R_ARM_REL32 00000051 apply_c2r │ │ │ │ │ -000005a8 0000290a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -000005b0 0000290a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ -000005cc 00002b0a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -000005d8 00002c0a R_ARM_THM_CALL 00000000 fftwf_solver_register │ │ │ │ │ -000005e0 00002b0a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ -000005f4 00001403 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -000000f2 0000171e R_ARM_THM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ -000005bc 0000291e R_ARM_THM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ -000005f0 00002c1e R_ARM_THM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ +000000fc 00000603 R_ARM_REL32 00000004 .LC1 │ │ │ │ │ +00000100 00000703 R_ARM_REL32 00000008 .LC2 │ │ │ │ │ +00000104 00000503 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +00000110 0000170a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000116 0000170a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000196 0000180a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ +000001b2 0000180a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ +000001c4 0000180a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ +000001d2 0000190a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +0000023e 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +00000246 00001b0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000252 00001c0a R_ARM_THM_CALL 00000000 fftwf_mktensor │ │ │ │ │ +000003ac 00001d0a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +000003dc 00001e0a R_ARM_THM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ +000003f0 00001f0a R_ARM_THM_CALL 00000000 fftwf_mkproblem_rdft2_d │ │ │ │ │ +000003f8 0000200a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +00000408 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +0000046a 0000220a R_ARM_THM_CALL 00000000 fftwf_mpi_mkproblem_transpose │ │ │ │ │ +00000472 0000200a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +00000482 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +00000498 00001d0a R_ARM_THM_CALL 00000000 fftwf_mpi_block │ │ │ │ │ +000004ac 0000230a R_ARM_THM_CALL 00000000 fftwf_mktensor_1d │ │ │ │ │ +000004c2 00001e0a R_ARM_THM_CALL 00000000 fftwf_mktensor_2d │ │ │ │ │ +000004d6 0000240a R_ARM_THM_CALL 00000000 fftwf_mkproblem_dft_d │ │ │ │ │ +000004de 0000200a R_ARM_THM_CALL 00000000 fftwf_mkplan_d │ │ │ │ │ +000004ee 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_any_true │ │ │ │ │ +00000506 0000250a R_ARM_THM_CALL 00000000 fftwf_mkplan_rdft │ │ │ │ │ +00000538 0000260a R_ARM_THM_CALL 00000000 fftwf_ops_add │ │ │ │ │ +00000542 0000270a R_ARM_THM_CALL 00000000 fftwf_ops_add2 │ │ │ │ │ +00000550 0000170a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +00000556 0000170a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +0000055c 0000170a R_ARM_THM_CALL 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +0000061c 0000180a R_ARM_THM_CALL 00000000 fftwf_mpi_is_local_after │ │ │ │ │ +0000062c 0000190a R_ARM_THM_CALL 00000000 fftwf_mpi_num_blocks │ │ │ │ │ +0000063a 0000280a R_ARM_THM_CALL 00000000 fftwf_mpi_rdft2_serial_applicable │ │ │ │ │ +00000648 00000103 R_ARM_REL32 00000001 apply_r2c │ │ │ │ │ +0000064c 00001103 R_ARM_REL32 00000000 .data.rel.ro │ │ │ │ │ +00000650 00000303 R_ARM_REL32 00000065 apply_c2r │ │ │ │ │ +00000662 0000290a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +0000066a 0000290a R_ARM_THM_CALL 00000000 fftwf_plan_awake │ │ │ │ │ +00000694 00002b0a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +000006a2 00002c0a R_ARM_THM_CALL 00000000 fftwf_solver_register │ │ │ │ │ +000006ac 00002b0a R_ARM_THM_CALL 00000000 fftwf_mksolver │ │ │ │ │ +000006c8 00001403 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +00000122 0000171e R_ARM_THM_JUMP24 00000000 fftwf_plan_destroy_internal │ │ │ │ │ +0000067c 0000291e R_ARM_THM_JUMP24 00000000 fftwf_plan_awake │ │ │ │ │ +000006c4 00002c1e R_ARM_THM_JUMP24 00000000 fftwf_solver_register │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro' at offset 0xd40 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro' at offset 0xe14 contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ 00000000 00002d02 R_ARM_ABS32 00000000 fftwf_mpi_rdft2_solve │ │ │ │ │ -00000004 00000f02 R_ARM_ABS32 000005a1 awake │ │ │ │ │ -00000008 00000802 R_ARM_ABS32 000000a1 print │ │ │ │ │ -0000000c 00000b02 R_ARM_ABS32 000000dd destroy │ │ │ │ │ +00000004 00000f02 R_ARM_ABS32 00000655 awake │ │ │ │ │ +00000008 00000802 R_ARM_ABS32 000000cd print │ │ │ │ │ +0000000c 00000b02 R_ARM_ABS32 00000109 destroy │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0xd60 contains 1 entry: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0xe34 contains 1 entry: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000c02 R_ARM_ABS32 000000f9 mkplan │ │ │ │ │ +00000004 00000c02 R_ARM_ABS32 00000129 mkplan │ │ │ │ ├── strings --all --bytes=8 {} │ │ │ │ │ @@ -1,8 +1,7 @@ │ │ │ │ │ -MJzDMIX yD │ │ │ │ │ (mpi-rdft2-rank-geq2-transposed%s%(%p%)%(%p%)%(%p%)) │ │ │ │ │ apply_r2c │ │ │ │ │ apply_c2r │ │ │ │ │ fftwf_plan_destroy_internal │ │ │ │ │ fftwf_mpi_is_local_after │ │ │ │ │ fftwf_mpi_num_blocks │ │ │ │ │ MPI_Comm_rank │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,659 +1,683 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ apply_r2c(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r2 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ - adds r7, r2, #4 │ │ │ │ │ - ldr r3, [r4, #80] @ 0x50 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ + add.w r7, r2, #4 │ │ │ │ │ + ldrd r2, r3, [r4, #76] @ 0x4c │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ sub sp, #8 │ │ │ │ │ - ldr r2, [r4, #76] @ 0x4c │ │ │ │ │ ldr.w r8, [r0, #56] @ 0x38 │ │ │ │ │ add.w r2, r1, r2, lsl #2 │ │ │ │ │ - cbz r3, 42 │ │ │ │ │ - mov r6, r5 │ │ │ │ │ + cbz r3, 56 │ │ │ │ │ mov r3, r5 │ │ │ │ │ str r7, [sp, #0] │ │ │ │ │ + mov r6, r5 │ │ │ │ │ blx r8 │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r2, r5 │ │ │ │ │ mov r1, r6 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ - str r7, [sp, #0] │ │ │ │ │ mov r3, r5 │ │ │ │ │ mov r2, r7 │ │ │ │ │ + str r7, [sp, #0] │ │ │ │ │ mov r1, r5 │ │ │ │ │ ldr r4, [r0, #56] @ 0x38 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, #8 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, pc} │ │ │ │ │ - adds r3, r1, #4 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + ldmia.w sp!, {r8, pc} │ │ │ │ │ + add.w r3, r1, #4 │ │ │ │ │ + mov r6, r1 │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ mov r3, r1 │ │ │ │ │ - mov r6, r1 │ │ │ │ │ blx r8 │ │ │ │ │ - b.n 24 │ │ │ │ │ - nop │ │ │ │ │ + b.n 2e │ │ │ │ │ │ │ │ │ │ -00000050 : │ │ │ │ │ +00000064 : │ │ │ │ │ apply_c2r(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ + mov r5, r2 │ │ │ │ │ ldr r0, [r0, #72] @ 0x48 │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ mov r6, r1 │ │ │ │ │ - sub sp, #8 │ │ │ │ │ + add.w r7, r2, #4 │ │ │ │ │ ldr r3, [r4, #80] @ 0x50 │ │ │ │ │ - mov r5, r2 │ │ │ │ │ + add.w r1, r1, #4 │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ + sub sp, #8 │ │ │ │ │ ldr.w r8, [r0, #56] @ 0x38 │ │ │ │ │ - adds r7, r2, #4 │ │ │ │ │ - adds r1, #4 │ │ │ │ │ - cbz r3, 96 │ │ │ │ │ - str r2, [sp, #0] │ │ │ │ │ + cbz r3, c0 │ │ │ │ │ mov r2, r6 │ │ │ │ │ - mov r6, r5 │ │ │ │ │ mov r3, r7 │ │ │ │ │ + str r5, [sp, #0] │ │ │ │ │ + mov r6, r5 │ │ │ │ │ blx r8 │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r2, r5 │ │ │ │ │ mov r1, r6 │ │ │ │ │ ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ blx r3 │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - ldr r2, [r4, #76] @ 0x4c │ │ │ │ │ mov r3, r5 │ │ │ │ │ - str r7, [sp, #0] │ │ │ │ │ mov r1, r5 │ │ │ │ │ + ldr r2, [r4, #76] @ 0x4c │ │ │ │ │ + str r7, [sp, #0] │ │ │ │ │ ldr r4, [r0, #56] @ 0x38 │ │ │ │ │ add.w r2, r5, r2, lsl #2 │ │ │ │ │ blx r4 │ │ │ │ │ add sp, #8 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + ldmia.w sp!, {r8, pc} │ │ │ │ │ mov r3, r1 │ │ │ │ │ mov r2, r6 │ │ │ │ │ str r6, [sp, #0] │ │ │ │ │ blx r8 │ │ │ │ │ - b.n 74 │ │ │ │ │ + b.n 94 │ │ │ │ │ + nop │ │ │ │ │ │ │ │ │ │ -000000a0 : │ │ │ │ │ +000000cc : │ │ │ │ │ print(): │ │ │ │ │ mov r3, r0 │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r0, r1 │ │ │ │ │ - ldr r4, [r1, #0] │ │ │ │ │ - sub sp, #8 │ │ │ │ │ ldr r2, [r3, #80] @ 0x50 │ │ │ │ │ + sub sp, #8 │ │ │ │ │ + ldr r4, [r1, #0] │ │ │ │ │ cmp r2, #2 │ │ │ │ │ - beq.n c8 │ │ │ │ │ - ldr r2, [pc, #28] @ (d0 ) │ │ │ │ │ + beq.n f6 │ │ │ │ │ + ldr r2, [pc, #28] @ (fc ) │ │ │ │ │ add r2, pc │ │ │ │ │ ldr r1, [r3, #72] @ 0x48 │ │ │ │ │ str r1, [sp, #4] │ │ │ │ │ ldr r1, [r3, #68] @ 0x44 │ │ │ │ │ str r1, [sp, #0] │ │ │ │ │ - ldr r1, [pc, #20] @ (d4 ) │ │ │ │ │ + ldr r1, [pc, #20] @ (100 ) │ │ │ │ │ ldr r3, [r3, #64] @ 0x40 │ │ │ │ │ add r1, pc │ │ │ │ │ blx r4 │ │ │ │ │ add sp, #8 │ │ │ │ │ pop {r4, pc} │ │ │ │ │ - ldr r2, [pc, #12] @ (d8 ) │ │ │ │ │ + ldr r2, [pc, #12] @ (104 ) │ │ │ │ │ add r2, pc │ │ │ │ │ - b.n b4 │ │ │ │ │ - nop │ │ │ │ │ - .word 0x0000001a │ │ │ │ │ + b.n e2 │ │ │ │ │ + .word 0x00000018 │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x00000010 │ │ │ │ │ + .word 0x0000000e │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ - .word 0x0000000a │ │ │ │ │ + .word 0x00000008 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ │ │ │ │ │ -000000dc : │ │ │ │ │ +00000108 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #72] @ 0x48 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ ldr r0, [r4, #64] @ 0x40 │ │ │ │ │ - ldmia.w sp!, {r4, lr} │ │ │ │ │ + ldrd r4, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_plan_destroy_internal │ │ │ │ │ nop │ │ │ │ │ │ │ │ │ │ -000000f8 : │ │ │ │ │ +00000128 : │ │ │ │ │ mkplan(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} │ │ │ │ │ + str.w r4, [sp, #-36]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ ldr r1, [r1, #4] │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + strd r9, sl, [sp, #20] │ │ │ │ │ + strd fp, lr, [sp, #28] │ │ │ │ │ sub sp, #84 @ 0x54 │ │ │ │ │ ldr r3, [r1, #0] │ │ │ │ │ str r0, [sp, #28] │ │ │ │ │ cmp r3, #1 │ │ │ │ │ - ble.n 11a │ │ │ │ │ + ble.n 15a │ │ │ │ │ ldr r3, [r0, #8] │ │ │ │ │ mov fp, r2 │ │ │ │ │ - cbnz r3, 122 │ │ │ │ │ + cbnz r3, 176 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ cmp r3, #8 │ │ │ │ │ - beq.n 138 │ │ │ │ │ + beq.n 18c │ │ │ │ │ cmp r3, #4 │ │ │ │ │ - beq.n 14e │ │ │ │ │ - movs r0, #0 │ │ │ │ │ + beq.n 1a4 │ │ │ │ │ + mov.w r0, #0 │ │ │ │ │ add sp, #84 @ 0x54 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + ldrd sl, fp, [sp, #24] │ │ │ │ │ + add sp, #32 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ ldr.w r3, [r2, #164] @ 0xa4 │ │ │ │ │ - lsls r0, r3, #19 │ │ │ │ │ - bmi.n 11a │ │ │ │ │ + lsls r6, r3, #19 │ │ │ │ │ + bmi.n 15a │ │ │ │ │ ldrd r2, r3, [r4, #12] │ │ │ │ │ cmp r2, r3 │ │ │ │ │ - beq.n 11a │ │ │ │ │ + beq.n 15a │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ cmp r3, #8 │ │ │ │ │ - bne.n 116 │ │ │ │ │ + bne.n 156 │ │ │ │ │ ldr r2, [r4, #20] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - bne.n 11a │ │ │ │ │ - movs r0, #1 │ │ │ │ │ + bne.n 15a │ │ │ │ │ + mov.w r0, #1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.w 564 │ │ │ │ │ + bne.w 612 │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ - b.n 116 │ │ │ │ │ + b.n 156 │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #4 │ │ │ │ │ - bne.n 11a │ │ │ │ │ - movs r2, #1 │ │ │ │ │ + bne.n 15a │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ ldr r1, [r4, #4] │ │ │ │ │ mov r0, r2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n 11a │ │ │ │ │ + beq.n 15a │ │ │ │ │ ldr r1, [r4, #4] │ │ │ │ │ - movs r2, #0 │ │ │ │ │ - movs r0, #2 │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ + mov.w r0, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.n 11a │ │ │ │ │ + beq.n 15a │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldrd r0, r1, [r3, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - bne.n 11a │ │ │ │ │ + bne.n 15a │ │ │ │ │ ldr.w r3, [fp, #164] @ 0xa4 │ │ │ │ │ - lsls r2, r3, #28 │ │ │ │ │ - bmi.w 586 │ │ │ │ │ - ldr r3, [r4, #12] │ │ │ │ │ - ldrd r7, r8, [r4, #16] │ │ │ │ │ - str r3, [sp, #24] │ │ │ │ │ + lsls r5, r3, #28 │ │ │ │ │ + bmi.w 638 │ │ │ │ │ + ldrd r3, r7, [r4, #12] │ │ │ │ │ + ldr.w r8, [r4, #20] │ │ │ │ │ ldr r2, [sp, #28] │ │ │ │ │ - ldr r3, [r4, #8] │ │ │ │ │ + str r3, [sp, #24] │ │ │ │ │ add.w sl, r7, #4 │ │ │ │ │ + ldr r3, [r4, #8] │ │ │ │ │ ldr r2, [r2, #8] │ │ │ │ │ - lsls r3, r3, #2 │ │ │ │ │ + mov.w r3, r3, lsl #2 │ │ │ │ │ cmp.w r8, #0 │ │ │ │ │ - bne.w 4c8 │ │ │ │ │ + bne.w 562 │ │ │ │ │ ldr r1, [sp, #24] │ │ │ │ │ - adds r3, r1, r3 │ │ │ │ │ - str r3, [sp, #36] @ 0x24 │ │ │ │ │ + add r3, r1 │ │ │ │ │ + str r3, [sp, #32] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - bne.w 508 │ │ │ │ │ + bne.w 5a8 │ │ │ │ │ ldr.w r3, [fp, #164] @ 0xa4 │ │ │ │ │ - lsls r3, r3, #19 │ │ │ │ │ - bmi.w 508 │ │ │ │ │ - adds r3, r1, #4 │ │ │ │ │ + lsls r0, r3, #19 │ │ │ │ │ + bmi.w 5a8 │ │ │ │ │ + add.w r3, r1, #4 │ │ │ │ │ + mov r9, r1 │ │ │ │ │ mov r2, r1 │ │ │ │ │ - str r1, [sp, #32] │ │ │ │ │ - str r2, [sp, #52] @ 0x34 │ │ │ │ │ - ldr r2, [sp, #24] │ │ │ │ │ - strd r7, sl, [sp, #64] @ 0x40 │ │ │ │ │ - str.w sl, [sp, #24] │ │ │ │ │ + strd r2, r9, [sp, #48] @ 0x30 │ │ │ │ │ + mov r2, sl │ │ │ │ │ + str.w sl, [sp, #68] @ 0x44 │ │ │ │ │ mov sl, r3 │ │ │ │ │ - str r7, [sp, #60] @ 0x3c │ │ │ │ │ - movs r3, #1 │ │ │ │ │ - str r2, [sp, #48] @ 0x30 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + str r2, [sp, #24] │ │ │ │ │ str r3, [sp, #56] @ 0x38 │ │ │ │ │ - add r1, sp, #72 @ 0x48 │ │ │ │ │ + strd r7, r7, [sp, #60] @ 0x3c │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + add r1, sp, #72 @ 0x48 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ - add r1, sp, #76 @ 0x4c │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + add r1, sp, #76 @ 0x4c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ ldr r0, [r3, #0] │ │ │ │ │ - subs r0, #1 │ │ │ │ │ + add.w r0, r0, #4294967295 @ 0xffffffff │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor │ │ │ │ │ mov r6, r0 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ - movs r1, #12 │ │ │ │ │ ldr.w ip, [r0] │ │ │ │ │ - add.w r2, ip, #4294967295 @ 0xffffffff │ │ │ │ │ - sub.w lr, ip, #2 │ │ │ │ │ - mul.w r3, r1, ip │ │ │ │ │ - mla r2, r1, r2, r0 │ │ │ │ │ - adds r5, r6, r3 │ │ │ │ │ - mla lr, r1, lr, r6 │ │ │ │ │ - ldr r2, [r2, #4] │ │ │ │ │ + add.w r2, ip, ip, lsl #1 │ │ │ │ │ + add.w r3, ip, ip, lsl #1 │ │ │ │ │ + add.w r2, r0, r2, lsl #2 │ │ │ │ │ + mov.w r3, r3, lsl #2 │ │ │ │ │ + ldr.w r2, [r2, #-8] │ │ │ │ │ + add.w r1, ip, ip, lsl #1 │ │ │ │ │ + add.w r5, r6, r3 │ │ │ │ │ + add.w r1, r6, r1, lsl #2 │ │ │ │ │ add.w r2, r2, r2, lsr #31 │ │ │ │ │ - asrs r2, r2, #1 │ │ │ │ │ - adds r2, #1 │ │ │ │ │ + mov.w r2, r2, asr #1 │ │ │ │ │ + add.w r2, r2, #1 │ │ │ │ │ str.w r2, [r5, #-20] │ │ │ │ │ ldr r2, [r4, #8] │ │ │ │ │ - lsls r2, r2, #1 │ │ │ │ │ - str.w r2, [lr, #12] │ │ │ │ │ + mov.w r2, r2, lsl #1 │ │ │ │ │ + str.w r2, [r1, #-12] │ │ │ │ │ str.w r2, [r5, #-16] │ │ │ │ │ subs.w r5, ip, #3 │ │ │ │ │ - bmi.n 2d2 │ │ │ │ │ + bmi.n 350 │ │ │ │ │ + cmp.w ip, #4 │ │ │ │ │ sub.w r2, r3, #16 │ │ │ │ │ sub.w r1, r3, #20 │ │ │ │ │ - cmp.w ip, #4 │ │ │ │ │ - ble.w 560 │ │ │ │ │ + ble.w 60e │ │ │ │ │ ldr.w lr, [r6, r1] │ │ │ │ │ + add.w r1, r0, r3 │ │ │ │ │ sub.w ip, ip, #5 │ │ │ │ │ - str r0, [sp, #40] @ 0x28 │ │ │ │ │ - adds r1, r0, r3 │ │ │ │ │ + strd r8, r0, [sp, #36] @ 0x24 │ │ │ │ │ + sub.w r3, r3, #28 │ │ │ │ │ + and.w ip, ip, #1 │ │ │ │ │ ldr r2, [r6, r2] │ │ │ │ │ - subs r3, #28 │ │ │ │ │ + add r3, r6 │ │ │ │ │ + mov r8, r4 │ │ │ │ │ mov r0, lr │ │ │ │ │ ldr.w lr, [sp, #40] @ 0x28 │ │ │ │ │ - add r3, r6 │ │ │ │ │ - and.w ip, ip, #1 │ │ │ │ │ - mov r9, r4 │ │ │ │ │ - ldr.w r4, [r1, #-20] │ │ │ │ │ mul.w r2, r0, r2 │ │ │ │ │ - strd r2, r2, [r3] │ │ │ │ │ - subs r5, #2 │ │ │ │ │ - str.w r4, [r3, #-4] │ │ │ │ │ - subs r1, #24 │ │ │ │ │ + sub.w r5, r5, #2 │ │ │ │ │ + sub.w r1, r1, #24 │ │ │ │ │ + ldr r4, [r1, #4] │ │ │ │ │ cmp r5, ip │ │ │ │ │ - ldr.w r0, [r1, #-8] │ │ │ │ │ + strd r4, r2, [r3, #-4] │ │ │ │ │ + str r2, [r3, #4] │ │ │ │ │ mul.w r2, r4, r2 │ │ │ │ │ - str.w r0, [r3, #-16] │ │ │ │ │ - strd r2, r2, [r3, #-12] │ │ │ │ │ + ldr.w r0, [r1, #-8] │ │ │ │ │ + strd r0, r2, [r3, #-16] │ │ │ │ │ sub.w r3, r3, #24 │ │ │ │ │ - bne.n 25e │ │ │ │ │ + str r2, [r3, #16] │ │ │ │ │ + bne.n 2d6 │ │ │ │ │ + mov r4, r8 │ │ │ │ │ + ldr.w r8, [sp, #36] @ 0x24 │ │ │ │ │ mov r0, lr │ │ │ │ │ - mov r4, r9 │ │ │ │ │ - movs r5, #12 │ │ │ │ │ - mul.w r1, r5, ip │ │ │ │ │ - add.w r9, r0, r1 │ │ │ │ │ + add.w r1, ip, ip, lsl #1 │ │ │ │ │ + mov.w r1, r1, lsl #2 │ │ │ │ │ + add.w lr, r0, r1 │ │ │ │ │ add r1, r6 │ │ │ │ │ ldrd r3, r2, [r1, #16] │ │ │ │ │ - ldr.w lr, [r9, #16] │ │ │ │ │ - str.w lr, [r1, #4] │ │ │ │ │ + ldr.w r5, [lr, #16] │ │ │ │ │ mul.w r3, r2, r3 │ │ │ │ │ add.w r2, ip, #4294967295 @ 0xffffffff │ │ │ │ │ - strd r3, r3, [r1, #8] │ │ │ │ │ - str r2, [sp, #40] @ 0x28 │ │ │ │ │ + str r2, [sp, #36] @ 0x24 │ │ │ │ │ + strd r5, r3, [r1, #4] │ │ │ │ │ + str r3, [r1, #12] │ │ │ │ │ cmp.w ip, #0 │ │ │ │ │ - beq.n 2d2 │ │ │ │ │ - ldr.w r2, [r9, #4] │ │ │ │ │ - mul.w r3, lr, r3 │ │ │ │ │ + beq.n 350 │ │ │ │ │ + ldr.w r2, [lr, #4] │ │ │ │ │ + mul.w r3, r5, r3 │ │ │ │ │ str.w r2, [r1, #-8] │ │ │ │ │ - ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ - mla r2, r5, r2, r6 │ │ │ │ │ + ldr r2, [sp, #36] @ 0x24 │ │ │ │ │ + add.w r2, r2, r2, lsl #1 │ │ │ │ │ + add.w r2, r6, r2, lsl #2 │ │ │ │ │ str r3, [r2, #12] │ │ │ │ │ str.w r3, [r1, #-4] │ │ │ │ │ ldr r1, [r6, #0] │ │ │ │ │ cmp r1, #1 │ │ │ │ │ - ble.w 55c │ │ │ │ │ + ble.w 608 │ │ │ │ │ add.w r1, r1, r1, lsl #1 │ │ │ │ │ - movs r3, #0 │ │ │ │ │ - subs r1, #3 │ │ │ │ │ - movs r5, #1 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ + mov.w r5, #1 │ │ │ │ │ add.w ip, r6, #16 │ │ │ │ │ + sub.w r1, r1, #3 │ │ │ │ │ ldr.w r2, [ip, r3, lsl #2] │ │ │ │ │ - adds r3, #3 │ │ │ │ │ + add.w r3, r3, #3 │ │ │ │ │ cmp r1, r3 │ │ │ │ │ mul.w r5, r2, r5 │ │ │ │ │ - bne.n 2e8 │ │ │ │ │ + bne.n 36c │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #4 │ │ │ │ │ - beq.w 510 │ │ │ │ │ - mov.w r9, #1 │ │ │ │ │ + beq.w 5b0 │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.w 540 │ │ │ │ │ - movs r3, #2 │ │ │ │ │ - str r3, [sp, #44] @ 0x2c │ │ │ │ │ + bne.w 5e8 │ │ │ │ │ + mov.w r3, #2 │ │ │ │ │ + mov.w r1, #1 │ │ │ │ │ + strd r3, r1, [sp, #40] @ 0x28 │ │ │ │ │ ldrd r3, r2, [r6, #4] │ │ │ │ │ add.w r8, r0, r8, lsl #2 │ │ │ │ │ ldr r0, [r0, #4] │ │ │ │ │ - mul.w r3, r2, r3 │ │ │ │ │ ldr.w r1, [r8, #8] │ │ │ │ │ + mul.w r3, r2, r3 │ │ │ │ │ ldr r2, [sp, #72] @ 0x48 │ │ │ │ │ - str r3, [sp, #40] @ 0x28 │ │ │ │ │ + str r3, [sp, #36] @ 0x24 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ - ldr r3, [r4, #4] │ │ │ │ │ - mov.w ip, #12 │ │ │ │ │ - ldr r2, [r3, #0] │ │ │ │ │ - subs r1, r2, #2 │ │ │ │ │ - subs r2, #1 │ │ │ │ │ - mla r3, ip, r2, r3 │ │ │ │ │ - ldr r2, [sp, #40] @ 0x28 │ │ │ │ │ - mla r1, ip, r1, r6 │ │ │ │ │ - ldr r3, [r3, #4] │ │ │ │ │ - str r3, [r1, #4] │ │ │ │ │ + ldr r1, [r4, #4] │ │ │ │ │ + ldr r3, [r1, #0] │ │ │ │ │ + sub.w r2, r3, #2 │ │ │ │ │ + add.w r3, r3, r3, lsl #1 │ │ │ │ │ + add.w r2, r2, r2, lsl #1 │ │ │ │ │ + add.w r1, r1, r3, lsl #2 │ │ │ │ │ + add.w r2, r6, r2, lsl #2 │ │ │ │ │ + ldr.w r3, [r1, #-8] │ │ │ │ │ + ldr r1, [sp, #40] @ 0x28 │ │ │ │ │ + str r3, [r2, #4] │ │ │ │ │ + ldr r2, [sp, #36] @ 0x24 │ │ │ │ │ + str r1, [sp, #4] │ │ │ │ │ ldr r1, [sp, #44] @ 0x2c │ │ │ │ │ - strd r9, r1, [sp] │ │ │ │ │ + str r1, [sp, #0] │ │ │ │ │ mov r1, r2 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor_2d │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ - strd sl, r3, [sp, #4] │ │ │ │ │ mov r1, r0 │ │ │ │ │ - ldr r3, [sp, #32] │ │ │ │ │ mov r0, r6 │ │ │ │ │ + strd r9, sl, [sp] │ │ │ │ │ ldr r2, [sp, #48] @ 0x30 │ │ │ │ │ - str r3, [sp, #0] │ │ │ │ │ - ldr r3, [sp, #36] @ 0x24 │ │ │ │ │ + str r3, [sp, #8] │ │ │ │ │ + ldr r3, [sp, #32] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkproblem_rdft2_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_d │ │ │ │ │ mov r6, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.w 538 │ │ │ │ │ + bne.w 5e0 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ ldr r2, [sp, #56] @ 0x38 │ │ │ │ │ mul.w r5, r3, r5 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ add.w r2, r3, r2, lsl #2 │ │ │ │ │ ldr.w r9, [r3, #16] │ │ │ │ │ ldr.w sl, [r2, #20] │ │ │ │ │ ldr r2, [r3, #0] │ │ │ │ │ cmp r2, #2 │ │ │ │ │ - bne.n 3b2 │ │ │ │ │ + bne.n 444 │ │ │ │ │ add.w r2, r9, r9, lsr #31 │ │ │ │ │ cmp r9, sl │ │ │ │ │ mov.w r2, r2, asr #1 │ │ │ │ │ add.w r2, r2, #1 │ │ │ │ │ itet eq │ │ │ │ │ moveq sl, r2 │ │ │ │ │ movne r9, r2 │ │ │ │ │ moveq r9, sl │ │ │ │ │ - lsls r2, r5, #1 │ │ │ │ │ - str r2, [sp, #32] │ │ │ │ │ - ldr r2, [r4, #20] │ │ │ │ │ + mov.w r2, r5, lsl #1 │ │ │ │ │ ldr r0, [r3, #4] │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ + str r2, [sp, #32] │ │ │ │ │ + ldr r2, [r4, #20] │ │ │ │ │ cmp r2, #0 │ │ │ │ │ - bne.w 4f0 │ │ │ │ │ - strd r1, r2, [sp, #12] │ │ │ │ │ - lsls r2, r5, #1 │ │ │ │ │ - str.w sl, [sp, #8] │ │ │ │ │ + bne.w 58c │ │ │ │ │ + strd sl, r1, [sp, #8] │ │ │ │ │ mov r1, r9 │ │ │ │ │ + str r2, [sp, #16] │ │ │ │ │ + mov.w r2, r5, lsl #1 │ │ │ │ │ ldr r3, [r3, #8] │ │ │ │ │ strd r7, r3, [sp] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_mkproblem_transpose │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_d │ │ │ │ │ mov r7, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_any_true │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - bne.n 4b0 │ │ │ │ │ + bne.n 54a │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ mov r1, sl │ │ │ │ │ - ldr r2, [sp, #72] @ 0x48 │ │ │ │ │ mov r0, r9 │ │ │ │ │ + ldr r2, [sp, #72] @ 0x48 │ │ │ │ │ ldr r3, [r3, #4] │ │ │ │ │ mul.w r8, r3, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_block │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - lsls r2, r5, #1 │ │ │ │ │ - mov r1, r2 │ │ │ │ │ + mov.w r2, r5, lsl #1 │ │ │ │ │ mov r9, r0 │ │ │ │ │ mov.w r8, r8, lsl #1 │ │ │ │ │ + mov r1, r2 │ │ │ │ │ ldr r0, [r3, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor_1d │ │ │ │ │ + mov.w r3, #2 │ │ │ │ │ mov r2, r8 │ │ │ │ │ mov r1, r8 │ │ │ │ │ mov sl, r0 │ │ │ │ │ - movs r3, #2 │ │ │ │ │ mov r0, r9 │ │ │ │ │ strd r3, r3, [sp] │ │ │ │ │ mov r3, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mktensor_2d │ │ │ │ │ + ldr r2, [sp, #60] @ 0x3c │ │ │ │ │ + mov r1, r0 │ │ │ │ │ + mov r0, sl │ │ │ │ │ ldr r3, [sp, #68] @ 0x44 │ │ │ │ │ str r3, [sp, #4] │ │ │ │ │ - mov r1, r0 │ │ │ │ │ ldr r3, [sp, #64] @ 0x40 │ │ │ │ │ - mov r0, sl │ │ │ │ │ - ldr r2, [sp, #60] @ 0x3c │ │ │ │ │ str r3, [sp, #0] │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkproblem_dft_d │ │ │ │ │ mov r1, r0 │ │ │ │ │ mov r0, fp │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_d │ │ │ │ │ mov r8, r0 │ │ │ │ │ clz r0, r0 │ │ │ │ │ ldr r1, [r4, #28] │ │ │ │ │ - lsrs r0, r0, #5 │ │ │ │ │ + mov.w r0, r0, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_any_true │ │ │ │ │ - cbnz r0, 4b4 │ │ │ │ │ + cbnz r0, 54e │ │ │ │ │ ldr r3, [r4, #20] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.n 532 │ │ │ │ │ - ldr r2, [pc, #308] @ (594 ) │ │ │ │ │ + bne.n 5da │ │ │ │ │ + ldr r2, [pc, #332] @ (648 ) │ │ │ │ │ add r2, pc │ │ │ │ │ - ldr r1, [pc, #308] @ (598 ) │ │ │ │ │ - movs r0, #88 @ 0x58 │ │ │ │ │ + ldr r1, [pc, #332] @ (64c ) │ │ │ │ │ + mov.w r0, #88 @ 0x58 │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkplan_rdft │ │ │ │ │ ldr r3, [sp, #28] │ │ │ │ │ mov r5, r0 │ │ │ │ │ + ldr r3, [r3, #8] │ │ │ │ │ strd r6, r7, [r0, #64] @ 0x40 │ │ │ │ │ str.w r8, [r0, #72] @ 0x48 │ │ │ │ │ - ldr r3, [r3, #8] │ │ │ │ │ cmp r3, #0 │ │ │ │ │ - bne.n 52e │ │ │ │ │ + bne.n 5d4 │ │ │ │ │ ldr.w r3, [fp, #164] @ 0xa4 │ │ │ │ │ and.w r3, r3, #4096 @ 0x1000 │ │ │ │ │ str r3, [r5, #80] @ 0x50 │ │ │ │ │ add.w r1, r8, #8 │ │ │ │ │ + add.w r0, r6, #8 │ │ │ │ │ ldr r3, [r4, #8] │ │ │ │ │ add.w r4, r5, #8 │ │ │ │ │ mov r2, r4 │ │ │ │ │ - add.w r0, r6, #8 │ │ │ │ │ str r3, [r5, #76] @ 0x4c │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ops_add │ │ │ │ │ add.w r0, r7, #8 │ │ │ │ │ mov r1, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ops_add2 │ │ │ │ │ mov r0, r5 │ │ │ │ │ - add sp, #84 @ 0x54 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} │ │ │ │ │ + b.n 15e │ │ │ │ │ mov.w r8, #0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ mov r0, r7 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ mov r0, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_destroy_internal │ │ │ │ │ - b.n 11a │ │ │ │ │ - adds r3, r7, r3 │ │ │ │ │ - str r3, [sp, #36] @ 0x24 │ │ │ │ │ + b.n 15a │ │ │ │ │ + add r3, r7 │ │ │ │ │ + str r3, [sp, #32] │ │ │ │ │ ldr r3, [sp, #24] │ │ │ │ │ - adds r3, #4 │ │ │ │ │ + add.w r3, r3, #4 │ │ │ │ │ str r3, [sp, #60] @ 0x3c │ │ │ │ │ - cbnz r2, 51a │ │ │ │ │ + cbnz r2, 5be │ │ │ │ │ ldr.w r3, [fp, #164] @ 0xa4 │ │ │ │ │ ands.w r3, r3, #4096 @ 0x1000 │ │ │ │ │ - beq.n 546 │ │ │ │ │ + beq.n 5f2 │ │ │ │ │ + mov r9, r7 │ │ │ │ │ mov.w r8, #1 │ │ │ │ │ - str r7, [sp, #52] @ 0x34 │ │ │ │ │ - strd sl, r7, [sp, #64] @ 0x40 │ │ │ │ │ - str r7, [sp, #32] │ │ │ │ │ - str r7, [sp, #48] @ 0x30 │ │ │ │ │ + strd r7, r7, [sp, #48] @ 0x30 │ │ │ │ │ str r2, [sp, #56] @ 0x38 │ │ │ │ │ - b.n 1d6 │ │ │ │ │ - movs r2, #0 │ │ │ │ │ + strd sl, r7, [sp, #64] @ 0x40 │ │ │ │ │ + b.n 23a │ │ │ │ │ + mov.w r2, #0 │ │ │ │ │ strd r1, r2, [sp, #12] │ │ │ │ │ mov r1, r0 │ │ │ │ │ - lsls r2, r5, #1 │ │ │ │ │ + mov.w r2, r5, lsl #1 │ │ │ │ │ ldr r3, [r3, #12] │ │ │ │ │ mov r0, r9 │ │ │ │ │ - strd sl, r3, [sp, #4] │ │ │ │ │ - str r7, [sp, #0] │ │ │ │ │ + strd r7, sl, [sp] │ │ │ │ │ + str r3, [sp, #8] │ │ │ │ │ ldr r3, [sp, #52] @ 0x34 │ │ │ │ │ - b.n 3d6 │ │ │ │ │ + b.n 46a │ │ │ │ │ mov r3, sl │ │ │ │ │ - mov r2, r7 │ │ │ │ │ - str r7, [sp, #32] │ │ │ │ │ - b.n 1c0 │ │ │ │ │ - movs r3, #1 │ │ │ │ │ - mov.w r9, #2 │ │ │ │ │ - str r3, [sp, #44] @ 0x2c │ │ │ │ │ - b.n 30c │ │ │ │ │ - movs r3, #0 │ │ │ │ │ + mov r9, r7 │ │ │ │ │ + mov r2, r1 │ │ │ │ │ + b.n 222 │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + mov.w r2, #2 │ │ │ │ │ + strd r3, r2, [sp, #40] @ 0x28 │ │ │ │ │ + b.n 396 │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ + mov r9, r7 │ │ │ │ │ + strd r7, r7, [sp, #48] @ 0x30 │ │ │ │ │ mov.w r8, #1 │ │ │ │ │ - str r7, [sp, #52] @ 0x34 │ │ │ │ │ - strd sl, r7, [sp, #64] @ 0x40 │ │ │ │ │ - str r7, [sp, #32] │ │ │ │ │ - str r7, [sp, #48] @ 0x30 │ │ │ │ │ str r3, [sp, #56] @ 0x38 │ │ │ │ │ - b.n 1d6 │ │ │ │ │ - movs r3, #2 │ │ │ │ │ - b.n 486 │ │ │ │ │ - ldr r2, [pc, #104] @ (59c ) │ │ │ │ │ + strd sl, r7, [sp, #64] @ 0x40 │ │ │ │ │ + b.n 23a │ │ │ │ │ + mov.w r3, #2 │ │ │ │ │ + b.n 524 │ │ │ │ │ + ldr r2, [pc, #116] @ (650 ) │ │ │ │ │ add r2, pc │ │ │ │ │ - b.n 462 │ │ │ │ │ + b.n 4fe │ │ │ │ │ mov.w r8, #0 │ │ │ │ │ mov r7, r8 │ │ │ │ │ - b.n 4b4 │ │ │ │ │ - str.w r9, [sp, #44] @ 0x2c │ │ │ │ │ - b.n 30c │ │ │ │ │ + b.n 54e │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + strd r3, r3, [sp, #40] @ 0x28 │ │ │ │ │ + b.n 396 │ │ │ │ │ ldr r2, [sp, #24] │ │ │ │ │ + mov r9, r7 │ │ │ │ │ mov.w r8, #1 │ │ │ │ │ - str r2, [sp, #52] @ 0x34 │ │ │ │ │ + strd r7, r2, [sp, #48] @ 0x30 │ │ │ │ │ + str r3, [sp, #56] @ 0x38 │ │ │ │ │ str r2, [sp, #68] @ 0x44 │ │ │ │ │ ldr r2, [sp, #60] @ 0x3c │ │ │ │ │ str r2, [sp, #64] @ 0x40 │ │ │ │ │ - str r7, [sp, #32] │ │ │ │ │ - str r7, [sp, #48] @ 0x30 │ │ │ │ │ - str r3, [sp, #56] @ 0x38 │ │ │ │ │ - b.n 1d6 │ │ │ │ │ - movs r5, #1 │ │ │ │ │ - b.n 2f6 │ │ │ │ │ + b.n 23a │ │ │ │ │ + mov.w r5, #1 │ │ │ │ │ + b.n 37c │ │ │ │ │ mov ip, r5 │ │ │ │ │ - b.n 28e │ │ │ │ │ + b.n 308 │ │ │ │ │ ldr r1, [r4, #4] │ │ │ │ │ - movs r2, #1 │ │ │ │ │ - movs r0, #2 │ │ │ │ │ + mov.w r2, #1 │ │ │ │ │ + mov.w r0, #2 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_is_local_after │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.w 14a │ │ │ │ │ + beq.w 1a0 │ │ │ │ │ ldr r3, [r4, #4] │ │ │ │ │ - ldr r1, [r3, #12] │ │ │ │ │ ldr r0, [r3, #4] │ │ │ │ │ + ldr r1, [r3, #12] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_num_blocks │ │ │ │ │ cmp r0, #1 │ │ │ │ │ - bne.w 14a │ │ │ │ │ - b.n 17e │ │ │ │ │ + bne.w 1a0 │ │ │ │ │ + b.n 1da │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_rdft2_serial_applicable │ │ │ │ │ cmp r0, #0 │ │ │ │ │ - beq.w 188 │ │ │ │ │ - b.n 11a │ │ │ │ │ - .word 0x00000130 │ │ │ │ │ + beq.w 1e4 │ │ │ │ │ + b.n 15a │ │ │ │ │ + nop │ │ │ │ │ + .word 0x00000148 │ │ │ │ │ R_ARM_REL32 apply_r2c │ │ │ │ │ - .word 0x0000012e │ │ │ │ │ + .word 0x00000144 │ │ │ │ │ R_ARM_REL32 .data.rel.ro │ │ │ │ │ - .word 0x00000064 │ │ │ │ │ + .word 0x00000070 │ │ │ │ │ R_ARM_REL32 apply_c2r │ │ │ │ │ │ │ │ │ │ -000005a0 : │ │ │ │ │ +00000654 : │ │ │ │ │ awake(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - mov r5, r1 │ │ │ │ │ ldr r0, [r0, #64] @ 0x40 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ + mov r5, r1 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_awake │ │ │ │ │ ldr r0, [r4, #68] @ 0x44 │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_plan_awake │ │ │ │ │ ldr r0, [r4, #72] @ 0x48 │ │ │ │ │ mov r1, r5 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, lr} │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + ldrd r5, lr, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_plan_awake │ │ │ │ │ │ │ │ │ │ -000005c0 : │ │ │ │ │ +00000680 : │ │ │ │ │ fftwf_mpi_rdft2_rank_geq2_transposed_register(): │ │ │ │ │ - push {r3, r4, r5, lr} │ │ │ │ │ + strd r3, r4, [sp, #-16]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ - ldr r5, [pc, #44] @ (5f4 ) │ │ │ │ │ - movs r0, #12 │ │ │ │ │ + mov.w r0, #12 │ │ │ │ │ + strd r5, lr, [sp, #8] │ │ │ │ │ + ldr r5, [pc, #56] @ (6c8 ) │ │ │ │ │ add r5, pc │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mksolver │ │ │ │ │ - movs r3, #0 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ + mov.w r3, #0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ + str r3, [r1, #8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_solver_register │ │ │ │ │ mov r1, r5 │ │ │ │ │ - movs r0, #12 │ │ │ │ │ + mov.w r0, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mksolver │ │ │ │ │ - movs r3, #1 │ │ │ │ │ mov r1, r0 │ │ │ │ │ - str r3, [r0, #8] │ │ │ │ │ + mov.w r3, #1 │ │ │ │ │ + ldrd r5, lr, [sp, #8] │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r3, r4, r5, lr} │ │ │ │ │ + str r3, [r1, #8] │ │ │ │ │ + ldrd r3, r4, [sp] │ │ │ │ │ + add sp, #16 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_solver_register │ │ │ │ │ - .word 0x00000028 │ │ │ │ │ + .word 0x00000034 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ ├── rdft2-problem.o │ │ │ │ ├── readelf --wide --file-header {} │ │ │ │ │ @@ -6,15 +6,15 @@ │ │ │ │ │ OS/ABI: UNIX - System V │ │ │ │ │ ABI Version: 0 │ │ │ │ │ Type: REL (Relocatable file) │ │ │ │ │ Machine: ARM │ │ │ │ │ Version: 0x1 │ │ │ │ │ Entry point address: 0x0 │ │ │ │ │ Start of program headers: 0 (bytes into file) │ │ │ │ │ - Start of section headers: 2144 (bytes into file) │ │ │ │ │ + Start of section headers: 2276 (bytes into file) │ │ │ │ │ Flags: 0x5000000, Version5 EABI │ │ │ │ │ Size of this header: 52 (bytes) │ │ │ │ │ Size of program headers: 0 (bytes) │ │ │ │ │ Number of program headers: 0 │ │ │ │ │ Size of section headers: 40 (bytes) │ │ │ │ │ Number of section headers: 13 │ │ │ │ │ Section header string table index: 12 │ │ │ │ ├── readelf --wide --sections {} │ │ │ │ │ @@ -1,22 +1,22 @@ │ │ │ │ │ -There are 13 section headers, starting at offset 0x860: │ │ │ │ │ +There are 13 section headers, starting at offset 0x8e4: │ │ │ │ │ │ │ │ │ │ Section Headers: │ │ │ │ │ [Nr] Name Type Addr Off Size ES Flg Lk Inf Al │ │ │ │ │ [ 0] NULL 00000000 000000 000000 00 0 0 0 │ │ │ │ │ - [ 1] .text PROGBITS 00000000 000034 0001f4 00 AX 0 0 4 │ │ │ │ │ - [ 2] .rel.text REL 00000000 0006b0 000118 08 I 10 1 4 │ │ │ │ │ - [ 3] .data PROGBITS 00000000 000228 000000 00 WA 0 0 1 │ │ │ │ │ - [ 4] .bss NOBITS 00000000 000228 000000 00 WA 0 0 1 │ │ │ │ │ - [ 5] .rodata.str1.4 PROGBITS 00000000 000228 000036 01 AMS 0 0 4 │ │ │ │ │ - [ 6] .data.rel.ro.local PROGBITS 00000000 00025e 000014 00 WA 0 0 4 │ │ │ │ │ - [ 7] .rel.data.rel.ro.local REL 00000000 0007c8 000020 08 I 10 6 4 │ │ │ │ │ - [ 8] .note.GNU-stack PROGBITS 00000000 000272 000000 00 0 0 1 │ │ │ │ │ - [ 9] .ARM.attributes ARM_ATTRIBUTES 00000000 000272 000033 00 0 0 1 │ │ │ │ │ - [10] .symtab SYMTAB 00000000 0002a8 000280 10 11 21 4 │ │ │ │ │ - [11] .strtab STRTAB 00000000 000528 000187 00 0 0 1 │ │ │ │ │ - [12] .shstrtab STRTAB 00000000 0007e8 000076 00 0 0 1 │ │ │ │ │ + [ 1] .text PROGBITS 00000000 000034 000278 00 AX 0 0 4 │ │ │ │ │ + [ 2] .rel.text REL 00000000 000734 000118 08 I 10 1 4 │ │ │ │ │ + [ 3] .data PROGBITS 00000000 0002ac 000000 00 WA 0 0 1 │ │ │ │ │ + [ 4] .bss NOBITS 00000000 0002ac 000000 00 WA 0 0 1 │ │ │ │ │ + [ 5] .rodata.str1.4 PROGBITS 00000000 0002ac 000036 01 AMS 0 0 4 │ │ │ │ │ + [ 6] .data.rel.ro.local PROGBITS 00000000 0002e2 000014 00 WA 0 0 4 │ │ │ │ │ + [ 7] .rel.data.rel.ro.local REL 00000000 00084c 000020 08 I 10 6 4 │ │ │ │ │ + [ 8] .note.GNU-stack PROGBITS 00000000 0002f6 000000 00 0 0 1 │ │ │ │ │ + [ 9] .ARM.attributes ARM_ATTRIBUTES 00000000 0002f6 000033 00 0 0 1 │ │ │ │ │ + [10] .symtab SYMTAB 00000000 00032c 000280 10 11 21 4 │ │ │ │ │ + [11] .strtab STRTAB 00000000 0005ac 000187 00 0 0 1 │ │ │ │ │ + [12] .shstrtab STRTAB 00000000 00086c 000076 00 0 0 1 │ │ │ │ │ Key to Flags: │ │ │ │ │ W (write), A (alloc), X (execute), M (merge), S (strings), I (info), │ │ │ │ │ L (link order), O (extra OS processing required), G (group), T (TLS), │ │ │ │ │ C (compressed), x (unknown), o (OS specific), E (exclude), │ │ │ │ │ D (mbind), y (purecode), p (processor specific) │ │ │ │ ├── readelf --wide --symbols {} │ │ │ │ │ @@ -1,28 +1,28 @@ │ │ │ │ │ │ │ │ │ │ Symbol table '.symtab' contains 40 entries: │ │ │ │ │ Num: Value Size Type Bind Vis Ndx Name │ │ │ │ │ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND │ │ │ │ │ - 1: 00000001 28 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ + 1: 00000001 32 FUNC LOCAL DEFAULT 1 destroy │ │ │ │ │ 2: 00000000 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ 3: 00000000 0 NOTYPE LOCAL DEFAULT 5 $d │ │ │ │ │ 4: 00000000 0 NOTYPE LOCAL DEFAULT 5 .LC0 │ │ │ │ │ 5: 00000018 0 NOTYPE LOCAL DEFAULT 5 .LC1 │ │ │ │ │ 6: 00000024 0 NOTYPE LOCAL DEFAULT 5 .LC2 │ │ │ │ │ - 7: 0000001d 116 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ - 8: 00000084 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 9: 00000090 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 10: 00000091 88 FUNC LOCAL DEFAULT 1 zero │ │ │ │ │ + 7: 00000021 140 FUNC LOCAL DEFAULT 1 print │ │ │ │ │ + 8: 000000a0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 9: 000000ac 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 10: 000000ad 112 FUNC LOCAL DEFAULT 1 zero │ │ │ │ │ 11: 0000002c 0 NOTYPE LOCAL DEFAULT 5 .LC3 │ │ │ │ │ - 12: 000000e9 92 FUNC LOCAL DEFAULT 1 hash │ │ │ │ │ - 13: 00000140 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 14: 00000144 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 15: 00000194 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ - 16: 00000198 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ - 17: 000001f0 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 12: 0000011d 112 FUNC LOCAL DEFAULT 1 hash │ │ │ │ │ + 13: 00000188 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 14: 0000018c 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 15: 000001fc 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ + 16: 00000200 0 NOTYPE LOCAL DEFAULT 1 $t │ │ │ │ │ + 17: 00000274 0 NOTYPE LOCAL DEFAULT 1 $d │ │ │ │ │ 18: 00000000 0 SECTION LOCAL DEFAULT 6 .data.rel.ro.local │ │ │ │ │ 19: 00000000 0 NOTYPE LOCAL DEFAULT 6 $d │ │ │ │ │ 20: 00000000 20 OBJECT LOCAL DEFAULT 6 padt │ │ │ │ │ 21: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_dtensor_destroy │ │ │ │ │ 22: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_free │ │ │ │ │ 23: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ifree │ │ │ │ │ 24: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_ialignment_of │ │ │ │ │ @@ -32,12 +32,12 @@ │ │ │ │ │ 28: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_rank │ │ │ │ │ 29: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_total_block │ │ │ │ │ 30: 00000000 0 NOTYPE GLOBAL DEFAULT UND memset │ │ │ │ │ 31: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_md5puts │ │ │ │ │ 32: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_md5int │ │ │ │ │ 33: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_dtensor_md5 │ │ │ │ │ 34: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_md5INT │ │ │ │ │ - 35: 00000145 84 FUNC GLOBAL DEFAULT 1 fftwf_mpi_mkproblem_rdft2 │ │ │ │ │ + 35: 0000018d 116 FUNC GLOBAL DEFAULT 1 fftwf_mpi_mkproblem_rdft2 │ │ │ │ │ 36: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mkproblem │ │ │ │ │ 37: 00000000 0 NOTYPE GLOBAL DEFAULT UND fftwf_mpi_dtensor_canonical │ │ │ │ │ 38: 00000000 0 NOTYPE GLOBAL DEFAULT UND MPI_Comm_dup │ │ │ │ │ - 39: 00000199 92 FUNC GLOBAL DEFAULT 1 fftwf_mpi_mkproblem_rdft2_d │ │ │ │ │ + 39: 00000201 120 FUNC GLOBAL DEFAULT 1 fftwf_mpi_mkproblem_rdft2_d │ │ │ │ ├── readelf --wide --relocs {} │ │ │ │ │ @@ -1,45 +1,45 @@ │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.text' at offset 0x6b0 contains 35 entries: │ │ │ │ │ +Relocation section '.rel.text' at offset 0x734 contains 35 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000006 0000150a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -0000000e 0000160a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ -00000030 0000180a R_ARM_THM_CALL 00000000 fftwf_ialignment_of │ │ │ │ │ -0000003c 0000180a R_ARM_THM_CALL 00000000 fftwf_ialignment_of │ │ │ │ │ -00000054 0000190a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_print │ │ │ │ │ -0000006e 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000084 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ -00000088 00000503 R_ARM_REL32 00000018 .LC1 │ │ │ │ │ -0000008c 00000603 R_ARM_REL32 00000024 .LC2 │ │ │ │ │ -0000009a 00001b0a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_copy │ │ │ │ │ -000000bc 00001c0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ -000000c8 00001d0a R_ARM_THM_CALL 00000000 fftwf_mpi_total_block │ │ │ │ │ -000000d2 0000150a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -000000e0 00001e0a R_ARM_THM_CALL 00000000 memset │ │ │ │ │ -000000f6 00001f0a R_ARM_THM_CALL 00000000 fftwf_md5puts │ │ │ │ │ -00000108 0000200a R_ARM_THM_CALL 00000000 fftwf_md5int │ │ │ │ │ -00000110 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_md5 │ │ │ │ │ -00000118 0000220a R_ARM_THM_CALL 00000000 fftwf_md5INT │ │ │ │ │ -00000120 0000200a R_ARM_THM_CALL 00000000 fftwf_md5int │ │ │ │ │ -00000128 0000200a R_ARM_THM_CALL 00000000 fftwf_md5int │ │ │ │ │ -00000130 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -00000138 0000200a R_ARM_THM_CALL 00000000 fftwf_md5int │ │ │ │ │ -00000140 00000b03 R_ARM_REL32 0000002c .LC3 │ │ │ │ │ -0000015c 0000240a R_ARM_THM_CALL 00000000 fftwf_mkproblem │ │ │ │ │ -00000166 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -0000016e 0000250a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_canonical │ │ │ │ │ -00000188 0000260a R_ARM_THM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ -00000194 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -000001b0 0000240a R_ARM_THM_CALL 00000000 fftwf_mkproblem │ │ │ │ │ -000001ba 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ -000001c2 0000250a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_canonical │ │ │ │ │ -000001dc 0000260a R_ARM_THM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ -000001e2 0000150a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ -000001f0 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ -00000018 0000171e R_ARM_THM_JUMP24 00000000 fftwf_ifree │ │ │ │ │ +00000008 0000150a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +00000010 0000160a R_ARM_THM_CALL 00000000 MPI_Comm_free │ │ │ │ │ +0000003e 0000180a R_ARM_THM_CALL 00000000 fftwf_ialignment_of │ │ │ │ │ +0000004a 0000180a R_ARM_THM_CALL 00000000 fftwf_ialignment_of │ │ │ │ │ +00000064 0000190a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_print │ │ │ │ │ +0000007e 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000000a0 00000403 R_ARM_REL32 00000000 .LC0 │ │ │ │ │ +000000a4 00000503 R_ARM_REL32 00000018 .LC1 │ │ │ │ │ +000000a8 00000603 R_ARM_REL32 00000024 .LC2 │ │ │ │ │ +000000bc 00001b0a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_copy │ │ │ │ │ +000000e4 00001c0a R_ARM_THM_CALL 00000000 MPI_Comm_rank │ │ │ │ │ +000000f2 00001d0a R_ARM_THM_CALL 00000000 fftwf_mpi_total_block │ │ │ │ │ +000000fc 0000150a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +0000010e 00001e0a R_ARM_THM_CALL 00000000 memset │ │ │ │ │ +00000130 00001f0a R_ARM_THM_CALL 00000000 fftwf_md5puts │ │ │ │ │ +00000146 0000200a R_ARM_THM_CALL 00000000 fftwf_md5int │ │ │ │ │ +0000014e 0000210a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_md5 │ │ │ │ │ +00000156 0000220a R_ARM_THM_CALL 00000000 fftwf_md5INT │ │ │ │ │ +0000015e 0000200a R_ARM_THM_CALL 00000000 fftwf_md5int │ │ │ │ │ +00000166 0000200a R_ARM_THM_CALL 00000000 fftwf_md5int │ │ │ │ │ +0000016e 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +00000176 0000200a R_ARM_THM_CALL 00000000 fftwf_md5int │ │ │ │ │ +00000188 00000b03 R_ARM_REL32 0000002c .LC3 │ │ │ │ │ +000001b2 0000240a R_ARM_THM_CALL 00000000 fftwf_mkproblem │ │ │ │ │ +000001bc 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +000001c6 0000250a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_canonical │ │ │ │ │ +000001e0 0000260a R_ARM_THM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ +000001fc 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +00000226 0000240a R_ARM_THM_CALL 00000000 fftwf_mkproblem │ │ │ │ │ +00000230 00001a0a R_ARM_THM_CALL 00000000 MPI_Comm_size │ │ │ │ │ +0000023a 0000250a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_canonical │ │ │ │ │ +00000254 0000260a R_ARM_THM_CALL 00000000 MPI_Comm_dup │ │ │ │ │ +0000025a 0000150a R_ARM_THM_CALL 00000000 fftwf_mpi_dtensor_destroy │ │ │ │ │ +00000274 00001203 R_ARM_REL32 00000000 .data.rel.ro.local │ │ │ │ │ +0000001c 0000171e R_ARM_THM_JUMP24 00000000 fftwf_ifree │ │ │ │ │ │ │ │ │ │ -Relocation section '.rel.data.rel.ro.local' at offset 0x7c8 contains 4 entries: │ │ │ │ │ +Relocation section '.rel.data.rel.ro.local' at offset 0x84c contains 4 entries: │ │ │ │ │ Offset Info Type Sym. Value Symbol's Name │ │ │ │ │ -00000004 00000c02 R_ARM_ABS32 000000e9 hash │ │ │ │ │ -00000008 00000a02 R_ARM_ABS32 00000091 zero │ │ │ │ │ -0000000c 00000702 R_ARM_ABS32 0000001d print │ │ │ │ │ +00000004 00000c02 R_ARM_ABS32 0000011d hash │ │ │ │ │ +00000008 00000a02 R_ARM_ABS32 000000ad zero │ │ │ │ │ +0000000c 00000702 R_ARM_ABS32 00000021 print │ │ │ │ │ 00000010 00000102 R_ARM_ABS32 00000001 destroy │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,141 +1,152 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ destroy(): │ │ │ │ │ - push {r4, lr} │ │ │ │ │ + strd r4, lr, [sp, #-8]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ ldr r0, [r0, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ add.w r0, r4, #28 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_free │ │ │ │ │ mov r0, r4 │ │ │ │ │ - ldmia.w sp!, {r4, lr} │ │ │ │ │ + ldrd r4, lr, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ b.w 0 │ │ │ │ │ R_ARM_THM_JUMP24 fftwf_ifree │ │ │ │ │ │ │ │ │ │ -0000001c : │ │ │ │ │ +00000020 : │ │ │ │ │ print(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, lr} │ │ │ │ │ + strd r4, r5, [sp, #-24]! │ │ │ │ │ mov r4, r0 │ │ │ │ │ mov r5, r1 │ │ │ │ │ ldrd r0, r2, [r0, #12] │ │ │ │ │ + strd r6, r7, [sp, #8] │ │ │ │ │ + strd r8, lr, [sp, #16] │ │ │ │ │ sub sp, #16 │ │ │ │ │ ldr.w r8, [r1] │ │ │ │ │ - subs r6, r2, r0 │ │ │ │ │ + sub.w r6, r2, r0 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ialignment_of │ │ │ │ │ - clz r6, r6 │ │ │ │ │ mov r7, r0 │ │ │ │ │ ldr r0, [r4, #16] │ │ │ │ │ + clz r6, r6 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_ialignment_of │ │ │ │ │ - ldr r1, [pc, #64] @ (84 ) │ │ │ │ │ - lsrs r6, r6, #5 │ │ │ │ │ + ldr r1, [pc, #80] @ (a0 ) │ │ │ │ │ + mov.w r6, r6, lsr #5 │ │ │ │ │ mov r3, r7 │ │ │ │ │ - mov r2, r6 │ │ │ │ │ str r0, [sp, #0] │ │ │ │ │ - add r1, pc │ │ │ │ │ mov r0, r5 │ │ │ │ │ + mov r2, r6 │ │ │ │ │ + add r1, pc │ │ │ │ │ blx r8 │ │ │ │ │ ldr r0, [r4, #4] │ │ │ │ │ mov r1, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_print │ │ │ │ │ ldr r3, [r4, #24] │ │ │ │ │ - str r3, [sp, #0] │ │ │ │ │ mov r0, r5 │ │ │ │ │ - ldr r1, [pc, #40] @ (88 ) │ │ │ │ │ - ldr r3, [r4, #20] │ │ │ │ │ - ldr r2, [r4, #8] │ │ │ │ │ - add r1, pc │ │ │ │ │ + ldr r1, [pc, #52] @ (a4 ) │ │ │ │ │ + str r3, [sp, #0] │ │ │ │ │ ldr r6, [r5, #0] │ │ │ │ │ + add r1, pc │ │ │ │ │ + ldr r2, [r4, #8] │ │ │ │ │ + ldr r3, [r4, #20] │ │ │ │ │ blx r6 │ │ │ │ │ - add r1, sp, #12 │ │ │ │ │ ldr r0, [r4, #28] │ │ │ │ │ + add r1, sp, #12 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ - ldr r1, [pc, #24] @ (8c ) │ │ │ │ │ - ldr r3, [r5, #0] │ │ │ │ │ + ldr r1, [pc, #36] @ (a8 ) │ │ │ │ │ mov r0, r5 │ │ │ │ │ + ldr r3, [r5, #0] │ │ │ │ │ ldr r2, [sp, #12] │ │ │ │ │ add r1, pc │ │ │ │ │ blx r3 │ │ │ │ │ add sp, #16 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, pc} │ │ │ │ │ - .word 0x00000036 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + add sp, #16 │ │ │ │ │ + ldmia.w sp!, {r8, pc} │ │ │ │ │ + nop │ │ │ │ │ + .word 0x00000040 │ │ │ │ │ R_ARM_REL32 .LC0 │ │ │ │ │ - .word 0x00000020 │ │ │ │ │ + .word 0x0000002e │ │ │ │ │ R_ARM_REL32 .LC1 │ │ │ │ │ - .word 0x0000000e │ │ │ │ │ + .word 0x0000001a │ │ │ │ │ R_ARM_REL32 .LC2 │ │ │ │ │ │ │ │ │ │ -00000090 : │ │ │ │ │ +000000ac : │ │ │ │ │ zero(): │ │ │ │ │ - push {r4, r5, r6, lr} │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - ldr r6, [r0, #12] │ │ │ │ │ + strd r4, r5, [sp, #-16]! │ │ │ │ │ + ldr r4, [r0, #12] │ │ │ │ │ + strd r6, lr, [sp, #8] │ │ │ │ │ sub sp, #8 │ │ │ │ │ + mov r6, r0 │ │ │ │ │ ldr r0, [r0, #4] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_copy │ │ │ │ │ ldr r2, [r0, #0] │ │ │ │ │ - movs r3, #12 │ │ │ │ │ - mov r4, r0 │ │ │ │ │ + mov r5, r0 │ │ │ │ │ add r1, sp, #4 │ │ │ │ │ - mla r2, r3, r2, r0 │ │ │ │ │ - ldr r0, [r5, #28] │ │ │ │ │ + add.w r2, r2, r2, lsl #1 │ │ │ │ │ + add.w r2, r0, r2, lsl #2 │ │ │ │ │ + ldr r0, [r6, #28] │ │ │ │ │ ldr.w r3, [r2, #-8] │ │ │ │ │ add.w r3, r3, r3, lsr #31 │ │ │ │ │ - asrs r3, r3, #1 │ │ │ │ │ - adds r3, #1 │ │ │ │ │ + mov.w r3, r3, asr #1 │ │ │ │ │ + add.w r3, r3, #1 │ │ │ │ │ str.w r3, [r2, #-8] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_rank │ │ │ │ │ - ldr r5, [r5, #8] │ │ │ │ │ + ldr r6, [r6, #8] │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ ldr r2, [sp, #4] │ │ │ │ │ - movs r1, #0 │ │ │ │ │ - mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_total_block │ │ │ │ │ - mul.w r5, r0, r5 │ │ │ │ │ - mov r0, r4 │ │ │ │ │ + mul.w r6, r0, r6 │ │ │ │ │ + mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ - cmp r5, #0 │ │ │ │ │ - ble.n e4 │ │ │ │ │ - lsls r2, r5, #3 │ │ │ │ │ - movs r1, #0 │ │ │ │ │ - mov r0, r6 │ │ │ │ │ + cmp r6, #0 │ │ │ │ │ + ble.n 112 │ │ │ │ │ + mov.w r2, r6, lsl #3 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ + mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL memset │ │ │ │ │ add sp, #8 │ │ │ │ │ - pop {r4, r5, r6, pc} │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + pop {r6, pc} │ │ │ │ │ │ │ │ │ │ -000000e8 : │ │ │ │ │ +0000011c : │ │ │ │ │ hash(): │ │ │ │ │ - push {r4, r5, lr} │ │ │ │ │ + str.w r4, [sp, #-12]! │ │ │ │ │ mov r4, r1 │ │ │ │ │ - mov r5, r0 │ │ │ │ │ - ldr r1, [pc, #80] @ (140 ) │ │ │ │ │ + ldr r1, [pc, #100] @ (188 ) │ │ │ │ │ + strd r5, lr, [sp, #4] │ │ │ │ │ sub sp, #12 │ │ │ │ │ + mov r5, r0 │ │ │ │ │ mov r0, r4 │ │ │ │ │ add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_md5puts │ │ │ │ │ - mov r0, r4 │ │ │ │ │ ldrd r1, r3, [r5, #12] │ │ │ │ │ - subs r1, r1, r3 │ │ │ │ │ + mov r0, r4 │ │ │ │ │ + sub.w r1, r1, r3 │ │ │ │ │ clz r1, r1 │ │ │ │ │ - lsrs r1, r1, #5 │ │ │ │ │ + mov.w r1, r1, lsr #5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_md5int │ │ │ │ │ ldr r1, [r5, #4] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_md5 │ │ │ │ │ ldr r1, [r5, #8] │ │ │ │ │ @@ -146,101 +157,118 @@ │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_md5int │ │ │ │ │ ldr r1, [r5, #24] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_md5int │ │ │ │ │ - add r1, sp, #4 │ │ │ │ │ ldr r0, [r5, #28] │ │ │ │ │ + add r1, sp, #4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ ldr r1, [sp, #4] │ │ │ │ │ mov r0, r4 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_md5int │ │ │ │ │ add sp, #12 │ │ │ │ │ - pop {r4, r5, pc} │ │ │ │ │ - .word 0x00000048 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + add sp, #8 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + nop │ │ │ │ │ + .word 0x00000056 │ │ │ │ │ R_ARM_REL32 .LC3 │ │ │ │ │ │ │ │ │ │ -00000144 : │ │ │ │ │ +0000018c : │ │ │ │ │ fftwf_mpi_mkproblem_rdft2(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - mov r7, r1 │ │ │ │ │ - ldr r1, [pc, #72] @ (194 ) │ │ │ │ │ - sub sp, #12 │ │ │ │ │ - mov r8, r0 │ │ │ │ │ - add r1, pc │ │ │ │ │ - movs r0, #32 │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r6, r2 │ │ │ │ │ mov r5, r3 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + mov r7, r1 │ │ │ │ │ + mov r8, r0 │ │ │ │ │ + ldr r1, [pc, #88] @ (1fc ) │ │ │ │ │ + mov.w r0, #32 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ + sub sp, #12 │ │ │ │ │ ldr.w r9, [sp, #40] @ 0x28 │ │ │ │ │ + add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkproblem │ │ │ │ │ - add r1, sp, #4 │ │ │ │ │ mov r4, r0 │ │ │ │ │ + add r1, sp, #4 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r0, r8 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_canonical │ │ │ │ │ ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ - str r3, [r4, #20] │ │ │ │ │ add.w r1, r4, #28 │ │ │ │ │ - ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ strd r0, r7, [r4, #4] │ │ │ │ │ mov r0, r9 │ │ │ │ │ strd r6, r5, [r4, #12] │ │ │ │ │ + str r3, [r4, #20] │ │ │ │ │ + ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ str r3, [r4, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_dup │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, #12 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ - .word 0x00000040 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + nop │ │ │ │ │ + .word 0x00000048 │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ │ │ │ │ │ │ │ -00000198 : │ │ │ │ │ +00000200 : │ │ │ │ │ fftwf_mpi_mkproblem_rdft2_d(): │ │ │ │ │ - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} │ │ │ │ │ - mov r8, r1 │ │ │ │ │ - ldr r1, [pc, #80] @ (1f0 ) │ │ │ │ │ - sub sp, #12 │ │ │ │ │ + str.w r4, [sp, #-28]! │ │ │ │ │ + strd r5, r6, [sp, #4] │ │ │ │ │ mov r5, r0 │ │ │ │ │ - add r1, pc │ │ │ │ │ - movs r0, #32 │ │ │ │ │ + mov.w r0, #32 │ │ │ │ │ + strd r7, r8, [sp, #12] │ │ │ │ │ + mov r8, r1 │ │ │ │ │ mov r7, r2 │ │ │ │ │ + ldr r1, [pc, #92] @ (274 ) │ │ │ │ │ mov r6, r3 │ │ │ │ │ + strd r9, lr, [sp, #20] │ │ │ │ │ + sub sp, #12 │ │ │ │ │ ldr.w r9, [sp, #40] @ 0x28 │ │ │ │ │ + add r1, pc │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mkproblem │ │ │ │ │ - add r1, sp, #4 │ │ │ │ │ mov r4, r0 │ │ │ │ │ + add r1, sp, #4 │ │ │ │ │ mov r0, r9 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_size │ │ │ │ │ - movs r1, #0 │ │ │ │ │ + mov.w r1, #0 │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_canonical │ │ │ │ │ ldr r3, [sp, #44] @ 0x2c │ │ │ │ │ - str r3, [r4, #20] │ │ │ │ │ add.w r1, r4, #28 │ │ │ │ │ - ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ strd r0, r8, [r4, #4] │ │ │ │ │ mov r0, r9 │ │ │ │ │ - str r3, [r4, #24] │ │ │ │ │ strd r7, r6, [r4, #12] │ │ │ │ │ + str r3, [r4, #20] │ │ │ │ │ + ldr r3, [sp, #48] @ 0x30 │ │ │ │ │ + str r3, [r4, #24] │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL MPI_Comm_dup │ │ │ │ │ mov r0, r5 │ │ │ │ │ bl 0 │ │ │ │ │ R_ARM_THM_CALL fftwf_mpi_dtensor_destroy │ │ │ │ │ mov r0, r4 │ │ │ │ │ add sp, #12 │ │ │ │ │ - ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} │ │ │ │ │ - nop │ │ │ │ │ - .word 0x00000048 │ │ │ │ │ + ldrd r4, r5, [sp] │ │ │ │ │ + ldrd r6, r7, [sp, #8] │ │ │ │ │ + ldrd r8, r9, [sp, #16] │ │ │ │ │ + add sp, #24 │ │ │ │ │ + ldr.w pc, [sp], #4 │ │ │ │ │ + .word 0x0000004c │ │ │ │ │ R_ARM_REL32 .data.rel.ro.local │ │ │ ├── rdft2-solve.o │ │ │ │ ├── objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {} │ │ │ │ │ @@ -1,10 +1,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Disassembly of section .text: │ │ │ │ │ │ │ │ │ │ 00000000 : │ │ │ │ │ fftwf_mpi_rdft2_solve(): │ │ │ │ │ - ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ ldrd r1, r2, [r1, #12] │ │ │ │ │ + ldr r3, [r0, #56] @ 0x38 │ │ │ │ │ bx r3